2024/03 ~ 주니어 백엔드 개발자

About Me


Introduction.

언제나 발전하는 백엔드 개발자 김태은입니다

항상 겸손한 마음으로 팀원과 함께 발전하기 위하여 노력합니다.

Contact.

Main Project


ChatGPT Image 2025년 4월 15일 오후 03_59_13 1.png

Server Leader

2025/03 ~

GSMC

GSM 인증제 관리 서비스

현재 재학중인 학교만의 특별한 학생 평가 시스템인 GSM 인증제의 공식 관리 서비스입니다

학생회와 선생님들에게 가치를 인정받아 공식 관리 시스템으로 채택되었으며 기존 수기로 40여가지 항목을 직접 기록하고 증빙자료를 작성하던 불편함에서 벗어나 학생들과 선생님들이 편리하도록 도왔습니다

Skill


Server

Java, SpringBoot, Spring Data JPA, QueryDSL, Spring Security, MySQL, Redis, Java Caffeine

DevOps

Docker, Github Action, MinIO

Part


Server

Contribute.


<aside> 💡 헥사고날 아키택쳐 구축

프로젝트 특성상 주기적으로 요구사항이 변경되며 초기 개발기간이 충분하고 수정이 잦기 때문에 단단하고 코드 변경 시에도 변경이 크게 전파되지 않는 헥사고날 아키택쳐가 적절하다 판단하였고 해당 아키택쳐를 채택하였습니다.

MVC 패턴의 기초적인 구조에 따라 크게 3개의 계층으로 Presentation, Application, Persistence로 구분하고 각 계층 간 Port/Adapter 패턴으로 진입점을 구현하여 책임을 완전히 분리하였습니다. AWS S3와 같은 외부 API와 연결되는 부분도 Port/Adapter 패턴으로 분리하여 예외 전파와 책임을 분리하였습니다

Presentation

Application

Persistence

GitHub PR

https://github.com/team-incube/GSMC-server-V2/pull/1

</aside>

<aside> 💡 캐싱을 활용한 성능 개선

GSM 인증제는 40여 가지의 항목들도 구성되는데 해당 항목들의 수정이 운영기간에는 거의 없으며 읽기 요청이 압도적으로 많다는 점을 인지하여 이를 캐싱해 두고 사용하면 I/O를 줄여 RDB의 부하를 줄임과 동시에 처리 속도 역시 높일 수 있어 효율적이라 판단해 해당 방안을 채택하였습니다.

항목 이름을 이용해 항목을 조회하는 메서드에 @Cacheable 어노테이션을 사용하여 캐싱을 적용하였고 성능 측정을 시도하였습니다.

image.png

성능 향상

자격증을 등록하는 API를 기준으로 삼아 Jmeter로 성능을 측정하였고 5000쿼리 기준으로 평균 응답 시간 640ms → 510ms로 20.31% 향상되었으며 실제 환경에서 레이턴시가 476ms → 269ms로 43.49% 향상되었습니다.

GitHub PR

https://github.com/team-incube/GSMC-server-V2/pull/51

</aside>