일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- fotmatter
- @AutoConfiguration
- AccessLevel
- Starter
- findAny
- RestTemplate
- LogInterceptor
- findFirst
- JsonType
- AOP this
- Save Action
- AOP 매개변수
- vaultTemplate
- java
- restTemple
- auto configuration
- 개방/폐쇄 원칙
- AOP
- ResponseBodyAdvice
- gradle
- Stream
- JsonStringType
- jpa
- spring
- 쓰레드 안전
- 포맷터
- Spring Boot
- Thread Safety
- ClientHttpRequestInterceptor
- AOP target
- Today
- Total
목록분류 전체보기 (49)
맨땅에 헤딩하는 개바른자
프로젝트 구성 할 때 Response를 공통화하기위해 공통객체를 생성하고 Controller에서 공통객체로 리턴하는 구간을 간략하게 처리할 수 있는 방법입니다. 보통 Controller에서 공통처리 시 아래와 같이 선언이 됩니다. 최종 객체로 ResponseEntity를 선언하고 그 안에 공통 객체를 VgnApiResponse 사용하는 구성으로 코딩이 되어 있습니다. @GetMapping("/me") public ResponseEntity getMyMemberInfo() { return ResponseEntity.ok( VgnApiResponse.builder() .logKey(LogKey.get()) .data(memberService.getMyInfo()) .build() ); } 리턴형태 { "lo..
얼마전 프로젝트 스프링부트 버전을 올리면서 갑자기 JPA like검색에서 오류가 발생하였다. @DataJpaTest class CountryRepositoryTest extends BaseDataJpaTest { @Autowired private CountryRepository countryRepository; @BeforeEach void setUp() {} @Test @DisplayName("국가코드로_LIKE_검색오류현상재현") void 국가코드로_LIKE_검색오류현상재현() { // given Country country = Country.builder() .countryCode("KR") .countryCodeIso("KOR") .countryName("한국") .countryImageUrl("..

다형성을 이해해보자 출처 : 김영한 인프런 자동자는 인터페이스역활을 한다. 자동자라는 개념에 다양하게 K3, 아반떼, 테슬라 모델3 처럼 다양한 자동차로 구현할 수 있다 즉.. 운전자는 구현체가 다양하여도 운전을 할 수 있다. 운전자는 자동차라는 역활에 대한 다양한 구현체의 자동차를 사용할 수 있다는 개념이다 또 다른 예로 로미오, 줄리엣 이라는 역활에 있는데 장동건, 원빈이 로미오를 하던 김태희, 한가인이 줄리엣을 하던 무한한 대체가 가능하다라는 개념이다 역활과 구현을 분리 역활과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다. 장점 클라이언트는 대상의 역활(인터페이스만) 알면 된다. 클라이언트는 구현 대상의 내부 구조를 몰라도 된다. 클라이언트는 구현 대상의 내부 구조가 변경되어도..
enum 의 비교문 코드리뷰를 진행하다가 enum관련 된 질문을 받게 되었다 enum 비교 시 문자열 비교 equals는 지양한다고 코멘트를 받았다 enum 값이기 때문에 동등비교 하시면 됩니다.(enum 을 문자열로 비교하는 것은 지양) ex) AlarmApplicantBatchDto.AlarmApplicantDto.SendType.APP_PUSH == item.getSendType() 그리고 enum 비교를 위한 if/else 는 switch 문을 활용하면 깔끔해집니다. 왜? 차이점은 무엇 입니까 == / equals? 일반적으로 ==은(는) 실행 가능한 대안이 아닙니다 equals. 그러나 ( with 와 같은 enum) 경우 고려해야 할 두 가지 중요한 차이점이 있습니다. == 비교는 NullPo..

회사에서 업무를 보면서 Request용 Dto를 검증하는 과정에서 컨트롤러 진입 전에 여러 단계를 걸치면서 유입되는 과정을 보게된다. 단순히 Filter, Interceptor등 컨트롤러 진입 전 전처리를 하기 위한 구성이 있다는 정도만 알고있어도 충분히 업무에서도 무리없이 가능하지만 간혹 상급 개발자분들끼리 얘기하시는 용어를 못 알아 들을 때가 있었다. 프록시를 타는건가? 구멍을 뚫어서 길을 만들어주면될거 같다 등등 왈왈왈 ~ 듣다보니 답답함이 생겨서 MVC를 공부하는 취지로 글을 작성하려고 한다. [Spring 라이프사이클 구조] 위 그림 예제에서 controller, service, repositry는 다 아는 내용으로 생략 Filter 요청이 들어오면 제일 먼저 적용되는 부분이다. Dispatch..
https://khj93.tistory.com/entry/Spring-Batch란-이해하고-사용하기 config를 추가하고 기동을 해보았다 아래와 같은 에러가... *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of constructor in com.hanatour.dcr.batch.config.JobConfig required a bean of type 'org.springframework.batch.core.configuration.annotation.JobBuilderFactory' that could not be found. Action: Consid..
gateway-api 외부 or 프론트 수신 프로젝트 core-api db 처리 및 코어 로직 프로젝트 외부에서 접근 X 외부용 api에서만 접근하도록 구성 됨 구성 (resttemplate 사용) 요청 gateway-api >> core-api 응답 gateway-api
1. Nginx설정 Nginx는 웹 서비스를 유용하게 활용할 수 있는 유틸입니다. 웹 포트를 다 중으로 운영 할 수 있으며 L4와 같이 로드벨런싱 기능과 무중 단 배포 활용에 아주 유용하게 사용 됩니다. 1.1. 환경설정 1. /home/carrier/srv/nginx/ 하위 폴더에 기존 /etc/nginx 구성을 카피 된 환경을 만든다. 2. /home/carrier/srv/nginx/ 하위에 sites 폴더 구성 (있으면 생략) > cd /home/carrier/srv/nginx/ > mkdir sites-avaliable > mkdir sites-enabled 3. /home/carrier/srv/nginx/nginx.conf를 수정 user nginx; worker_processes 1; erro..
[Docker] 1 Docker 이미지 만들기 1) docker build -t 이미지명 . - Dockerfile을 만든 위치에서 빌드하는거라 맨 뒤에 . 점이 있다 파일 내용을 보면 아래와 같이 간략하게 설정되어있다 [carrier@localhost interceptor]$ cat Dockerfile FROM java:openjdk-8-jdk //기본 베이스가 되는 구간 java ADD asis /srv/app // 파일or폴더를 컨테이너 가상파일or경로에 매핑되며 컨테이너 경로는 자동으로 mkdir이 된다 EXPOSE 9001 //서비스 포트 설정 WORKDIR /srv/app/bin // CMD가 실행 될 컨테이너 속에 위치를 이동 cd /srv/app/bin이랑 동일하다 CMD ./start.s..