๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Today I Learned(TIL)/์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 2

by carrot0911 2024. 11. 30.

์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ
  • ๊ธฐ์ดˆ Spring ๊ฐ•์˜_2์ฃผ์ฐจ

์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ

Postman

  • ๊ฐœ๋ฐœ์ž๋“ค์ด HTTP ์š”์ฒญ์„ ๋งŒ๋“ค๊ณ , ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ์˜ ์‘๋‹ต์„ ํ™•์ธํ•˜๋ฉฐ, API์˜ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ

  • ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด๋‹ค.
  • ์ผํ•˜๊ธฐ ์œ„ํ•œ ํ‹€์„ ์ œ๊ณตํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ํ•ด๋‹น ํ‹€์—์„œ ์ผ์„ ํ•ด์•ผ ํ•œ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ํด๋ž˜์Šค, ํ•จ์ˆ˜ ๋“ฑ์„ ๋ชจ์•„ ๋†“์€ ์ฝ”๋“œ์˜ ๋ชจ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ๋„์„œ๊ด€์— ์žˆ๋Š” ์ฑ…์ฒ˜๋Ÿผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค ๋•Œ ํ•„์š”์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋Š” ์ผ์ข…์˜ ๋„๊ตฌ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Annotation

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

Lombok

  • ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ค„์—ฌ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ž๋™์œผ๋กœ ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค.
  • ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ์ฃผ๋กœ ์ปดํŒŒ์ผ ์‹œ์ ์— ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณ€ํ™˜ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.
โœ”๏ธ ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ(Bolierplate Code)

getter/setter ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž, toString ๋ฉ”์„œ๋“œ ๋“ฑ๊ณผ ๊ฐ™์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž‘์„ฑ๋˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

Spring Framework

  • ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
    • ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ : ๋Œ€๊ทœ๋ชจ๋กœ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‹ค.
  • Java ์–ธ์–ด์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์ธ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์˜ ํŠน์ง•์„ ์‚ด๋ ค๋‚ธ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.
    • ์บก์Šํ™”
    • ์ƒ์†
    • ์ถ”์ƒํ™”
    • ๋‹คํ˜•์„ฑ

Spring Boot

  • Spring Framework๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ๊ฐ„ํŽธํ•˜๊ณ  ์‹ ์†ํ•˜๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค.

Gradle

  • Java์™€ ์œ ์‚ฌํ•œ ๋ฌธ๋ฒ• ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ Groovy ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋นŒ๋“œ(Bulid)ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ์ด๋‹ค.

build.gradle

  • Groovy ๊ธฐ๋ฐ˜ ์–ธ์–ด์˜ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋กœ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•˜๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์˜ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

Java ์›น ๊ธฐ์ˆ ์˜ ์—ญ์‚ฌ

  • Java ์›น ๊ธฐ์ˆ ์€ ์„œ๋ธ”๋ฆฟ๊ณผ JSP๋กœ ์‹œ์ž‘ํ•ด MVC ํŒจํ„ด์„ ๊ฑฐ์ณ MVC ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋„์ž…์œผ๋กœ ๊ตฌ์กฐํ™”๋˜์—ˆ์œผ๋ฉฐ, ์ดํ›„ ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์˜ Spring MVC์™€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์— ์ตœ์ ํ™”๋œ Spring WebFlux๋กœ ๋ฐœ์ „ํ•ด ์™”๋‹ค.

 

์˜ค๋Š˜ ํ•˜๋ฃจ ์ •๋ฆฌ โœ๏ธ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋„ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๊ณ , ์Šคํ”„๋ง ๊ฐ•์˜ ๋‚ด์šฉ๋„ ์–ด๋ ต์ง€ ์•Š์•„์„œ ๊ธˆ๋ฐฉ๊ธˆ๋ฐฉ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ•˜๋ฃจ์˜€๋‹ค.

์•„์ง ์Šคํ”„๋ง ๊ณผ์ œ์— ๋Œ€ํ•œ ๋‘๋ ค์›€์€ ์—ฌ์ „ํžˆ ํฌ์ง€๋งŒ, ์‹ค์Šต์„ ๋”ฐ๋ผ ํ•˜๊ณ  ๊ฐœ๋…๋“ค์„ ์—ด์‹ฌํžˆ ์ตํžŒ๋‹ค๋ฉด... ๋ฌด์‚ฌํžˆ ๋๋‚ผ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ...๋ผ๊ณ  ์•„์ง์€ ์ƒ๊ฐํ•ด ๋ณธ๋‹ค..

์ฃผ๋ง์—๋„ ์ผ๋‹จ ๊ณต๋ถ€๋ฅผ ํ•œ ๊ฒƒ์— ๋งŒ์กฑํ•˜๊ณ  ๋‚ด์ผ๋„ ์ปจ๋””์…˜ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋ฉด์„œ ๊ณต๋ถ€๋ฅผ ์ด์–ด๋‚˜๊ฐ€์•ผ๊ฒ ๋‹ค!

๋‚ด์ผ ๊ณ„ํš โฐ

  • ์ƒ์†, ๋‹คํ˜•์„ฑ ์™„๋ฒฝ ์ดํ•ดํ•˜๊ธฐ