hooneats (52) 썸네일형 리스트형 CQRS Command Query 책임을 명확히 나누고 독립적으로 확장 가능한 시스템을 만드는 것 CQRS가 뭐야 CQRS 란개요Command Query Responsibility Segregation (CQRS)읽기 및 쓰기 작업을 별도의 데이터 모델로 분리하는 디자인 패턴읽기 모델, 쓰기 모델을 독립적으로 최적화 가능--> 단순하게 말하면, 조회와 쓰기가 일어나는 작업을 각각 분리하는것필요성 및 이점읽기와 쓰기의 분리로 복잡도를 낮출 수 있음복잡도를 높이는 부분은 조회쪽일 확률이 높은데, 조회 전용 도메인이 설계가 된다면 이러한 복잡도를 낮추고, Redis 등 좀 더 조회에 최적화된 저장소를 이용해 성능상의 이점도 가져갈 수 있음점진적으로 개선해보며 알아보는 CQRS아래와 같은 메소드가 존재한다고 가정해보겠습니다. (단적인 예시이기에 일반적이지 않을 수 있습니다. 또한 해당내용은 동기/비동기 관점이아닌 Comma.. 최대공약수, 최소공배수 최대공약수 GCD (유클리드 호제법 Euclidean Algorithm)int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b);} 최소공배수 LCM public static int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } public static int lcm(int a, int b) { return (a * b) / gcd(a, b); } HTTP HTTP(Hypertext Transfer Protocol)는 웹에서 클라이언트와 서버 간에 데이터를 주고받기 위한 프로토콜HTTP/1.0은 요청마다 새로운 TCP 연결을 맺고 해제하는 방식으로 동작하는 상태 비저장 프로토콜HTTP/1.1은 상태 비저장 프로토콜이지만, Keep-Alive를 통해 TCP 연결을 유지하도록 개선HTTP/2.0은 하나의 TCP 연결에서 여러 요청을 동시에 처리할 수 있는 멀티플렉싱(Multiplexing)을 지원HTTP/3.0은 TCP 대신 QUIC 프로토콜을 사용하여 멀티플렉싱 성능을 향상시키고, 연결 지연을 줄여 더 빠르고 안정적인 통신을 제공하는 프로토콜 ✅ HTTP(Hypertext Transfer Protocol):웹에서 클라이언트와 서버 간에 데이터를 주고받.. 동기 vs 비동기, 블록킹 vs 논블록킹 한마디로 정의하면동기는 요청한 결과를 직접 제어해서 처리하는 방식비동기는 요청한 결과를 콜백이나 이벤트를 통해 처리하는 방식블록킹은 현재의 요청이 끝날때까지 스레드의 작업이 차단됨논블록킹은 현재의 요청이 끝날때까지 스레드의 작업이 비차단됨즉, 결과를 직접 제어할 것인가는 동기/비동기에 달려있고, 현재의 스레드가 요청 후 다른일을 할 수 있는가는 블록킹/논블록킹 여부에 달려있다. 때문에동기 + 블록킹 = 요청 후 요청이 끝날 때까지 아무것도 할 수 없으며, 결과도 직접 제어해야 하기에 기다려야 한다.동기 + 논블록킹 = 요청 후 요청이 끝날 때까지 다른 작업을 할 수도 있고 안 할 수도 있다. 그러나 결과를 직접 제어해야 하므로 폴링(Polling)이나 반복 확인을 통해 결과를 기다린다.비동기 + 블록킹 .. Typesript와 NestJS에 대해 지극히 개인적인 그냥 끄적이는 글... Java + Spring 개발자 약 1년 반을 하였고 최근에는 Typescript + NestJS 개발자 약 1년 반을 하였다. 나는 객체지향을 좋아하다 보니, Typescript와 NestJS를 사용할 때 Javascrtip라는 근본적인 언어의 특성 때문에 요즘 들어 Java + Spring을 하고 싶어졌다. 나는 크게 두 가지의 지극히 개인적인 아쉬움이 있다. 1. Typescrtipt는 오버로딩이 안된다는 것이다. 2. NestJS는 Spring처럼 자동으로 인터페이스의 구현체를 어노테이션 하나만으로 주입해주지는 않는다. 이외에도 많지만 지극히 개인적으로 저 두 가지가 제일 아쉽다. 메서드의 네이밍은 메서드의 역할이 잘 드러나야 한다. 하지만 그렇다고 너무 길면 가독성을 헤친다. 때문에 오버로딩이 .. 스프링으로 시작하는 리액티브 프로그래밍 독서 기간: 2024.07.01 ~ 2024.07.21 대체로 간단한 개념에 대한 설명 후 예제코드로 어떻게 사용하는지 알려주고 있어, 리액티브 프로그래밍을 처음 접하는 사람에게 도움이 되는 책이라고 생각된다. 책 초반부터 중반부까지는 project reactor에 대해 다루며, 책 뒤편에는 Spring Webflux에 대해 다루는데, 실제 Spring Webflux의 코드와 함께 어떻게 돌아가는지 설명해 주고 있어 Spring Webflux에 대해 이해하기 좋았다. 카페 봉비벙 : 네이버방문자리뷰 52 · 블로그리뷰 55m.place.naver.com Spring MVC Process Spring 에게 Request 가 들어왔을때 Spring MVC 의 과정은 아래 이미지와 같다. DispatcherServlet : Request 가 들어오면 해당 Request 를 처리하는 수문장 역할을 한다. 요청이 들어오면 Spring 이 만들어 놓은 DispatcherServlet.java 파일에 doDispatch 메서드가 실행된다. HandlerMapping : Spring 은 HandlerMapping 을 List 을 가지고 있다가 이곳에서 요청이 들어온 URL 에 맞춰 HandlerMapping 을 찾는다. Spring Boot 는 @Controller 클래스에서 @RequestMapping 을 통해 명시한 URL 에 맞춰 RequestMappingInfo 인스턴스를 만드는데 이를 Han.. 이전 1 2 3 4 ··· 7 다음 목록 더보기