목차
개요
본 내용은 약 한달간 spring boot를 배우면서 프로젝트를 위해 구현한 jwt기반으로한 회원가입, 로그인, 토큰 재발급 에 대한 기능을 구현하고 있으며 SpringSecurity에서 제공해주는 UserDetail, UserDetailService를 상속하여 사용하고 있습니다.
또한 Security Config에 작성될 filterChain 또한 spring boot 3.0 으로 업데이트 되면서 만료된 WebsecurityConfigurerAdapter을 사용하고 있지 않고 @Bean 을 통해 SecurityFilterChain을 사용합니다.
포스팅의 목적은 자세한 설명이 첨부된 일종의 지침서를 만들고자하는 생각에 있습니다. 한달여 동안 스프링을 하면서 느낀점인데 장고를 다루어봤던 제 경험상 자바스프링은 더 세밀하게 나누어져 있고 어노테이션 등 생소한 개념이 많았습니다. 따라서 본 포스팅에서는 하나하나 뜯어가며 설명을 할 예정입니다.
스프링부트 프로젝트 생성하기
Spring Boot 3.0.5
Gradle-Groovy
Jar
Java 17
위와 같은 세팅으로 간다.
당연히 MetaData의 Group, Artifact, Name 등은 고쳐주자
Dependencies의 경우에는 본 프로젝트에 필요한
Lombok ; Entity를 선언하는데 필요한 어노테이션을 통해 자동완성을 해준다.
Spring Web ; servlet 리스너, 파일 업로딩 IoC 초기화 등 기능과 HTTP 클라이언트와 소통(REST api)에 필요하다.
Spring Data JPA ; 자바의 객체-관계형 데이터베이스 매핑 기술(ORM)
Spring Security ; 자바를 배운 이유, 자바의 언어특성으로 인한 강력한 보안을 제공해준다.
Validation ; Entity를 선언시에 해당 기능으로 쉽게 객체 필드에 대한 제약조건을 설정할수 있다.MySQL Driver ; MySQL DB와 연결하기 위한 드라이버
Generate 후 Git에 업로드까지 해보기
다운로드 후 자신이 Git 에 잘 사용하는 혹은 없다면 특정 폴더를 만들어서 안에 압축 해제를 해주고 위 폴더를 IntelliJ나 Vscode 등으로 열어준다.
MySQL 환경 구축하기(도커)
2023.04.05 - [Docker] - 도커로 MySQL 설치하고 접속하기, MySQLWorkBench로 관리
위 포스팅을 참조하자. 도커를 써본적이 없다면 오히려 좋다. 이 참에 써보는거고 막히면 댓글로 알려달라
도커로의 방법을 알려주는 이유는 일단 본 포스팅 자체가 H2가 아닌 MySQL을 사용하기 때문에 추후에 Amazon RDS나 기타 온라인호스팅 RDMS를 이용할때도 도커에 올리는 경우랑 크게 달라지는 점이 없기 때문이다.
마무리
다음 포스팅에는 MySQL을 IntelliJ에 연결시켜보자
'Spring' 카테고리의 다른 글
SpringBoot+MySQL(JPA) 회원가입,JWT 로그 구현하기 - (2) (1) | 2023.06.23 |
---|---|
스프링 JPA: 엔티티 필드의 기본값에 대한 고찰 (0) | 2023.06.21 |
@Transient 어노테이션과 DTO를 사용한 레이어 분리 (0) | 2023.04.22 |
SpringFramework 구성요소 (0) | 2023.04.10 |
SpringBoot+MySQL(JPA) 회원가입,JWT 로그인 구현하기 - (1) (0) | 2023.04.10 |