Project

[Project/4th] 1. ์„œ๋ฒ„ ์„ค๊ณ„ํ•˜๊ธฐ

giraffe_ 2024. 3. 18. 18:14

 ์ตœ๊ทผ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ์— ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ํ•ฉ๋ฅ˜ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์•ฑ์„ ์•ฑ์Šคํ† ์–ด์— ์˜ฌ๋ ค ์‹ค์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์„ ํ”„๋กœ์ ํŠธ์ด๋‹ค.

์ด๋ฏธ React Native๋กœ ์„œ๋น„์Šค์˜ MVP ๊ฐœ๋ฐœ์ด ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์ธ๋ฐ, ๋‚˜๋Š” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 ํ•ฉ๋ฅ˜ํ•˜๊ธฐ์— ์•ž์„œ ๋‚˜์ค‘์— ํ”„๋ก ํŠธ์—์„œ DB ์—ฐ๊ฒฐํ•˜๋Š” ๋ถ€๋ถ„์„ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ•ด์„œ, React์˜ ๊ธฐ์ดˆ ๋ฌธ๋ฒ•๊ณผ React Hook์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋ฒˆ์ฃผ๋ถ€ํ„ฐ ๋ฐฑ์—”๋“œ ํŒ€์—์„œ ์„œ๋ฒ„ ์„ค๊ณ„ ๋‹จ๊ณ„๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.

 

 

 

 

 

์˜ˆ์ƒ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜

 

 

 

 

 

 

์ธํ”„๋ผ

  • ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด AWS, GCP์ด ์žˆ์—ˆ๋‹ค. GCP๊ฐ€ AWS๋ณด๋‹ค ๋น„์šฉ์ด ์‹ธ์ง€๋งŒ, ์ด์ „์— AWS๋กœ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์„ฑํ–ˆ๋˜ ๊ฒฝํ—˜๋„ ์žˆ๊ณ , ์ต์ˆ™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— AWS๋ฅผ ์“ฐ๊ธฐ๋กœ ํ–ˆ๋‹ค.
  • ๋‹ค๋งŒ, AWS ์š”๊ธˆ์— ๋Œ€ํ•ด ๋” ์•Œ์•„๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์ผ๋‹จ ๋กœ์ปฌ๋กœ ๊ฐœ๋ฐœํ•˜๊ณ , ๋ฐฐํฌ๋Š” ๋‚˜์ค‘์— ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์— ๊ตฌ๋งคํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
  • ์„œ๋ฒ„ ๋นŒ๋“œ, ๋ฐฐํฌ์— Docker๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

 

 

์„œ๋ฒ„

  • ๋‚˜์—๊ฒŒ ์ต์ˆ™ํ•˜๊ณ , ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” Spring Boot๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
  • Spring Boot 3.x ๋ฒ„์ „๊ณผ Spring Boot 2.x ์ค‘์—๋Š” Spring Boot 3.x์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
    • Spring Boot 3.x ๋ฒ„์ „์ด ์ตœ์‹ ์ด๋ผ ์ผ๋ถ€ ํŒจํ‚ค์ง€, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— Deprecated ๋˜๋Š” ๊ฒŒ ์žˆ๊ณ , ์•„์ง ์ธํ„ฐ๋„ท์— ์ž๋ฃŒ๊ฐ€ ๋งŽ์ง€ ์•Š๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ๋Š” ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์•˜๋‹ค.
    • Spring Boot 2.x ๋ฒ„์ „์€ ์ ์  ์ง€์›์ด ๋Š๊ธฐ๊ณ  ์žˆ๊ณ , ์ ์  ๋ฒ„์ „์„ ์˜ฌ๋ ค๊ฐ€๋ฉฐ ๋ฆฌํŒฉํ† ๋ง์„ ํ•˜๊ณ  ์žˆ๋Š” ์ถ”์„ธ๋ผ ํ•ด์„œ ๊ธธ๊ฒŒ ๋ณด๋ฉด ์ƒˆ๋กœ 3.x๋กœ ๊ตฌ์ถ•ํ•˜๋Š”๊ฒŒ ๋‚ซ๋‹ค.

 

  • ์„œ๋ฒ„์—์„œ ํ†ต์‹ ์€ HTTP / REST API๋กœ ํ•˜๊ธฐ๋กœ ํ–ˆ๊ณ , ํ”„๋ก ํŠธ์—”๋“œ์—์„œ๋Š” Axios๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ๊ธฐ์กด์˜ ์„œ๋น„์Šค๋Š” Firebase์— ์ €์žฅ์ด ๋˜๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ์„œ๋ฒ„์— ์˜๊ตฌ ์ €์žฅ์„ ์œ„ํ•ด RDBMS๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์ด๋‹ค.
  • MySQL์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋ฌด๋ฃŒ์ด๊ณ , ์ต์ˆ™ํ•˜๊ณ , ๋น ๋ฅด๊ฒŒ DB๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์ข‹๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

 

์Šคํ”„๋ง ์„œ๋ฒ„ ์ƒ์„ธ

  • Spring Boot 3.2, Java 17(Amazon Corretto 17)
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : Spring MVC, Spring Data JPA, Lombok

 

 

Spring Boot 3๋ถ€ํ„ฐ๋Š” Java17์„ ์จ์•ผ ํ•œ๋‹ค. JDK๋Š” ๋ผ์ด์„ผ์Šค ๋ฌธ์ œ๋กœ๋ถ€ํ„ฐ ์ž์œ ๋กœ์šด Open JDK ์ค‘์— Amazon Corretto๋ฅผ ์“ฐ๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

 DB์™€์˜ ๋งคํ•‘์„ ์œ„ํ•œ ๊ธฐ์ˆ ์—๋Š” MyBatis์™€ JPA๊ฐ€ ์žˆ๋Š”๋ฐ, ORM ๊ธฐ์ˆ ์ธ JPA๋ฅผ ์“ฐ๊ธฐ๋กœ ํ–ˆ๋‹ค. ์—ฐ๊ด€ ๊ด€๊ณ„์™€ ์˜ต์…˜ ์„ค์ • ๋“ฑ์— ์‹ ๊ฒฝ์จ์•ผํ•  ๊ฒƒ์ด ๋งŽ์ง€๋งŒ, ๋ณ„๋„์˜ ์ฟผ๋ฆฌ ์ž‘์„ฑ์—†์ด ํŽธํ•˜๊ฒŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ตœ๊ทผ ํ”„๋กœ์ ํŠธ๊นŒ์ง€ JPA๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์„œ ์ต์ˆ™ํ•˜๊ธฐ๋„ ํ•˜๋‹ค.