Skip to content

candy-devs/candy-architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 

Repository files navigation

candy-architecture

캔디 개발 노트

  • Fronet-end: Next.js
  • Back-end: Spring Boot, Node.js, Python3, Go

Backend

Java

  • Module을 통한 도메인 분리
  • Spring Cloud 적용
  • Serverless를 위한 GraalVM AOT native-image 빌드로 가벼운 이미지 배포

Micro Service

  • 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)
  • ELK Logging 스택 구축

    • Micro Service App 프로젝트 Id 규칙 및 로깅 전략 설계

Database

  • PostgreSQL, LLVM Jit을 통한 쿼리 튜닝
  • Redis, MongoDB를 통한 정적 자료 캐시 및 조회 제공

Ingress

Micro Apps

Backend

Auth
  • OAuth2.0

    OAuth

    1. [Backend] Redirect to /oauth2/authorization/[naver|kakao|facebook|google]
    2. [Client] Login and Authorization on OAuth2.0 Provider
    3. [Backend] Redirect to /login/oauth2/code/[naver|kakao|facebook|google]?state,code,scope
    4. [Front] Redirect to /
  • Session

    Session

  • JWT (external API)

    JWT external API

Image Resize App

Resize

트래픽을 줄이기 위한 이미지 리사이징

  • 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)

Article Search App

Article Search

  • Elastic Search에 넣는다.
  • 수정 요청이 들어오면 수정 사항을 반영한다.
  • 삭제 요청이 들어오면 해당 Article를 ES에서 삭제한다.
  • 검색 요청이 들어오면 검색한다.

Hot Article Picker App

  • 구현

Hot Tag Picker App

  • 구현

About

Candy Development Note

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published