Skip to content

๐Ÿ› ๏ธ [BE] ๊ธฐ์ˆ  ์Šคํƒ

lemone edited this page Jul 31, 2024 · 6 revisions

๐Ÿ”Ž ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • JAVA 17
  • Gradle 7.xx
  • Spring Boot 3.3.1

๋ฉ”์ธ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐ€์žฅ ๋ฒ”์šฉ์ ์ด๋ฉด์„œ ๊ตฌ์„ฑ์› ๋ชจ๋‘๊ฐ€ ์ต์ˆ™ํ•œ JAVA & Spring Boot๋กœ ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • JAVA ์ด์ „ ๋ฒ„์ „๋ณด๋‹ค ์ƒ์‚ฐ์„ฑ์ด ๋†’์€ ๋ฌธ๋ฒ•๋“ค์ด ๋‹ค์ˆ˜ ์ถ”๊ฐ€๋œ 17๋กœ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • 21์˜ ๊ฒฝ์šฐ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ณผํ•˜๋‹ค๋Š” ํŒ๋‹จ์ด ๋“ค์—ˆ๊ณ , ํŒ€์›๋“ค์˜ ๋Ÿฌ๋‹์ปค๋ธŒ๋„ ์กด์žฌํ•˜์˜€๊ธฐ์— ์„ ํƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ๊ธฐํƒ€ ๊ธฐ์ˆ  ๋ชจ๋‘ ํŒ€์›๋“ค์—๊ฒŒ ๊ฐ€์žฅ ์ต์ˆ™ํ•œ Spring Boot์™€ Gradle๋กœ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ”Ž ์„ธ๋ถ€ ๊ธฐ์ˆ  ์Šคํƒ

Spring(Boot)

  • Web MVC
  • Data JPA
  • Validation

ํŽธ๋ฆฌํ•˜๊ณ  ๊ฐ„ํŽธํ•œ DB ์ ‘๊ทผ๊ณผ OOP ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ์–ด Spring Data JPA๋ฅผ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ๋“ฑ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ DB๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํŽธ๋ฆฌํ•˜๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ DTO๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด Spring Validation์„ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ƒ์‚ฐ์„ฑ

  • Lombok
  • Swagger

์ฝ”๋“œ ์ƒ์‚ฐ์„ฑ ์ฆ๋Œ€์™€ ๊ฐ€๋…์„ฑ ์ฆ๊ฐ€๋ฅผ ์œ„ํ•ด Lombok์„ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์›น ํด๋ผ์ด์–ธํŠธ์—์„œ ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๊น”๋”ํ•œ UI๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ๋‹ค๋ฅธ ๋ฌธ์„œํ™” ๋„๊ตฌ์— ๋น„ํ•ด ์ƒ์‚ฐ์„ฑ์ด ๋†’์€ Swagger๋ฅผ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋ณด์•ˆ

  • JJWT

JWT๊ธฐ๋ฐ˜ ์ธ์ฆ/์ธ๊ฐ€์— ์žˆ์–ด ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ค๋‹ˆ๋‹ค. ๋˜ํ•œ ํ™œ๋ฐœํ•œ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์ฃผ๊ธฐ์ ์ธ ๋ฆด๋ฆฌ์ฆˆ๋กœ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์‹ ๋ขฐ์„ฑ์„ ๊ฐ€์งˆ์ˆ˜ ์žˆ์–ด JJWT๋ฅผ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ”Ž ํ…Œ์ŠคํŠธ ๊ธฐ์ˆ  ์Šคํƒ

  • JUnit & AssertJ
  • RestAssured

E2E ํ…Œ์ŠคํŠธ์— ์žˆ์–ด ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ด์ค๋‹ˆ๋‹ค. ๋˜ํ•œ BDDํŒจํ„ด์œผ๋กœ ๊ฐ€๋…์„ฑ ์ข‹์€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ RestAssured ๊ธฐ์ˆ ์„ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ”Ž DB

  • h2 memory DB

๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ์ธ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋น ๋ฅธ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ GUI๋ฅผ ์›น ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๊ณตํ•˜์—ฌ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” h2๋ฅผ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • MySQL

๐Ÿ€ ์ฝ”๋”ฉํ•ด๋“€์˜ค

์ „์ฒด

์ •๋ณด

BE

FE

๊ธฐ์ˆ 

์ปจ๋ฒค์…˜

ํ…Œ์ŠคํŠธ

์„ฑ๋Šฅ ๊ฐœ์„  & ์ ‘๊ทผ์„ฑ ๊ฐœ์„  ๋ฆฌํฌํŠธ

์ธํ”„๋ผ

Clone this wiki locally