Search
💻

프로젝트 포트폴리오

포트폴리오 Notion 주소 : https://jiwon.oopy.io/portfolio

Cabi

프로젝트 소개

42서울 교육장에 배치된 400여개 사물함을 약 600명의 사용자들에게 대여 및 반납 서비스를 제공하는 웹 애플리케이션
서비스 로직 소개
개발 기간
개발 인원
2023.03 ~ now
Backend 5명, Frontend 4명

시스템 구조

ERD

백엔드 기술 스택

언어
서버
Framework
DB
IDE
API
OpenJDK 11
AWS EC2, Docker, Apache Tomcat
Spring Framework, Spring Boot Framework 2.7.9
MariaDB, Redis
IntelliJ IDEA
RESTful API(JSON)

기여

User 및 Admin 패키지 내부 로직 구현 및 테스트 작성
User, Admin 패지키 관련 CRUD 기능 구현
User, Admin 관련 단위 테스트 작성
조회 쿼리 분석 및 성능 최적화
가장 자주 호출되는 조회 쿼리 분석 및 리팩토링
데이터베이스에 적용되어 있는 인덱스 분석
여러 N+1 문제 발생 조회 쿼리에서 Fetch Join과 Bulk update를 통한 문제 해결
동시성 문제 분석 및 해결
관리자 페이지로 여러 사용자를 동시 반납 시켰을 시에 발생하는 동시성 문제에 대한 원인 분석 및 해결
Redis 적용 및 공유 사물함 세션 기능 구현
Redis 분석 및 10분간만 유지되는 공유 사물함 세션과 초대코드 관련 기능 구현
추후 캐싱 및 데이터베이스 기능을 활용하기 위한 백업 기능 구현
Facade 패턴 개선
잘못 사용되고 있는 Facade 패턴 분석 및 개선된 구조 제안
개선된 구조로 리팩토링 적용
배달의 민족 벤치마킹
우아콘 발표 내용 분석 및 정리
발표 내용 중 적용할 수 있는 부분들에 대해 벤치마킹
AOP로 로깅 및 웹 훅으로 디스코드 알림 적용하기
AOP를 통해 HTTP 요청 시 컨트롤러 로깅 기능 구현
AOP를 통해 어드민으로 갱신(UPDATE) 처리 시, 웹 훅으로 작업한 어드민 이름과 작업 내용을 디스코드 Cabi 채널에 알림 적용
로깅 애노테이션 작성
간편한 로깅을 위해 애노테이션만 추가하면 자동으로 클래스명 + 메서드명 + 파라미터를 로깅으로 출력해주는 로깅 애노테이션 작성
여러 로깅 레벨에 맞춰 사용할 수 있도록 로깅 레벨 구현

도메인

웹 링크
(42서울 Oauth2 인증 필요)
데모 페이지 링크
(42서울 Oauth2 인증 불필요)
Github
42cabi
innovationacademy-kr

42PAW

프로젝트 소개

전세계 30개국 48개 교육 캠퍼스의 모든 42 교육생들이 이용할 수 있는 애완동물 일상 공유 SNS
서비스 로직 소개
개발 인원
개발 기간
Frontend 3명, Backend 2명
2023.
05 ~ 2023.12

시스템 구조도

ERD

백엔드 기술 스택

언어
서버
Framework
DB
IDE
API
OpenJDK 17
AWS EC2, AWS S3, Docker, NGINX, Apache Tomcat
Spring Framework, Spring Boot Framework 3.1.0
MariaDB
IntelliJ IDEA
RESTful API(JSON)

기여

내부 로직 구현 및 테스트 작성
멤버, 팔로우, 차단, 카테고리 필터 엔티티 구현
멤버, 팔로우, 차단, 카테고리 필터 CRUD API 구현
멤버, 팔로우, 차단, 카테고리 필터 E2E 테스트 작성
게시글 조회 쿼리 최적화
게시글을 조회하는 쿼리에 성능 개선을 시도하여, 99ms에서 32ms로 최적화
모니터링 툴(Prometheus, Grafana) 적용하기
쉽게 모니터링 할 수 있도록 스프링 액추에이터와 프로메테우스를 연동하고 그라파나를 적용

도메인

웹 링크
Github
서비스 종료