๐ ํด๋ ๊ตฌ์กฐ
src๋ ๋๋ฉ์ธ ๋ณ๋ก ํจํค์ง๋ฅผ ๊ตฌ์ฑํ๋ค. ํ์,๊ฒ์๊ธ,๋๊ธ,์ฃผ๋ฌธ๋ฑ ์๊ตฌ์ฌํญ ํน์ ๋ฌธ์ ์์ญ์ ๋๋ฉ์ธ์ด๋ผ๊ณ ํ๋ค.
config์ util ์ src์์ ํ์ํ ๋ถ์ฐจ์ ์ธ ํ์ผ์ ๋ชจ์๋์ ํด๋์ด๋ค. ์๋ฐ์ฝ๋๋ก ์คํ๋ง ๋น์ ์ง์ ๋ง๋ค๋ config ํด๋์์ ์์ ํ๋ฉด ์ข๋ค.
๋ฉ์ธ ์ฝ๋๋ src์ ๋ด๊ฒจ์๋ค! ์ค์ api๊ฐ ๋์ํ๋ ํ๋ก์ธ์ค๋ค์ ๋ด๋๋ค.
config๋ src์์ ํ์ํ SecretKey(git์ ๋ค์ด๊ฐ๋ฉด ์๋๋),์์ ํด๋์ค
util์๋ JWT ์ํธํ,์ ๊ทํํ์๋ค์ ๋ด๋๋ค.
๐ Request์์ Response๊น์ง์ ๊ณผ์ (API ํต์ ํ๋ก์ธ์ค)
Request -> Route -> Controller -> Service/Provider -> Dao ->DB
DB-> Dao ->Service/Provider -> Controllere -> Route->Response
โญ Controller
API ํต์ ์ Routring์ฒ๋ฆฌ (๋ฐ์ดํฐ๋ฅผ ๋ชฉ์ ์ง๊น์ง ์ ๋ฌ)
Request๋ฅผ ๋ค๋ฅธ ๊ณ์ธต์ ๋๊ธฐ๊ณ ์ฒ๋ฆฌ๋ ๊ฐ Response
โญ Service์ Provider
๋น์ฆ๋์ค ๋ก์ง์ ๋ค๋ฃจ๋ ๊ณณ CRUD ์ค R์ ํด๋นํ๋ ์ฝ๋๊ฐ ๊ธธ๊ธฐ์ R์ ํด๋นํ๋ ๊ฒ์ Provider
CUD๋ Service์์ ํํจ
โญDao
Strinfg ~~ Query -> Object ~~[]Params ->jdbc Template ํจ์๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
Query๋ถ๋ถ์ DB์ SQL์์ฒญ์ ํ ์ฟผ๋ฆฌ๋ฌธ ์๋ฏธํ๋๋ฐ, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋์ ์ฟผ๋ฆฌ
Query์ ๋์ ์ฟผ๋ฆฌ์ ์ ๋ ฅ๋์ด์ผ ํ ๊ฐ๋ค์ด ํ์ํ๋ฐ ๊ทธ๊ฒ์ด Params ๋ถ๋ถ.
Params๋ถ๋ถ์ ํด๋ผ์ด์ธํธ ์์ฒญ์์ ์ ๊ณตํ๋ ์ ๋ณด (~Req.java ์ ์๋ ์ ๋ณด)๋ก ๋ถํฐ getXXX๋ฅผ ํตํด ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
์๋ฅผ ๋ค๋ฉด getEmail -> email ๊ฐ์ ๊ฐ์ ธ์ด
GET,POST,PATCH ๋ฉ์๋์ ๋ฐ๋ผ jdbcTemplate์ ์ ์ ํ ํจ์ (queryForObject,query,update)๋ฅผ ์คํ์ํจ๋ค. ์ฆ, DB์์ฒญ์ด ์ผ์ด๋๋ค.
POST,PATCH์ ๊ฒฝ์ฐ jdbcTemplate.update
GET์ ๋์์ด ํ๋์ผ ๊ฒฝ์ฐ jdbcTemplate.queryForObject , ๋์์ด ๋ณต์์ผ ๊ฒฝ์ฐ jdbcTemplate.query
jdbcTemplate์ด ์คํ์ํฌ๋ Query๋ถ๋ถ๊ณผ Params๋ถ๋ถ์ ๋์(๊ฐ์ ์ฃผ์ )์์ผ์ DB์ ์์ฒญํ๋ค.
๋์ ์ฟผ๋ฆฌ๋ฌธ ์คํ(Query) -> ์ฃผ์ ๋ ๊ฐ ์ค์ (Params) -> jdbcTemplate ํจ์๋ฅผ ํตํด Query์ Param ๋์์์ผ DB์ ์์ฒญ
๐ ํจํค์ง ๋งค๋์
Maven(์คํ๋ง ์ ํธ) Gradle(์คํ๋ง๋ถํธ ์ ํธ)
๐ Validation
: ์๋ฒ API๊ตฌ์ฑ์ ๊ธฐ๋ณธ์ Validation์ ์ ์ฒ๋ฆฌํด์ผํ๋ค.
ํ์์ Validation์ Controller์์
DB์์ ๊ฒ์ฆํด์ผํ๋ ์๋ฏธ์ Validation์ Provider๋ Service์์ ์ฒ๋ฆฌํ๋ฉด ๋๋ค.
๐ Lombok
์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฐ๋ณต๋๋ getter,settet,toString ๋ฑ์ ๋ฉ์๋ ์์ฑ์ฝ๋ ์ค์ฌ์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๐ ๋ฉ์๋ ์ด๋ฆ ์ง๋ ๋ฐฉ๋ฒ
HTTP Method + ํต์ฌ URI
GET/users ๋ผ๋ฉด getUsers
PATCH/users๋ผ๋ฉด pathUsers
์ฌ๊ธฐ์ Res/Req๊ฐ ์ถ๊ฐ๋๋ค๋ฉด
HTTP Method+ํต์ฌURI+Res/Req
PATCH /users/:usersId -> PatchUsersRes / Patch/Users/Req
CRUD๋ก ์ง๋๋ค๋ฉด
C -> createInfo
R -> retrieveInfoList
U -> updateInfo
D -> deleteInfo
๐ ์คํ๋ง์๋ฒ ์คํ์
cd ํ์ฌ ์์ ํ๋ ํ๋ก์ ํธ ๋ช ์ผ๋ก ๊ฐ์
./gradlew clean build
java -jar build/libs/demo-0.0.1-SNAPSHOT.jar
๋ฐ๋๋ก ์คํ๋ง ์๋ฒ ๋๊ณ ์ถ์ ๋ pause๋ฒํผ์ ๋๋ฅด๋ฉด ๋์ง๋ฉด Web server failed to start Port XXXX was already in use ์๋ฌ๋ฅผ ๋ง๋๊ฒ ๋๋ค๋ฉด
cmd์ฐฝ์ ์ด์ด์
netstat -ano
TCP ํ๋กํ ์ฝ ์ค์์ ๋ด๊ฐ ์ด์ port๋ฒํธ ์์ pid๋๋ฒ ํ์ธ
๋๋ 9000๋ฒ ํฌํธ๋ฅผ ์ด์๊ณ 14888์ด pid ๋๋ฒ
taskkill /pid 14888 /f
https://dundung.tistory.com/148
Web server failed to start. Port 8080 was already in use ์๋ฌ
ํฌํธ๊ฐ ์ด๋ฏธ ์คํ ์ค์ผ ๋ ์คํ๋ง์ Run ํ๋ฉด ์คํ๋๋ ์๋ฌ์ด๋ค. Web server failed to start. Port 3000 was already in use. Action: Identify and stop the process that's listening on po..
dundung.tistory.com
๐ ์ด์ธ์๋
- ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ์ ์ฝ๋๋ฉด try์ ๋ฃ๊ธฐ
https://coding-factory.tistory.com/280
[Java] ์๋ฐ ์์ธ์ฒ๋ฆฌ Try Catch๋ฌธ ์ฌ์ฉ๋ฒ
Error(์๋ฌ)์ Exception(์์ธ์ ์ฐจ์ด) ์๋ฌ(Error)๋ ์ปดํจํฐ ํ๋์จ์ด์ ์ค๋์ ๋๋ ๊ณ ์ฅ์ผ๋ก ์ธํด ์์ฉํ๋ก๊ทธ๋จ์ ์ด์์ด ์๊ฒผ๊ฑฐ๋ JVM ์คํ์ ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๊ฒฝ์ฐ ๋ฐ์ํ๋๊ฒ์ ๋งํฉ๋๋ค. ์ด ๊ฒฝ์ฐ
coding-factory.tistory.com
- SQL ํ ์ด๋ธ์์ status ์ปฌ๋ผ์ A(active : ํ์ฑ์ํ) , D(delete:์ญ์ ), B(๋ธ๋์ ์ )๋ก ๊ด๋ฆฌํ ๊ฒ
'Springboot > lecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[springBoot] AOP (0) | 2022.08.17 |
---|---|
[jdbc] Row Mapper๋ ?? (0) | 2022.08.06 |
[springboot] ์น mvc๊ฐ๋ฐ (0) | 2022.08.02 |
[springboot] ์คํ๋ง ๋น๊ณผ ์์กด๊ด๊ณ (0) | 2022.08.02 |
[springboot] ํ์ ์๋น์ค ๊ฐ๋ฐ (0) | 2022.08.01 |