PORTFOLIO-DETAIL.

프로젝트 타임라인

2025.10-11 ━━ Ongil Docker Swarm 클러스터 | Prometheus+Grafana+Loki | k6 부하테스트 | Jenkins+Sonarqube

2025.08-09 ━━ Magic Bug 모니터링 스택 첫 도입 | Nginx 최적화 (86% 개선)

2025.07-08 ━━ Matching-SSAFY 멀티 인스턴스 환경 | 분산 캐싱 (97% 개선) | Jenkins CI/CD

2025.05-06 ━━ Hamgaja Docker | Nginx | GitHub Actions CI/CD

목차

  1. Ongil
  2. Magic Bug
  3. Matching-SSAFY
  4. Hamgaja


Ongil

1. 프로젝트 개요

2. 시스템 아키텍처

아키텍처 다이어그램

3. 주요 화면


환자 행동 분석

환자 건강 분석

환자 행동 통계

환자 현재 위치

AI 분석

최근 통화 목록

4. 기술적 의사결정

4-1. Traefik 배치 문제

4-2. 서버 클러스터링 기술 선택

5. 트러블슈팅

5-1. Traefik SSL 유실

5-2.시그널링 메세지 유실 문제

Spring의 SimpleBroker는 해당 노드 내에서 로컬로 작동하는데, 우리 프로젝트의 아키텍쳐에서는 서버를 3개를 사용하기 때문에 서로 다른 서버에 웹소켓이 연결되어 시그널링을 제대로 받을 수 없어 발생한 문제였다. 가끔 운이 좋아 같은 노드에서 웹소켓 통신이 연결됬을 땐 작동했던 것이다. 이런 분산 환경과 동시성 제어에 대한 경험이 많이 없어 발생했던 문제였다.

5-3. Voip 문제

5-4. 커넥션 풀 병목 문제

6. 회고



Magic Bug

1. 프로젝트 개요

2. 시스템 아키텍처

yosul-infra.png

3. 주요 화면


메인 화면

내 서재

도서 목록

책 모달

책 읽기

4. 성능 최적화

Nginx 3D 모델 로딩 최적화

5. 기술적 의사결정

6-1. ManytoMany vs Jsonb

6. 회고



Matching-SSAFY

1. 프로젝트 개요

2. 시스템 아키텍처

Matchingssafy-아키텍처.png

Nginx를 통해 3개의 스프링 인스턴스를 로드밸런싱 하고, Hazelcast로 분산 캐싱, 분산 락을 구현함으로써 분산 환경을 구현했습니다.
DB는 PostgreSQL을 사용했고 FastAPI로 만든 추천 시스템을 추가했습니다.

3. 주요 화면


메인 화면

관리자용 대시보드

팀 생성 화면

팀 페이지

팀원 추천

4. 성능 최적화

대시보드 캐싱 (97% 개선)

5. 기술적 의사결정

5-1. Hazelcast vs Redis

5-2. Jenkins vs GitHub Actions

6. 회고

Hamgaja

1. 프로젝트 개요

2. 시스템 아키텍처

hamgaja.png

Docker를 사용해 EC2에 Nginx, Spring, Vue, MySQL 컨테이너를 띄워 배포했습니다.

3. 주요 화면


메인 화면

관광지 검색

여행계획 페이지

게시판 페이지

4. 기술적 의사결정

Docker, CI/CD 도입

5. 회고