Skip to content

Backend guide

EunHyo Park edited this page Jun 11, 2025 · 1 revision

๐Ÿ› ๏ธ ๋ฐฑ์—”๋“œ ๊ฐ€์ด๋“œ

๐Ÿงฑ Build ํ™˜๊ฒฝ

Gradle + Spring Boot + Java 21

Spring Boot๋Š” ๋น ๋ฅธ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋ฉฐ, Gradle์€ ์˜์กด์„ฑ ๊ด€๋ฆฌ์™€ ๋นŒ๋“œ ์ž๋™ํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” Java 21๊ณผ Spring Boot 3.2.5, MySQL, JWT, OpenFeign, Kakao OAuth, OpenAI API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • Build Tool: Gradle (Groovy DSL)
  • JDK Version: Java 21 (java.toolchain.languageVersion)
  • Framework: Spring Boot 3.2.5
  • Dependency Management: io.spring.dependency-management, Spring Cloud BOM (2023.0.1)
  • Database: MySQL (๋กœ์ปฌ 13306 ํฌํŠธ)
  • ORM: Spring Data JPA + Hibernate (ddl-auto: update, MySQLDialect)
  • OAuth: Kakao Login ์ง€์› (application.yml์— client-id ๋ฐ redirect-uri ์„ค์ •)
  • Security: Spring Security + JWT ์ธ์ฆ (jjwt 0.11.5)
  • API ์—ฐ๋™: OpenFeign, OpenAI API ์—ฐ๋™
  • ํ…Œ์ŠคํŠธ ๋„๊ตฌ: JUnit + Spring Security Test
  • ๋กœ์ปฌ ๊ฐœ๋ฐœ ์ง€์›: H2 ์ธ๋ฉ”๋ชจ๋ฆฌ DB, application-SECRET-KEY.properties๋ฅผ ํ†ตํ•œ profile ๋ถ„๊ธฐ

๐Ÿ›  ์„ค์ • ํŒŒ์ผ ์ •๋ฆฌ

  1. application.yml
  • DB ์ ‘์† ์ •๋ณด: MySQL, ํฌํŠธ 13306
  • ํ”„๋กœํŒŒ์ผ ๋ถ„๋ฆฌ: SECRET-KEY ํŒŒ์ผ์—์„œ ๋ฏผ๊ฐ ์ •๋ณด ์ฃผ์ž…
  • JWT ํ‚ค, Kakao OAuth, OpenAI API ํ‚ค ํฌํ•จ
  1. application-SECRET-KEY.properties
  • .gitignore๋กœ ๊ด€๋ฆฌ
  • ${database-password}, ${jwt.secret} ๋“ฑ ์™ธ๋ถ€ ๋ณ€์ˆ˜ ์„ค์ •

๐Ÿ“‚ ์ฃผ์š” Gradle ์Šคํฌ๋ฆฝํŠธ (build.gradle)

๋ช…๋ น์–ด ์„ค๋ช…
./gradlew build ํ”„๋กœ์ ํŠธ ์ „์ฒด ๋นŒ๋“œ
./gradlew test ํ…Œ์ŠคํŠธ ์‹คํ–‰
java -jar ... ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ JAR ์‹คํ–‰