- 포트폴리오 - 여행 & 부동산 등 계획이 모이는 통합 플랫폼
- 여행, 부동산 등 각종 계획을 하나의 사이트에서 관리할 수 있는 통합플랫폼 구축을 목표로 개발
- front-end : react
- back-end : java, spring boot, spring security, Spring Boot Actuator, jpa, querydsl, junit
- database : mysql, redis
- monitoring : Prometheus, Grafana
- CI/CD : github actions
- container : docker
- TOOL : sourcetree, postman, git
- webflux mono flux 기반 실시간 채팅기능 추가
- 단위 테스트 코드 구성
- BE 로그인 프로세스 엔드포인트 및 테스트 코드 작성
- FE react 로그인 프로세스
- 메인 대시보드 화면 개발(템플릿 발굴)
- 회원 정보 페이지
- kpi 통계 산출 페이지
- 비즈니스 로직 테스트 코드 구현
- 깃허브 액션 CI/CD 자동배포 구성
- naver OAuth2.0 Login api 인증 테스트 완료
- http://localhost:8080/oauth2/authorization/naver 로 로그인 시 네이버 2차인증 로그인으로 랜딩 완료
- redis config 설정 완료 및 캐싱구성 완료
- k6 부하테스트 진행 시 20배 빨라짐 확인
- 레디스 구성, TTL 설정 또는 이벤트 트리거 추가
- 도커 compose 구성 완료
- CodeRabbit 자동 코드 리뷰 시스템 구축 완료
- 도커 실행 시 postgresql, redis 통합 서비스 올리도록 compose 구성
- 실행 명령어
docker-compose up --build -d
- 쿼리 수행 최적화 목적 캐싱구성, 성능최적화 시뮬레이션 목적
| 모니터링 종류 | 설명 | 추천 솔루션 |
|---|---|---|
| 애플리케이션 모니터링 | API 응답 속도, 에러율, DB 성능 | Spring Boot Actuator + Micrometer + Prometheus + Grafana |
- 테스트 시나리오 redis 캐싱처리 적용 전 1회 수행
script.js
import http from 'k6/http';
import { sleep } from 'k6';
export let options = {
vus: 30, // 동시 사용자 30명
duration: '10s', // 테스트 지속 시간 10초
};
export default function () {
http.get('http://localhost:8080/boards');
sleep(1);
}
- redis 캐싱처리 적용 후 1회 수행 후 속도 비교
- 웹, 웹소켓 동시 사용시 스프링시큐리티 충돌이슈 발생으로 인하여 web, websocket 모듈분리 작업 진행 중
- 자동 코드 리뷰: Spring Boot 모범 사례, 보안, 성능 최적화 검토
- 테스트 생성: JUnit 기반 테스트 코드 자동 생성
- 코드 개선: 리팩토링 제안 및 성능 최적화 방안 제시
- 문서화: 코드 문서 자동 생성 및 업데이트
- 보안 검사: OAuth2, WebSocket, Redis 관련 보안 취약점 검사
- CodeRabbit 앱 설치: https://github.com/apps/coderabbit 에서 저장소에 설치
- PR 생성: 새로운 브랜치에서 코드 변경 후 PR 생성
- 자동 리뷰: CodeRabbit이 자동으로 코드를 분석하고 리뷰 코멘트 작성
- 개선사항 적용: 제안된 개선사항을 검토하고 적용
.coderabbit.yaml: CodeRabbit 설정 파일.github/workflows/code-review.yml: GitHub Actions 워크플로우