JPA의 개념과 기본 설정 가이드 프로젝트에서 자주 사용했던 JPA에 대해 자세하게 알아보기 위해 이번 글에는 JPA의 개념과 기본 설정에 대해 알아보겠습니다. JPA란? JPA란 Java Persistence API의 약자로 자바 영속성 API를 의미합니다. JDBC를 이용해서 데이터베이스를 관리하는 인터페이스이며 이를 구현한 대표적인 라이브러리로 대표적인 것이 Hibernate입니다. 또한 JPA는 자바 ORM기술의 표준 API이며 ORM은 Object Relational Mapping의 약자이며 객체와 관계형 데이터베이스를 연결해 주는 개념을 뜻합니다. JPA의 사용 이유 SQL 중심적인 개발에서 DDL 문을 자동으로 생성해 주기 때문에 객체 중심적인 개발이 가능합니다. 필드 값을 수정할때 JPA는..
SpringBoot JWT 로그인 구현 가이드 이전 글들에 이어서 JWT와 Swagger를 활용한 JWT 인증 예제를 구현해 보겠습니다. 처음 JWT를 구현할 때는 조급하게 구현을 진행했지만, 이번에는 JWT가 어떻게 Spring Boot에 통합되고, 토큰을 어떻게 검증하고 발급하는지에 대한 내용을 보다 자세히 다루려고 합니다. 이번 글에서는 AccessToken과 RefreshToken을 활용하여 토큰을 발급하고, RefreshToken의 검증을 통해 AccessToken을 재발급하는 방법에 대해 작성해 보겠습니다. 사용자 인증 컨트롤러 구현 @RestController @RequestMapping("/accounts") @RequiredArgsConstructor public class Account..
Spring Boot 3.0 Swagger 연동 SM에 있을 때는 자주 사용하지 않았지만, SI로 넘어오게 되면서 처음 접했던 부분이 바로 이 Swagger입니다. 팀 프로젝트를 진행하거나 포트폴리오를 작성할 때 API 문서를 작성할 일이 많아지는데, Swagger를 통하여 구성된 API를 자동으로 구성해 주고, 테스트가 가능하며, 이러한 API 문서를 프론트 개발자와 공유하며 소통이 가능하게 합니다. Swagger 라이브러리 추가 Spring Boot 3.0 이후에 사용할 수 있는 최신 버전의 Swagger 라이브러리를 Gradle에 등록했습니다. Spring Boot 2. x 버전에서 사용하게 된다면 빌드 오류가 날 수 있으니 낮은 버전이라면 더 낮은 버전의 라이브러리를 사용해주세요. implemen..
SpringBoot Sequrity + JWT 구현 취업 전부터 실무까지 요즘 개발자라면 모두 사용하는 JWT는 구조 자체를 몰랐을 때 나에게 매우 어려운 과제였습니다. 인터넷에 어떤 블로그를 봐도 끝까지 완성 시킬 수 없었고, 회사 내에서 JWT를 자주 사용하다 보니 익숙해진 구조를 이제는 글로 작성해 보려고 합니다. 나의 깃허브에 들어가면 Database 정보만 제대로 입력하면 실행할 수 있도록 구성해 왔으니 참고 부탁드립니다! JWT 란? JWT(JSON Web Token)은 JSON 객체 인증에 필요한 정보들을 담은 키값들을 서명한 토큰입니다. JWT로 인증 (Authentication)과 권한(Authorization)의 방식을 구현할 수 있습니다. Security와 JWT간의 필요한 토큰 생성..
Spring Security 구성할때 알아두어야 할것들 실무에서 자주 사용되는 Spring Security와 JWT로 구현하는 부분에 대해 정리하고 싶어서 이글을 작성했습니다. 처음 Security와 JWT를 연동할 때 개념에 대한 부족과 블로그의 글들은 버전이 오래되었거나 까다롭게 처리되고 있어 개념부터 알고 시작할 수 있도록 작성했습니다. 블로그 작성 부분에는 빠진 부분이 있을 수 있으니 git hub에 해당 주소로 들어가서 참고해 주세요! Spring Security는 무엇일까? Spring Security는 Spring에서 제공하는 보안 관련을 설정할 수 있도록 하는 스프링 하위 프레임워크입니다. 보안과 관련된 부분들을 Filter로 처리하게 됩니다. Intercepter는 Dispatcher와 ..
Spring Boot 3. x 멀티 모듈 프로젝트 구성하기 이 글을 쓴 계기는 회사 내에 프로젝트에서 Spring Boot 2. x 버전에서 3. x 이상의 버전으로 마이그레이션 많은 부분이 Deprecated 되었고, property나 yml들의 구성 방식 변경, Java 17 이상의 버전 요구, security의 configure에서 filter Chain 방식으로 구성 변경, log back과 같은 파일들을 보안상 사용하지 못하게 하면서 새로운 버전에 대한 멀티 모듈 설정이나 구성 환경에 대해 확실하게 이해하기 위해 작성했다. property를 작성하는 방식과 yml 방식이 있는데, 한번 구성해 두면 더 깔끔한 프로젝트를 완성 시킬 수 있으니 3버전 이후로 바뀐 구성으로 진행해 보고 싶어서 정리하..