목차
개요
본 내용은 약 한달간 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로 관리
도커로 MySQL 설치하고 접속하기, MySQLWorkBench로 관리
목차 개요 튜토리얼을 다 따라왔다면 큰 문제없이 따라서 할 수 있을것이고 이해 또한 할 수 있을 것이다. 나같은 경우에는 spring 프로젝트에 추후 mysql을 RDS에 올려 사용할거라서 j2가 아닌 mysql
nstgic3.tistory.com
위 포스팅을 참조하자. 도커를 써본적이 없다면 오히려 좋다. 이 참에 써보는거고 막히면 댓글로 알려달라
도커로의 방법을 알려주는 이유는 일단 본 포스팅 자체가 H2가 아닌 MySQL을 사용하기 때문에 추후에 Amazon RDS나 기타 온라인호스팅 RDMS를 이용할때도 도커에 올리는 경우랑 크게 달라지는 점이 없기 때문이다.
마무리
다음 포스팅에는 MySQL을 IntelliJ에 연결시켜보자
SpringBoot+MySQL(JPA) 회원가입,JWT 로그인 구현하기 - (1)
목차 개요 본 포스팅에서는 프로젝트를 위한 디렉토리를 생성하고 application.yml , build.gradle 파일과 docker 위에서 실행하였던 mySQL을 IntelliJ에서 지원해주는 DB관리 도구를 통해 프로젝트와 연결해
nstgic3.tistory.com
'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 |