Skip to content

Latest commit

ย 

History

History
88 lines (68 loc) ยท 5.52 KB

File metadata and controls

88 lines (68 loc) ยท 5.52 KB

๐Ÿƒโ€โ™‚๏ธ AZIT (์•„์ง€ํŠธ) - ๋Ÿฌ๋‹ ํฌ๋ฃจ๋ฅผ ์œ„ํ•œ ์šด์˜ ๋ฐ ์ œํœด ์„œ๋น„์Šค

1

"ํฌ๋ฃจ์›๊ณผ ํ•จ๊ป˜ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์ถœ์„ ์ธ์ฆ๋ถ€ํ„ฐ ์•„์ง€ํŠธ ์ „์šฉ ์Šคํ† ์–ด๊นŒ์ง€"

AZIT๋Š” ๋Ÿฌ๋‹ ํฌ๋ฃจ์˜ ์ผ์ •์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ์œ„์น˜ ๊ธฐ๋ฐ˜ ์ถœ์„ ์ฒดํฌ ๋ฐ ํฌ์ธํŠธ ์ ๋ฆฝ์„ ํ†ตํ•ด ํฌ๋ฃจ์›๋“ค์˜ ์ฐธ์—ฌ๋„๋ฅผ ๋†’์ด๋Š” ๋Ÿฌ๋‹ ํฌ๋ฃจ ์ „์šฉ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.




โœจ ํ•ต์‹ฌ ๊ธฐ๋Šฅ

์Šคํฌ๋ฆฐ์ƒท1 ์Šคํฌ๋ฆฐ์ƒท2 ์Šคํฌ๋ฆฐ์ƒท3 ์Šคํฌ๋ฆฐ์ƒท4 ์Šคํฌ๋ฆฐ์ƒท5

1. ๐Ÿ“ ์‹ค์‹œ๊ฐ„ ์œ„์น˜ ๊ธฐ๋ฐ˜ ์ถœ์„ ์ฒดํฌ

  • GPS ๊ธฐ๋ฐ˜ ์ธ์ฆ: ๋ชจ์ž„ ์žฅ์†Œ ๋ฐ˜๊ฒฝ 100m ์ด๋‚ด์—์„œ๋งŒ ์ถœ์„ํ•˜๊ธฐ ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™”๋˜์–ด ์ •ํ™•ํ•œ ์ถœ์„์„ ์œ ๋„ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šค๋งˆํŠธ ํƒ€์ž„ ์œˆ๋„์šฐ: ๋ชจ์ž„ ์‹œ๊ฐ„ 1์‹œ๊ฐ„ ์ „๋ถ€ํ„ฐ 1์‹œ๊ฐ„ ํ›„๊นŒ์ง€๋งŒ ์ถœ์„์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์ œํ•œํ•˜์—ฌ ์šด์˜์˜ ์‹ ๋ขฐ์„ฑ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.
  • ํ™ˆ ์œ„์ ฏ: ์•ฑ ์ง„์ž… ์‹œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ผ์ •์˜ ์ถœ์„ ๊ฐ€๋Šฅ ์ƒํƒœ(D-Day, ๋‚จ์€ ์‹œ๊ฐ„)๋ฅผ ์ง๊ด€์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๐Ÿ“… ์บ˜๋ฆฐ๋” ๊ธฐ๋ฐ˜ ๋Ÿฌ๋‹ ์ฐธ์—ฌ ๋ฐ ์ƒ์„ฑ

  • ์›”๋ณ„ ์ผ์ • ์กฐํšŒ: ์ •๊ธฐ๋Ÿฐ๊ณผ ๋ฒˆ๊ฐœ๋Ÿฐ์„ ์บ˜๋ฆฐ๋”์— ์ƒ‰์ƒ ์ (Dot)์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•œ๋ˆˆ์— ํฌ๋ฃจ ์ผ์ •์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ถฉ๋Œ ๋ฐฉ์ง€ ๋กœ์ง: ๋‚ด๊ฐ€ ์ด๋ฏธ ์ฐธ์—ฌ ์ค‘์ธ ์ผ์ •๊ณผ ์‹œ๊ฐ„์ด ๊ฒน์น˜๋Š” ์ƒˆ๋กœ์šด ์ผ์ •์—๋Š” ์ฐธ์—ฌํ•  ์ˆ˜ ์—†๋„๋ก ๊ฒ€์ฆ ๋กœ์ง์ด ์ ์šฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๐ŸŽ ์ถœ์„ ๋ณด์ƒ ๋ฐ ์ „์šฉ ์Šคํ† ์–ด

  • ํฌ์ธํŠธ ์ ๋ฆฝ: ์ถœ์„์„ ์™„๋ฃŒํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ 100 ํฌ์ธํŠธ๊ฐ€ ์ฆ‰์‹œ ์ ๋ฆฝ๋ฉ๋‹ˆ๋‹ค.
  • ์•„์ง€ํŠธ ํฌ๋ฃจ ์ „์šฉ ์Šคํ† ์–ด: ๋ชจ์€ ํฌ์ธํŠธ๋ฅผ ํ™œ์šฉํ•ด ๋Ÿฌ๋‹ ์šฉํ’ˆ ๋“ฑ ์•„์ง€ํŠธ๋งŒ์˜ ํŠน๋ณ„ํ•œ ์ƒํ’ˆ์„ ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€๊ฒฉ์— ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๐Ÿ‘ฅ ํฌ๋ฃจ ๊ด€๋ฆฌ

  • ๋ฆฌ๋”์˜ ์Šน์ธ/๊ฑฐ์ ˆ, ๋ฉค๋ฒ„ ๋ฐฉ์ถœ ๋“ฑ์˜ ๊ถŒํ•œ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•œ ํฌ๋ฃจ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

Backend

  • Language & Framework: Java, Spring Boot
  • Architecture: Hexagonal Architecture (Port & Adapter Pattern)
  • Database & ORM: Spring Data JPA, QueryDSL, MySQL, Redis
  • Documentation: Swagger (SpringDoc OpenAPI)
  • Security: Spring Security, JWT (Apple/Kakao OAuth)

Infrastructure & DevOps

  • Cloud: AWS (EC2, RDS, S3, CloudFront, Route53)
  • Container: Docker, Docker Compose
  • Web Server: Nginx (Reverse Proxy, Blue-Green Switching)
  • CI/CD: GitHub Actions
  • Monitoring: New Relic(APM), Sentry, Discord (์•Œ๋ฆผ ์—ฐ๋™)
  • OS: Ubuntu 22.04 LTS

โš™๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ํŠน์ง•

  • ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD): ๋„๋ฉ”์ธ ๊ฐ์ฒด ๋‚ด๋ถ€์— ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์ƒํƒœ ๋ณ€๊ฒฝ ๋ฉ”์„œ๋“œ๋ฅผ ์บก์Аํ™”ํ•˜์—ฌ ์‘์ง‘๋„๋ฅผ ๋†’์˜€์Šต๋‹ˆ๋‹ค.
  • ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal): in / out ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ์˜์†์„ฑ ๊ณ„์ธต(DB)์˜ ๋ณ€๊ฒฝ์ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(UseCase)์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋„๋ก ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ตœ์ ํ™” (Spring Batch): ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ(ํƒˆํ‡ด ํšŒ์› ์˜๊ตฌ ์‚ญ์ œ, ๋ฌดํ†ต์žฅ ์ž…๊ธˆ ๊ธฐํ•œ ๋งŒ๋ฃŒ ์ฃผ๋ฌธ ์ทจ์†Œ ์ฒ˜๋ฆฌ ๋“ฑ)๋ฅผ API ์„œ๋ฒ„์™€ ๋ถ„๋ฆฌํ•˜์—ฌ ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค ๊ฐ„์„ญ์„ ๋ฐฉ์ง€ํ•˜๊ณ , Chunk ์ง€ํ–ฅ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

โ˜๏ธ ์ธํ”„๋ผ ๋ฐ CI/CD

AZIT Infrastructure Architecture


๐Ÿš€ CI/CD ๋ฐ ๋ฐฐํฌ (Blue-Green)

  • ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ: Nginx์™€ Docker Compose๋ฅผ ํ™œ์šฉํ•œ Blue-Green ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์šด ํ›„, Spring Boot Actuator๋กœ ํ—ฌ์Šค ์ฒดํฌ๋ฅผ ํ†ต๊ณผํ–ˆ์„ ๋•Œ๋งŒ Nginx ํฌํŠธ๋ฅผ ์Šค์œ„์นญํ•˜์—ฌ ์„œ๋น„์Šค ์ค‘๋‹จ ์—†์ด ์•ˆ์ •์ ์ธ ๋ฐฐํฌ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ์„ ๊ณ ๋ คํ•œ ๋™์  ํŒŒ์ดํ”„๋ผ์ธ: GitHub Actions๋ฅผ ํ†ตํ•œ ์ž๋™ ๋ฐฐํฌ ์‹œ, Runner์˜ IP๋ฅผ AWS EC2 Security Group์— ์ž„์‹œ๋กœ ํ—ˆ์šฉ(Port 22)ํ•˜๊ณ  ๋ฐฐํฌ ์™„๋ฃŒ ํ›„ ์ฆ‰์‹œ ์ฐจ๋‹จํ•˜์—ฌ ์™ธ๋ถ€์˜ ๋ณด์•ˆ ์œ„ํ˜‘์„ ์ตœ์†Œํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์•Œ๋ฆผ: ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด๋กœ New Relic์„ ๋„์ž…ํ•˜์—ฌ ์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ ๋“ฑ ์„œ๋ฒ„์˜ ์„ฑ๋Šฅ๊ณผ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋ฉฐ, ์‹œ์Šคํ…œ ์žฅ์• ๋ฅผ Discord ์›นํ›…๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์ฆ‰๊ฐ์ ์œผ๋กœ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ฒด๊ณ„๋ฅผ ๊ฐ–์ท„์Šต๋‹ˆ๋‹ค.