Study/Java91 [TIL] ์คํค๋ง & ์ฟผ๋ฆฌ ์ค๊ณ ๐๐ป ์คํค๋ง Schema - ๋๋ต์ ์ธ ๊ณํ์ด๋ ๋์ - ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ฃ ๊ตฌ์กฐ, ์๋ฃ ํํ ๋ฐฉ๋ฒ, ์๋ฃ๊ฐ์ ๊ด๊ณ์ ๋ํ ์ ๋ณด - ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ์กฐํ, ์ญ์ , ๋ณ๊ฒฝํ ๋ ์คํค๋ง๋ฅผ ์ฐธ์กฐํ์ฌ ๋ช ๋ น ์ํ ๐ ๊ด๊ณ ์ข ๋ฅ โ 1:1 ๊ด๊ณ - ํ๋์ ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ ์ฝ๋ ํ ๊ฐ์ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ - ์ฌ์์ฆ ํ ์ด๋ธ๊ณผ ๊ฐ์ฌ ํ ์ด๋ธ์ 1:1 ๊ด๊ณ โก 1:N ๊ด๊ณ -ํ๋์ ๋ ์ฝ๋๊ฐ ์๋ก ๋ค๋ฅธ ์ฌ๋ฌ ๊ฐ์ ๋ ์ฝ๋์ ์ฐ๊ฒฐ - ๊ฐ์ฌ์ ๊ฐ์๋ 1:N ๊ด๊ณ โข M:N ๊ด๊ณ - ์ฌ๋ฌ ๊ฐ์ ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ฌ๋ฌ ๊ฐ์ ๋ ์ฝ๋์ ๊ด๊ณ๊ฐ ์๋ ๊ฒฝ์ฐ - ์คํค๋ง ๋์์ธ ์์๋ join ํ ์ด๋ธ๋ก ๋ง๋ค์ด ๊ด๋ฆฌํจ - ๊ฐ์์ ํ์์ M:N ๊ด๊ณ โฃ ์๊ธฐ ์ฐธ์กฐ ๊ด๊ณ - ์๊ธฐ ์์ ์ด ์์ ์ ํ๋๋ฅผ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ - 1:N ๊ด๊ณ์ ์ ์ฌํ์ง๋ง .. 2022. 6. 9. [TIL] ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๐ซฐ๐ป ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์์ฑ Database - ํ๋์ CSVํ์ผ์ด๋ ์์ ์ํธ๋ฅผ ํ ๊ฐ์ ํ ์ด๋ธ๋ก ์ ์ฅ - ํ ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ํ ์ด๋ธ์ ๊ฐ์ง ์ ์๊ธฐ ๋๋ฌธ์ SQL์ ํ์ฉํด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์์ ๐ ์ธ๋ฉ๋ชจ๋ฆฌ In-Memory ํํ์ ์ ์ฅ - ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง - ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ณ์ ๋ฑ์ ์ ์ฅํ ๋ฐ์ดํฐ๊ฐ ํ๋ก๊ทธ๋จ์ ์คํ์ ์์กดํ๋ ๊ฒฝ์ฐ๊ฐ ์์ - ์๊ธฐ์น ๋ชปํ ์ํฉ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ ์ ์์ - ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋ ์ํ์์ ์ํ๋ ์๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์์ - ๋ฐ์ดํฐ ์๋ช ์ด ํ๋ก๊ทธ๋จ ์๋ช ์ ์์กด ๐ File I/O ํํ์ ์ ์ฅ - ํ์ผ์ ์ฝ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ํํ - ๋ฐ์ดํฐ๊ฐ ํ์ํ ๋ ๋ง๋ค ์ ์ฒด ํ์ผ์ ๋งค๋ฒ ์ฝ์ด์ผ ํจ - ํ์ผ์ด ์์๋๊ฑฐ๋ ์ฌ๋ฌ ๊ฐ์ ํ์ผ๋ค์ ๋์์ ๋ค๋ค์ผ .. 2022. 6. 9. [TIL] REST API ๐๐ป REST API - REST์ ์๋ฆฌ๋ฅผ ๋ฐ๋ฅด๋ API - ์น์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ ์์์ HTTP URI๋ก ํํํ๊ณ HTTP ํ๋กํ ์ฝ์ ํตํด ์์ฒญ๊ณผ ์๋ต์ ์ ์ํ๋ ๋ฐฉ์ ๐ก REST (Representational State Transfer) - ์์์ ์ ์ํ๊ณ ์์์ ๋ํ ์ฃผ์๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ๋ก - ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ = ์์์ ํํ์ ์ํ ์ํ ์ ๋ฌ → ์์์ ํํ : DB์ ํ์ ์ ๋ณด๊ฐ ์์์ผ ๋ 'student'๋ฅผ ์์์ ํํ์ผ๋ก ์ ํจ → ์ํ ์ ๋ฌ : ๋ฐ์ดํฐ๊ฐ ์์ฒญ ๋์ด์ง๋ ์์ ์์ ์์์ ์ํ ์ ๋ฌ (์ผ๋ฐ์ ์ผ๋ก JSON / XML์ ํตํด) - HTTP URI๋ฅผ ํตํด ์์์ ๋ช ์ - HTTP Method(POST, GET, PUT, DELETE)๋ฅผ ํตํด.. 2022. 6. 8. [TIL] ๋ธ๋ผ์ฐ์ ์ ์๋ ์๋ฆฌ : ๋ณด์ด๋ ๊ณณ ๐๐ป ๋ธ๋ผ์ฐ์ ์ ์๋์๋ฆฌ : ๋ณด์ด๋ ๊ณณ ๐ AJAX : SPA์ ๋ง๋๋ ๊ธฐ์ - ๋น ๋ฅด๊ฒ ๋์ํ๋ ๋์ ์ธ ์น ํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ฐ๋ฐ ๊ธฐ๋ฒ - ์น ํ์ด์ง์ ํ์ํ ๋ถ๋ถ์ ํ์ํ ๋ฐ์ดํฐ๋ง ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์์ ํ๋ฉด์ ๊ทธ๋ ค๋ผ ์ ์์ - ์ ์ฒด๋ฅผ ๋ค์ ๋ก๋ฉํ์ง ์๊ณ ๋ ์น ํ์ด์ง์ ์ผ๋ถ๋ถ๋ง์ ๊ฐฑ์ ํ ์ ์์ ๐ก SPA (Single Page Application) - ๋จ์ผ ํ์ด์ง๋ก ๊ตฌ์ฑ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ - ๋ ๋๋ง์ ์ญํ ์ ์๋ฒ์๊ฒ ๋๊ธฐ์ง ์๊ณ ๋ธ๋ผ์ฐ์ ์์ ์ฒ๋ฆฌ ๐ก ๋ ๋๋ง (Rendering) - ์๋ฒ๋ก๋ถํฐ HTMLํ์ผ์ ๋ฐ์ ๋ธ๋ผ์ฐ์ ์ ๋ฟ๋ ค์ฃผ๋ ๋ฐฉ์ โช๏ธ AJAX์ ๋๊ฐ์ง ํต์ฌ ๊ธฐ์ โ Fetch - ์๋ก์ด ํ์ด์ง๋ก ์ด๋ํ์ง ์์๋ ์๋ฒ๋ก๋ถํฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์์ - ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ.. 2022. 6. 7. [TIL] HTTP ๐ซถ๐ป HTTP : HyperText Transfer Protocol - HTML๊ณผ ๊ฐ์ ํ์ดํผ๋ฏธ๋์ด ๋ฌธ์๋ฅผ ์ ์กํ๊ธฐ ์ํ ์์ฉ ๊ณ์ธต ํ๋กํ ์ฝ - ์น์์ ์ด๋ฃจ์ด์ง๋ ๋ชจ๋ ๋ฐ์ดํฐ ๊ตํ์ ๊ธฐ์ด์ด์ ํด๋ผ์ด์ธํธ-์๋ฒ ํ๋กํ ์ฝ - ๋ณดํต ์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ๊ฐ ์ปค๋ฎค๋์ผ์ด์ ์ ์ํด ๋ฑ์ฅ - ํ์ฌ HTTP/1.1 ๋ฅผ ๋๋ถ๋ถ ์ฌ์ฉ ๐ HTTP ์์ฒญ ๋ฉ์๋ โ GET : ๋ฆฌ์์ค ์์ฒญ - URI ํ์์ผ๋ก ์น ์๋ฒ ์ธก ๋ฐ์ดํฐ๋ฅผ ์์ฒญ - ํน์ ๋ฆฌ์์ค์ ํ์๋ฅผ ์์ฒญํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ธฐ๋ง ํ ์ ์์ โก POST : ๋ฆฌ์์ค ์ ์ก - ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์ ๋ฌํ๊ณ ์ ํ๋ ์ ๋ณด๋ฅผ ์๋ฒ๋ก ๋ณด๋ โข PUT : ๋ฆฌ์์ค ๋ณ๊ฒฝ - POST์ฒ๋ผ ์ ๋ณด๋ฅผ ์๋ฒ๋ก ๋ณด๋ด์ง๋ง ๋ชฉ์ ์ด ๊ฐฑ์ ์ ์ํ ๊ฒ โฃ DELETE : ๋ฆฌ์์ค ์ญ์ - ์น ๋ฆฌ์์ค๋ฅผ ์ ๊ฑฐํ .. 2022. 6. 7. [TIL] ๋ธ๋ผ์ฐ์ ์ ์๋ ์๋ฆฌ : ๋ณด์ด์ง ์๋ ๊ณณ ๐๐ป ๋ธ๋ผ์ฐ์ ์ ์๋ ์๋ฆฌ : ๋ณด์ด์ง ์๋ ๊ณณ ๐ URL๊ณผ URI - URL์ ์๋ฒ๊ฐ ์ ๊ณต๋๋ ํ๊ฒฝ์ ์กด์ฌํ๋ ํ์ผ์ ์์น๋ฅผ ๋ํ๋ - URL์ ์คํค๋ง, ํธ์คํธ, ๊ฒฝ๋ก๊ฐ ํฌํจ๋๋ฉฐ URI๋ URL ์์์ ์ฟผ๋ฆฌ์ ๋ถ๋งํฌ๊ฐ ์ถ๊ฐ๋จ - ์ฆ, URI๊ฐ ๋ ์์์ ๊ฐ๋ ( URI = URL(์์น) + URN(์ด๋ฆ) ) - ์ฌ๋์( / )๋ฅผ ์ด์ฉํด ์๋ฒ์ ํด๋์ ์ง์ ํ๊ฑฐ๋ ํ์ผ์ ์์ฒญํ ์ ์์ ๐ IP์ ํฌํธ - ๊น์ฝ๋ฉ์ ์ฐพ๊ธฐ ์ํด์๋ ๊น์ฝ๋ฉ์ด ์ฌ๋ ์ฃผ์๋ฅผ ์์์ผ ํ๋ ๊ฒ ์ฒ๋ผ ๋คํธ์ํฌ ์์์๋ PC๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ฅผ ์์์ผ ํต์ ๊ฐ๋ฅ - ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ํน์ PC์ ์ฃผ์๋ฅผ ๋ํ๋ด๋ ์ฒด๊ณ๋ฅผ IP address(IP ์ฃผ์) ๋ผ๊ณ ํจ - ํฌํธ๋ ๊ฐ์ IP ๋ด์์ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ ๐ ๋๋ฉ์ธ๊ณผ DNS - ๋๋ฉ์ธ .. 2022. 6. 7. [TIL] ์์ด๊ณผ ์กฐํฉ ๐ซฐ๐ป ์์ด Permutation - ์์๊ฐ ์๊ด์๋ ์์ n๊ฐ ์ค์ r๊ฐ๋ฅผ ๋ฝ๋ ๊ฒฝ์ฐ์ ์ - nPr์ด๋ผ๊ณ ํํ ! - nPr = n ! / (n - r) ! ์๋ฅผ ๋ค์ด, [ 1, 2, 3 ] ์ด๋ผ๋ 3๊ฐ์ ๋ฐฐ์ด์์ 2๊ฐ์ ์ซ์๋ฅผ ๋ฝ๋ ๊ฒฝ์ฐ = 3P2 = 3 ! / 1 ! = 3 x 2 x 1 / 1 = 6 [ 1, 2 ] [ 1, 3 ] [ 2, 1 ] [ 2, 3 ] [ 3, 1 ] [ 3, 2 ] ๐ค๐ป ์ค๋ณต์์ด - ์๋ก ๋ค๋ฅธ n๊ฐ์ ์์ ์ค ์ค๋ณต์ ํ๋ฝํ์ฌ r๊ฐ๋ฅผ ๋ฝ์์ ๋์ดํ๋ ๊ฒ - nπr๋ก ํํ ! - nπr = n์ r์ ๊ณฑ ๐ซฐ๐ป ์กฐํฉ Combination - ์์์ ์๊ด์์ด ์์ n๊ฐ ์ค์ r๊ฐ๋ฅผ ๋ฝ๋ ๊ฒฝ์ฐ์ ์ - nCr์ด๋ผ๊ณ ํํ - nCr = n ! / r ! * (n - r) ! ์๋ฅผ.. 2022. 6. 4. [TIL] ํ์ ์๊ณ ๋ฆฌ์ฆ : Greedy ๐คฒ๐ป ํ์ ์๊ณ ๋ฆฌ์ฆ Greedy - ๋งค ์ ํ์์ ํ์ฌ ๋น์ฅ ์ต์ ์ ๋ต์ ์ ํํ์ฌ ์ต์ ์ ๊ฒฐ๊ณผ ๋์ถ โช๏ธ ํ์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ โ ์ ํ ์ ์ฐจ - ํ์ฌ ์ํ์์์ ์ต์ ์ ํด๋ต์ ์ ํ โก ์ ์ ์ฑ ๊ฒ์ฌ - ์ ํ๋ ํด๊ฐ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋์ง ๊ฒ์ฌ โข ํด๋ต ๊ฒ์ฌ - ์๋์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋์ง ๊ฒ์ฌํ๊ณ ํด๊ฒฐ๋์ง ์์๋ค๋ฉด ์ ํ์ ์ฐจ๋ก ๋์๊ฐ ๋ฐ๋ณต โช๏ธ ํ์ ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ ์กฐ๊ฑด โ ํ์ ์ ํ ์์ฑ - ํญ์ ์์ ํ๋ค๋ ๊ฒ์ด ๋ณด์ฅ๋์ด์ผ ํจ - ์ด์ ์ ์ ํ์ด ์ดํ์ ์ํฅ์ ์ฃผ์ง ์์ โก ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ - ๋ถ๋ถ ๋ฌธ์ ์ ์ต์ ๊ฒฐ๊ณผ๊ฐ ์ ์ฒด์๋ ๊ทธ๋๋ก ์ ์ฉ๋ ์ ์์ด์ผ ํจ ๐ก ๊ฐ์ฒด ์ ๋ ฌ ๊ธฐ์ค ๊ตฌํ โ Comparable - compareTo()๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํด์ ๊ตฌํ - ์ผ๋ฐ์ ์ผ๋ก ์ ๋ ฌํ ๊ฐ์ฒด๋ implements๋ก Co.. 2022. 6. 1. [TIL] ์๋ฃ๊ตฌ์กฐ : ๋ฐํ, ๋งํฌ๋๋ฆฌ์คํธ, ํด์ํ ์ด๋ธ, ํํธ๋ฆฌ ๐๐ป Deque - ์๋ฐฉํฅ ๋๊ธฐ์ด์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ ์๋ฃ๊ตฌ์กฐ - Stack๊ณผ Queue์ ํผํฉ๊ตฌ์กฐ๋ก Queue์ ์ธํ์ ์ผ๋ก ๋น์ทํ ๊ตฌ์กฐ ๐ Deque์ ํน์ง โ Stack๋ฐ Queue๋ฅผ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ - ์์ชฝ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ณ ์ญ์ ํ ์ ์์ด์ Stack๊ณผ Queue ๊ตฌํ ๊ฐ๋ฅ - ์ถ๊ฐ์ ์ญ์ ๋ฅผ ์์ชฝ์์ ์ ์ด ๊ฐ๋ฅ (ex. ๋ฐ์ดํฐ ์ถ๊ฐ๋ ํ์ชฝ์์๋ง ๊ฐ๋ฅํ๊ณ ์ญ์ ๋ ์์ชฝ ๊ฐ๋ฅ) โก ์๋ฐฉํฅ ๋์์ ๋ฐ์ดํฐ ์ถ๊ฐ ์ญ์ ์ฉ์ด - ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ด ์์ชฝ์์ ๋ฐ์ดํฐ ์ ๊ทผ, ์ถ๊ฐ, ์ญ์ ์ฉ์ด โข ์์์ ๋ฐ์ดํฐ๋ง ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ๋ ๋ถ๊ฐ - ๋ฐํ๋ ์๋ฐฉํฅ ๋์ ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ด ์๋ฐฉํฅ์ด ์๋ ์ค๊ฐ์ ์๋ ๋ฐ์ดํฐ ์ ๊ทผ์ ์ด๋ ค์ ๐๐ป Linked List : ์ฐ๊ฒฐ ๋ฆฌ์คํธ - ์ ํ์ผ๋ก ๊ทธ๋ฃนํ๋ ๋ฐ์ด.. 2022. 5. 31. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 11 ๋ค์