객체 지향 프로그래밍에서 도우미 클래스는 사용되는 응용 프로그램이나 클래스의 주요 목표가 아닌 일부 기능을 제공하는 데 사용됩니다. 도우미 클래스의 인스턴스를 도우미 개체라고 합니다.도우미 클래스는 초보 프로그래머가 하나 또는 두 개의 클래스를 만드는 것 이상으로 이동
마이크로 서비스 아키텍쳐(이하 MSA)는 근래의 웹기반의 분산 시스템의 디자인에 많이 반영되고 있는 아키텍쳐 스타일로 특정 사람이 정의한 아키텍쳐가 아니라 분산 웹 시스템의 구조가 유사한 구조로 설계 되면서 개념적으로만 존재하던 개념이다.
객체와 테이블 매핑: @Entity, @Table기본 키 매핑: @Id필드와 컬럼 매핑: @Column연관관계 매핑: @ManyToOne, @JoinColumn데이터베이스의 테이블과 일대일로 매칭되는 객체 단위Entity 객체의 인스턴스 하나가 테이블에서 하나의 레코드
SQL을 직접 다룰 때, 어떤 문제가 발생하는지, 객체와 관계형 데이터베이스 사이에는 어떤 차이가 있는지, JPA는 무엇인지 알아보자.JDBC API를 이용하여 SQL을 직접 다루는 경우는 어떻게 동작할까?회원 조회 기능을 만들어보자.회원 조회용 SQL을 작성한다.JD
이전에 사용되던 HTTP 프로토콜 인증 방식에서는 요청에 따른 응답을 받으면 연결이 끊어지고 통신이 종료되면 어떠한 상태 정보도 남지 않는데, 그로 인해 로그인 후 다시 웹페이지에 접근하면 로그인 상태가 유지되지 않는다는 문제점이 있다.이러한 HTTP 프로토콜의 인증
오늘은 join에 대한 개념을 정리해본다.중복 없는 열(column)들을 Join한다고 가정했을 때, 가장 일반적인 경우이다.A와 B를 Innter-Join하면 A와 B의 교집합을 얻을 수 있다.A와 B를 Outer-Join하면 A와 B의 합집합을 얻을 수 있다.각각
B-Tree 인덱스의 다중 컬럼 인덱스는 컬럼 순서가 매우 중요하다. 순서에 따라 해당 인덱스를 활용하지 못 할 수도 있기 때문이다.반드시 왼쪽에 있는 컬럼이 사용되어야 그 오른쪽의 컬럼도 사용될 수 있다.그럼 어떤 기준으로 순서를 정하는게 좋을까? (단일 컬럼 인덱스
인덱스를 이루고 있는 자료구조의 일종이다.B-tree에서 'B'는 정확히 어떤 의미라고 밝혀진 바는 없다. 아마 'Balanced'를 의미하는 'B'가 아닐까라는 추측만 있다. MySQL의 DB engine인 InnoDB는 B+tree로 이뤄져있는데, B-tree의 확
DataBase의 데이터 영속성을 유지하기 위해 사용되는 Lock 종류를 알아보고자 합니다.거대한 DataBase 시스템은 여러 곳에서 동시에 접근할 수 밖에 없는 구조로 되어 있습니다. 동시에 접근하는 경우 필연적으로 데이터가 오염 될 가능성이 있습니다. DataBa
DI는 Dependency Injection의 줄임말로, 다양한 우리 말 번역이 있지만, 이 글에서는 의존관계 주입이라는 말로 사용하고자 한다.먼저 Dependency, 의존관계에 대해 알아보자.“A가 B를 의존한다.”는 표현은 어떤 의미일까? 추상적인 표현이지만, 토
데이터베이스는 조건문으로 검색할 때, 테이블 전체를 full scan으로 탐색한다. 이러한 탐색 방식은 데이터가 많아지면 많아질 수록 비효율적인 방식이라는 것을 알 수 있을 것이다.이러한 비효율을 해소하기 위해 인덱스 테이블을 활용할 수 있다.인덱스는 B-Tree 자료
row의 값을 순차적으로 scan하며 값을 비교한다.full table scan은 가장 느린 scanning 방법이며 많은 자료가 담긴 disk를 읽기 위한 I/O를 사용하며 자원을 잡는다.속도도 느리고 자원도 많이 사용하는 방법이다.이를 해결하기 위해서 databas
논리적인 데이터 element를 다수의 entity로 쪼개는 행위.큰 테이블이나 인덱스를 파티션 단위로 분할하는 것.서비스의 크기가 커지고 데이터 규모가 커면서 DBMS의 용량과 한계, 성능이 저하되면서 테이블을 파티션이라는 단위로 나뉘어 관리하는 파티셔닝 기법이 등장
로드 밸런서를 사용하는 일반적인 3계층(3-Tier) 분산 처리 모델은 구성 요소에 문제가 생겼을 때 문제를 해결하기에 어려움이 있다.다음은 로드 밸런서로 구성한 일반적인 3계층(3-Tier) 분산 처리 모델을 표현한 도식이다.클라이언트의 트래픽이 로드 밸런서를 통해
Database management system의 약자로 데이터베이스를 관리하는 시스템이다.사용자와 DB사이에서 사용자의 요구에 따라 데이터를 생성해주고 DB를 관리해주는 소프트웨어DBMS는 데이터를 계층, 탐색 형식으로 저장한다. 파일시스템을 사용해 저장하며 테이블
Isolation을 알기전에 먼저 트랜잭션이 중요시 여기는 ACID라는 것을 먼저 알아야 합니다.Atomicity, Consistency, Isolation, Durability의 앞글자를 따서 ACID라고 불리웁니다.하나의 트랜잭션이 작업이 그중에 일부분만 실행되거나
매우 짧은 개발 서클의 반복에 의존하는 소프트웨어 개발 프로세스.개발자는 요구되는 새로운 기능에 대한 자동화된 테스트케이스를 작성하고 해당 케이스를 통과하는 가장 짧고 가독성이 좋고 유지보수성이 뛰어난 코드를 작성한다. 테스트 통과된 코드를 작성하고 상황에 맞게 리팩토
MVVM 패턴은 MVC 패턴에서 Controller를 빼고 ViewModel을 추가한 패턴입니다.ViewiOS는 ViewController까지 View가 된다.사용자가 보여지는 View를 생각하면 된다. 유저 인터랙션을 받는 역할, 인터랙션을 받을 시 ViewModel
인증이란?유저가 누구인지 확인하는 절차, 회원가입하고 로그인 하는 것.인가란?유저에 대한 권한을 허락하는 것.누가, 언제, 어떻게 쓰고 있는가를 파악하기 위해 어떤 사이트에서든 인증, 인가가 있음.인증과 인가는 API에서 가장 자주 구현되는 기능중 하나.Private한
블로킹과 논블로킹은 A 함수가 B 함수를 호출했을 때, 제어권을 어떻게 처리하느냐에 따라 달라진다.\*제어권이란 제어권은 자신(함수)의 코드를 실행할 권리 같은 것이다. 제어권을 가진 함수는 자신의 코드를 끝까지 실행한 후, 자신을 호출한 함수에게 돌려준다.동기와 비동