728x90 반응형 Spring136 Ehcache 2 -> Ehcache 3 마이그레이션 이전에 Ehcache2 로 적용해보았는데, 3으로 마이그레이션 해보았다. 이유는 버전 3이 적극적으로 유지 관리되고 개발된 버전이며, 유형이 안전하고 JSR107과 호환된다고 한다. (JSR107 : Java 캐싱 API https://github.com/jsr107/jsr107spec ) https://stackoverflow.com/questions/47163873/difference-relationship-between-ehcache-v2-and-ehcache-v3 Difference / Relationship between EhCache v2 and EhCache v3 Recently I am doing some research about the performance of java local ca.. 2023. 1. 23. Spring Security + JWT 로그인 구현하기 (Access Token) 스프링 시큐리티의 구조 및 JWT로 구현하는 예제는 정말 많다. 정말 어려운 부분이면서 깊이가 상당한 라이브러리를 시작하기 위해서 따라해보고 첨삭을 통해 프로젝트에 필요없는 코드는 제외했다. 또한, 리프레시 토큰도 처음에는 구현했으나, 제외하고 엑세스 토큰만 구현했다. 1. 가장 기본이 되는 엑세스 토큰으로 구현하고 필요할 때, 리프레시 토큰을 사용하는 것이 옳은 방법이라고 판단했다. ( 로그인만 사용하는 단계에서 그 이상으로 구현할 때, 해당 코드에 대해 자세히 분석하지 못하고 구현하거나 그 이상으로 복잡해지면 이후 리팩토링 하는 과정이 더 힘들것이라고 생각했다 ) 2. 리프레시 토큰을 탈취당하면 엑세스 토큰을 탈취당하는 것보다 이상의 문제가 생길것이라고 판단했다. 3. 기준은 없지만, 엑세스 시간을 .. 2023. 1. 23. @ResponseStatus 와 ResponseEntity 차이점 프로젝트를 진행하면서 처음에는 ResponseEntity 로 전부 깔고 시작했다. 현 프로젝트에서는 "복잡성을 굳이 가져갈 필요 없다, 대중적으로 사용하지만 사용하지 않는(어울리지 않는) 것은 단순화 할 필요가 있다" 라는 생각이 들어 @ResponseStatus 로 리팩토링했다. 추상화 VS 커스터마이징 이 둘중에 하나를 사용해야 한다고 하면 그 상황에 맞는 선택이 필요하고 생각한다. 간편하게 빠르게 사용할 수 있는 추상화를 사용하고, 이후 리팩토링을 진행하거나 필요에 맞게 커스터마이징 할 수 있는 레벨로 변경하는 것이 좋은 방법이 아니지 않을까 생각한다. 정답은 없으니 프로젝트에 맞는 유연한 대처가 필요하다. @ResponseStatus 어노테이션은 HttpStatus 를 표현하는 방식 중 하나이다... 2023. 1. 21. JAVA JDK17 을 사용하는 이유 나는 개인적으로 프로젝트를 시작하면서 17버전을 사용했다. 사실 내 프로젝트는 포트폴리오용 개인프로젝트로 8 , 11 과 같은 이전 버전을 사용해도 크게 문제가 없다. 신규 프로젝트에서는 고민없이? 선택할 수 있는 문제이겠지만, 이전 버전에서 마이그레이션 해야하는 상황이면 많은 고민이 있을 수도 있을것 같다.( 현 프로젝트에서 작동에 대한 보증이 필요할 경우 ) + 전자정부표준프레임워크를 사용하면 무조건 8 버전을 사용해야 한다고한다.. Java 17 버전은 2021년 9월에 공개된 LTS(Long-Term Support) 버전이며, 11과 비교해 70가지 이상의 JEP(JDK 개선제안) 가 더 추가되었다고 한다. 요즘 새롭게 나오는 강의나 유튜브에도 대부분 JDK 8 또는 11 버전을 사용하는 것을 볼.. 2023. 1. 21. RDS timezone Asia/Seoul 로 변경하기 Spring boot 와 RDS 를 연결한 후, 데이터를 입력했을 때 시스템 시간을 Asia/Seoul 로 변경하는 법을 알아본다. 설정하지 않으면 기본 디폴트값인 UTC 로 저장되어 보기가 어렵다 ( 아시아/서울 -9h 으로 지정되어있다 ) RDS 에서 파라미터 그룹을 생성해준다. 현재 사진상에 있는 timezone 을 만들어주는 과정이다. default 가 붙어있는 파라미터는 설정이 변경되지 않아 따로 만들어서 변경해주어야 한다. 유형은 DB 파라미터 그룹으로 한다. 그룹이름은 사용자가 원하는데로 작성한다. 생성된 timezone 을 누르고 설정을 변경해준다. 파라미터가 워낙많으니 time_zone 으로 검색하여 Asia/Seoul 로 변경한 후 변경 사항 저장을 한다. 변경이 완료되었으면 이제 사용.. 2023. 1. 19. AWS Secrets Manager 설정하고 Spring boot 연동하기 프로젝트를 배포하려는 중 .ignore 한 파일에 대한 환경변수를 어떻게 처리해야할지 고민이 많았다. DB 접속정보도 중요하고, AWS S3 에 대한 access-key , secret-key 등 중요한 정보가 많았다. 개인프로젝트 배포를 Docker 와 ec2, github action 을 이용해서 했는데, 여러 블로그를 보니 properties 파일을 따로 만드는 코드를 작성해서 환경변수를 넣어주는 것 같았다. 이러한 중요한 정보를 키/값 으로 지원해주는 솔루션을 제공해주는 여러가지 방법이 있었다.키교체, 교차 계정 액세스 등 아직은 사용하지않지만.. 현업에서 더욱 많이 사용할 거라 생각해 선택했다.https://rainbound.tistory.com/entry/AWS-Parameter-Store-%.. 2023. 1. 19. RDS MYSQL 연결 시 Connection time out 해결하기 RDS 연결을 하려고 여러 블로그들을 봤을 때 너무 간단해보였다. 다 동일한 과정이어서 호기롭게 도전했지만 Connection time out , unable to connect to localhost 에러에서 2시간이 넘게 걸렸다. RDS 를 몇번이나 삭제하고 새로 생성해도 같은 에러가 발생했으며, 보안그룹을 아무리 수정해도 똑같았다. 아래 해결방법을 공유하고자 한다. RDS 생성과정은 너무 많은 블로그가 있어서 생략하고 생성과정 중 꼭 확인해야할 것은 퍼블릭 액세스 여부를 "예" 로 설정해주어야 한다. 이후 아래 과정을 진행한다. aws -> vpc 로 들어가기 vpc 에 들어가면 라우팅 테이블 목록이 있다. 라우팅 테이블을 선택한다. 테이블 목록에서 RDS 와 연결되어 있는 것을 찾아야 한다. 아마.. 2023. 1. 17. @Convert - T타입 + Map 사용하기 개인프로젝트로 쇼핑몰을 제작하면서 상품에 대한 옵션을 계획했으며 구현을 진행했다. 네이버스마트 스토어처럼 한 상품에 여러 옵션을 가지고 있을 수 있어야 했는데, 제약조건이 있었다. 1. 옵션은 없을 수도 있지만 N 개가 될 수 있다. 2. 옵션의 명칭은 자유롭게 작성가능하다. EX ) 색상 : 검정 // 컬러 : 검정 // 색깔 : 검정 처럼 사용자 마음대로 가능하다. 옵션값을 JSON 형태로 나타내야 했는데 spring jpa convert 를 사용했다. 언제 사용할까? JPA 가 지원하지 않는 타입을 매핑할때 두 개 이상의 속상을 갖는 밸류 타입을 한 개 칼럼에 매핑할 때 @Converter를 사용하기 위해서는 AttributeConverter 인터페이스를 구현해야 한다. 클래스를 따로 만들어야 하며.. 2023. 1. 14. 스프링 배치 (Spring Batch)로 Hello World 를 출력 스프링 배치를 사용하는 이유는 아래와 같다. - 풍부한 기능 : 로깅/ 추적 , 트랜잭션이나 롤백같은 개념 등 필수적인 기능을 제공한다 - 일관성된 코드 - 기존 서비스가 스프링 프레임워크로 되어있을 경우 호환 가능 JobRepository : 배치 처리 정보를 담고있는 저장소 JobLauncher : Job을 실행시켜주는 역할 Job : 배치처리 과정을 하나의 단위로 만들어 놓은 것 ex) 이메일 발송 등 Step : Job의 배치처리를 정의하고 순차적인 단계를 캡슐화한다 ex ) 이메일 발송의 세부적인 작업 ItemReader : Step 에서 Item을 읽어오는 인터페이스 ItemProcessor : Reader 에서 읽어온 Item 데이터를 처리하는 역할 ItemWriter : 처리된 Data 를.. 2023. 1. 12. 이전 1 ··· 3 4 5 6 7 8 9 ··· 16 다음 728x90 반응형