Skip to content

πŸ“ 릴리즈 λ…ΈνŠΈ μ„œλΉ„μŠ€, A-LOG Server

Notifications You must be signed in to change notification settings

chldppwls12/alog-service-project

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

39 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌼 λ™μ‹œνŽΈμ§‘ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” 릴리즈 λ…ΈνŠΈ 곡유 μ‹œμŠ€ν…œ, A-LOG

개발 κΈ°κ°„ 2023.05 ~ 2023.08
μ‚¬μ΄νŠΈ λ°”λ‘œκ°€κΈ° https://alog.acceler.kr/ (πŸ”§μ—…λ°μ΄νŠΈ 쀑)
Team repo https://github.com/orgs/KEA-ACCELER/repositories

😺 Stacks

🐳 Service Architecture

alog-project

πŸ“š Project Structure

src/main/java/kea/alog/project
β”œβ”€β”€ common
β”‚   β”œβ”€β”€ constant
β”‚   β”œβ”€β”€ dto
β”‚   β”œβ”€β”€ entity
β”‚   β”œβ”€β”€ exception
β”‚   β”œβ”€β”€ interceptor
β”‚   β”œβ”€β”€ openFeign
β”‚   └── util
β”œβ”€β”€ config
└── domain
    β”œβ”€β”€ project
    β”‚   β”œβ”€β”€ constant
    β”‚   β”œβ”€β”€ controller
    β”‚   β”œβ”€β”€ dto
    β”‚   β”œβ”€β”€ entity
    β”‚   β”œβ”€β”€ mapper
    β”‚   β”œβ”€β”€ repository
    β”‚   └── service
    β”œβ”€β”€ projectMember
    β”‚   β”œβ”€β”€ controller
    β”‚   β”œβ”€β”€ dto
    β”‚   β”œβ”€β”€ entity
    β”‚   β”œβ”€β”€ repository
    β”‚   └── service
    └── topic
        β”œβ”€β”€ constant
        β”œβ”€β”€ controller
        β”œβ”€β”€ dto
        β”œβ”€β”€ entity
        β”œβ”€β”€ mapper
        β”œβ”€β”€ repository
        └── service

Components

  • common
    • κ³΅ν†΅μ μœΌλ‘œ μ‚¬μš©λ  파일둜 ꡬ성
    • constant, dto, entity, exception, interceptor, openFeign, util둜 ꡬ성
    • openFeign의 경우 μ•Œλ¦Ό μ„œλΉ„μŠ€μ™€μ˜ 톡신 μ‰½κ²Œ ν•˜κΈ° μœ„ν•΄ 쑴재
    • interceptor의 경우 인증 μ„œλΉ„μŠ€μ—μ„œ JWT μœ νš¨μ„±μ„ νŒλ‹¨ν•˜κ³  λ„˜μ–΄μ˜¨ 정보λ₯Ό κΈ°μ€€μœΌλ‘œ μ—λŸ¬ λ°œμƒ ν˜Ήμ€ μœ μ € 정보 μ‚½μž…ν•˜λŠ” JwtInterceptor 쑴재
  • config
    • cors μ„€μ • 및 swagger μ„€μ • λ“±μ˜ 파일둜 ꡬ성
  • domain
    • 도메인 λ³„λ‘œ 디렉토리 ꡬ성
    • 각각의 λ””λ ‰ν† λ¦¬μ—λŠ” constant, controller, dto, entity, mapper, repository, service 쑴재
    • project
      • ν”„λ‘œμ νŠΈ κ΄€λ ¨ 도메인
    • projectMember
      • ν”„λ‘œμ νŠΈ ꡬ성원 κ΄€λ ¨ 도메인
    • topic
      • ν”„λ‘œμ νŠΈ ν•˜μœ„ κ°œλ…μΈ ν† ν”½ κ΄€λ ¨ 도메인

πŸ™‚ μ„±λŠ₯ν…ŒμŠ€νŠΈ with Ngrinder

A-LOG ν”„λ‘œμ νŠΈ μ„œλΉ„μŠ€μ˜ GET /api/projects?teamPk=&page=&size=&sortType으둜 νŒ€ 별 ν”„λ‘œμ νŠΈ 쑰회 μ‹œ teamPkλ₯Ό 인덱슀둜 λ„£μ—ˆμ„ λ•Œ μ„±λŠ₯이 μ–Όλ§ˆλ‚˜ κ°œμ„ λ˜λŠ”μ§€ Ngrinderλ₯Ό 톡해 확인

  • ν”„λ‘œμ‹œμ €λ₯Ό 톡해 κ΄€λ ¨ 더미 데이터 3만개 μ‚½μž…
  • vUser 3천λͺ…

인덱슀 μ‚¬μš©ν•˜μ§€ μ•Šμ•˜μ„ 경우 ngrinder-without-idx

μ μ ˆν•œ 인덱슀 μ‚¬μš©ν•œ 경우 ngrinder-with-idx

λžœλ€ν•œ teamPk둜 νŒ€ 별 ν”„λ‘œμ νŠΈ 쑰회 APIλ₯Ό ν˜ΈμΆœν–ˆμ„ λ•Œ 인덱슀 적용 ν›„ tps μ•½ 50λ°° 증가

  • 단일 WASμ—μ„œ 인덱슀λ₯Ό μ μš©ν•˜μ§€ μ•Šμ•˜μ„ 경우 tpsλŠ” 7.4
  • 인덱슀 적용 ν›„μ—λŠ” tpsκ°€ 354.5

✨ Installation

Add docker-compose.yml

version: '3'
services:
  web:
    build: ./
    environment:
      - SPRING_DATASOURCE_URL=
      - SPRING_DATASOURCE_USERNAME=
      - SPRING_DATASOURCE_PASSWORD=
      - NOTICE_SERVICE_URL=
    ports:
      - "30000:8083"
    depends_on:
      db:
        condition: service_healthy
  db:
    image: mysql:latest
    environment:
      - MYSQL_DATABASE=
      - MYSQL_ROOT_PASSWORD=
    healthcheck:
      test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
      interval: 10s
      timeout: 2s
      retries: 10

Running the app

  • 도컀 μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰
docker compose up -d

πŸ€ Swagger

http://localhost:30000/api/projects

swagger

About

πŸ“ 릴리즈 λ…ΈνŠΈ μ„œλΉ„μŠ€, A-LOG Server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.7%
  • Other 0.3%