๐Ÿ“š CS [ComputerScience] 40

๐Ÿชช [์ž๊ฒฉ์ฆ] [์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ] ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ

2๊ณผ๋ชฉ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์‚ฝ์ž… ์ •๋ ฌ (Insertion Sort) - O(N^2) ๋‘๋ฒˆ์งธ ๊ฐ’๋ถ€ํ„ฐ ์ด์ „ ๊ฐ’๋“ค๊ณผ ๋น„๊ต๋ฅผ ์‹œ์ž‘ ๋น„๊ตํ•˜๋Š” ๊ฐ’์„ Key๋ผ๊ณ  ํ•  ๋•Œ, ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋ฉด Key๋ฅผ ๋ณ€๊ฒฝ ํ•  ์ž๋ฆฌ์— ์‚ฝ์ž…ํ•˜๊ณ  ๊ทธ ์ž๋ฆฌ์— ์žˆ๋˜ ๊ฐ’์€ ๋’ค๋กœ ํ•œ ์นธ ์ด๋™ ์‹œํ‚ด. ์„ ํƒ ์ •๋ ฌ(Selection Sort) - O(N^2) ์ฒ˜์Œ ์›์†Œ ์ž๋ฆฌ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๋ชจ๋“  ๊ฐ’๋“ค์„ ๊ฒ€์‚ฌํ•˜์—ฌ ์ž‘์€ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฒ„๋ธ” ์ •๋ ฌ(Bubble Sort) ์„œ๋กœ ์ธ์ ‘ํ•œ ๋‘ ์›์†Œ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ธ์ ‘ํ•œ ๋‘ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ ํ‚ค ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๊ทธ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์œ„์น˜๋ฅผ ์„œ๋กœ ๊ตํ™˜ํ•˜๋Š” ์ •๋ ฌ ๋ฐฉ์‹

๐Ÿชช [์ž๊ฒฉ์ฆ] [์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ] ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ

๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ตฌ์ถ• ๋ฆด๋ ˆ์ด์…˜ (ํ…Œ์ด๋ธ”) ์†์„ฑ = ํ…Œ์ด๋ธ”์˜ ์—ด (Column) ์ฐจ์ˆ˜ = ์†์„ฑ์˜ ์ˆ˜ ํŠœํ”Œ = ํ…Œ์ด๋ธ”์˜ ํ–‰ (Row) ์นด๋””๋„๋ฆฌํ‹ฐ = ํŠœํ”Œ์˜ ์ˆ˜ DDL(Data Definition Language) Create, Alter, Drop DML(Data Manipulation Language) SELECT, INSERT, UPDATE, DELETE DCL(Data Control Language) GRANT, REVOKE, COMMIT, ROLLBACK DISTINCT : ์ค‘๋ณต ์ œ๊ฑฐCASCADE : ๋ถ€๋ชจ ๊ฐ’ ์‚ญ์ œ ์‹œ ์ž์‹๋„ ์‚ญ์ œALTER : ์†์„ฑ ์ถ”๊ฐ€, ์‚ญ์ œ ํ›„๋ณดํ‚ค - ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ ๋งŒ์กฑ ๊ธฐ๋ณธํ‚ค - null ๊ฐ’ ๋ถˆ๊ฐ€, ์ค‘๋ณต x, ์‹๋ณ„์ž ์Šˆํผํ‚ค - ์œ ์ผ์„ฑ ๋งŒ์กฑ, ์ตœ์†Œ์„ฑ x ์™ธ๋ž˜ํ‚ค - ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š”..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [20] [JDBC]

1. JDBC(Spring JDBC) ๋ž€ ? JDBC (Java Database Connectivity)๋Š” ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” API ์ด๋‹ค. JDBC๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ฆ‰, JDBC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Java ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. Spring JDBC๋ž€? Spring JDBC๋Š” ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณตํ•˜๋Š” JDBC ๋ชจ๋“ˆ์ด๋‹ค. Spring JDBC๋Š” JDBC ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ณ , ๋” ์‰ฝ๊ฒŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. DataSource ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ปค๋„ฅ์…˜ ํ’€์„ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค Spring์€ DataSour..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [19] [Java]

1. String, Stringbuffer, Stringbuilder String์€ ๋ถˆ๋ณ€๊ฐ์ฒด(immutable)ํ•œ ๊ฐ์ฒด์ด๋‹ค. ํ•œ๋ฒˆ ์ƒ์„ฑ๋œ ๊ฐ์ฒด์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋ฌธ์ž์—ด์„ ์กฐ์ž‘ํ•  ๋•Œ ๋งˆ๋‹ค ์ƒˆ๋กœ์šด String ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถˆ๋ณ€์„ฑ ๋•๋ถ„์— thread-safeํ•˜๊ณ , String๊ฐ์ฒด๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ์ƒ ์ด์ ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. String a = "abc"; a = "abcd"; String b = new String("abc"); ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ์—๋Š” ์ด ์ฝ”๋“œ๊ฐ€ abcd๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์‹ค์ œ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” abc๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ abcd๋ฅผ ์ €์žฅํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ฐธ์กฐํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ abc๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฉ”..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [ 3์›” 2์ฃผ์ฐจ ]

3์›” 2์ฃผ์ฐจ ๋‚ด์šฉ ์ •๋ฆฌ [3/11 ~ 3/15] ์‚ฌ์‹ค ์ด๋ฒˆ์ฃผ์—๋Š” ์ฝ”ํ…Œ, ์ž์†Œ์„œ, ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ํ•˜๋Š๋ผ ๋งŽ์€ ๊ธ€์„ ์ž‘์„ฑํ•˜์ง€๋Š” ๋ชปํ–ˆ๋‹ค. ์ด๋ฒˆ์ฃผ์—๋Š” ์šด์˜์ฒด์ œ, ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ดค๋‹ค. ์ด์ œ ๊ธฐ๋ณธ์ ์ธ CS๋“ค์€ ๋ฉด์ ‘์—์„œ ๊ฑฐ์˜ ํ•˜์ง€ ์•Š๋Š” ๋ถ„์œ„๊ธฐ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์ง€์‹์ด ๋ถ€์กฑํ•˜๋‹ค๋ฉด ๊ฐœ๋ฐœ์ž๋กœ์„œ ์–ด๋ ค์›€์ด ๋งŽ์€ ๊ฒƒ์„ ๋ช…ํ™•ํ•˜๋‹ค. ์ด ์ง€์‹๋“ค์„ ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜์˜€๋Š”์ง€ ์—ฐ๊ด€์ง€์œผ๋ฉด ์ตœ๊ณ ์˜ ๋ฉด์ ‘์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [18] [์ž๋ฃŒ๊ตฌ์กฐ / ์•Œ๊ณ ๋ฆฌ์ฆ˜]

1. ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ? ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•˜๋Š” ๊ทœ์น™ ๋˜๋Š” ๋ชฉ์ ์— ๋งž๊ฒŒ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ด๊ณ , ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ์ž๋ฃŒ๊ตฌ์กฐ์— ์Œ“์ธ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด ์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋™์ž‘๋“ค์˜ ๋ชจ์ž„์ด๋‹ค. 2. Array [ ๋ฐฐ์—ด ] ์™€ LinkedList [ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ] Array ๋Š” ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ, ๊ณ ์ • ๊ธธ์ด์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ˆœ์„œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ์˜๋ฏธํ•˜๋Š” Index๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, Index๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” Random Access๋ฅผ ์ง€์›ํ•œ๋‹ค. Index๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ์ƒ‰์ธํ•˜๋ฉด O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ์†Œ์š”๋œ๋‹ค. ํ•˜์ง€๋งŒ, ์ค‘๊ฐ„์— ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋ฉด O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ์ •๊ธธ์ด์™€ ๋Š๋ฆฐ ์‚ฝ์ž…, ์‚ญ์ œ ์—ฐ์‚ฐ์„ ..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [17] [TCP/UDP]

1. TCP / UDP TCP์™€ UDP๋Š” OSI์˜ 4๊ณ„์ธต์ด์ž TCP/IP์˜ ์ „์†ก ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ „์†ก๊ณ„์ธต์€ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต์‹ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณ„์ธต์œผ๋กœ, ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ์ „๋‹ฌ์„ ๋‹ด๋‹นํ•œ๋‹ค. TCP (Transmission Control Protocol) ์ •์˜๋Š” ์ธํ„ฐ๋„ท์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”์„ธ์ง€ ํ˜•ํƒœ๋กœ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด IP์™€ ํ•จ๊ผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. TCP์˜ ํŠน์ง• - ์—ฐ๊ฒฐ ์ง€ํ–ฅ ๋ฐฉ์‹์œผ๋กœ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉ - 3-way handshake ๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  4-way handshake๋ฅผ ํ†ตํ•ด ํ•ด์ œ - ํ๋ฆ„ ์ œ์–ด ๋ฐ ํ˜ผ์žก ์ œ์–ด - ๋†’์€ ์‹ ๋ขฐ์„ฑ (IP ํ”„๋กœํ† ์ฝœ์—์„œ๋Š” ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ TCP์—์„œ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ) - UDP๋ณด๋‹ค ์†๋„๊ฐ€ ๋Š๋ฆผ TCP์˜ ์—ฐ๊ฒฐ ๊ณผ์ • (3-w..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [16] [์šด์˜์ฒด์ œ]

1. ์šด์˜์ฒด์ œ์˜ ์—ญํ•  - CPU ์Šค์ผ€์ค„๋ง & ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ - ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ - ๋””์Šคํฌ ํŒŒ์ผ ๊ด€๋ฆฌ - I/O ๋””๋ฐ”์ด์Šค ๊ด€๋ฆฌ * ํ”„๋กœ์„ธ์Šค๋ž€ ? ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•œ๋‹ค. ํ•˜๋“œ๋””์Šคํฌ์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด, ์‹คํ–‰์„ ์œ„ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด ์ด๋ฃจ์–ด์ง€๊ณ , ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋œ๋‹ค. ์ด ์ˆœ๊ฐ„๋ถ€ํ„ฐ ํ”„๋กœ์„ธ์Šค๋ผ ๋ถˆ๋ฆฐ๋‹ค. ์šด์˜์ฒด์ œ์˜ ๋ชฉ์  ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•จ 2. CPU ์Šค์ผ€์ค„๋ง CPU ์Šค์ผ€์ค„๋ง์€ ์–ธ์ œ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ํ• ๋‹นํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์ž‘์—…. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ CPU ์ด์šฉ๋ฅ ์€ ๋†’๊ฒŒ, ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์— ๋งŽ์€ ์ผ์„ ํ•˜๊ฒŒ, ์ค€๋น„ ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์ ๊ฒŒ, ์‘๋‹ต์‹œ๊ฐ„์€ ์งง๊ฒŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. ๋น„์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [ 3์›” 1์ฃผ์ฐจ ] [ 1 ]

3์›” 1์ฃผ์ฐจ ๋‚ด์šฉ ์ •๋ฆฌ [3/1 ~ 3/10] + ์ด์ „ ๋‚ด์šฉ 3์›” 1์ฃผ์ฐจ์— ๋‹ค๋ฃฌ ๋‚ด์šฉ๋“ค๊ณผ ๊ทธ ์ด์ „์— 2์›”์— ๋‹ค๋ค˜๋˜ ๋‚ด์šฉ์— ๋Œ€ํ•ด ๋Œ€๋žต์ ์ธ ์ •๋ฆฌ๋ฅผ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ํ•˜๋Š๋ผ ์ •๋ฆฌํ•˜๋Š”๋ฐ ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค. ๊ธฐ์ˆ  ๋ฉด์ ‘์—์„œ ๋‚˜์˜ฌ๋งŒํ•œ ๋‚ด์šฉ๋“ค๋กœ ๋‹ค๋ฃจ๊ณ  ์š”์ฆ˜์€ ๊ฑฐ์˜ ํ”„๋กœ์ ํŠธ ์œ„์ฃผ๋กœ ์งˆ๋ฌธ์„ ํ•œ๋‹ค์ง€๋งŒ ๊ธฐ๋ณธ์ ์ธ CS๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋“ค์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. ์ž˜ ์ •๋ฆฌ๋ฅผ ํ•ด์„œ ๋ฉด์ ‘์— ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. 1. ์Šคํ”„๋ง์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š” ? ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”๋กœ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํˆด์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง์˜ ํŠน์ง•์—๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ๋กœ ์ œ์–ด์˜ ์—ญ์ „์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด์˜ ์ƒ์„ฑ๋ถ€ํ„ฐ ์†Œ๋ฉธ๊นŒ์ง€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ œ์–ด๊ถŒ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๋‘๋ฒˆ์งธ๋Š” ์˜์กด์„ฑ..

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [15] [JPA]

1. JPA ๋ž€? JPA๋Š” ์ž๋ฐ” ์ง„์˜์—์„œ ORM(Object-Relational Mapping) ๊ธฐ์ˆ  ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ์ด๋‹ค. ์‹ค์งˆ์ ์œผ๋กœ ๊ตฌํ˜„๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ตฌํ˜„๋œ ํด๋ž˜์Šค์™€ ๋งคํ•‘์„ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. JPA๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์˜คํ”ˆ์†Œ์Šค๋กœ๋Š” Hibernate๊ฐ€ ์žˆ๋‹ค. ORM(Object-Relational Mapping) ? ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์•Œ๊ณ ์žˆ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ Class์™€ RDB์˜ ํ…Œ์ด๋ธ”์„ ๋งคํ•‘ํ•œ๋‹ค๋Š” ๋œป์ด๋ฉฐ, ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ์ฒด๋ฅผ RDB ํ…Œ์ด๋ธ”์— ์ž๋™์œผ๋กœ ์˜์†ํ™” ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณด๋ฉด๋œ๋‹ค. ์žฅ์  1. SQL๋ฌธ์ด ์•„๋‹Œ Method๋ฅผ ํ†ตํ•œ DB๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ์ฒด ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Œ 2. Query์™€ ๊ฐ™์ด ํ•„..