๐Ÿ”™๋’ค๋กœ๊ฐ€๊ธฐ

ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๋ฌธ์ œ

ํ˜„ ์‹œ๋Œ€์˜ ๊ฐœ๋ฐœ ํŒจ๋Ÿฌ๋‹ค์ž„์€ ๊ฐ์ฒด์ง€ํ–ฅ์„ ์ถ”๊ตฌํ•œ๋‹ค.

Smalltalk : ๊ฐ์ฒด์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ์‹œ์ดˆ์ ์ธ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ๋ชจ์ฒด Java : ์ดˆ๊ธฐ๋ถ€ํ„ฐ ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ๋””์ž์ธ์— ์ค‘์ ์„ ๋‘” ์–ธ์–ด Kotlin : ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด, Java์™€ 100% ํ˜ธํ™˜ C++ : C์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ์–ธ์–ด C# : C++๊ณผ Java๋ฅผ ๋ฒค์น˜๋งˆํ‚นํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด Python : ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ์–ธ์–ด์ด๋ฉฐ, ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ๋ฌธ๋ฒ•์ด ๊ฐ„๊ฒฐํ•˜๊ณ  ์‰ฌ์›€ Ruby : ์ˆœ์ˆ˜ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์ด๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด. ๋™์ ์œผ๋กœ ํƒ€์ž…์„ ๊ฒฐ์ • Swift : ์• ํ”Œ์—์„œ ๊ฐœ๋ฐœํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ, iOS, macOS, watchOS, tvOS ๋“ฑ์˜ ์• ํ”Œ ์ œํ’ˆ์—์„œ ์‚ฌ์šฉ PHP : ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๋Š” ์„œ๋ฒ„ ์ธก ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ์›น ์„œ๋ฒ„์—์„œ ์ง€์› JavaScript : ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด Scala : ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์™€ ํ•จ์ˆ˜ํ˜• ์–ธ์–ด์˜ ์žฅ์ ์„ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” JVM ๊ธฐ๋ฐ˜์˜ ๋‹ค์ค‘ ํŒจ๋Ÿฌ๋‹ค์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

์—ด๊ฑฐํ•œ ๋ฐ”์™€ ๊ฐ™์ด ์šฐ๋ฆฌ๊ฐ€ ๋ฐฐ์šฐ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์  ์„ค๊ณ„๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•œ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์—์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ณ  ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด ์œ ์—ฐํ•˜๊ฒŒ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ฐ˜๋ฉด์— ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋“ค์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค. ํ…Œ์ด๋ธ”์„ ์ค‘์‹ฌ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ณ , ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •๊ทœํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ๋ฐ์ดํ„ฐ๋Š” ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์—”ํ‹ฐํ‹ฐ, DTO ๋“ฑ์„ ๋ณ„๋„๋กœ ๋งŒ๋“ค์–ด ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์„ฑํ•ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋งคํ•‘ํ•˜๋Š” ๋ณ„๋„์˜ ์ž‘์—…์ด ํ•„์š”ํ•ด์ง„๋‹ค.

๋”ฐ๋ผ์„œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” SQL ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

SQL ์ค‘์‹ฌ์ ์ธ ๊ฐœ๋ฐœ

๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์ด ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์‹œ์Šคํ…œ์„ ๋ชจ๋‘ ๋‹ค๋ฃจ๋‹ค๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋งˆ์ฃผํ•˜๊ฒŒ ๋œ๋‹ค.


1. ์—ฐ๊ด€๊ด€๊ณ„์˜ ์ฐจ์ด

๊ฐ์ฒด์ง€ํ–ฅ์—์„œ๋Š” ๊ฐ์ฒด ๊ฐ„์˜ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ…Œ์ด๋ธ” ๊ฐ„์˜ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์™ธ๋ž˜ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ์ฐจ์ด๋กœ ์ธํ•ด ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๋งคํ•‘์ด ๋ณต์žกํ•ด์ง„๋‹ค.

2. ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜

๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋Š” ์ƒ์†, ๋‹คํ˜•์„ฑ ๋“ฑ์˜ ๊ฐœ๋…์„ ํ™œ์šฉํ•ด ์œ ์—ฐํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์œ ์—ฐ์„ฑ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์™€ ๊ฐ์ฒด ๊ฐ„์˜ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ์ฒด์˜ ํ•„๋“œ ์ค‘ ์ผ๋ถ€๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

3. ๊ฐ์ฒด-๊ด€๊ณ„ ๋งคํ•‘ ์˜ค๋ฒ„ํ—ค๋“œ

๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์—์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์— ๋งค์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ค‘๊ฐ„ ๋งคํ•‘ ๋ ˆ์ด์–ด๊ฐ€ ํ•„์š”ํ•ด์ง„๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋งŽ์€ ์˜ค๋ฒ„ํ—ค๋“œ(ํ•„์š” ์ด์ƒ์œผ๋กœ ์†Œ๋น„๋˜๋Š” ์ถ”๊ฐ€์ ์ธ ๋น„์šฉ)

4. ์„ฑ๋Šฅ ์ด์Šˆ