캔디 개발 노트
- Fronet-end: Next.js
- Back-end: Spring Boot, Node.js, Python3, Go
- Module을 통한 도메인 분리
- Spring Cloud 적용
- Serverless를 위한 GraalVM AOT native-image 빌드로 가벼운 이미지 배포
-
DevOps 구축
- CI/CD Script 작성
- Ansible Script 작성
-
Kubernates 공부
- Service Mesh: Istio
-
Apps
- Spring Backend Deployment
- Image Resize Server
-
Spring Cloud 적용
- Service Divide
- 유저, 커뮤니티 Read, Write 서버 분리 (예정)
- 로드 테스트로 분리 근거 남기기
- Spring Boot Actuator
- Spring Cloud Config
- Spring Cloud Netflix Eureka
- Spring Cloud Load Balancer Client
- Spring Cloud Resilience4j
- Spring Cloud Gateway
- Spring Cloud Stream (Kafka)
- Service Divide
-
ELK Logging 스택 구축
- Micro Service App 프로젝트 Id 규칙 및 로깅 전략 설계
- PostgreSQL, LLVM Jit을 통한 쿼리 튜닝
- Redis, MongoDB를 통한 정적 자료 캐시 및 조회 제공
- API
- API Server: http://server/api/v1/
- Static
- Image Serving: http://cdn/img/url.ext
- Raw Image Serving: http://server/static/raw/from/s3.ext
-
OAuth2.0
- [Backend] Redirect to
/oauth2/authorization/[naver|kakao|facebook|google]
- [Client] Login and Authorization on OAuth2.0 Provider
- [Backend] Redirect to
/login/oauth2/code/[naver|kakao|facebook|google]?state,code,scope
- [Front] Redirect to
/
- [Backend] Redirect to
-
Session
-
JWT (external API)
트래픽을 줄이기 위한 이미지 리사이징
- S3 Presigned Image URL
- S3 Raw Image Upload (front)
- SQS 연동
- Node.js 기반 Sharp App
- Node.js 기반 Image Proxy App (Sharp App이랑 통합가능한가?)
- CDN Fail시 CDN 적재 (LRU)
- Elastic Search에 넣는다.
- 수정 요청이 들어오면 수정 사항을 반영한다.
- 삭제 요청이 들어오면 해당 Article를 ES에서 삭제한다.
- 검색 요청이 들어오면 검색한다.
- 구현
- 구현