CQRS 패턴은 무엇일까? 종종 듣는 분들도 많을 것이고 실제 회사에서 도입하여 사용하는 케이스도 많다고 들었다. 필자는 CQRS란 무엇인지 스프링을 사용한다면 애플리케이션 레벨에서 어떻게 적용해 볼 수 있는지 작성해보려고 한다. CQRS는 Command Query Responsibility Segregation의 약자로 해석하면 명령 조회 책임 분리이다. 애플리케이션들을 구성하는 아키텍처에 대한 하나의 패턴이다. 즉 애플리케이션을 구현함에 있어 명령과 조회에 대한 책임을 분리하는 것이다. CQRS 패턴에 대해 구글링해보면 자주 마주치는 그림이다. 필자는 그냥 간단하게 생각했다. DB를 조회할 때 조회(READ)와 처리작업(CREATE, UPDATE, DELETE 등)을 다른 노드에게 할당하면 기본적인 ..
Maven은 빌드 프로세스를 실행하기 위해 여러개의 LifeCycle을 제공한다. 각 LifeCycle은 특정한 빌드 단계(build phase)를 정의하며 빌드 프로세스는 이 라이프사이클을 따라서 실행된다. There are three built-in build lifecycles: default, clean and site. The default lifecycle handles your project deployment, the clean lifecycle handles project cleaning, while the site lifecycle handles the creation of your project's web site. maven은 LifeCycle은 clean, default, site..
트랜잭션(Transaction) 트랜잭션(Transaction)이란, 데이터베이스 상태를 변화시키는 작업의 단위 ❔데이터베이스 상태 변화 SELECT * FROM TODOLIST; INSERT INTO TODOLIST VALUES(1, 'TODO'); UPDATE TODOLIST SET TODO = 'TODO2' WHERE ID = 1; DELETE FROM TODOLIST WHERE ID = 1; 질의문(SQL)을 이용하여 데이터베이스에 접근하여 상태 변화를 준다. 트랜잭션의 작업 단위라는 것은, 사람이 정해둔 기준에 따라 구분되어 정해진다. EX) 사용자가 새로운 TO-DO를 작성한다. 새롭게 작성된 TO-DO가 포함된 TO-DO-LIST가 보여진다. INSERT INTO TODOLIST VALUES..
서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭 클라이언트와 서버풀(Server Pool)사이에 위치 Server Pool : 분산 네트워크를 구성하는 서버들의 그룹 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 서버 퍼포먼스를 유지 로드밸런싱이 필요한 경우 서비스 규모가 커지고, 사용하는 클라이언트 수가 늘어나면 자연스럽게 트래픽이 증가하기 때문에, 이 트래픽을 처리하기 위해서 로드밸런싱을 진행해야한다. 트래픽 처리 유형 Scale-up 서버 자체의 성능을 확장하는 것 CPU를 i3 → i7으로 업그레이드하는 것 Scale-out 비슷한 성능을 가진 서버의 개수을 늘려 증설하는 방법 CPU가 i3인 컴퓨터를 여러 대 운영하는 것 ⇒ Scale-out 방식으로 서버를..
데이터베이스 정규화(Normalization) 란? 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 한다. 정규화의 기본 목표는 관련이 없는 함수 종속성은 별개의 릴레이션으로 표현하는 것이다. 정규화된 결과를 정규형이라고 하며, 정규형은 기본 정규형 고급 정규형으로 나뉜다. 기본 정규형 : 제1정규형, 제2정규형, 제3정규형, BCNF(보이스/코드 정규형) 고급 정규형 : 제4정규형, 제5정규형 정규화의 장점으로는 이상 현상의 발생 가능성을 줄이지만, 단점으로는 연산 시간이 증가한다. 제 1 정규형 릴레이션에 속한 모든 속성의 도메인이 더 이상 분해되지 않는 원자값으로만 구성된 정규형이다. 제2정규형 릴레이션이 제1정규형에 속하고, 기본키가 아닌 모든 속성이 기본..
초기 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결이 되어 호환성이 없었다. OSI 7계층은 모든 시스템들의 상호 연결에 있어 문제없도록 국제 표준 기구 ISO가 발표한 네트워크 모델이다. TCP/IP 4계층은, TCP/IP 프로토콜 통신 과정에 초점을 맞추어, OSI 7계층을 좀 더 단순화 시킨 계층을 의미한다. OSI 7계층은 Physical, Data Link, Network, Transport, Session, Presentation, Application 각 계층으로 구분되어 있고 TCP/IP 4계층은 Session, Presentation, Application가 하나의 계층을 이루고 Network 계층이 Internet 계층으로, Physical, Data Link가 Netwo..