์‚ถ/๋ณ„์˜๋ณ„ ์ผ

[์›ํ‹ฐ๋“œ X ์ธํ”„๋Ÿฐ] Kotlin + Spring Networking Meet Up

osean 2023. 2. 20. 01:30

[Wanted X Inflearn] ๋ฉ”์ธ ๋ฐฐ๋„ˆ

์ง€๊ธˆ ์šฐ๋ฆฌ ํšŒ์‚ฌ๋Š”

ํ˜„์žฌ ํšŒ์‚ฌ์—์„œ ์šด์˜ ์ค‘์ธ ์–ด๋“œ๋ฏผ์€ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด Trimou ๋ฅผ ์ฑ„ํƒํ•ด ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ, ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ์ด Spring Boot 2.X ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์–ด ์–ด์ฉ” ์ˆ˜ ์—†์ด(?) Java 8 + Spring Boot 1.5.13 ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋“  ์„œ๋น„์Šค๊ฐ€ ์šด์˜๋˜๊ณ  ์žˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ๋„๋ฉ”์ธ์ด ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์–ด ์‰ฝ๊ฒŒ ๋ฒ„์ „์„ ์˜ฌ๋ฆด ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด์—ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋‚ด๋ถ€์ ์ธ ์ด์Šˆ๋กœ ์ธํ•ด Spring Boot 2 ๋ถ€ํ„ฐ ์ง€์›ํ•˜๋Š” Optional ์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ด ๋งค๋ฒˆ ๋ณ„๋„์˜ Nullable Check ๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์„ ํ•ญ์ƒ ๋Š๊ผˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ Kotlin ์— ๋Œ€ํ•œ ์ฃผ์ œ๊ฐ€ ์ž์ฃผ ์–ธ๊ธ‰๋˜๋‹ค ๋ณด๋‹ˆ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ๊ณ , ํ† ์ด ํ”„๋กœ์ ํŠธ๋กœ ๊ฐ€์ง€๊ณ  ๋†€๋‹ค ๋ณด๋‹ˆ Java ์—์„œ๋Š” ๋Š๋‚„ ์ˆ˜ ์—†์—ˆ๋˜ ํŽธ๋ฆฌํ•จ์ด ํฌ๊ฒŒ ๋‹ค๊ฐ€์™”๋‹ค.

  • ํ™•์žฅ ํ•จ์ˆ˜๋ฅผ ์ ๊ทน ํ™œ์šฉํ•ด ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • Java ์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์—ฌ๋ ค ๊ธฐ๋ณธ ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•ด ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Final ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜๋„์น˜ ์•Š๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” NPE ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • when ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ค‘์ฒฉ๋œ if ๋ฌธ ์Šค์ฝ”ํ”„๋ฅผ ์ค„์—ฌ ๊ฐ€๋…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์ƒ์„ฑ์ž ์•„๊ทœ๋จผํŠธ์— ๊ธฐ๋ณธ ๊ฐ’์„ ํ• ๋‹นํ•ด ์ดˆ๊ธฐํ™”ํ•˜๊ฑฐ๋‚˜, Builder ํŒจํ„ด๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด Lombok ์˜ @Builder ๋ณด๋” ๋” ์œ ์—ฐํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋„ˆ๋ฌด ์‹ ๋‚˜์„œ ์˜จ๋™๋„ค์— ์ž๋ž‘ํ–ˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ๋‚ด๊ฐ€ ๊ฒฝํ—˜ํ•œ ๊ฒƒ๋“ค์„ ์šฐ๋ฆฌ ํŒ€์›๋“ค๋„ ํ•จ๊ป˜ ๋Š๋ผ๊ณ  ์„ฑ์žฅํ–ˆ์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žŒ์ด ์ƒ๊ฒจ ์‚ฌ๋‚ด ์ฐจ๊ธฐ ํ”„๋กœ์ ํŠธ์— Kotlin + Spring Boot ๋ฅผ ๋„์ž…์„ ์ œ์•ˆํ–ˆ๊ณ , ํŒ€์›๋“ค์€ ํ”์พŒํžˆ ๋™์˜ํ•ด์ฃผ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ฌํ•ด ์ดˆ๋ถ€ํ„ฐ Kotlin + Spring Boot 3.0.2 ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด๋‹ค.

ํ•˜์ง€๋งŒ ํŒ€์›๋“ค ๋ชจ๋‘๊ฐ€ Kotlin ์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋ผ ์–ด๋Š ๋ฌธ์ œ๋ฅผ ๋งˆ์ฃผํ–ˆ์„ ๋•Œ ์ด์ „๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ์˜€๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์ด๋ฏธ Kotlin + Spring ์„ ๋„์ž…ํ•œ ํšŒ์‚ฌ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜๋Š”์ง€, ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…์€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•˜๋Š”์ง€ ๋“ฑ ์„ ๋ฐฐ๋“ค์˜ ๋„์›€์ด ๊ฐ„์ ˆํžˆ ํ•„์š”ํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ ์™€์ค‘์— ํ•˜๋Š˜์ด ๋‚˜๋ฅผ ๋•๋Š”์ง€ ๋•Œ๋งˆ์นจ ์›ํ‹ฐ๋“œ X ์ธํ”„๋Ÿฐ์—์„œ ๊ณต๋™์œผ๋กœ ์ฃผ์ตœํ•˜๋Š” ๋„คํŠธ์›Œํ‚น ๋ฐ‹์—… ํ–‰์‚ฌ๊ฐ€ ์—ด๋ฆฐ๋‹ค๋Š” ์†Œ์‹์„ ๋“ฃ๊ณ  ๋ฐ‘์ ธ์•ผ ๋ณธ์ „์ด๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ ‘์ˆ˜ํ–ˆ๋Š”๋ฐ, ์ด๊ฒŒ ์›ฌ๊ฑธ. ๋œ์ปฅ ๋‹น์ฒจ์ด ๋˜์–ด ๋ฒ„๋ ธ๋‹ค.


์ฒซ ๋„คํŠธ์›Œํ‚น ๋ฐ‹์—…

๊ฐœ๋ฐœ์ž๋กœ ์ปค๋ฆฌ์–ด๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด์„œ ์ฒ˜์Œ ๊ฐ€์ง€๋Š” ์™ธ๋ถ€ ํ–‰์‚ฌ๋ผ ์„ค๋ ˆ๊ธฐ๋„ ํ•˜๋ฉด์„œ ํ•œํŽธ์œผ๋กœ๋Š” ๊ธด์žฅ๋˜๊ธฐ๋„ ํ–ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์•ˆ๋‚ด ๋ฉ”์ผ์—์„œ ๋„คํŠธ์›Œํ‚น ์‹œ๊ฐ„์ด ์žˆ์„ ์˜ˆ์ •์ด๋ผ ๋ช…ํ•จ์„ ๋‘๋‘‘์ด ์ฑ™๊ฒจ ์˜ค๋ผ๋Š” ๋‚ด์šฉ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ฒ˜์Œ ๋ฐฉ๋ฌธํ•ด๋ณด๋Š” ๋งˆ๋ฃจ180, ๋‚ด๋ถ€ ํ–‰์‚ฌ์žฅ

์•„๋ฌด๋ฆฌ E ์™€ I ์‚ฌ์ด ๊ทธ ์–ด๋”˜๊ฐ€์— ์œ„์น˜ํ•œ MBTI ๋ผ๊ณ ๋Š” ํ•ด๋„ ์ฒœ์„ฑ์€ ์–ด์ฉ” ์ˆ˜ ์—†๋Š” ๊ฑธ๊นŒ? ํ–‰์‚ฌ์žฅ์— ๋„์ฐฉํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋งˆ์Œ์†์œผ๋กœ ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค์ด๋‚˜ ํ–‰์‚ฌ ๊ด€๊ณ„์ž ๋ถ„์„ ๋งŒ๋‚˜๋ฉด ์—ฌ๋Ÿฌ ์ผ€์ด์Šค์˜ ์ธ์‚ฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ๋Œ๋ ธ๋‹ค. ๊ทธ๋งŒํผ ์ฒซ ํ–‰์‚ฌ ์ฐธ์—ฌ๋ผ ๊ธด์žฅ๋๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํ–‰์‚ฌ ๋‹น์ผ, ์ƒ๊ฐ๋ณด๋‹ค ํ–‰์‚ฌ์žฅ์— ์ผ์ฐ ๋„์ฐฉํ–ˆ๋‹ค. ์ด๋ฆ„ํ‘œ์™€ ๊ฐ์ข… ๊ธฐ๋…ํ’ˆ๋“ค์„ ์ˆ˜๋ นํ•œ ๋’ค ์–ด๋””์— ์•‰์œผ๋ฉด ์ข‹์„์ง€ ๋ฌผ์ƒ‰ํ–ˆ๋‹ค. ํ•™๋ถ€์ƒ ์‹œ์ ˆ ํ•ญ์ƒ ๋’ค์—๋งŒ ์•‰์•˜๋˜ ๊ธฐ์–ต์ด ํ›„ํšŒ๋กœ ๋‚จ์•˜๊ธฐ์— ์ด๋ฒˆ์—๋Š” ํฐ ์šฉ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์•ž์ž๋ฆฌ์— ์•‰์•„์„œ ์ฐธ์—ฌํ•ด ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

์ทจํ–ฅ ์ €๊ฒฉ ๊ธฐ๋…ํ’ˆ๋“ค!

์ž๋ฆฌ์— ์•‰์•„ ์ฑ™๊ฒจ ๋ฐ›์€ ๊ธฐ๋…ํ’ˆ์„ ์‚ดํŽด๋ดค๋Š”๋ฐ ๋ชจ๋‘ ์ทจํ–ฅ ์ €๊ฒฉํ•˜๋Š” ์•„์ดํ…œ๋“ค๋กœ ์ฑ„์›Œ์ ธ ์žˆ์–ด ๊ธฐ๋ถ„์ด ์ข‹์•˜๋‹ค. ํŠนํžˆ ์ธํ”„๋Ÿฐ ์ฟ ํฐ..!
์ธํ”„๋Ÿฐ์—์„œ ๊ฐ€๊ฒฉ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ๋ˆˆ๋ฌผ์„ ๋จธ๊ธˆ๊ณ  ๋‹ค์Œ์„ ๊ธฐ์•ฝํ•ด์•ผ ํ•˜๋Š” ๊ฐ•์˜๋“ค์ด ๋งŽ์•˜๋Š”๋ฐ ๊ทธ ์นœ๊ตฌ๋“ค์„ ๋‹ค์‹œ ๋ฐ๋ ค์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค. (๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!)


ํ–‰์‚ฌ ์‹œ์ž‘์„ ์•Œ๋ฆฌ๋Š” ์•„์ด์Šค ๋ธŒ๋ ˆ์ดํ‚น

ํ–‰์‚ฌ ๋‹ด๋‹น์ž ๋ถ„์˜ ๋Šฅ์ˆ˜๋Šฅ๋ž€ํ•œ ์ง„ํ–‰์— ๊ฐํƒ„์„ ๊ธˆ์น˜ ๋ชปํ–ˆ๋‹ค.

์‚ฌ์‹ค ๊ฐœ๋ฐœ์ž๋Š” I ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ผ๊ฑฐ๋ผ๊ณ  ๋‚˜๋Š” ๋ฏฟ์–ด ์˜์‹ฌ์น˜ ์•Š๋Š”๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์„œ๋กœ ์–ด์ƒ‰ํ•œ ๋ถ„์œ„๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ—ค์ณ ๋‚˜๊ฐˆ๊นŒ ๊ฑฑ์ •์ด ์ด๋งŒ์ €๋งŒ์ด ์•„๋‹ˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฑฑ์ •์„ ์•ˆ๊ณ  ๋ฐ•์ˆ˜ ์†Œ๋ฆฌ์™€ ํ•จ๊ป˜ ํ–‰์‚ฌ๋ฅผ ์‹œ์ž‘ ํ–ˆ๋Š”๋ฐ, ๊ฑฑ์ •๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์•„์ด์Šค ๋ธŒ๋ ˆ์ดํ‚น ์‹œ๊ฐ„์ด ์ •๋ง ์žฌ๋ฐŒ์—ˆ๊ณ , ์ƒ๊ฐ๋ณด๋‹ค ๋‹ค๋“ค ์ ๊ทน์ ์ด์…จ๋‹ค! ๊ทธ ๋•๋ถ„์ธ์ง€ ๋ถ™๋“ค๊ณ  ์žˆ๋˜ ๊ธด์žฅ๋„ ๋งŽ์ด ๋‚ด๋ ค ๋†“์„ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์กฐ๊ธˆ ๋” ํŽธ์•ˆํ•œ ๋งˆ์Œ์œผ๋กœ ํ–‰์‚ฌ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.


์ธ์ƒ ๊นŠ์—ˆ๋˜ ๋ฐœํ‘œ

์‚ด์•„๋‚จ์•„์•ผ ํ•˜๋‹ˆ๊นŒ, ์ฝ”ํ‹€๋ฆฌ

๋จผ์ € ๋‘๋“ค๋ฆฐ CTO ์ด์‹  ์„œ๋™๋ฏผ๋‹˜์˜ [์‚ด์•„๋‚จ์•„์•ผ ํ•˜๋‹ˆ๊นŒ, ์ฝ”ํ‹€๋ฆฐ] ์„ธ์…˜์œผ๋กœ ๋ณธ ํ–‰์‚ฌ์˜ ๋ง‰์„ ์—ด์—ˆ๋‹ค.
๋‘๋“ค๋ฆฐ์ด ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š”์ง€, ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ผํ•˜๋Š”์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ์…จ๊ณ , ์ดํ›„๋กœ ํ”ผ๋ด‡ํŒ… ์ „ ๋‘๋“ค๋ฆฐ์ด ๋‹น๋ฉดํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ŒํŒŒ๊ตฌ๋ฅผ ์ฐพ์•„ ๋‚˜์„ฐ๋Š”์ง€ ๋‘๋“ค๋ฆฐ์˜ ๊ณ ๊ตฐ๋ถ„ํˆฌ ๋ชจํ—˜๋‹ด์„ ๋“ค๋ ค์ฃผ์…จ๋‹ค.

ํ”ผ๋ด‡ํŒ…์„ ์œ„ํ•ด ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋‚˜ ๋‹ค์–‘ํ•œ ๋ ˆํผ๋Ÿฐ์Šค์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ๋กœ ์‰ฝ๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ ๋“ฑ ์—ฌ๋Ÿฌ ์ ์—์„œ ๊ณต๊ฐ์ด ๋งŽ์ด ๋˜์—ˆ๋‹ค. ์•„์ง 2๋…„ ์กฐ๊ธˆ ๋„˜์€ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์ด์ง€๋งŒ CTO ์—†์ด ํŒ€์„ ๊พธ๋ ค๊ฐ€๊ณ  ์žˆ๋‹ค ๋ณด๋‹ˆ ๋”์šฑ ๋ง˜์— ์™€๋‹ฟ์•˜๋‹ค.

๊ทธ๋ž˜์„œ ํ•ด๋‹น ์„ธ์…˜์—์„œ ๋‘๋“ค๋ฆฐ ํŒ€์ด Kotlin + Spring ์œผ๋กœ ๋„˜์–ด๊ฐ€๋ฉด์„œ ๋Š๊ผˆ๋˜ ์žฅ์ ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋ง์”€ํ•ด ์ฃผ์…จ๋‹ค.

  • Data Class ํ™œ์šฉ
  • Extension Functions ์„ ํ†ตํ•œ ๊ณตํ†ต ์ •์ฑ… ๊ด€๋ฆฌ
  • Kotlin Style ์ฝ”๋“œ ์ž‘์„ฑ
  • Code Quality ํ–ฅ์ƒ
  • ์œ ์ง€๋ณด์ˆ˜์„ฑ ์ฆ๊ฐ€
  • ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ

ํ˜ผ์ž ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉฐ ๋Š๋‚€ ์ ๊ณผ ๋Œ€๋ถ€๋ถ„ ๋น„์Šทํ–ˆ๊ณ , Python ์€ ์ž˜ ๋ชจ๋ฅด์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ์–ด๋–ค ์ ๋“ค์ด ๋งŒ์กฑ์Šค๋Ÿฌ์› ๋Š”์ง€ ๋ฐœํ‘œํ•ด ์ฃผ์‹œ๋Š” ๋ชจ์Šต์„ ๋ณด๋ฉฐ ์šฐ๋ฆฌ ํŒ€์— Kotlin + Spring ๋„์ž…ํ•˜๊ธธ ์ฐธ ์ž˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ , ์„ธ์…˜์„ ๋“ค์€ ํ›„ Kotlin ๋„์ž…์„ ๊ธ์ •์ ์œผ๋กœ ๋ฐ›์•„๋“ค์ธ ํŒ€์›๋“ค์ด ๊ณ ๋ง™๊ธฐ๋„ ํ•˜๋ฉด์„œ ์šฐ๋ฆฌ ํŒ€์ด ๋”์šฑ๋” ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋Š” ๋ฏฟ์Œ์ด ์ƒ๊ฒผ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ž˜ ๋งˆ๋ฌด๋ฆฌํ•ด๋‚ด์•ผ์ง€. ์•”!


๋„คํŠธ์›Œํ‚น

Kotlin ์„ ๋ฐฐ์™€ ํ›„๋ฐฐ๋กœ ํŒ€์„ ๋‚˜๋ˆ„์–ด ์„ž์–ด ์—ฌ๋Ÿฌ ์ฃผ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค.
์šด์ด ์ข‹์•˜๋Š”์ง€ ์ฒ˜์Œ์— ์•‰์€์ž๋ฆฌ์—์„œ ๋ตŒ ์„ ๋ฐฐ๋‹˜๋“ค์ด ๋Œ€ํ™”๋ฅผ ์ž˜ ์ด๋Œ์–ด ์ฃผ์…จ๊ณ , ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฒฝํ—˜ํ•˜๊ธฐ ํž˜๋“  ์ด์•ผ๊ธฐ๋“ค๋„ ํ•ด์ฃผ์…”์„œ ๋งŽ์€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋„ ๋ฒ ํ’€ ์ค„ ์•„๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

๋„คํŠธ์›Œํ‚น์—์„œ ๊ฐ€์žฅ ์ข‹์•˜๋˜ ์ ์€, ์„œ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ Kotlin + Spring ์„ ๋„์ž…ํ•˜๋ฉฐ ๊ฒช์€ ์ด์•ผ๊ธฐ๋“ค์„ ๋“ค์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ์ ์ด๋‹ค.
ํ•œ ์šฐ๋ฌผ์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ๋Š” ๋‚˜ ๊ฐ™์€ ์šฐ๋ฌผ ์•ˆ ๊ฐœ๊ตฌ๋ฆฌ์—๊ฒŒ ๋” ๋„“์€ ์„ธ์ƒ์ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ซ๊ฒŒ ํ•ด ์ค€ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ํšŒ์‚ฌ์—์„œ๋Š” ์‚ฌ์ˆ˜ ์—†์ด ๋Œ€๋ถ€๋ถ„ ํ˜ผ์ž์„œ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์ ๋“ค์ด ๋งŽ์€ ์–ด๋ ค์›€์œผ๋กœ ๋‹ค๊ฐ€์™”๊ธฐ์— ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž ์„ ๋ฐฐ๋‹˜๋“ค์€ ์–ด๋–ป๊ฒŒ ๋ฌธ์ œ๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ  ํ•ด๊ฒฐํ–ˆ์„๊นŒ ๊ถ๊ธˆํ–ˆ๋Š”๋ฐ ๊ทธ๋Ÿฐ ๊ฐ„์ง€๋Ÿฌ์šด ๋ถ€๋ถ„๋“ค์„ ์†์‹œ์›ํžˆ ๊ธ์„ ์ˆ˜ ์žˆ์—ˆ๋˜ ์‹œ๊ฐ„์ด๋ผ ์ฐธ ์ข‹์•˜๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฐ™์€ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค๊ณผ ํ•จ๊ป˜ ์ธ์‚ฌ ๋‚˜๋ˆ„๋Š” ์‹œ๊ฐ„๋„ ์ข‹์•˜๋‹ค. ์—ฌ๋Ÿฌ ํšŒ์‚ฌ์—์„œ ๊ทผ๋ฌด ์ค‘์ด์‹  ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์„ ๋งŒ๋‚˜๋ฉด์„œ ์š”์ฆ˜ ์–ด๋–ค ๊ฒƒ๋“ค์ด ๊ณ ๋ฏผ์ธ์ง€, ๊ทธ ๊ณ ๋ฏผ์„ ์–ด๋–ป๊ฒŒ ํ—ค์ณ๋‚˜๊ฐ€๊ณ  ์žˆ๋Š”์ง€ ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์œผ๋ฉด์„œ ๋งŽ์€ ์ž๊ทน์ด ๋˜์—ˆ๊ณ  ๋‚˜ ๋˜ํ•œ ๊พธ์ค€ํžˆ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด์•ผ์ง€ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋Œ€ํ™”์˜€๋‹ค.


๋งˆ์น˜๋ฉฐ

์ฒซ ํ–‰์‚ฌ๋ผ ๊ธด์žฅ์„ ๋งŽ์ด ํ–ˆ์ง€๋งŒ, ๊ทธ๋Ÿผ์—๋„ ์ž˜ ์ฆ๊ธฐ๊ณ  ์™”๊ณ  ์ƒ๊ฐ๋ณด๋‹ค ์ฃผ๋„์ ์œผ๋กœ ๋Œ€ํ™”๋ฅผ ์ด๋ˆ ๋‚˜ ์ž์‹ ์ด ์กฐ๊ธˆ ๊ธฐํŠนํ•˜๋‹ค๊ณ  ๋Š๋‚€๋‹ค.
์ฒ˜์Œ๋ณด๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ์ ๊ณผ ๊ฝค๋‚˜ E ์„ฑํ–ฅ์ด ๊ฐ•ํ•œ ๋‚ด ๋ชจ์Šต์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋œ ์ ์ด ๋œป๋ฐ–์˜ ์ˆ˜ํ™•์ด์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์–ธ์ œ ๋‹ค์‹œ ์ด๋Ÿฐ ํ–‰์‚ฌ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์„์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊ผญ ์ด๋Ÿฐ ๊ณต์‹์ ์ธ ํ–‰์‚ฌ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ๊ฐœ๋ฐœ์ž ๋ชจ์ž„์ด ์žˆ์œผ๋ฉด ์ž์ฃผ ๋‚˜๊ฐ€์„œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ•˜๋Š” ๊ฒƒ์ด ์งˆ ์ข‹์€ ์„ฑ์žฅ์„ ๊พ€ํ•  ์ˆ˜ ์žˆ๊ฒ ๊ตฌ๋‚˜ ๊นจ๋‹ซ๊ฒŒ ๋œ ์‹œ๊ฐ„์ด์—ˆ๋‹ค. ์ด๋ฒˆ ๊ฒฝํ—˜์„ ๋ฐœํŒ ์‚ผ์•„ ์•ž์œผ๋กœ ๋” ์„ฑ์žฅํ•˜๋Š” ๋‚ด๊ฐ€ ๋˜์–ด์•ผ์ง€!

๋์œผ๋กœ ๋Œ€ํ™” ๋‚˜๋ˆˆ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค๊ณผ ํ–‰์‚ฌ ๋‹ด๋‹น์ž๋ถ„๋“ค, ํ–‰์‚ฌ๋ฅผ ์ฃผ์ตœํ•œ ์›ํ‹ฐ๋“œ์™€ ์ธํ”„๋Ÿฐ์—๊ฒŒ ์‹ฌ์‹ฌํ•œ ๊ฐ์‚ฌ๋ฅผ ์ „ํ•œ๋‹ค! 

'์‚ถ > ๋ณ„์˜๋ณ„ ์ผ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์•„์ด๋“ค๋‚˜๋ผ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํšŒ๊ณ   (0) 2023.03.05
2022  (0) 2023.01.15
2021  (1) 2022.01.02