๋ด์ผ๋ฐฐ์์บ ํ54 ๊ธฐ์ด ํ๋ก์ ํธ_Day 4 ์ค๋ ํ ๊ณต๋ถ ๐ง ๊ธฐ์ดํ๋ก์ ํธ ํ๋ก์ฐ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ๊ธฐ์ด ํ๋ก์ ํธ ํ๋ก์ฐ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํ๊ธฐ์ด ํ๋ก์ ํธ ํน์ ๋ฉค๋ฒ์ ํ๋ก์ฐ ์ ์ฒด ์กฐํ ๊ธฐ๋ฅ ๊ตฌํTIL ๋ธ๋ก๊ทธ ์์ฑ ์ค๋ ์ป์ ๋ด์ฉ ์ ๋ฆฌ โ๏ธ ๊ธฐ์ด ํ๋ก์ ํธ (๋ด์คํผ๋ ๋ง๋ค๊ธฐ ํ๋ก์ ํธ)ํ๋ก์ฐ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํFollow Entity ์์ฑ ํ ํ๋ก์ฐ๋ฅผ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค.member_id(PathVariable)์ following_id)๋ฅผ ๋ฐ์ ํ๋ก์ฐ ๊ด๊ณ๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ์ ๊ตฌํ ์ฑ๊ณตํ๋ค.ํ๋ก์ฐ ์ญ์ ๊ธฐ๋ฅ ๊ตฌํmember_id(PathVariable)์ follow_id(Pathvariable)๋ฅผ ๋ฐ์ ํ๋ก์ฐ ๊ด๊ณ๋ฅผ ์ญ์ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํ ์ฑ๊ณตํ๋ค.ํน์ ๋ฉค๋ฒ์ ํ๋ก์ฐ ์ ์ฒด ์กฐํ ๊ธฐ๋ฅ ๊ตฌํmember_id(PathVariable)๋ฅผ ๋ฐ์ ํ๋ก์ ๋ฉค๋ฒ๋ฅผ ์ ์ฒด .. 2024. 12. 23. ์์ค๋ณ ํ์ต๋ฐ_๋ฒ ์ด์ง๋ฐ 5ํ์ฐจ ์ธ์ ๋ฒ ์ด์ง๋ฐ๋ฐ์ดํฐ๋ชจ๋ธ๋ง๊ณผ ์ฐ๊ด๊ด๊ณ12/19 11:00 ~ 12:00 (์ฝ 1์๊ฐ ์งํ) ์ค์ํค์๋๋จ๋ฐฉํฅ vs ์๋ฐฉํฅ์ฐ๊ด๊ด๊ณ ์ฃผ์ธ๋ถ๋ชจ-์์ ๊ด๊ณcascadeorphanRemoval ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง1. ๋ด์ผ๋ฐฐ์์บ ํ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ ๋ถ์a. ์๋๋ฆฌ์ค์ ์๋ง์ ๋น์ฆ๋์ค ๊ด์ ์?!b. ๋ด์ผ๋ฐฐ์์บ ํ ์์คํ ์ ______________________์ด๋ค!ํ ๋ช ์ ํ์์ด ํ๋์ ์์ ๋ง ๋ค์ ์ ์๋ ๊ตฌ์กฐํ๋์ ์์ ์ด ์ฌ๋ฌ ๋ช ์ ํ์์ ํฌํจํ ์ ์๋ ๊ตฌ์กฐ2. ํ ์ด๋ธ ์ง์ ๊ทธ๋ ค๋ณด๊ธฐa. case1: Course ํ ์ด๋ธ์ด studentId๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒฝ์ฐstudent ํ ์ด๋ธpk (ํ์)name1 gygim 2 Steve Course ํ ์ด๋ธpk (์์ ) student_id name 11 Spring 21Ktor31React.. 2024. 12. 22. ์์ค๋ณ ํ์ต๋ฐ_๋ฒ ์ด์ง๋ฐ 4ํ์ฐจ ์ธ์ ๋ฒ ์ด์ง๋ฐ๋ฐ์ดํฐ ์ ๊ทผ ๋ฐฉ๋ฒ JPA12/17 11:00 ~ 12:40 (์ฝ 1์๊ฐ 40๋ถ ์งํ) ์ค์ ํค์๋JPA์์์ฑ ์ปจํ ์คํธ → ๋ฉด์ ์์ ํญ์ ๋์ค๋ ๋ด์ฉ์์์ฑ ์ปจํ ์คํธ์ ์ฅ์ 1์ฐจ ์บ์ฑ๋๋ฑ์ฑ ๋ณด์ฅ์ฐ๊ธฐ ์ง์ฐ๋ณ๊ฒฝ ๊ฐ์งJPA ๋ ๊ฐ์ง ํ์ฉ ๋ฐฉ๋ฒ์์ JPAJPA ์ธํฐํ์ด์ค → ํ์ ์์ ๋ง์ด ์ฌ์ฉํ๋ค. JPA(Java Persistence API)JPA๋ ์๋ฐ ์ํ๊ณ์์ ORM์ ๊ตฌํํ ์ ์๋ ํ์ค ๋ช ์ธ์ด๋ค.Hibernate๋ JPA ๋ช ์ธ๋ฅผ ๊ตฌํํ ๊ตฌํ์ฒด ์ค ํ๋์ด๋ค.JPA๊ฐ ๋ด๋ถ์ ์ผ๋ก JDBC API๋ฅผ ํ์ฉํ๋ค. ORM(Object-Relational Mapping)๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด์ฒ๋ผ ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ด๋ค.ORM์ ํ๊ณ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ SQL์ ์ ์๊ณ ์์ด์ผ ํ๋ค.๋ ๋ค ์๊ณ ์์ด์ผ ํ๋ค. ํ์ชฝ๋ง ์๊ณ ์์ผ๋ฉด .. 2024. 12. 21. ๊ธฐ์ด ํ๋ก์ ํธ_Day 1 ์ค๋ ํ ๊ณต๋ถ ๐ง ํ๋ก์ ํธ ๋ฐ์ ๋ฃ๊ธฐ๊ธฐ์ด ํ๋ก์ ํธ S.A ์์ฑ๊น ๋ฉ์์ง ๊ด๋ จ ๋ฏธ๋ ์ธ์ ๋ฃ๊ธฐTIL ๋ธ๋ก๊ทธ ์์ฑ ์ค๋ ์ป์ ๋ด์ฉ ์ ๋ฆฌ โ๏ธ ๊ธฐ์ด ํ๋ก์ ํธ (๋ด์คํผ๋ ๋ง๋ค๊ธฐ ํ๋ก์ ํธ)application.yml ํ์ผapplication.properties ํ์ผ์ ๋ค๋ฅธ ๋ฒ์ → ํ ํ๋ก์ ํธ ์ ์๋ก์ ํ๊ฒฝ์ ์์ ๋กญ๊ฒ ์์ฑํ๊ณ gitignore๋ฅผ ํตํด commit์์ ์ ์ธ์ํฌ ์ ์๋ค.ERD ๊ด๋ จ ์๋ก ์๊ฒ ๋ ๋ด์ฉ์ฐ๊ด๊ด๊ณ ์ฐ๊ฒฐ์ ํ์ง ์๊ณ ๋ id์ type ๊ฐ์ ์ด์ฉํด์ ํด๊ฒฐํ ์ ์๋ค.๋ฏธ๋ ์ธ์ : ๋ด์ฉ → ex) Feat: Add Level 1............์ปค๋ฐ์ ๋ํ ๋ด์ฉ ์์ฑ : ๋ฌด์จ ๊ธฐ๋ฅ์ ๊ตฌํํ๋์ง, ๋ญ๋ฅผ ์ถ๊ฐํ๋์ง ๊ตฌ์ฒด์ ์ผ๋ก ์ ์์๋ก ํ์๋ค์ด ๋ณด๊ธฐ ์ฝ๋ค!์์ฆ์ ๊น๋ชจ์ง๋ฅผ ์ด์ฉํด์ ๋ํ๋ด๊ธฐ๋ .. 2024. 12. 20. ์ผ์ ๊ด๋ฆฌ ์ฑ Develop_ํธ๋ฌ๋ธ ์ํ ๊ณผ์ ํธ๋ฌ๋ธ ์ํ ๋ฌธ์ ์ํฉ์ผ์ ์์ฑ API๋ฅผ ์์ฑํ๊ณ Postman์ผ๋ก ํ ์คํธํ์ง๋ง 500 Internal Server Error๊ฐ ๋ฐ์ํ๋ค.๋ฌธ์ ์์ธ์ฝ๋์์ @EntityListeners ์ด๋ ธํ ์ด์ ์ด ์๋ชป๋ ํด๋์ค๋ฅผ ์ฐธ์กฐํ๊ณ ์์๋ค.์๋ชป๋ ์ฝ๋@EntityListeners(EntityListener.class)์ด๋ก ์ธํด EntityListener๊ฐ ์ ๋๋ก ๋์ํ์ง ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.ํด๊ฒฐ ๋ฐฉ๋ฒ@EntityListeners ์ด๋ ธํ ์ด์ ์ ์ฌ๋ฐ๋ฅธ ํด๋์ค์ธ AuditingEntityListener๋ก ์์ ํ๋ค.์์ ๋ ์ฝ๋@EntityListeners(AuditingEntityListener.class)์์ ํ Postman์ผ๋ก ๋ค์ ์์ฒญ์ ๋ณด๋๊ณ , ์ ์์ ์ผ๋ก ์ผ์ ์ด ์์ฑ๋์๋ค.๊ฒฐ๋ก ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ด๋ ธํ ์ด.. 2024. 12. 19. ์ฃผํน๊ธฐ ์ ๋ฌธ/์๋ จ_Day 20 ์ค๋ ํ ๊ณต๋ถ ๐ง ๊ฐ์ธ ๊ณผ์ Lv 5 ์์ฑ๊ฐ์ธ ๊ณผ์ Lv 6 ์์ฑ๊ฐ์ธ ๊ณผ์ Lv 7 ์์ฑAPI ๋ช ์ธ์ & ERD ์์ TIL ๋ธ๋ก๊ทธ ์์ฑ ์ค๋ ์ป์ ๋ด์ฉ ์ ๋ฆฌ โ๏ธ ๊ฐ์ธ ๊ณผ์ ํ ๋ด์ฉ์ ์ ๋ฆฌํด์ผ๊ฒ ๋ค!Lv 6. ๋น๋ฐ๋ฒํธ ์ํธํ ๊ณผ์ ์๊ตฌ์ฌํญ์ ์๋ ์ฝ๋๋ฅผ ํ์ฉํด์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํด์ ์ ์ฅํ๋ค.PasswordEncoder์ Encode, matches ๋ฉ์๋๋ฅผ ํ์ฉํด์ ๋น๋ฐ๋ฒํธ ์ํธํ ๋ฐ ๋น๋ฐ๋ฒํธ ์ผ์น ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค.Lv 7. ๋๊ธ CRUDcomment Entity๋ฅผ ์์ฑํ๋ค.member Entity์ todo Entity ๊ฐ์ ์ฐ๊ด๊ด๊ณ๋ฅผ ์ค์ ํ๋ค.๊ทธ ํ ๋๊ธ ์์ฑ, ์ ์ฒด ๋๊ธ ์กฐํ, ์ ํ ์ผ์ ์ ์ ์ฒด ๋๊ธ ์กฐํ, ์ ํ ๋๊ธ ์์ , ์ ํ ๋๊ธ ์ญ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค.API ๋ช ์ธ์์ ERD ์์ ์ค๋ ํ๋ฃจ .. 2024. 12. 18. ์ด์ 1 2 3 4 ยทยทยท 9 ๋ค์