FastCampus X Yanolja TechSchool

ํŒจ์ŠคํŠธ์บ ํผ์ŠคX์•ผ๋†€์ž: ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ถ€ํŠธ ์บ ํ”„ - ๐Ÿก๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ : ๋นจ(8)๋ฆฌ ์žก์•„ - FastCatch

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2023. 12. 10.

๋นจ(8๏ธโƒฃ)๋ฆฌ ์žก์•„ - FastCatch

๐Ÿ‘ฅ ์ด๊ฑฐ ๋‹ค ๋˜๋ฉด 8์กฐ?! - ํŒ€์†Œ๊ฐœ

์•ผ๋†€์ž ํ…Œํฌ์Šค์ฟจ ํ”„๋ก ํŠธ์—”๋“œ : ์–ดโ—‹ โ—‹ (ํŒ€์žฅ), ๊ณ  โ—‹ โ—‹  , ์œค โ—‹ โ—‹  , ์ด โ—‹ โ—‹  , ์ • โ—‹ โ—‹ 

์•ผ๋†€์ž ํ…Œํฌ์Šค์ฟจ ๋ฐฑ์—”๋“œ : ๋ฐ•์ฃผํ˜„(ํŒ€์žฅ), ๊น€ โ—‹ โ—‹  , ์ด โ—‹ โ—‹  , ์ • โ—‹ โ—‹ 

 

 

 

๐Ÿกํ”„๋กœ์ ํŠธ ๊ฐœ์š”

 

1๏ธโƒฃํ”„๋กœ์ ํŠธ๋‚ด์šฉ

์ˆ™๋ฐ• ์˜ˆ์•ฝ ์„œ๋น„์Šค

2๏ธโƒฃํ”„๋กœ์ ํŠธ ์ฃผ์ œ ๋ฐ ํ•„์ˆ˜ ๊ตฌํ˜„ ๊ธฐ๋Šฅ ์ œ์•ˆ

์•ผ๋†€์ž

3๏ธโƒฃํ”„๋กœ์ ํŠธ ๋ชฉ์ 

ํŒ€ ํ˜‘์—…, RESTful API ๊ฐœ๋ฐœ

4๏ธโƒฃํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

2023๋…„ 11์›” 20์ผ (์›”) ~ 12์›” 01์ผ(๊ธˆ)

5๏ธโƒฃํ”„๋กœ์ ํŠธ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ

 

6๏ธโƒฃ๊ธฐ์ˆ ์Šคํƒ

์–ธ์–ด

Java17

๊ฐœ๋ฐœํ™˜๊ฒฝ ๋ฐ Dependency

Spring Boot 3.1.5

Gradle 8.3

MySQL 8

Spring Web

Spring Data JPA

JUint5

lombok

Spring Security

JWT

CI/CD

GitHub Actions, AWS EC2, AWS RDS

7๏ธโƒฃ์„œ๋ฒ„ ๋ฐฐํฌ

AWS EC2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ develop ,  release ๋ธŒ๋žœ์น˜๋ฅผ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ๋ฐ  ๋ฉ”์ธ ์„œ๋ฒ„๋กœ ์ž๋™ ๋ฐฐํฌ

 


 

 

โš–๏ธํ”„๋กœ์ ํŠธ ์ปจ๋ฒค์…˜

 

1๏ธโƒฃ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜

๋ธ”๋ก์˜ ๋“ค์—ฌ์“ฐ๊ธฐ๋งŒ 4๊ณต๋ฐฑ์œผ๋กœ ์ปค์Šคํ…€ํ•˜์—ฌ ๊ตฌ๊ธ€ ์ž๋ฐ” ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์„ ์‚ฌ์šฉ

Git Hub Actions CI๋ฅผ ํ†ตํ•ด ์ฒดํฌ ์Šคํƒ€์ผ์ด ๋งž์ง€ ์•Š๋Š”๋‹ค๋ฉด Merge ๋ชปํ•˜๋„๋ก ๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ

 

2๏ธโƒฃAPI ์ดˆ๊ธฐ ์„ค๊ณ„

 

3๏ธโƒฃ์ƒํƒœ์ฝ”๋“œ ์ปจ๋ฒค์…˜

  • 200 : ๋ชจ๋“  ์„ฑ๊ณต
  • 400 : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž…๋ ฅ์„ ์ž˜๋ชปํ•œ ๊ฒฝ์šฐ
  • 401 : ์ธ์ฆ ์ •๋ณด๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ
  • 403 : ์ ‘๊ทผ ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒฝ์šฐ
  • 500 : ์„œ๋ฒ„ ๋‚ด๋ถ€ ์—๋Ÿฌ

 

4๏ธโƒฃํ”„๋กœ์ ํŠธ ๊นƒ ๋ธŒ๋žœ์น˜ ์ „๋žต

GitFlow ์ „๋žต 

feature/#

  • ์‹ค์ œ ์ž‘์—…์„ ํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • ์ด์Šˆ ๋ฒˆํ˜ธ๊ฐ€ 1์ด๋ผ๋ฉด feature/1๋กœ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.
  • 'develop'์„ ๋ฒ ์ด์Šค ๋ธŒ๋žœ์น˜๋กœ ํ•˜์—ฌ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
    • ( ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ์€ ๋ฒ ์ด์Šค ๋ธŒ๋žœ์น˜[ ์ฒดํฌ์•„์›ƒ๋˜์–ด์žˆ๋Š” ๋ธŒ๋žœ์น˜ ]๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.)
  • ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด develop์œผ๋กœ Pull Request๋ฅผ ๋‚ ๋ฆฐ๋‹ค.
  • ๋ณธ์ธ์„ ์ œ์™ธํ•œ ์กฐ์›์˜ Approve๋ฅผ ๋ชจ๋‘ ๋ฐ›์•˜๋‹ค๋ฉด Mergeํ•œ๋‹ค.

develop

  • ํ…Œ์ŠคํŠธ ์„œ๋ฒ„์— ์ž๋™ ๋ฐฐํฌ๋˜๋Š” ๋ธŒ๋žœ์น˜
  • ๋‹ค์Œ ๋ฒ„์ „ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด release์œผ๋กœ ๊ฐ€๊ธฐ ์ „ ๊ธฐ๋Šฅ ์ฝ”๋“œ๋“ค์„ ๋ชจ์•„๋‘๋Š” ๋ธŒ๋žœ์น˜
  • ์ž‘์„ฑํ•œ ๊ธฐ๋Šฅ์ด ์ž˜ ์ž‘๋™๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , release์œผ๋กœ PR ๋ฐ Merge๋ฅผ ํ•˜๋ฉด ๋œ๋‹ค.
  • develop์œผ๋กœ Merge ํ•˜๊ณ  ๋‚˜์„œ ์ž๋™ ๋ฐฐํฌ๋œ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„์—์„œ ์ž์‹ ์˜ API๊ฐ€ ์ •์ƒ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ผญ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•œ๋‹ค.

release

  • ์‹ค์ œ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์ธ ์„œ๋ฒ„ ์ž๋™ ๋ฐฐํฌ๋˜๋Š” ๋ธŒ๋žœ์น˜
  • release์œผ๋กœ Merge ํ•˜๊ณ  ๋‚˜์„œ ์ž๋™ ๋ฐฐํฌ๋œ ๋ฉ”์ธ ์„œ๋ฒ„์—์„œ ์ž์‹ ์˜ API๊ฐ€ ์ •์ƒ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ผญ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•œ๋‹ค.

hotfix

  • ์„œ๋ฒ„์—์„œ ํ…Œ์ŠคํŠธ ํ›„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ๊ฒฌ๋์„ ๋•Œ ๋ฐ”๋กœ ์ˆ˜์ •ํ•ด์„œ Merge ํ•  ์ˆ˜ ์žˆ๋Š” ๋ธŒ๋žœ์น˜
  • hotfix/์ด์Šˆ๋ฒˆํ˜ธ๋กœ ์ƒ์„ฑ

main

  • ์ตœ์ข…๋ณธ์„ ๊ฐ–๋Š” ๋ธŒ๋žœ์น˜

 

5๏ธโƒฃ๊ธฐํƒ€ ํ•ฉ์˜์‚ฌํ•ญ

  • ํ˜‘์—… ๊ด€๋ จ
    • ์ •๊ธฐ ์˜คํ”„๋ผ์ธ ํšŒ์˜
    • ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ: ๋งค์ผ ์˜ค์ „ 10:00 ๋…ธ์…˜์— ์ง„ํ–‰์ƒํ™ฉ ๊ณต์œ 
    • Discord ์—์„œ ํ”„๋ก ํŠธ ๋ฐ ๋ฐฑ ํšŒ์˜์‚ฌํ•ญ ๊ณต์œ , ์„œ๋กœ๊ฐ„์˜ ์งˆ๋ฌธ์‚ฌํ•ญ & ๊ฑด์˜์‚ฌํ•ญ ์†Œํ†ต

  • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ด€๋ จ
    • ์ปค๋ฐ‹ ์ œ๋ชฉ์€ prefix: ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํ˜•ํƒœ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
    • prefix์˜ ๋ชฉ๋ก๊ณผ ๊ฐ๊ฐ์˜ ์šฉ๋„๋Š” ์ธํ…”๋ฆฌ์ œ์ด commit message ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฐธ๊ณ 
    • ์ปค๋ฐ‹ ๋‚ด์šฉ์„ ์ž์„ธํ•˜๊ฒŒ ์ ์Šต๋‹ˆ๋‹ค. (์ปค๋ฐ‹ ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ๋งŒ ๋ณด๋”๋ผ๋„ ์ฝ”๋“œ ๋‚ด์šฉ์ด ํŒŒ์•… ๊ฐ€๋Šฅํ•  ์ •๋„๋กœ)

 

โš’๏ธํ”„๋กœ์ ํŠธ ์„ค๊ณ„

 

1๏ธโƒฃํ™”๋ฉด ๋ฐ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐํš

ํŒ€ ๋กœ๊ณ 

 

 

 

์™€์ด์–ด ํ”„๋ ˆ์ž„ ๋ฐ ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฅ˜

 

2๏ธโƒฃ ์„œ๋ฒ„ ๋ฐ ๋ฐฑ์—”๋“œ ๊ธฐํš

ERD ์„ค๊ณ„

 

API ๋ช…์„ธ

 

 


 

๐Ÿ™‹‍โ™‚๏ธ๋‹ด๋‹น ํŒŒํŠธ

1. ํŒ€ ์ „์ฒด GitHub Organizations ์ƒ์„ฑ ๋ฐ ๋ฐฑ์—”๋“œ ํŒ€ ๋ฆฌ๋”ฉ

2. API : ์ˆ™๋ฐ• ๋„๋ฉ”์ธ API ๊ตฌํ˜„

3. ๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ ์„ค์ • ๋ฐ CI ํ™˜๊ฒฝ ์„ค์ •, CD ์ž๋™ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

4. ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ์„ค๊ณ„ ๋ฐ ๋ฐฑ์—”๋“œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๊ธฐ๋ณธ ํ‹€ ์„ค๊ณ„

 

 

์ˆ™๋ฐ• ์ „์ฒด ์กฐํšŒ ๋ฐ ํ•„ํ„ฐ ์กฐํšŒ

 

 

 

 

 

 

 

 

์ˆ™๋ฐ• ๊ฐœ๋ณ„ ์กฐํšŒ

 

 

 

 

 

 

 

 

 

 

ํ”„๋กœ์ ํŠธ ์ „์ฒด ์‹œ์—ฐ ์˜์ƒ

 

 

 

 


๐Ÿค”ํšŒ๊ณ 

๐Ÿซ‚ํŒ€ ํšŒ๊ณ 

  • ์†”๋ฏธ : ํ˜‘์—…์˜ ๊ฒฝํ—˜์น˜๊ฐ€ ์˜๋ฏธ์žˆ์—ˆ๊ณ , ๊ธฐ์ˆ ์ ์œผ๋กœ ๋”ฅํ•˜๊ฒŒ ๋“ค์–ด๊ฐ€๊ธฐ์—๋Š” 2์ฃผ๋ผ๋Š” ์‹œ๊ฐ„์ด ๋ถ€์กฑํ–ˆ๋‹ค.
  • ๋ณ‘์ฃผ : ํŒ€ ํ”„๋กœ์ ํŠธ ๋•๋ถ„์— ๋ฐฐ์šด ๊ฒƒ์ด ๋งŽ์•˜๋‹ค.
  • ์ฃผํ˜„ : ๋ฐฑ ๋กœ์ง ์งœ๋Š” ๊ฒƒ์€ ํ† ์ด๋ณด๋‹ค ์‹ค์ „๊ฐ™์€ ๋Š๋‚Œ์— ๊ฐ€๊นŒ์› ๊ณ , ์—ฐ๋™ํ•˜๋ฉด์„œ ์ด์Šˆ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋„คํŠธ์›Œํฌ ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•˜๋‹ค ๋Š๊ผˆ๋‹ค. ํŒ€์›๋“ค์—๊ฒŒ ๋งŽ์€ ๋„์›€์ด ๋œ ๊ฑฐ ๊ฐ™์•„์„œ ๋ฟŒ๋“ฏํ–ˆ๋‹ค.
  • ๋ฒ”ํ™˜ : ๋ฉ”์ธํŽ˜์ด์ง€ ๋ถ„๋Ÿ‰์ด ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์•„์„œ ์ผ์„ ์‹œ์ž‘ํ•  ๋•Œ ๋‚ด๊ฐ€ ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„๋Ÿ‰์ธ๊ฐ€ ํŒŒ์•…ํ•˜๋Š”๊ฒŒ ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ์ฝ”๋“œ๋ฆฌ๋ทฐ ์ด๋ฒˆ์— ๊ผผ๊ผผํ•˜๊ฒŒ ์ง„ํ–‰ํ•ด์„œ ๋„์›€์ด ๋งŽ์ด ๋˜์—ˆ๋‹ค.
  • ์˜ˆ์ธ : ๋ฐฑ์—”๋“œ๋ถ„๋“ค์ด ํ˜‘์กฐ์ ์œผ๋กœ ๋ง์”€ํ•ด์ฃผ์…”์„œ, ํ˜‘์—…์‹œ์— ํŽธํ•ด์„œ ๊ฐ์‚ฌํ–ˆ๋‹ค. ๊ฐ™์ด ์†Œํ†ตํ•  ๋•Œ, ์„œ๋กœ ์Œ์„ฑ์ฑ„๋„์— ์ƒ์ฃผํ•˜๋Š” ์‹œ๊ฐ„์„ ์ •ํ•˜๋ฉด ์†Œํ†ต์ด ๋” ๋น ๋ฅผ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๋…ธ์…˜ ๊ณต์šฉ๋ฌธ์„œ ๋ณด๋‹ค Jira๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๊ณ ์‹ถ๋‹ค.(๋…ธ์…˜ ๊ฐ€๋…์„ฑ๋ณด๋‹ค ์ง€๋ผ๊ฐ€ ๋” ๋‚˜์€ ๊ฒƒ ๊ฐ™์Œ)
  • ์˜์ธ : ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ๋งŽ์€ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•ด์„œ ์„ฑ์žฅ ๋งŽ์ด ํ•จ. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ. CI, ์‹œํ๋ฆฌํ‹ฐ ๋“ฑ๋“ฑ. ๊ทผ๋ฐ ์‹œํ๋ฆฌํ‹ฐ ๋ถ€๋ถ„์ด ์กฐ๊ธˆ ์•„์‰ฌ์› ๋‹ค. ๋” ๋ณด์™„ํ•ด์•ผ๊ฒ ๋‹ค.
  • ํ˜„์•„ : ํ”„๋ก ํŠธ๋ž‘ ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค. ๋ฐœํ‘œํšŒ ์˜์ƒ ๋ณด๋ฉด์„œ ๋” ๊ณต๋ถ€ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค.
  • ์ค€ํ˜ : ํ›Œ๋ฅญํ•œ ํŒ€์› ๋งŒ๋‚˜์„œ ์˜๊ด‘. ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ฐ€ ๋„ˆ๋ฌด ์ข‹์•˜๊ณ , ์—๋Ÿฌ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ๋ชจ๋‘๊ฐ€ ๋…ธ๋ ฅํ•œ ์ ์ด ์ข‹์•˜๋‹ค. ์ฃผํ˜„๋‹˜๊ณผ ์ƒ์‹œ ์†Œํ†ต ์ข‹์•˜๊ณ , ํ˜„์•„๋‹˜๊ป˜์„œ ๋ฐ”๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐํ•ด์ค€ ๊ฒƒ๋„ ์ข‹์•˜๋‹ค.
  • ํƒœ๊ด€ : ํ˜‘์—… ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŽ์ด ์•Œ๊ฒŒ ๋๋‹ค. ์ฝ”๋“œ๋ฅผ ๋‹จ๋‹จํ•˜๊ฒŒ ์งœ์ง€ ๋ชปํ•ด, ๋ฆฌํŒฉํ† ๋ง์„ ์œ„์ฃผ๋กœ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 

๐Ÿฅ๊ฐœ์ธํšŒ๊ณ 

 

๐Ÿฅฐ Liked : ์ข‹์•˜๋˜ ์ 

๋จผ์ € ํ”„๋ก ํŠธ์—”๋“œ ๋ถ„๋“ค๊ณผ ํ˜‘์—…ํ•œ ์ ์ด ๋งค์šฐ ์ข‹์•˜๋‹ค. ๊ธฐ์กด์—” ๋ฐฑ์—”๋“œ ์‚ฌ๋žŒ๋“ค๊ณผ SSR ํ”„๋กœ์ ํŠธ๋งŒ ํ•ด๋ณด์•˜๋Š”๋ฐ, ํ”„๋ก ํŠธ์—”๋“œ์™€ ์—ฐ๋™ํ•˜์—ฌ REST API ๋งŒ๋“œ๋‹ˆ๊น, ํ”„๋กœ์ ํŠธ์˜ ๋””์ž์ธ์ด๋‚˜ ํ”„๋กœ์ ํŠธ ๋ ˆ์ด์•„์›ƒ ๊ฐ™์€ UI/UX ๋ถ€๋ถ„์— ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ , ์˜จ์ „ํžˆ ๋ฐฑ์—”๋“œ ๋กœ์ง๊ณผ ํŽ˜์ด์ง€ ๋’ท๋‹จ์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ๋“ค์—๋งŒ ์‹ ๊ฒฝ์“ฐ๋ฉด ๋ผ์„œ ๋งค์šฐ ์ข‹์•˜๋‹ค.

๋˜ํ•œ ๋งค์‚ฌ ์ฃผ๋„ํ•˜๋Š” ์Šคํƒ€์ผ์ด๋‹ค ๋ณด๋‹ˆ, ์ด๋ฒˆ์—๋„ ์ž์—ฐ์Šค๋ ˆ ํ”„๋ก ํŠธ, ๋ฐฑ ์ „์ฒด ํŒ€์˜ ๋ฆฌ๋”ฉ์„ ํ•˜๊ฒŒ ๋๋Š”๋ฐ, ๋ชจ๋‘๋“ค ์ž˜ ๋”ฐ๋ผ์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ–ˆ๋‹ค. ์„œ๋จน์„œ๋จนํ•˜์ง€ ์•Š๊ฒŒ ์ดˆ๊ธฐ์— ํŒจ์ŠคํŠธ์บ ํผ์Šค ๋ฏธ์™•๋นŒ๋”ฉ์—์„œ 9๋ช… ์ „์ฒด ์˜คํ”„๋ผ์ธ ๋ฏธํŒ…๋„ ํ•˜๊ณ , ๋‹จํ†ก๋ฐฉ๋„ ๋งŒ๋“ค์–ด์„œ ์šด์˜ํ•˜์˜€๋Š”๋ฐ, ํŒ€์›๋“ค ๊ฒฉ๋ ค๋„ ํ•˜๊ณ  ๋˜ํ•œ ๋ฐฑ์—์„œ ํ’€๊ธฐ ํž˜๋“  ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์„๋•Œ ํ•ด๊ฒฐํ•ด์˜ค๋ฉด ํ”„๋ก ํŠธ์—”๋“œ ๋ถ„๋“ค์ด ์นญ์ฐฌ๋„ ํ•ด์ฃผ์‹œ๊ณ  ํ•ด์„œ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ–ˆ๋‹ค.

 

 

๋˜ํ•œ ์Šฌ๋ž™์—์„  ๋ฐฑ์—”๋“œ ์ „์ฒด ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ์„ ํ•˜๊ณ  ๋””์Šค์ฝ”๋“œ์—์„  ํ”„๋ก ํŠธ, ๋ฐฑ ์ „์ฒด ํšŒ์˜๋ฅผ ๋ฐ์ผ๋ฆฌ๋กœ ํ•˜๋ฉด์„œ ์„œ๋กœ ํŒ€์—๊ฒŒ ๋ชจ๋ฅด๋Š” ์‚ฌํ•ญ์ด๋‚˜, ๊ถ๊ธˆํ•œ ์ , ๊ฑด์˜ํ•  ์ ์„ ์ •ํ•ด์„œ ์˜๊ฒฌ์„ ์ฃผ๊ณ  ๋ฐ›์•˜๋˜ ์ ์ด ๋„ˆ๋ฌด ์ข‹์•˜๋‹ค.

ZEP ์— ๋ชจ์—ฌ์„œ ์ •๊ธฐ์ ์ธ ํšŒ์˜์™€ ํ™”๋ฉด๊ณต์œ ๋ฅผ ํ†ตํ•œ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋˜ ์ ๋„ ๋งค์šฐ ์ข‹์•˜๋‹ค.

 

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

 

๋ฐฑ์—”๋“œ ๋ถ„๋“ค๊ป˜๋„ ์ด๋ฒˆ์— ๋งŽ์€ ๋„์›€์ด ๋œ ๊ฑฐ ๊ฐ™์•„์„œ ์ข‹์•˜๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ชจ๋“  ๋ถ„๋“ค์ด ์ฒดํฌ์Šคํƒ€์ผ์„ ์ง€์ผœ๊ฐ€๋ฉฐ ๊นƒํ—ˆ๋ธŒ์— PR ์˜ฌ๋ฆฌ๋Š” ๊ฑธ ์ฒ˜์Œ ํ•ด๋ณด์…จ๋‹ค๋Š”๋ฐ, ์‹ค๋ฌด์ฒ˜๋Ÿผ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์„ ์ง€์ผœ๊ฐ€๋ฉฐ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค๊ณ  ํ•˜์˜€์œผ๋ฉฐ, ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์งค ๋•Œ๋„ ๋‚ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์™€ ์–‘์‹์ด ๋งŽ์€ ๋„์›€์ด ๋ผ์„œ ๊ณ ๋ง™๋‹ค๋Š” ์นญ์ฐฌ์„ ๋“ค์—ˆ์„ ๋•Œ ํŒ€์žฅ์œผ๋กœ์„œ ๋ฟŒ๋“ฏํ•˜๊ณ  ๋ณด๋žŒ ์ฐผ๋‹ค.

๊ทธ๋™์•ˆ ๋ฐฐ์› ๋˜ ๋‚ด์šฉ๋“ค์„ ๋ฏธ๋‹ˆํ”„๋กœ์ ํŠธ ํŒ€์žฅ์ด ๋ผ์„œ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์— ์ž˜ ๋…น์—ฌ๋‚ผ ์ˆ˜ ์žˆ์–ด์„œ ์Šค์Šค๋กœ ์„ฑ์žฅํ•œ ๊ฒƒ ๊ฐ™๊ณ  ์ข‹์•˜๋‹ค.

 


๐Ÿ“š Learned : ๋ฐฐ์šด ์ 

 

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค. 

๋ณธ ์ด๋ฏธ์ง€๋Š” ๋ฏธ๋‹ˆํ”„๋กœ์ ํŠธ ๋ฐœํ‘œํšŒ๋•Œ ๋‚ด๊ฐ€ ๋ฐœํ‘œํ–ˆ๋˜ ์žฅํ‘œ์ธ๋ฐ, 2์ฃผ๊ฐ„ ์—„์ฒญ ๋ชธ์œผ๋กœ ์ฒด๋“ํ•˜๋ฉด์„œ ๋ฐฐ์šด ์ด์Šˆ์— ๋Œ€ํ•ด ๋ฐœํ‘œ๋ฅผ ํ–ˆ๋‹ค.

์ฒซ๋ฒˆ ์งธ๋กœ CORS ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๋ฉด์„œ CORS ์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ์™€ ํ˜‘์—… ์ „๊นŒ์ง€ ๋„คํŠธ์›Œํฌ๋‚˜ OS ๊ฐ™์€ CS๋Š” ๋ฉด์ ‘์„ ์œ„ํ•œ ๊ณต๋ถ€์˜€๋Š”๋ฐ, ์‹ค์ „์ฒ˜๋Ÿผ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ณด๋‹ˆ, ์ด๊ฑด ๋ฉด์ ‘์„ ์œ„ํ•œ ๊ณต๋ถ€๊ฐ€ ์•„๋‹Œ ํ˜„์—…์„ ์œ„ํ•œ ๊ณต๋ถ€์˜€๋‹ค. 

CORS ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋‹ˆ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ๋„์ž…ํ•˜๊ณ  ๋‹ค์‹œ CORS ์—๋Ÿฌ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๋‹ค. ์ด๋•Œ ๋„์ค‘์— ํ•œ๋ช…์€ ์ •์ƒ์ž‘๋™ํ•ด์„œ ๋ฐฑ์—”๋“œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ํ”„๋ก ํŠธ์—”๋“œ๋‚˜ ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ € ๋ฌธ์ œ์ธ์ค„ ์•Œ์•˜๋‹ค. ํ•˜์ง€๋งŒ ์ •์ƒ์ ๋™ํ•œ ๋ถ„๋„ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋„๊ณ  ๋‹ค์‹œ ํ•˜๋‹ˆ ์•ˆ ๋œ๋‹ค๋Š” ๊ฑธ ์•Œ์•˜๊ณ , ์›์ธ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ–ˆ๋‹ค. 

๋ฌธ์ œ๋Š” ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์˜ ํ•„ํ„ฐ ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์ด์—ˆ๊ณ , ๊ทธ๋ž˜์„œ ์„ค์ •ํ•ด๋‘” CORS๊ฐ€ ์ด๋ฏธ ์‹œํ๋ฆฌํ‹ฐ์—์„œ ๊ฑธ๋Ÿฌ์ ธ ์ ์šฉ๋˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ Config ์ž์ฒด์—์„œ CORS ์„ค์ •์„ ๋‹ค์‹œ ํ•ด์ค˜์•ผํ–ˆ๋‹ค.

์•ผ๋†€์ž ์ตœ์›์ค€ ๋ฐฑ์—”๋“œ ๋ฉ˜ํ† ๋‹˜๋„ ๋‚ด๊ฐ€ ๋งž๋‹ฅ๋œจ๋ฆฐ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ ๋งŽ์€ ๊ณต๊ฐ์„ ํ•ด์ฃผ์…จ๋‹ค. ์‹ค๋ฌด์—์„œ๋„ ๊ฐ€๋” ๊นŒ๋จน๊ธฐ๋„ ํ•œ๋‹ค๊ณ  ์›ƒํ”ˆ ์ด์•ผ๊ธฐ๋„ ํ•ด์ฃผ์…จ๊ณ , ์ด๋Ÿฌํ•œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ๋˜๋Š” ์›๋ฆฌ์— ๋Œ€ํ•ด์„œ๋„ ์•„์ฃผ ๊ฐ„๋žตํžˆ ์„ค๋ช…ํ•ด์ฃผ์…จ๋‹ค.

 

๋งˆ์ง€๋ง‰์œผ๋กœ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•ด์„œ๋„ ๋งŽ์€ ๊ณต๋ถ€๊ฐ€ ๋๋‹ค.

๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ˜ผ์ž์„œ ์„ค์ •ํ•˜๊ณ  ์‹ ๊ฒฝ ์“ฐ๋‹ค๋ณด๋‹ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ๋„ ํ˜ผ์ž์„œ ํ•ด๊ฒฐํ•ด์•ผ๋๋‹ค. ํ”„๋ก ํŠธ ์—”๋“œ ๋ฐฐํฌ ์‚ฌ์ดํŠธ์™€ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์™€ ์—ฐ๋™ํ•˜์˜€์„ ๋•Œ Mixed Content ์—๋Ÿฌ๊ฐ€ ๋œจ๋ฉฐ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๋‹ค. ์š”์ฒญ์ž์ฒด๊ฐ€ HTTPS ์š”์ฒญ์ธ๋ฐ ๊ทธ ์•ˆ์— API ์š”์ฒญ์€ HTTP ์š”์ฒญ์„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. HTTP์—์„œ HTTPS์˜ ์š”์ฒญ์€ ๊ฐ€๋Šฅํ•ด๋„ ๊ทธ ๋ฐ˜๋Œ€๋Š” ๋ณด์•ˆ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. 
์ด๋Ÿฐ ๋„คํŠธ์›Œํฌ ์ง€์‹์„ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  API ์š”์ฒญ์„ HTTPS ์š”์ฒญ๋„ ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ์ˆ˜์ •ํ•ด์•ผํ–ˆ๋‹ค.

 

์ดˆ๊ธฐ ํ”„๋ก ํŠธ & ๋ฐฑ ๋ฐฐํฌ ์—ฐ๋™

 

์ดˆ๊ธฐ์—” ์ด๋Ÿฐ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ฐ€์กŒ์ง€๋งŒ, ์—๋Ÿฌ๋ฅผ ๊ฒช๊ณ ๋‚˜์„  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•˜์˜€๋‹ค.

 

์ค‘๊ฐ„ ๋‹จ๊ณ„ ํ”„๋ก ํŠธ & ๋ฐฑ ๋ฐฐํฌ ์—ฐ๋™

 

HTTPS ํ”„๋กœํ† ์ฝœ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋„๋ฉ”์ธ๊ณผ ๋ณด์•ˆ์ธ SSL ์„ ์œ„ํ•ด ์ธ์ฆ์„œ๋„ ์žˆ์–ด์•ผํ•˜๊ณ , HTTPS ์˜ ์š”์ฒญ์„ HTTP๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•ด์ค˜์•ผํ•˜๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋„ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฑธ ๋ฐฐ์› ๋‹ค.

AWS ์˜ Route53, Certificate Manager, Application Load Balancer ์— ๋Œ€ํ•ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 


 

๐Ÿชซ Lacked : ๋ถ€์กฑํ–ˆ๋˜ ์ 

์ฒ˜์Œ ํ”„๋ก ํŠธ์—”๋“œ์™€ ํ•จ๊ป˜ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ผ ๋ฐฑ๋กœ์ง ์งœ๋Š” ๋ฐ ๋ณด๋‹ค ๋„คํŠธ์›Œํฌ ์ด์Šˆ๋ฅผ ๋” ๋งŽ์ด ๊ฒช์—ˆ๋‹ค. ์ˆ™๋ฐ• ๋„๋ฉ”์ธ์€ ์ดํ‹€๋งŒ์— ๋ชจ๋“  API๋ฅผ ๋งŒ๋“ค์ •๋„๋กœ ์ž˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ์ง€๋งŒ ๋„คํŠธ์›Œํฌ ์ด์Šˆ๋Š” ์ „ ํ”„๋กœ์ ํŠธ์—์„œ ๋ชจ๋‘ ๊ฒช์–ด๋ณด์ง€ ๋ชปํ•œ ์ƒˆ๋กœ์šด ์ด์Šˆ๋ผ ๋งŽ์ด ๋ถ€์กฑํ–ˆ๊ณ  ๋” ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹ค๋ ฅ์ด ์ ์  ๋Š๋Š” ๊ฒŒ ์Šค์Šค๋กœ ์ฒด๊ฐ์ด ๋˜๋‹ˆ, ๋ฐฑ ๋กœ์ง์งœ๋Š” ๊ฒƒ๋„ ๋”์šฑ ํ˜„์—… ์‹ค๋ฌด์ž๋“ค์ด ์งœ๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์งœ๊ณ  ์‹ถ์€ ์š•์‹ฌ์ด ์ƒ๊ฒผ๋‹ค. ํŠนํžˆ ๋‚œ ๊ฒ€์ƒ‰ ๋‹ด๋‹น์ด์—ˆ๋Š”๋ฐ, ์•ผ๋†€์ž ๋ฐฑ์—”ํŠธ ๋ฉ˜ํ† ๋‹˜ ๊ป˜์„œ ๊ฒ€์ƒ‰์‹œ DB๋ฅผ ์กฐํšŒํ•˜๋Š”๊ฒŒ ์•„๋‹Œ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•˜๋‹ˆ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊ฑฑ์ •์„ ๋งŽ์ด ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ํ•˜์…จ๋‹ค. ๊ฒ€์ƒ‰์‹œ ๋„๋ฆฌ ์“ฐ์ด๋Š”๊ฒŒ ์—˜๋ผ์Šคํ‹ฑ ์„œ์น˜๋กœ ์•Œ๊ณ  ์žˆ๋Š”๋ฐ, ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ ์ด๊ฑธ ๋ง์”€ํ•˜์‹ ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์—˜๋ผ์Šคํ‹ฑ ์„œ์น˜, ์นดํ”„์นด, NoSQL ๊ฐ™์€ ๊ธฐ์ˆ  ์Šคํƒ์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

ํ”„๋ก ํŠธ์—”๋“œ์—์„œ API ๋ช…์„ธ์— ๋Œ€ํ•œ ์ˆ˜์ •์ด ์žˆ์„ ๋•Œ ๋ฐ”๋กœ๋ฐ”๋กœ ์ ์šฉ๋˜์ง€ ๋ชปํ•œ ์ ์ด ์•„์‰ฌ์šด ์ ์œผ๋กœ ๋ฝ‘์•˜๋‹ค. ์งง์€์‹œ๊ฐ„ ๋™์•ˆ ๋งŽ์€ ๊ฑธ ํ•ด๋‚ด์•ผํ•ด์„œ ์ž˜ ๊ด€๋ฆฌ ๋˜์ง€ ๋ชปํ•œ ๊ฒŒ ์•„์‰ฝ๊ธด ํ–ˆ๋‹ค. ํŒ€์›๋“ค์—๊ฒŒ๋„ ์ˆ˜์ • ํ›„ ๊ฐ์ž ๋‹ด๋‹น API ์ˆ˜์ •ํ•˜๋ผ๊ณ  ๋ง์€ ํ•˜์˜€์ง€๋งŒ, ์ „๋ถ€ ํ™•์ธํ•˜์ง€ ๋ชปํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค. ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋• Jira๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API๋‚˜ ํ˜‘์—…๊ด€๋ จํ•œ ๋ถ€๋ถ„์— ๋”์šฑ ๋งŽ์ด ์‹ ๊ฒฝ์จ์•ผ๊ฒ ๋‹ค๋Š” ๊ฑธ ๋Š๊ผˆ๋‹ค.

 


 

๐Ÿ•ฏ๏ธ Longed for : ๋ฐ”๋ผ๋Š” ์ 

์ดˆ๊ธฐ RFP ์—์„œ ํ‰๊ฐ€ ํ•ญ๋ชฉ ์ค‘ ์• ๋งคํ•œ ํ•ญ๋ชฉ์ด ์žˆ์–ด ํ”„๋กœ์ ํŠธ ์ง„๋„๋ฅผ ๋‚˜๊ฐ€๋Š” ๋ฐ ์• ๋ฅผ ๋จน์—ˆ๋‹ค. ๋‚˜๋„ ๋กœ์ง์„ ์งœ๋Š”๋ฐ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ํ›„ 5์ผ์ด ์ง€๋‚˜์„œ์•ผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜์„œ๊ฐ€ ๋ช…ํ™•ํ–ˆ๋‹ค๋ฉด ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ์„ค๊ณ„๋ฅผ ํ†ตํ•ด ์ง„๋„๊ฐ€ ์ฐฉ์ฐฉ์ฐฉ ๋‚˜๊ฐ”์„ํ…๋ฐ, ์š”๊ตฌ์ƒํ•ญ์ด ๋ถˆ๋ถ„๋ช…ํ•˜์—ฌ ์„ค๊ณ„๊ฐ€ ๋ฐ”๋€” ์ˆ˜๋„ ์žˆ๊ธฐ์— ์ง„๋„๋ฅผ ๋ชป๋‚˜๊ฐ€๊ณ  ์ฃผ๋ง ์ดํ‹€์ด ์—†์–ด์ง„ ์‚ฌ์‹ค์ด ๋„ˆ๋ฌด ์ŠฌํŽ๋‹ค.

 

๋˜ํ•œ ํŒจ์ŠคํŠธ ์บ ํผ์Šค X ์•ผ๋†€์ž ํ…Œํฌ์Šค์ฟจ์„ ํ•˜๋ฉด์„œ, ๋ชจ๋“  ์กฐ์ง์—์„œ ๋ฆฌ๋”๋ฅผ ๋งก์•˜๋‹ค. ์ด๋ฒˆ ๋ฏธ๋‹ˆํ”„๋กœ์ ํŠธ๋Š” ํŠนํžˆ 2์ฃผ๋ผ๋Š” ์งง์€ ์‹œ๊ฐ„( 5์ผ์ด ์‚ฌ๋ผ์ ธ ์‚ฌ์‹ค์ƒ ์ผ์ฃผ์ผ) ๋™์•ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋๋‚ด์•ผ ํ–ˆ๊ธฐ์— ์•ผ๋†€์ž ํ…Œํฌ์Šค์ฟจ์„ ํ•˜๋ฉฐ ์ฒ˜์Œ์œผ๋กœ ๋ฐค์„ ์ƒœ๋‹ค. ๋ง‰๋ฐ”์ง€์—” ๋ฆฌ๋“œ๋ฏธ๋„ ์ž‘์„ฑํ•˜๊ณ , API ๋ช…์„ธ์„œ๋„ ์žฌ์ฐจ ํ™•์ธํ•˜๊ณ , ๋ฐœํ‘œ ์ž๋ฃŒ๋„ ๋งŒ๋“ค๊ณ , ๋ฐœํ‘œ ์ค€๋น„๋„ ํ•ด์•ผํ•˜๋Š”๋ฐ ํŒ€์žฅ์œผ๋กœ์„œ ๋‹ค๋ฅธ ๋ถ„๋“ค ์—๋Ÿฌ๋ฅผ ๊ฐ™์ด ํ•ด๊ฒฐํ•ด ์ฃผ๋Š๋ผ ๋‚ด๊ฒƒ์— ์˜จ์ „ํžˆ ์ง‘์ค‘ํ•˜์ง€ ๋ชปํ•ด ์กฐ๊ธˆ ์•„์‰ฌ์› ๋‹ค. 
๊ทธ๋ ‡๋‹ค๊ณ  ํ›„ํšŒ๊ฐ€ ๋‚จ๋Š” ๊ฑด ์•„๋‹ˆ๋‹ค. ๋ฉ˜ํ† ๋‹˜์ด ๋ฐœํ‘œ๋„ ์ž˜ํ–ˆ๋‹ค๊ณ  ์นญ์ฐฌํ•ด์ฃผ์‹œ๊ณ , ํ”„๋ก ํŠธ์—”๋“œ ๋ถ„๋“ค๋˜ํ•œ ์ž˜ํ–ˆ๋‹ค๊ณ  ์นญ์ฐฌํ•ด ์ฃผ์…จ์ง€๋งŒ, ์‚ฌ๋žŒ์€ ์š•์‹ฌ์˜ ๋™๋ฌผ์ด๋ผ ๋” ์ž˜ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ใ…Žใ…Ž

ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ๋• ๋ฐฑ์—”๋“œ ๋กœ์ง ๋ถ€๋ถ„์—์„œ ๋”์šฑ ์‹ค๋ฌด ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž ๋‹ต๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๊ฒŒ ๋ชฉํ‘œ๊ฐ€ ๋๋‹ค.

 

 

'FastCampus X Yanolja TechSchool' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํŒจ์ŠคํŠธ์บ ํผ์ŠคX์•ผ๋†€์ž: ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ถ€ํŠธ ์บ ํ”„ - ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ : ์•ผ๋‚˜๋ฐ”๋‹ค ์ค‘๊ฐ„์ ๊ฒ€  (0) 2024.01.22
์•ผ๋†€์ž ํ…Œํฌ์Šค์ฟจ ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ - ์ฑ„ํŒ… ๋„๋ฉ”์ธ ์„ค๊ณ„(์•ˆ ์ฝ์€ ๋ฉ”์‹œ์ง€ ์ˆ˜, ์ฑ„ํŒ…๋ฐฉ ์‚ญ์ œ, ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€ ๋‚ด์—ญ)  (0) 2024.01.18
ํŒจ์ŠคํŠธ์บ ํผ์ŠคX์•ผ๋†€์ž: ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ถ€ํŠธ ์บ ํ”„ - ๐ŸŽ Spring ๊ธฐ๋ฐ˜ ํ† ์ด ํ”„๋กœ์ ํŠธ 3  (2) 2023.11.23
ํŒจ์ŠคํŠธ์บ ํผ์ŠคX์•ผ๋†€์ž: ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ถ€ํŠธ ์บ ํ”„ - ์•ผ๋†€์ž ํ…Œํฌ์Šค์ฟจ ๊ณผ์ • ์ค‘๊ฐ„ ํšŒ๊ณ   (0) 2023.11.17
ํŒจ์ŠคํŠธ์บ ํผ์ŠคX์•ผ๋†€์ž: ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ถ€ํŠธ ์บ ํ”„ - ๐ŸŽ Spring ๊ธฐ๋ฐ˜ ํ† ์ด ํ”„๋กœ์ ํŠธ 2  (0) 2023.11.02

๋Œ“๊ธ€