본문 바로가기
728x90
반응형

spring64

[Spring] RequestContextHolder로 HttpServletRequest 가져오기 HttpServletRequest를 메서드 파라미터로 선언하지 않고 가져오는 방법입니다. request를 서비스 레이어까지 전달하지 않더라도 RequestContextHolder를 이용하면 되는데, RequestContextHolder는 Spring 프레임워크 전 구간에서 HttpServletRequest에 접근할 수 있게 도와주는 구현체입니다. RequestContextHolder는 ThreadLocal을 사용해서 servlet이 호출되면 thread, HttpServletRequest를 key-value로 보관하고 있다가 요청을 하면 동일한 thread내에서는 어느 곳에서든 같은 HttpServletRequest를 돌려주는 역할을 합니다. RequestContextHolder에는 HttpServlet.. 2022. 7. 21.
[Spring/Jenkins] 젠킨스 Rest API로 젠킨스 Job 실행 젠킨스 Rest API를 이용하여 젠킨스 Job을 실행하는 방법을 알아보겠습니다. 1. 젠킨스 계정 API Token 생성 계정 > 설정 > API Token > Add new Token 원하는 이름으로 생성한 뒤 토큰을 복사해주세요. (복사하지 않으면 토큰을 알 수가 없음. 토큰명은 의미 없음.) 2. Item에 Token 추가 view > item > 구성 > 빌드 유발 빌드를 원격으로 유발 (예: 스크립트 사용)을 체크한 뒤 복사한 토큰을 붙여 넣기 해주세요. 3. curl로 job 실행 테스트 curl -X POST [젠킨스 서버 URL]/job/[job 이름]/buildWithParameters --user [젠킨스 user id]:[user password] --data token=[생성한 j.. 2022. 7. 4.
[Spring] EhCache를 Caffeine Cache로 변경하는 방법 (Caffeine Cache 적용 방법) 캐시 비교 게시글은 많기 때문에 생략하겠습니다. (Redis, EhCache, Caffeine 비교 , EhCache, Caffeine 비교) 해당 본문에서는 로컬 캐시가 EhCache로 설정되어 있는 환경을 Caffeine Cache로 변경하는 방법을 다루겠습니다. 1. pom.xml dependency를 변경합니다. ehcache caffeine net.sf.ehcache ehcache com.github.ben-manes.caffeine caffeine 3.1.1 2. application.yml ehcache 설정을 제거합니다. ehcache caffeine spring: cache: ehcache: config: classpath:cache/ehcache.xml 제거 3. Configuratio.. 2022. 6. 24.
[Spring] HttpStatus.LOCKED : 423 Client Error HTTP Status Code는 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답을 코드로 표현한 것으로, 해당 코드로 요청의 성공, 실패, 실패 요인 등을 알 수 있습니다. HTTP 상태 코드 중 LOCKED 상태 코드에 대해 알아보겠습니다. Locked라는 단어만으로 단순히 잠금상태로 판단하고 계정 잠금 등에 사용하면 안 됩니다. 423 상태 코드는 메서드의 소스 또는 대상 리소스가 잠겨 있음을 의미합니다. 이 응답에는 'lock-token-submitted' 또는 'non-conflict-lock'과 같은 적절한 전제 조건 또는 사후 조건 코드가 포함되어야 합니다. 423 Locked The 423 (Locked) status code means the source or destination re.. 2022. 6. 3.
[Spring] AOP와 @EnableAspectJAutoProxy Spring AOP (Aspect Oriented Programming) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불립니다. 쉽게 말해 관점에 따라 각각 모듈화(어떤 공통된 로직이나 기능을 하나의 단위로 묶음)하겠다는 것입니다. 소스 코드에서 여러 코드에서 반복해서 사용하는 코드를 발견할 수 있는데 이것을 흩어진 관심사(Crosscutting Concerns)라고 합니다. 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비지니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지입니다. AOP 주요 개념 Aspect : 흩어진 관심사를 모듈화 한 것 Target : Aspect를 적용하는 곳 (ElementType 등) Advice : 실질적인 부가.. 2022. 4. 27.
[Spring Security] DelegatingPasswordEncoder와 BCryptPasswordEncoder strength에 따른 수행시간 DelegatingPasswordEncoder에 대해 정리하기 전에, 스프링 시큐리티 래퍼런스 내용을 살펴보겠습니다. Srping Password Storage Spring Security’s PasswordEncoder interface is used to perform a one way transformation of a password to allow the password to be stored securely. Given PasswordEncoder is a one way transformation, it is not intended when the password transformation needs to be two way (i.e. storing credentials used to auth.. 2022. 3. 20.
[Spring Batch] batch step에서 processor chaining하는 방법 다음과 같은 batch step이 존재할 때, processor를 추가하기 위해선 어떻게 해야 할까요? @Bean public Job ioSampleJob() { return this.jobBuilderFactory.get("ioSampleJob") .start(step1()) .build(); } @Bean public Step step1() { return this.stepBuilderFactory.get("step1") .chunk(2) .reader(fooReader()) .processor(fooProcessor()) .writer(barWriter()) .build(); } public class Foo {} public class Bar { public Bar(Foo foo) {} } pub.. 2022. 2. 4.
[APPLE API] App Store Server API 요청을 위한 JWS 토큰 Generating Tokens for API Requests JWT(JSON Web Token)는 정보를 안전하게 전송하는 방법을 정의하는 공개 표준 (RFC 7519) 입니다. App Store Service API는 고객의 인앱 구매에 대한 정보를 요청하고 제공하기 위해 서버에서 호출하는 REST API 인데, API에 대한 각 요청을 승인하기 위해 JWT가 필요합니다. 토큰을 생성하고 App Store Connect에서 다운로드한 개인키로 서명합니다. JWS(JSON Web Signature) : JWT header + JWT payload + Sign - 서버에서 인증을 증거로 인증 정보를 서버의 private key로 서명한 것을 Token한 것 JWS 구성 JWT Header App Stor.. 2021. 12. 23.
[Spring] java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags Maven install 시, java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags 에러 발생. lombok 버전 업으로 문제 해결. org.projectlombok lombok 1.18.6 2021. 11. 30.
[Spring Batch] org.springframework.dao.EmptyResultDataAccessException: Item 0 of 3 did not update any rows Spring Batch 실행 시 아래와 같은 오류가 발생했습니다. org.springframework.dao.EmptyResultDataAccessException: Item 0 of 3 did not update any rows: [...] at org.mybatis.spring.batch.MyBatisBatchItemWriter.write(MyBatisBatchItemWriter.java:161) at org.springframework.batch.core.step.item.SimpleChunkProcessor.writeItems(SimpleChunkProcessor.java:193) at org.springframework.batch.core.step.item.SimpleChunkProcessor... 2021. 11. 18.
728x90
반응형