Skip to content

Central-MakeUs/AZIT_Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

709 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸƒβ€β™‚οΈ 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, Spring Batch
  • 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, ECS, Fargate, EventBridge)
  • Container: Docker, Docker Compose
  • Web Server: Nginx (Reverse Proxy, Blue-Green Switching)
  • CI/CD: GitHub Actions
  • Monitoring: New Relic, Discord (μ•Œλ¦Ό 연동)
  • OS: Ubuntu 22.04 LTS

βš™οΈ μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜ νŠΉμ§•

  • 도메인 주도 섀계(DDD): 도메인 객체 내뢀에 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 μƒνƒœ λ³€κ²½ λ©”μ„œλ“œλ₯Ό μΊ‘μŠν™”ν•˜μ—¬ 응집도λ₯Ό λ†’μ˜€μŠ΅λ‹ˆλ‹€.
  • ν—₯사고날 μ•„ν‚€ν…μ²˜(Hexagonal): in / out ν¬νŠΈμ™€ μ–΄λŒ‘ν„°λ₯Ό λͺ…ν™•νžˆ λΆ„λ¦¬ν•˜μ—¬ μ˜μ†μ„± 계측(DB)의 변경이 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(UseCase)에 영ν–₯을 μ£Όμ§€ μ•Šλ„λ‘ μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€.
  • 데이터 처리 μ΅œμ ν™” (Spring Batch): λŒ€λŸ‰μ˜ 데이터 처리(νƒˆν‡΄ νšŒμ› 영ꡬ μ‚­μ œ, 무톡μž₯ μž…κΈˆ κΈ°ν•œ 만료 μ£Όλ¬Έ μ·¨μ†Œ 처리 λ“±)λ₯Ό API μ„œλ²„μ™€ λΆ„λ¦¬ν•˜μ—¬ μ„œλ²„ λ¦¬μ†ŒμŠ€ 간섭을 λ°©μ§€ν•˜κ³ , Chunk μ§€ν–₯ 처리λ₯Ό 톡해 λ©”λͺ¨λ¦¬ νš¨μœ¨μ„±μ„ κ·ΉλŒ€ν™”ν–ˆμŠ΅λ‹ˆλ‹€.

☁️ 인프라 및 CI/CD

AZIT Infrastructure Architecture

☁️ μ„œλ²„λ¦¬μŠ€ 배치 μ‹œμŠ€ν…œ

  • μžμ› 격리: λŒ€μš©λŸ‰ 데이터 μž‘μ—…μ΄ μƒμ‹œ 가동 쀑인 API μ„œλ²„(EC2)의 μ„±λŠ₯에 영ν–₯을 μ£Όμ§€ μ•Šλ„λ‘ μ»¨ν…Œμ΄λ„ˆ ν™˜κ²½μ„ μ™„μ „νžˆ λΆ„λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€.
  • λΉ„μš© μ΅œμ ν™”: 24μ‹œκ°„ μ„œλ²„λ₯Ό λ„μš°μ§€ μ•Šκ³ , 배치 μž‘μ—…μ΄ ν•„μš”ν•œ μ‹œμ μ—λ§Œ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜λ©° Fargate Spot μΈμŠ€ν„΄μŠ€λ₯Ό ν™œμš©ν•΄ λΉ„μš©μ„ μ ˆκ°ν–ˆμŠ΅λ‹ˆλ‹€.
  • μŠ€μΌ€μ€„λ§: AWS EventBridgeλ₯Ό 톡해 각 배치 μž‘μ—…μ˜ μ‹€ν–‰ μ£ΌκΈ°λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.

πŸš€ 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 μ›Ήν›…κ³Ό μ—°λ™ν•˜μ—¬ μ¦‰κ°μ μœΌλ‘œ λŒ€μ‘ν•  수 μžˆλŠ” 체계λ₯Ό κ°–μ·„μŠ΅λ‹ˆλ‹€.

About

πŸ† CMC 18th μš°μˆ˜μƒ πŸ† λŸ¬λ‹ 크루λ₯Ό μœ„ν•œ 운영 & 제휴 μ„œλΉ„μŠ€, AZIT

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages