Client IP 구하기 - X-Forwarded-For와 X-Real-IP
Proxy / VPN X-Real-IP는 바로 직전 client의 IP를 나타낸다. proxy_set_header X-Real-IP $remote_addr; 설정에서 $remote_addr이, nginx가 수신한 client IP를 의미한다. User - Nginx - Tomcat 일 때, X-Real-IP는 User IP 가 된다. Use...
Proxy / VPN X-Real-IP는 바로 직전 client의 IP를 나타낸다. proxy_set_header X-Real-IP $remote_addr; 설정에서 $remote_addr이, nginx가 수신한 client IP를 의미한다. User - Nginx - Tomcat 일 때, X-Real-IP는 User IP 가 된다. Use...
https://www.baeldung.com/spring-events ApplicationEventPublisher::publishEvent로 pub 하고 @EventListener로 event 받아 처리하면 된다. 단 여기서 주의해야 할점! listener가 이벤트를 수신하는 것이 왠지 비동기로 이루어질 것 같지만, 기본적으로 동기식이...
취급 대상 품목(Good) 은 STONE, ALCOHOL, COMPUTER, SHIP, SUSHI 5가지 이고, 이 중 일부는 목적지(Destination) SEOUL, 일부는 BUSAN으로 보내야 한다. 그리고 목적지에 따라, 해당 목적지 로 보내는 품목 리스트를 구할 수 있어야 한다. 그러면 아래와 같이 구현 할 수 있는데… @Ge...
https://kotlinlang.org/docs/exception-handling.html Job과 SupervisorJob / coroutineScope와 supervisorScope의 예외 전파 차이 Job과 coroutineScope의 동작 코루틴에서 발생한 exception이 코루틴 내부에서 catch 되지 않고 바깥으로 나갔다면, ...
그림1 Controller -> Service 호출 시, Service의 메서드 파라미터 설계 @PostMapping("/some-path") public ResponseEntity<...> foo(@RequestBody @Valid FooControllerRequest request) { varService.doSomet...
그림1 God Class에 대한 용어 정리 god class는, 꼭 크기가 커야만(가지고 있는 필드가 많아야만) god class인 것은 아닙니다. 여러 layer에 걸쳐 사용되고 있다면, 또는 2개 이상의 책임을 가지고 있다면, 그 클래스를 사용(의존)하고 있는 클래스가 그 만큼 많다는 의미이고, 이는 곧 god class (또는 god clas...
https://martinfowler.com/bliki/PresentationDomainDataLayering.html layer를 나누는 것의 장점 1. 관심 분리 (를 통해 작업 대상 layer에 집중 가능) 마틴 파울러는 layer를 나누는 것의 최고 장점은, 작업 대상이 되는 layer에만 집중할 수 있도록 해준다는 점이라고 얘기하고 있다....
객체 안의 객체 매핑하기 https://mybatis.org/mybatis-3/ko/sqlmap-xml.html# 복잡한 결과매핑 섹션 부터 참조. 읽어 보면 알겠지만, 연관(Association)을 위한 중첩된 Select 는 N+1 Selects problem 으로 인해 추천하지 않는다. LEFT OUTER JOIN을 활용한 관계...
Domain Model이란 해당 도메인에서 비즈니스적인 의미를 가지는 object 다. [!info] An object model of the domain that incorporates both behavior and data. - P of EAA Domain Model은 id 여부에 따라 두 가지로 구분할 수 있다. Entity ...
Presentation Layer 뿐만 아니라 어느 layer에서든 사용 할 수 있다. (e.g., Controller, Service, Repository 내에서) Data Mapper [!tip] 요약 ) ‘Record<>Domain Model 매핑 로직’, ‘DTO<>Domain Model 매핑 로직’을 전담....