db13 [DB] ์ธ๋ฑ์ค ๊ฐ๋ต ์ ๋ฆฌ [1] ์ธ๋ฑ์ค๋๋ค & ์์ฐจ IO๋์คํฌ ํค๋๋ฅผ 1๋ฒ, ์ฌ๋ฌ๋ฒ ์ฎ๊ธฐ๋๋? ์ฆ, ๋์คํฌ์ ์ฑ๋ฅ์ ๋์คํฌ ํค๋ ์์น ์ด๋ ์์ด ์ผ๋ง๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๊ธฐ๋กํ๋๋์ ๋ฐ๋ผ ๊ฒฐ์ Mysql ๋ ๊ทธ๋ฃน ์ปค๋ฐ, ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ ๋ฒํผ, InnoDB ๋ก๊ทธ ๋ฒํผ ๋ฑ์ ๊ธฐ๋ฅ์ผ๋ก ๊ฐ์ ๊ฒฐ๊ตญ ๋๋ค IO ๋ฅผ ์ค์ด๋ ๊ฒ์ด ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ ์๋ฏธ์ ์ArrayList ์ SortedList ์ ์ฐจ์ด๋ฅผ ์๋๊ฐ?์์ฐจ์ ์ผ๋ก ์ ์ฅ or ์ ๋ ฌํ์ฌ ์ ์ฅ๋น ๋ฅด๊ฒ ์ ์ฌ or ๋๋ฆฌ์ง๋ง ์ ๋ ฌํ์ฌ ์ ์ฌ์ธ๋ฑ์ค๋ฅผ ์ ์ฉํ๋ค๋ ๊ฒ์ ์ฐ๊ธฐ ์ฑ๋ฅ์ ์ด๋ ์ ๋ ํฌ๊ธฐํ๊ณ , ์ฝ๊ธฐ ์ฑ๋ฅ์ ํํ๊ฒ ๋ค.B-Tree ์์ ์ธ๋ฑ์ค ํค ์ถ๊ฐ ๋ฐ ์ญ์ ์๋ณดํต์ ๊ฒฝ์ฐ, ๋ ์ฝ๋ ์ถ๊ฐ ๋น์ฉ 1 ๊ฐ์ ์ ์ธ๋ฑ์ค ์ถ๊ฐ ๋น์ฉ์ 1.5 ๋ก ์์ธกํ๋ ํธ.์ธ๋ฑ์ค ํค ์ญ์ ์ ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ, InnoDB ์์ง์ .. 2024. 6. 29. [DB] ํธ๋์ญ์ ๊ณผ ๋ฝ ๊ฐ๋ต ์ ๋ฆฌ ํธ๋์ญ์ ํธ๋์ญ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ ์ฅ์์, ๊ณ ๋ฏผํด์ผ ํ ๋ฌธ์ ๋ฅผ ํ์ด์ฃผ๋ ํ์์ ์ธ DBMS ์ ๊ธฐ๋ฅ.ํธ๋์ญ์ ์ฌ์ฉ ์ ์ฃผ์์ฌํญDBMS ์ ์ปค๋ฅ์ ๊ณผ ๋์ผํ๊ฒ ๊ผญ ํ์ํ ์ต์์ ์ฝ๋์๋ง ์ ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ํธ๋์ญ์ ์ ๋ฒ์๋ฅผ ์ต์ํํ๋ผ๋ ์๋ฏธ. ๊ฐ ๋จ์ํ๋ก๊ทธ๋จ์ด ์ปค๋ฅ์ ์ ์์ ํ๋ ์๊ฐ์ด ๊ธธ์ด์ง ์๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์ฌ์ ์ปค๋ฅ์ ์ ๊ฐ์๋ ์ค์ด๋ ๋ค. ๋ฉ์ผ ์ ์ก์ด๋, ํ์ผ ์ ์ก ์์ ๋ฑ, ๋คํธ์ํฌ๋ฅผ ํตํด ์๊ฒฉ ์๋ฒ์ ํต์ ํ๋ ์์ ์ ํธ๋์ญ์ ๋ด์์ ์ ๊ฑฐํ๋ผ. ์น ์๋ฒ๋ฟ ์๋๋ผ DBMS ์๋ฒ๊น์ง ์ํํ ์ํฉ ๋ฐ์ ์ ์ฅ ๋ฐ์ดํฐ์ ๋จ์ ์กฐํ์ ๊ฒฝ์ฐ๋ ํธ๋์ญ์ ์ ํฌํจํ ํ์๊ฐ ์๋ค.๋ฝ๋ ์ฝ๋ ๋ฝ๋ ์ฝ๋ ์์ฒด๋ง์ ์ ๊ทธ๋ ๊ฒ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋ ์ฝ๋ ์์ฒด๊ฐ ์๋๋ผ, ์ธ๋ฑ์ค์ ๋ ์ฝ๋๋ฅผ ์ ๊ทผ๋ค. ์ธ๋ฑ์ค๊ฐ ์์ ๊ฒฝ์ฐ, ๋ด๋ถ.. 2024. 6. 27. [Spring Data JPA] JPA Enum ํ๋์ ๊ดํ ๋ฌธ์ ์ฐธ๋. ์ค๋ 5์๊ฐ ๋ ๋ ธ๋ค. Pagination ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๋ API์์ ๊ณ์ 500 ์๋ฌ๊ฐ ๋์ ๊ณ์ ๋ถ์ก๊ณ ์์๋ค. ๋นจ๋ ๋์ ์ง์ ์์ง๋ง ๋ถ๊ตด์ ์์ง๋ก ํด๊ฒฐํด๋ณด๋ฆฌ๋ผ ๋ค์งํ๊ณ 1์๊ฐ๋ง์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ค ์ฆ๋ง. ๋ฌธ์ ์ ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ์๋ฒ DB์ ์๋ชป๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ์์๋ค. ๋ฌธ์ ๋ JPA Enum ํ๋๊ฐ @Enumerated(EnumType.STRING) ใ ฃ์ด ์๋๋ผ, Ordinal๋ก ๋ค์ด๊ฐ ๋ฐ์ํ ๋ฌธ์ ๋ค. ์ง์ ํ Enum ์์๋ ์ด 4๊ฐ ์ด๋ฉฐ, ordinal์ ๋ฒ์๋ 0~3 ์ด๋ค. 4 ์ด์์ ์ซ์๋ ์์ด์๋ ์๋ ๋ฐ์ดํฐ๋ค. ๊ทธ๋์ ๊ณ์ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 4 ์ฟผ๋ฆฌ.. 2023. 2. 21. [Spring Data JPA] ํ๋ฐฉ ์ฟผ๋ฆฌ์ ํจ๋ฅ (feat : JPQL) ๋ฐฑ์๋ ๊ฐ๋ฐ์ ๊ธฐ๋ณธ ์์์ธ SQL์ ์์ฑํ๋ ์ค๋ ฅ์ ๋ฐ์ด๋ ์๋ก ๋ํ ๋์ ์๋ค. ์ค์ ๋ก ๋๊ท๋ชจ ํธ๋ํฝ์ด ๋ฐ์ํ๋ ์๋น์ค์์๋ ์ด ์ฑ๋ฅ์ ๋งค์ฐ ์ค์์ ํ๋๋ฐ, ์ผ๋ฐ์ ์ธ ํ๊ฒฝ์์๋ DB ์กฐํ์ ์ธก๋ฉด์์ ํฐ ์ฑ๋ฅ ๊ฐ์ ์ ์ด๋ ์ ์์ผ๋ฏ๋ก, ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๊ฐ์ ๋ฐฉ์์ด๋ผ๊ณ ๋ค ํ๋ค. SQL์ ๊ณต๋ถํ๊ณ , JPA ๋ฅผ ๊ณต๋ถํ๋ฉฐ ํญ์ ๋น ์ง ์ ์๋ ์๊ธฐ, ์ฑ๋ฅ ์ต์ ํ. ํญ์ ๊ณ ๋ฏผํ๋ค๊ฐ ๊ฐ์ ์ ํ ์ ์๋ ๊ธฐํ๊ฐ ์ฃผ์ด์ก๊ณ , ๊ณต๋ถํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ๋ด ์๊ฐ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค. DB ERD Model opnions entity๋ฅผ paging ์ฒ๋ฆฌํด์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋ฝ์์ผ ํ๋ ์ํฉ. ์ฃผ์ด์ง ์ค์ ํ๋ผ๋ฏธํฐ๋ user_id ๋ฟ์ด๋ค. 1. ๋ณดํต ๊ฐ์ผ๋ฉด Document Entity๋ฅผ ๋จผ์ ์กฐํํ ํ, opinions ๋ฅผ ํ์ด์ง .. 2023. 2. 1. ๋์์ฑ ์กฐํ ๋ฌธ์ ํด๊ฒฐ ๋ฐ ์ฑ๋ฅ์ ๊ดํ ๊ณ ๋ฏผ [Lock, Queue, Redis] ์ฃผ๋ฌธ ๊ฑด์ ๋ํ ์ํ ์ฌ๊ณ ํ์ ๋์์ฑ ๊ด๋ จ ์ด์์ ๋ํด ๊ณ ๋ฏผํ ํ๋ฃจ๋ค. ํ๋ก์ ํธ ๋ฆฌํฉํ ๋ง์ ์์ํ๋ฉฐ ์ง๋ ๋๋ฉ์ธ๋ค์ ๊ธฐ๋ณธ crud API๋ง์ ๋ค๋ฃจ์๋ค. 5์ผ๋์ JPA ๊ฐ์๋ค์ ์๊ฐํ๋ฉฐ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ฃผ๋ฌธ ๋ฐ ๊ฒฐ์ API ๋ฆฌํฉํ ๋ง์ ๋ค์ ์ฐฉ์ํ๋ค. ์๋ฌด๋๋ ํ๋ก์ ํธ์ ํ ํฝ์ด ์ผํ๋ชฐ์ด๋ ์ฃผ๋ฌธ ๋ฐ ๊ฒฐ์ ํํธ์์ ๋จ์ CRUD๊ฐ ์๋ ํต์ฌ ๋น์ฆ๋์ค๋ฅผ ๊ณ ๋ คํ๊ณ ์ถ์ด, ์ธ๋ถ ๊ฒฐ์ API ๋ฐ ๋์์ธ ํจํด์ ์ ์ฉํ ๊น๋ํ ์ฝ๋๋ค์ ๊ณ ๋ คํ๋ฉฐ ์์ฑํ๋ ์ค์ด๋ค. ๋๋ต์ ์ธ ํ์ ๋ง๋ ๋ค, ๋ณธ๊ฒฉ์ ์ผ๋ก ์ฃผ๋ฌธ์ ๊ตฌํํ๋ ์ค, ๋์์ฑ ์ด์ ๋ฌธ์ ์ ์ง๋ฉดํ๋ค. ๊ธฐ์กด ๋์์ฑ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ MSA๋ฅผ ๊ณ ๋ คํ๊ธฐ์, ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Outbox pattern์ ์ด์ฉ์ค์ด์๋ค. ์ด ๋ฐฉ์์ ํตํด ์ํ ๋์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค. .. 2022. 9. 14. DB ์์ & jpa ์ธํ ํ๋ก์ ํธ์ ์ ๋ฐ์ ์ธ ๋ฆฌํฉํฐ๋ง์ ๋ค์ ์์ํ๋ฉฐ, ๊ธฐ์กด mybatis๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ๊ทธ๋๋ก ์ฎ๊ฒจ์๋ค. ํ์ง๋ง SQL Mapper๋ฅผ ์ด์ฉํ ์ค๊ณ ํน์ฑ์ ๊ฐ์ฒด ์งํฅ์ ์ธ ์ฝ๋์ ์์ฑ์ด ์ด๋ ค์ ๊ณ , ๋ ๊ธฐ์กด DB ์ค๊ณ์ ๋ฌธ์ ๋ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. DB์ ์ ๋ฐ์ ์ธ ์์ ๊ณผ ๋๋ถ์ด, JPA๋ฅผ ์ด์ฉํด ๋ค์ ๋ฆฌํฉํฐ๋ง์ ํด๋ณด๊ธฐ๋ก ๊ฒฐ์ ์ ๋ด๋ ธ๋ค. ๊ทธ ์์ ๊ณผ์ ๊ณผ JPA ์ธํ ๋ฐฉ๋ฒ์ ๋์ดํด๋ณด๊ฒ ๋ค. https://github.com/GroovyArea/My-ChickenBreast-Shop GitHub - GroovyArea/My-ChickenBreast-Shop: shop api with spring boot shop api with spring boot . Contribute to GroovyArea/My-ChickenB.. 2022. 8. 8. 2022.06.02 ใDB ๋์์ฑ ๋ฌธ์ ใ ์๋ฐ ๊ธฐ๋ฐ ์น ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฉํฐ์ค๋ ๋ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์, ๋์์ฑ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ์ ํด๊ฒฐํด์ผ ํ๋ค๊ณ ๋ค์๋ค. ์ด๋ฒ์ ๋ด๊ฐ ํ๋ ์ผํ๋ชฐ ํ๋ก์ ํธ์์๋ ๊ทธ ์ด์๊ฐ ๋ฑ ํฐ์ก๋ค. ์๋ฅผ ๋ค์ด ๋ช ๋ง ๋ช ์ด ํ์ ๋ ์ฌ๊ณ ์ ์ํ์ ์ฃผ๋ฌธํ๋ ค๊ณ ํ ๋? ์๋ง์ ๋ฉํฐ์ค๋ ๋๋ ๋ฐ์ดํฐ์ ์ฌ๊ณ ๋์ ์กฐํํ๋ฉฐ ์ฌ๊ณ ๊ฐ ๋จ์ด์ก์ผ๋ฉด ์์ธ๋ฅผ ๋ฐ์์ํค๋ฉด ๋๋ค. ํ์ง๋ง ๋์์ ์ ๊ทผํ๋ฉด? ์ด๊ฑฐ ๋๊ฐํ๋ค. ์ด ๋ฌธ์ ์ ๋ํ ๊ณ ์ฐฐ์ ์์ฑํ๊ฒ ๋ค. DB ๋์์ฑ ๋ฌธ์ ๋์์ DB๋ฅผ ์กฐํํ ๋๊ฐ ๋ฌธ์ ์ด๋ค. ๋ด๊ฐ ์ฌ์ฉํ๋ DBMS๋ Mysql Mysql์ ๊ธฐ๋ณธ์ ์ผ๋ก ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค์ผ๋ก Level 2 Repeatable Read๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ์ธ๋ ์์ญ์ ํตํ ๋ค์ํ ๋ฒ์ ๋ณ MVCC๋ฅผ ํตํด ๋ฒ์ ์ ๋ง๋ ๊ฐ์ ์กฐํํ ์ ์๋ค. ํ์ง๋ง ๋ชจ๋ .. 2022. 6. 2. 2022.05.29 ใ๊ฒฐ์ APIใ ์ฅ๋ฐ๊ตฌ๋ crud ์์ ํ ๊ฒ์ ์์ ๋ฐ ํ ์คํธ๋ฅผ ์ด๋ฒ ์ฃผ์ ๋๋ด๊ณ ๋์, ๋ค๋ฆ๊ฒ ๊ฒฐ์ API๋ฅผ ์ค๊ณํ๊ธฐ ์์ํ๋ค. ์นด์นด์ค ํ์ด API๋ฅผ ์ฌ์ฉํด์ ํด๋ณด๋ ค๊ณ ํ๋๋ฐ, ์๊ฐ๋งํผ ์ฝ์ง ์์๋ค. ์ด๋์ ๋ณธ ๊ฑด๋ฐ ๋ง๋ค์ด์ง API๋ฅผ ๊ฐ์ ธ์์ ์ฐ๋ ๊ฒ๋ ๋ฅ๋ ฅ์ด๋ผ๊ณ ..ใ ใ ๊ทธ๋๋ ํด์ผ์ง ์ด์ฉ๊ฒ ๋. ์นด์นด์ค ํ์ด API ๋ฌธ์๋ฅผ ๋ณด๋ ๋๊ฒ ๋ค์ํ API๋ฅผ ์๊ฐํด ๋์๋ค. ๊ฒฐ์ ์์ฒญ๋ ๋ณด์์ ์๋ฒ๋ฅผ ํตํด ์์ฒญ์ ํด์ผ ๋๋ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋๊ฒจ ์ฃผ๊ณ ๋ฐ๋ ํ๋ผ๋ฏธํฐ๋ ๊ต์ฅํ ๋ง๋ค. ์ค๊ฑฐ๋๋ฅผ ์ํด ๋ง๋ค์ด์ง API๋ผ ํ์คํ ๋ค๋ฅด๊ธด ํ๋ค. ๊ฐ์ธ์ ์ธ ํ๋ก์ ํธ ์์ค์์ ํ ์คํธ ๊ฒฐ์ ๋ฅผ ์ํด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ฆฌ๋ ์์ ์ ์ฐธ ๊ณจ์น ์ํ ์ผ์ธ ๊ฒ ๊ฐ๋ค. ์ผ๋จ ๊ฒฐ์ ์์ฒญ ๋ถํฐ ์์ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๋ด๊ฐ ์ค๊ณํ ํ๋ก์ ํธ์์๋ ํฌ๊ฒ ๋ณด๋ฉด ๋ ๊ฐ์ง ์ข .. 2022. 5. 29. ์ฟผ๋ฆฌ ์์ฑ ๋ฐ ์ต์ ํ ์์ ์คํ๋ง ํ๋ก์ ํธ, DB, ์์์ ์์ , ํ ๋น ์คํ๋ง, ์ฝํ ์ค๋น ๋ฑ๋ฑ์ ํ๊ณ ์๋ค. ํ๋ฃจ๊ฐ ๋๋ฌด ์งง๊ธฐ๋ ํ๊ณ ์ ์ ์ ๊ฒ ์๋ ๊ด์ฐฎ์ ์ฒด์ง์ด ๋๊ณ ์ถ์ ์์ฆ์ด๋ค. DB๊ณต๋ถ๋ Real Mysql์ ์ฝ๊ณ ์๋ค. ์ฝ๊ธฐ ๋๋ฌด ์ด๋ ค์ด ์ฑ ์ธ๋ฐ.. DB ์ง๋ฌธ๋ ์ ์ ๊ฐ๋ฐ์ ๋ฉด์ ์์ ๋ํ ์ผํ ์ง๋ฌธ๊น์ง ํ์๋ผ๊ณ ํ๊ธฐ ๋๋ฌธ์ ์ด์ฌํ ์ ๋ฆฌํ๋ฉด์ ์ฝ๊ณ ์๋ค. ์ฟผ๋ฆฌ ์์ฑ ๋ฐ ์ต์ ํ ๋ถ๋ถ์ ๊ณต๋ถ์ค์ธ๋ฐ ์ด ๋ถ๋ถ์์ ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ ์ ๋ฆฌํด๋ณผ ์๊ฐ์ด๋ค. Join ๊ธฐ๋ฒ Nested Loop Join ์ค์ฒฉ๋ ๋ฐ๋ณต๋ฌธ๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ์กฐ์ธ์ ์ํ ๋ฐ๋ณต๋ฌธ ์ธ๋ถ์ ํ ์ด๋ธ์ ์ ํ ํ ์ด๋ธ & ์ธ๋ถ ํ ์ด๋ธ์ด๋ผ ์นญํจ ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์ ํ ์ด๋ธ์ ํํ ํ ์ด๋ธ & ๋ด๋ถ ํ ์ด๋ธ์ด๋ผ๊ณ ์นญํ๋ค. ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ ํ ํ ์ด๋ธ ํ์ ์ถ์ถ ํ ํํ ํ ์ด๋ธ์ ์ฝ์ผ๋ฉฐ .. 2022. 5. 17. Flyway & DB Migration ์ ์ ์ฉ์์ผ ๋ณด์ ์คํ๋ง ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋๋ DB ํ ์ด๋ธ์ ํ ๋ฒ์ ๋ค ์์ฑํ๊ณ ์์ํ๋ ๊ฒ์ด ์๋ ํ์ํ ๊ฒ์ ๋ง๋ค์ด๊ฐ๋ฉด์ ์งํํ๊ณ ์์๋ค. ๊ทธ๋ฌ๊ณ Front๋ฅผ ๋ง๋ค์ง ์๊ธฐ ๋๋ฌธ์ DB data๋ฅผ ์ง์ mysql์ ์ด์ด ๋ฃ์ด์ฃผ๊ณ ์์ ํ๋ ์์ ์ ๋ฐ๋ณตํ๊ฒ ๋์๋ค. ์ฐธ ๋นํจ์จ์ ์ด๋ผ ์๊ฐํ๋ค. ๊ทธ๋ฌ๋ ๋์ค Flyway๋ผ๋ Tool์ ์๊ฒ ๋์๋ค. ์๋ก์ด ๊ธฐ์ ์ ๋ง์ฃผํ๋ฉด ํญ์ ๋ฏ์ ๊ธฐ๋ถ์ด์ง๋ง DDL์ ์๋ฐ์์ ์ง์ ๊ด๋ฆฌ๋ฅผ ํ๊ฒ ํด์ฃผ๋ ํด์ด๋ผ๋ ๊ฒ์ ์๊ฒ ๋์๊ณ , ๋์ฒ๋ผ ์คํค๋ง์ ์ฆ์ ๋ณ๊ฒฝ์ด ์ผ์ด๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํด๋ณด๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ ํ๋ฒ ์ ๋ฆฌํด๋ณด๊ณ ์ฌ์ฉํด ๋ณผ ์๊ฐ์ด๋ค. ํน์๋ ํด์ Schema ๊ฐ ๋ญ์ผ? ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ์ ์ฝ์กฐ๊ฑด์ ๊ดํด ์ ๋ฐ์ ์ธ ๋ช ์ธ๋ฅผ ๊ธฐ์ ํ ๊ฒ! 1. ๊ฐ๋ ์คํค๋ง - ์ ์ฒด์ ์ธ ๋ทฐ 2.. 2022. 5. 3. 2022.04.29 ใ๋ถํธ์คํธ๋ฉ ๊ด๋ จใ โถํํธ 1 (10์ ~ 2์) 1. mysql Ch.10 ์คํ ๊ณํ (2. ๋ถํธ์คํธ๋ฉ ๊ด๋ จ ๋ฌธ์) => ๋๋ฉด 3. ํ๋ก์ ํธ html ์ ๋ฆฌ โถํํธ 2 (3์ ~ 6์) 1. ๋ถํธ์คํธ๋ฉ ํด๋ ์ถ๊ฐ(๋๋ ค์ง๋ ๋์ค์ ํ์) 2. ์์์ ์์ 3. Controller ์ ์ โถํ๋ก์ ํธ ๊ด๋ จ 1. ํ์ด์ง ์ฒ๋ฆฌ ์ DB ์์ฒญ => mysql ์ด๋ฏ๋ก oracle์ rownum์ ์ฌ์ฉํ์ง ๋ชป ํ๋ค. ํ์ง๋ง ๋น์ทํ๊ฒ ๋ฐ๋ผํ ์๋ ์๋ค. ๊ทธ๋๋ mysql์ ๋ฐฐ์ ๊ธฐ ๋๋ฌธ์ ์ฐจ๋ณํ๋ ๋ฐฉ์์ ์ฌ์ฉํ ๊ฒ. => ๋ฐฉ์์ ์ฌ๋ฌ ๊ฐ์ง์ด์ง๋ง limit ํจ์๋ฅผ ์ฌ์ฉํ๋ค. (๊ฒ์ ์๋๊ฐ ๋น ๋ฆ) 2022. 4. 29. 2022.1.13์ ๊ธฐ๋ก - ํ๋ฃจ ์ ๋ฆฌ - DB ์ ์ DRD ๊ด๊ณ์ ๋ฐ ์์ ์ ๋ฆฌJSP ๋ณต์ต ์ฝ๋ฉ- ์ค๋ ๊ณต๋ถ ๋ด์ฉ - JSP์๋ต๋ฐฉ์์ json, xml๋ก๋ ์๋ต๊ฐ๋ฅํ๋ฐ ์ด๊ฑด restWAS์ ์ํด jsp ์น ๋ฌธ์๊ฐ ์๋ธ๋ฆฟ ํด๋์ค๋ก ์ปดํ์ผ ๋ ๋ 9๊ฐ์ ๋ด์ฅ ๊ฐ์ฒด๊ฐ ์๋์ผ๋ก ์ ์ธ๋๋ค. ์ ค ๋ง์ด ์ฐ๋๊ฒ request, response, session ๊ฐ์ฒดjoin_form.jsp๋น์ ์์ ์ธ ์์ฒญ์ ๋ํ ์๋ต ์ฒ๋ฆฌresponse.sendRedirect(String url) : ํด๋ผ์ด์ธํธ์๊ฒ 301 ์ํ์ฝ๋์ URL ์ฃผ์๋ฅผ ์ ๋ฌํ์ฌ ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ์ ์์ฒญ URL ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ฌ์์ฒญํ๋๋ก ์ง์ํ๋ ๋ฉ์๋ - ๋ฆฌ๋ค์ด๋ ํธ ์ด๋ (๊ฒฝ๋ก๋ ์ต์์ ๋ฃจํธ \ ๋ก ์ก์ , ์๋๋ contextroot๊ฐ ๊ธฐ๋ณธ์ด์ง๋ง(์๋ฐ์ผ๊ฒฝ์ฐ) )⇒ ๋ฆฌ๋ค์ด๋ ํธ ์ด๋์.. 2022. 1. 13. 2022.1.12์ ๊ธฐ๋ก(์ธ๋ฏธํ๋ก์ ํธ ํ์) [์ค๋ ํ ์ผ]JSP ๋ธ๋ก๊ทธ ์ฝ๋ฉ์ธ๋ฏธํ๋ก์ ํธ DB ์์๋ผ์ธ ์ ์ฒด ์ก๊ธฐ[์ธ๋ฏธ ํํ]> ์ธ๋ฏธ ํ๋ก์ ํธ์ ํ์ํ DB ์์๋ผ์ธ์ ํ์ฅ์ธ ๋ด๊ฐ ์ ์ฒด์ ์ผ๋ก ์ง๋ณด๊ธฐ๋ก ๊ฒฐ์ .> ๊ตฌ์ฒด์ ์ผ๋ก ๋ค์ฌ๋ค ๋ณด๋ฉฐ ํ ์ด๋ธ์ ๋ง๋ค๋ค๋ณด๋ ๋ง๋ง์น ์์ ์์ ์์ ์ค๊ฐ.> ๊ธด๊ธ ํ ์์ง ํ์> ํ ํ์ ๋ง๋ฌด๋ฆฌ ํ ๋ฌด์์ ์๋ณ, ๋น์๋ณ , N:N ๊ด๊ณ์ ๋ํด์ ํ ์ง ๋ ผ์ ํจ.> ๋ถ๋ชจ, ์์ ํ ์ด๋ธ๊ฐ์ ๊ด๊ณ์ erd ๋ชจ๋ธ์์์ ๊ด๊ณ์ ์ข ๋ฅ์ ์๋ฏธ์ ๋ํด ๊ณต๋ถ ํจ. ๊ด๊ณ์ ์ ์ข ๋ฅ์ค์ (Identifying): ์๋ณ๊ด๊ณ => ๋ถ๋ชจํ ์ด๋ธ์ PK๊ฐ ์์ํ ์ด๋ธ์ FK/PK๊ฐ ๋๋ ๊ฒฝ์ฐ=> ๋ถ๋ชจ๊ฐ ์์ด์ผ ์์์ด ์๊ธฐ๋ ๊ฒฝ์ฐ์ ์ (Non-Identifying): ๋น์๋ณ๊ด๊ณ=> ๋ถ๋ชจํ ์ด๋ธ์ PK๊ฐ ์์ํ ์ด๋ธ์ ์ผ๋ฐ์์ฑ์ด ๋๋ ๊ฒฝ์ฐ=> ๋ถ๋ชจ๊ฐ ์์ด๋ ์์์ด ์๊ธฐ๋.. 2022. 1. 13. ์ด์ 1 ๋ค์ ๋ฐ์ํ