Spring Boot๋ฅผ ํ์ฉํ์ฌ ๊ฒ์ํ API ์๋ฒ ์ ์ (1) - ํ๋ก์ ํธ ์์ฑ
by rlaehddnd0422์ํ ํ๋งค API ์๋ฒ๋ฅผ ๊ฐ๋ฐํด๋ณด๋ฉฐ Spring์ ๊ณต๋ถํ๋ฉฐ ์ง๊ธ๊น์ง ๋ฐฐ์ด ์์ฌ๋ค์ ์ ์ฉ์์ผ ๋ณด๊ฒ ์ต๋๋ค.
Spring Boot ๊ณต๋ถ ๋ชฉ์ ์ผ๋ก ์งํ๋๋ ํ๋ก์ ํธ๋ผ, ์งํ ์ฌํญ์ด ์ธ์ ๋ ์ง ๋ฐ๋ ์ ์์ต๋๋ค.
์ฐ์ ์ ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌํํ๊ณ ์ ํ๋ ๊ธฐ๋ฅ๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๐ฉ๊ธฐ๋ณธ ๊ธฐ๋ฅ
- Spring Security
- Jwt Authentication & Authorization๋ฅผ ์ด์ฉํ ๋ก๊ทธ์ธ
- ํ์ ๊ฐ์
- OAuth2.0 Social ๋ก๊ทธ์ธ
- ํ์ ๊ฐ์ ์ชฝ์ง ๊ธฐ๋ฅ
- ๋ฌผํ ํ๋งค ๊ฒ์ํ
- ๊ณ์ธตํ ๋๊ธ
- ํ์ด์ง ์ฒ๋ฆฌ
- Querydsl ๋์ ๊ฒ์
๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๋ค์ ๋จผ์ ๊ตฌํํ ๋ค, ๋ค๋ฅธ ์ฃผ์ ๋ค๋ ๊ณต๋ถํ๊ฒ ๋๋ฉด ์ ์ฉํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
+ API ์์ฃผ๋ก ๊ตฌํํ ๊ณํ์ด๊ธฐ ๋๋ฌธ์, ๋ทฐ๋ ์๊ฐ์ ์ฌ์ ๊ฐ ์๊ธฐ๋ฉด ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ํ๋ก์ ํธ ์์ฑ
Project Initializer
- Dependencies
- Spring Web
- Spring Security
- Spring Data JPA
- H2 Database
- Lombok
- OAuth2 Client
- Validation
- Mustach
- Spring Boot 2.7.12,
- packaging : jar
- Java : 11
- IDE : IntelliJ
Project ์ค์
Generateํ ์ดํ ํ๋ก์ ํธ๋ฅผ ์ด์ด์ gradle์ด IntelliJ์์ ์คํ๋๋๋ก ๋ณ๊ฒฝํ๊ณ , Lombok ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋
ธํ
์ด์
์ ํ์ฑํ ์์ผ ์ค์๋ค.
dependency๊ฐ ๋ชจ๋ import ๋๋ฉด ์๋ฒ๋ฅผ ์ผ์ login ํ๋ฉด์ด ์ ์์ ์ผ๋ก ๋์ํ๋์ง ํ์ธํด๋ด
์๋ค.
DataSource ์ค์
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/board
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto:
properties:
hibernate:
show_sql: true
format_sql: true
logging.level:
org.hibernate.SQL: debug
resource์ application.properties๋ฅผ application.yml๋ก ๋ณ๊ฒฝ ํ DataSource ๋ฐ ๋ก๊น
๋ ๋ฒจ์ ์ง์ ํด์ฃผ์์ต๋๋ค.
properties๋ฅผ ์ฌ์ฉํด๋ ๋์ง๋ง, ์ ๋ ๊ฐ๋ ์ฑ ์ธก๋ฉด์์ yml์ด ์ข๋ค๊ณ ํ๋จํ์ฌ ๋ณ๊ฒฝ ํ ์งํํ์์ต๋๋ค. properties๋ฅผ ์ฌ์ฉํด๋ ๋ฌด๋ฐฉํฉ๋๋ค.
๋ชจ๋ ์ค๋น๊ฐ ๋๋ฌ์ต๋๋ค.
์ด์ ๋ค์ ํฌ์คํ
์์๋ Member ์ํฐํฐ๋ฅผ ์ค๊ณํ๊ณ , ๋ก๊ทธ์ธ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ ์ฒด ์ฝ๋๋ ์๋ ๋งํฌ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
https://github.com/Dongwoongkim/finalBoard
'๐ Backend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422