진짜 개발자
본문 바로가기

FrameWork (총 119개)

Spring Boot - Timezone을 설정한 채로 배포하기(-Duser.timezone을 사용하지 않고) Spring Boot에서 Timezone을 설정하여 배포하기 1. Timezone을 설정해야 했던 시나리오Spring Boot를 이용해 서버를 구축하고 있던 중, 특정 도메인이 시간에 종속되는 상황이었습니다. 때문에, Timezone에 의존할 수 밖에없었습니다. 도메인을 간략히 설명드리자면, 사용자가 회원가입을 할때, 오전 10시에서 오후 6시사이에만 가능하도록 해야했습니다. 위의 메소드는 해당 문제상황을 간단하게 재연한 로직입니다. register()는 사용자가 "/test" 엔드포인트로 접근했을때, 회원가입을 시도했다고 가정한 메소드입니다. 먼저 LocalDateTime.now().getHour()를 이용해 현재시간을 저장합니다. 그림에서 보시는바와 같이 현재 시간은 오후 1시 즉, 13시 이므로, ..
SpringBoot - REST API 인증 - 1 (Interceptor와 JwtToken을 이용한 App API 인증) interceptor, JWTTOken Spring Interceptor와 JWT Token을이용한 App(모바일) 인증 구현에 대해 알아보겠습니다. 이번 포스팅에서는 전체적인 App의 인증 과정에대한 시나리오를 알아보고, 사용자가 회원가입시 토큰을 저장하고, 로그인시 저장된 토큰을 받는 부분까지 구현해보도록 하겠습니다. https://galid1.tistory.com/755이 포스팅을 다 읽으셨다면 Refresh Token에 대해서도 공부해보시길 권장드립니다. 1. 환경IDEWebStormIntellij Build toolgradle FrameWorkSpring LanguageJAVA 2. 시나리오전체 시나리오사용자가 회원가입을 하면, auth0 JWT를 이용해 Token을 생성하여, 사용자의 데이터와..
SpringBoot - KAKAO AccessToken 발급 받기 (자세한 설명) KAKAO API 이용하기 이번 포스팅은 KAKAO API를 이용해 REST API를 개발하기 위해, AccessToken을 발급 받는 과정에 대해 알아보도록 하겠습니다. Oauth2 인증과정https://galid1.tistory.com/106우선 Oauth에 대해 잘 모르신다면 위 링크를 참고하여 Oauth개념을 먼저 숙지하신 후 진행하시는 것을 추천드립니다. 1. 과정 요약과정에대해 대략적인 설명을 먼저 드린 후 실습을 하는것이 진행하시는데 도움이 될것 같아 먼저 과정에 대해 설명드리겠습니다. 1. KAKAO API 사용을 위한 준비우선 첫째로, KAKAO API 사용을 위해, KAKAO Developers에 가입을 한 뒤, 우리가 사용할 App을 등록해야 합니다. 악의적인 다른 앱들이 우리 앱인것..
SpringBoot - Let's Encrypt로 무료 SSL인증서를 발급받아 SpringBoot에 적용하기(Https) lets encrypt 이번 포스팅에서는 Springboot에 HTTPS를 구축하는 방법을 알아보도록 하겠습니다. 그동안은 서비스를 출시 하더라도 HTTP로 출시하는 경우가 많았는데요, 이번 백엔드 구축시에는 클라이언트에서 보안상의 이유로 HTTP에 Fetch 요청을 보내지 못하는 상황이 발생하여, HTTPS를 구축해야하는 차에 무료 SSL 인증서 발급 방법을 찾아내어, 무료로 SSL 인증서 발급받는 방법에 대해 포스팅을 하려고 합니다. SSL, HTTPS, CA 개념https://galid1.tistory.com/602이번 포스팅은 SSL, HTTPS, CA에 대한 개념을 가지고 계시다는 전제하에 진행을 하도록 하겠습니다. 잘 모르시다면 위 링크를 참고해주세요. Let's Encrypt 등장배경기존의 ..
SpringBoot - SpringBoot H2 연결방법(H2 웹콘솔) 1. H2 DB란 SpringBoot에서 H2 DB를 사용하는 방법을 알아보도록 하겠습니다. 1. H2 DB란역시 우선은, H2 DB가 무엇인지부터 간단히 알아보는게 좋을것 같습니다. H2 란?H2DB는 JAVA기반의 RDBMS입니다. 특징별도의 설치과정이 없고, 저용량에 가볍고 빠르고 JDBC를 지원합니다. 따라서 개발 및 테스트용으로 많이 사용됩니다. Mode Server mode는 다른 RDBMS처럼 데이터를 실제로 저장함으로써, 다른 사용자들이 접속할 수 있으며, server와 API등에서 접속할 필요성이 있을때 사용합니다.Embedded mode는 JDBC를 사용해 동일한 JVM에서 데이터베이스를 엽니다. 가장 빠르고 쉬운 연결모드이지만, 단 하나의 JVM에서만 데이터베이스를 열수 있기 때문에 ..
JPA - Entity의 가독성을 높이자 - 2 (Embedded Id 사용법) DDD 를 진행하며 Entity의 가독성에 대한 고민을 많이 하기 시작했습니다 DDD 를 진행하며 Entity의 가독성에 대한 고민을 많이 하기 시작했습니다. 각각의 앱들은 자신들만의 도메인 제약사항을 가지고 있으며, 그에 따라 키값도 특별하게 설정되는 경우가 있었습니다. 예를들어 보통의 경우에는 RDBMS의 Auto_Increment를 설정을 이용하며, Long타입으로 Entity의 Id를 설정했지만, 이번에 진행하는 App에서는 조금 특별한 ID를 설정해야하는 경우가 있었습니다. 조금 더 자세히 설명드리자면, UserEntity의 경우에는 Google Oauth2를 통해 발급된 AccessToken을 Id로 사용하며, WorkPlaceEntity라는 이름의 엔티티의 경우에는 사업자 번호를 ID로 사용..