일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Starter
- RestTemplate
- AOP 매개변수
- JsonStringType
- 쓰레드 안전
- java
- AccessLevel
- vaultTemplate
- ResponseBodyAdvice
- findAny
- @AutoConfiguration
- AOP this
- findFirst
- JsonType
- ClientHttpRequestInterceptor
- AOP
- 포맷터
- AOP target
- gradle
- 개방/폐쇄 원칙
- LogInterceptor
- auto configuration
- fotmatter
- jpa
- Spring Boot
- Thread Safety
- spring
- Save Action
- restTemple
- Stream
- Today
- Total
목록분류 전체보기 (49)
맨땅에 헤딩하는 개바른자
ERD 설계를 하면서 중복데이터 관리는 어떻게 해야하는지 질문을 받았는데 문뜩 기억이 잘 나지 않아서 당황을 하다가번뜩 조합키를 사용하면 되지 않을까라고 생각해보았지만 조합키? 오랜만에 해서 값자기 헤깔리기 시작했습니다....역시 오랫동안 안쓰다보면 다 까먹기 마련인가봅니다. ^^;;다시 검색을해서 unique index를 찾게되었고 PK는 기본적으로 unique하게 사용되는데 PK도 포함되서 중복 된 항목을보나..??그러면 PK는 항상 auto increment를 하니까 중복 될 일이 없지 않은가?그렇다면 PK를 제외하고도 원하는 컬럼만 묶어서 유니크하게 중복 데이터 등록을 방지 할 수 있을 것이다라고 생각하였고그 과정을 아래 절차로 확인해보았습니다.[환경]DB : mysql[테이블 생성 SQL]CRE..

목차 개요 구성 파일 구성 파일 설명 WooForwardFilterFunction (필터 기능) AddExchangeFilterFunctions (필터 기능 주입) WooRestClientAutoConfiguration (AutoConfiguration 설정) WooRestClientAutoConfigureRegistrar (WebClient별 RestClient 빈 생성) 간략한 정리 1. 개요 RestTemplate와 같이 WebClient가 여러 주소로 통신 하기위해서는 주소별 WebClient빈을 생성해야합니다. 생성 된 빈들은 사용 클래스에서 빈 이름으로 구별하여 주입받아 사용하게 됩니다. 이번 포스팅에서는 여러 WebClient빈을 특정 어노테이션을 이용하여 통신 기능을 담당하는 클래스(Rep..
목차 Spring Boot Gradle 프로젝트 설정 build.gradle 파일을 통해 프로젝트 설정 의존성 관리 dependencies 블록을 사용하여 의존성 관리 테스트 관련 의존성 testImplementation을 통한 테스트에 필요한 라이브러리 추가 testRuntimeOnly를 사용하여 테스트 실행 시 필요한 라이브러리 정의 testFixturesImplementation 및 testFixturesRuntimeOnly를 사용하여 테스트 픽스처 모듈 정의 testCompileOnly를 통한 테스트 시에만 필요한 컴파일 의존성 추가 testAnnotationProcessor를 사용하여 테스트용 어노테이션 프로세서 정의 Spring Boot Gradle 프로젝트 설정 Spring Boot 프로젝트..

목차 프로젝트 구성 progress-starter dependency progress-api dependency Auto Configuration 상세 설정정보 설정 코드 각 어노테이션별 역활 이외 어노테이션 역활 결론 1. 프로젝트 구성 필자는 아래와 같은 프로젝트 구성을 하였습니다. [progress-starter dependency] dependencies { // Using only starter testRuntimeOnly("com.h2database:h2") // Using starter and module api("org.springframework.boot:spring-boot-starter-data-rest") api("org.springframework.boot:spring-boot-s..
목차 annotationProcessor 이란 annotationProcessor 사용 사례 롬복 QueryDSL 결론 1. annotationProcessor 이란 Gradle에서 annotationProcessor는 Java 컴파일러를 확장하여 소스 코드에 포함된 어노테이션을 처리하는 도구입니다. 주로 코드 생성 (code generation) 및 리소스 생성과 같은 작업에 사용됩니다. 이는 주로 프로젝트에서 반복되는 코드를 자동으로 생성하거나, 런타임에서 어노테이션에 기반한 작업을 수행할 때 유용합니다. Java에서는 어노테이션 프로세서를 사용하여 컴파일 타임에 소스 코드를 분석하고 수정할 수 있습니다. 어노테이션 프로세서는 javax.annotation.processing 패키지의 API를 사용하..

글 작성 개요 스프링부트 스타터를 커스텀하게 구성하는 과정에서 META-INF.spring 하위에 import정보를 설정하는 파일을 보게되었다. 솔직히 직접 구성한 프로젝트가 아니라서 궁금해서 찾아보게 되었다. 목차 1. Auto Configuration 이란 2. Auto Configuration 동작방식 3. Auto Configuration 사용 케이스 4. 결론 1. Auto Configuration 이란 Spring Boot의 Auto Configuration은 애플리케이션을 구성하는데 필요한 빈(Bean)들을 자동으로 설정해주는 기능입니다. 이는 개발자가 명시적으로 빈을 등록하지 않아도 Spring Boot가 자동으로 필요한 빈들을 찾아서 설정해주는 방식으로 동작합니다. Spring Boot는..

목차 전의 의존성이란 (transitive dependency) implementation와 api의 차이 implentation과 api의 사용 implentation과 api의 차이 요약 전의 의존성이란 개발을 하다 보면 외부 도구(라이브러리 또는 프레임워크 등)를 사용하기 위해 의존성을 끌어 와야 하는 경우가 빈번한데, 이때 빌드 도구로 Gradle(그레이들)을 사용하면 크게 api 또는 implementation을 사용할 수 있다. 참고로 Gradle6 이전에는 compile도 사용 가능했는데, compile이 deprecated 되고 나온 것이 api이다. 그리고 runtime 대신 나온 것은 implementation이다. 그리고 앞서 설명하였듯 implementation과 api를 사용하면 ..
업무를 보다보면 간혹 명확하지 않은 상황에서 아래와 같은 질문에 답변하기 어려웠던 경험들이 있을 것 같습니다. [질문자] 재발되지 않도록 대응은 하셨나요? [답변자] 어.. 음 대충 이정도요..? [질문자] 그래서 정확히 얼마라는 겁니까?? %가 어떻게 되죠? [답변자] 딱 부러지게 몇 퍼센트라 할 수는 없고요 가능성이 전혀 없는 것은 아닙니다만, 그렇게 염려할 수준은 아닙니다. [질문자] 그래서 몇 퍼센트라는 겁니까? 그럼 재발 가능성이 있다는 말아닙니까? 상황을보면 질문자/답변자 모두 애매하게 느낄 수 있을 것이다. 질문자의 경우 "보카시"장난 이라고 불리우기도 한데 "보카시"는 우리말로 "바림 염색"이라고 색의 경계를 흐릿하게 해서 염색하는 방법이다. 보카시 장난은 경계가 뚜렷하지 않게 말을 흐리게..

모두가 약속 된 code formatter를 적용하기위한 인텔리제이 설정을 안내 드립니다. (https://tryto-han.tistory.com/2 ) 퍼옴 Save Action 자동정렬 플러그인 자동정렬 단축키를 사용해서 저장하는 방법도 있지만, 단축키를 계속 눌러줘야 하므로 번거로움이 있다. 또한 정렬작업을 잊고 못하는 경우도 발생할 수 있는데, 인텔리제이에서 자동으로 정렬해주는 플러그인을 설치하려고 한다. 단! 에디터 창이 열려있다고 모든코드에 적용되는것이 아닌 직접 코드를 수정한 파일에서만 동작한다. 1. Save Action 설치 인텔리제이에서 File - settings -plugins 에서 Save Actions Tool을 검색하여 설치한다. install 이루 재시작을 하게되면 아래와 같..
설계를 하다보니 Json데이터를 넣어야하는 컬럼이 존재하였다 Mysql에서는 json 컬럼 타입이 지원되서 아래와 같이 컬럼을 정의하여 사용하였다 OPTIONAL json null, JPA에서는 아래와 같이 설정하였다 @Column(name = "OPTIONAL", columnDefinition = "json") @Type(JsonStringType.class) private String optional; 테스트에서 돌려보니 h2에 생성되는 테이블도 optional json타입으로 생성되는 것을 확인하였다 첫번째 오류 이러한 구성에서 테스트에서 오류가 발생하였는데 잉..? “와 \ 구분자가 더 추가가되었다 그러면서 파싱오류가 발생하였던 것이다.. // 오류 Caused by: com.fasterxml.j..