Skip to content

Tech Stack

Yeonhee Kim edited this page Aug 27, 2021 · 45 revisions

โœจ Visualization

[๊ธฐ์ˆ ์Šคํƒ ์‹œ๊ฐํ™” ์ด๋ฏธ์ง€]

โœจ Backend Tech Stack

OpenJdk 11

Gradle

  • Gradle์€ ๋นŒ๋“œ๋ฅผ xml๋กœ ์ •์˜ํ•˜๋Š” Maven๊ณผ ๋‹ฌ๋ฆฌ Groovy ์–ธ์–ด๋กœ ์ •์˜ํ•˜์—ฌ ๋ฌธ์„œ์˜ ์–‘์ด ์ค„์–ด๋“ค๊ฒŒ ๋˜๊ณ  ๋นŒ๋“œ ์†๋„๋„ Maven๋ณด๋‹ค Gradle์ด ๋” ๋น ๋ฅด๋‹ค. ์ž๋ฐ” ๋นŒ๋“œ๋„๊ตฌ๋กœ Gradle๋ณด๋‹ค Maven์— ๋” ์ต์ˆ™ํ•˜์ง€๋งŒ ์ ์  Gradle๋„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ถ”์„ธ์ด๋ฏ€๋กœ ๋ฐฐ์šฐ๋ฉด์„œ ์ ์šฉํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

Spring Boot

  • ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ธ ์ž๋ฐ”์˜ ํŠน์„ฑ์„ ์ž˜ ์‚ด๋ ค์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ์Šคํ”„๋ง๋ถ€ํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ tomcat์ด ๋‚ด์žฅ๋˜์–ด ์žˆ๊ณ  ์Šคํ”„๋ง๊ณผ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž๋™ ๊ตฌ์„ฑํ•ด์ฃผ๋ฏ€๋กœ ๋ณด๋‹ค ๋น ๋ฅธ ๊ฐœ๋ฐœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.

Spring Rest Docs

  • Swagger๋Š” ๊ฐ„ํŽธํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  API๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์„œ๋น„์Šค ์ฝ”๋“œ์— Swagger ๊ด€๋ จ ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•˜๊ณ  ๋ฌธ์„œ๋งŒ์œผ๋กœ ์—ฐ๋™ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ธฐ ์–ด๋ ต๋‹ค.
  • ์ด์— ๋ฐ˜ํ•ด Spring Rest Docs๋Š” ์ฒ˜์Œ์—๋Š” ์ ์šฉํ•˜๊ธฐ ์–ด๋ ต๊ณ  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜์ง€๋งŒ, ์„œ๋น„์Šค ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  API๋ฅผ ์ž๋™์œผ๋กœ ๋ฌธ์„œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • TDD๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๊ณ„ํš์ด๋ฉฐ ์ž๋™ํ™”๋ฅผ ์ง€ํ–ฅํ•˜๋ฏ€๋กœ Spring Rest Docs๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.

MySQL

  • ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์˜ ํŠน์ง•์ƒ ํ”„๋กœ์ ํŠธ ๊ตฌํ…๋ฒ ๋ฅดํฌ์— ์ƒˆ๋กœ์šด ์ฑ…์ด ์—…๋กœ๋“œ๋  ๋•Œ๋งˆ๋‹ค ์šฐ๋ฆฌ ์ชฝ DB์—๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ตฌํ…๋ฒ ๋ฅดํฌ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๋ช…ํ™•ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต์—†์ด ํ•œ๋ฒˆ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” RDBMS๋ฅผ ์„ ํƒํ–ˆ๋‹ค.
  • NoSQL์€ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์˜ ์ฝ๊ธฐ์— ์œ ๋ฆฌํ•˜์ง€๋งŒ, ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ ํŠนํžˆ ์ฑ… ๋ฒˆ์—ญ๋ฌธ ํ…Œ์ด๋ธ”์€ ์ˆ˜์ •์ด ์ž์ฃผ ์ผ์–ด๋‚˜๊ณ  ํšŒ์› ํ…Œ์ด๋ธ”, ์ฑ… ์ •๋ณด ํ…Œ์ด๋ธ”, ์ฑ… ์›๋ฌธ ํ…Œ์ด๋ธ”, ์ฑ… ๋ฒˆ์—ญ๋ฌธ ํ…Œ์ด๋ธ” ๋“ฑ ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•„์„œ ์กฐ์ธ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•œ RDBMS๊ฐ€ ๋” ์ ํ•ฉํ•˜๋‹ค.
  • ์˜คํ”ˆ์†Œ์Šค RDBMS ์ค‘์—์„œ๋„ PostgreSQL๋ณด๋‹ค MySQL์ด UPDATE๋ฌธ ์„ฑ๋Šฅ์ด ๋” ์ข‹์€ ์ ์„ ๊ณ ๋ คํ•˜์—ฌ MySQL์„ ์„ ํƒํ–ˆ๋‹ค.
    • PostgreSQL์€ UPDATE๋ฅผ ํ•  ๋•Œ ๊ณผ๊ฑฐ ํ–‰์„ ์‚ญ์ œํ•˜๊ณ  INSERT์ฒ˜๋Ÿผ ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ์ƒˆ๋กœ์šด ํ–‰์„ ์ถ”๊ฐ€ํ•˜๋Š” ํ˜•ํƒœ๋ผ์„œ UPDATE๊ฐ€ ๋А๋ฆฌ๋‹ค.

Spring Data JPA

AWS

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

Travis CI

  • ์˜คํ”ˆ์†Œ์Šค CI/CD ์†”๋ฃจ์…˜์œผ๋กœ Jenkins์™€ Travis CI ์ค‘์—์„œ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ Travis CI๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
    • Jenkins๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์ข…๋ฅ˜๊ฐ€ ๋‹ค์–‘ํ•˜๊ณ  ๋ชจ๋“  ๋ถ€๋ถ„์„ ์ง์ ‘ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„œ๋ฒ„ ์šด์˜ ๋น„์šฉ์ด ๋”ฐ๋กœ ๋ฐœ์ƒํ•œ๋‹ค.
    • ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ํ”„๋กœ์ ํŠธ์— ํ•ด๋‹น๋˜๋ฏ€๋กœ Jenkins์— ๋น„ํ•ด ํ”Œ๋Ÿฌ๊ทธ์ธ ์ข…๋ฅ˜๋Š” ์ ์ง€๋งŒ ์ง์ ‘ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” Travis CI๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

โœจ Frontend Tech Stack

React.js

  • SPA ํ”„๋ ˆ์ž„์›Œํฌ / React / Vue / Angular

Clone this wiki locally