미리보기
기본 정보
개선을 위해 탐구하고 적용시켜 보는 것을 좋아하는 개발자 문정환 입니다.
기술 스택
Java, Spring, JPA, MySQL, Redis, GitHub, Python
프로젝트
선착순 쿠폰 발급 서비스
개인
2024.08. ~ 2024.09.
단일 서버 환경에서 선착순으로 쿠폰을 발급하는 서비스 입니다.
In-Memory DB의 효율적인 사용을 위해 고민하였습니다.
대기열 큐 도입으로 인한 트래픽 처리 성능 향상 (TPS: 277 -> 977, MTT: 72.52ms -> 20.22ms)
쿠폰 발급 API요청 시 쓰레드 점유로 인한 병목 현상 고민
Tomcat -> Dispatcher Servlet 요청 전 후의 흐름 학습
Redis Latency 개선 (50000개 데이터 기준 17150ms -> 443ms)
Redis와의 네트워크 통신에서 발생하는 Latency 문제
Redis의 공식 문서를 참조하며, Pipelining과 LuaScript의 원리를 학습 후 LuaScript 적용
다양한 환경에서 최적화 가능하게 되었음
Redis Data의 Persistence와 MySQL 간의 데이터 일관성을 위한 AOF(Append Only File) 도입
서버 장애로 인해 LocalCache가 휘발되어 데이터 일관성이 깨지는 것에 관한 고민
Redis persistence 옵션들의 원리 학습
Local Cache와 Redis의 적절한 분배를 통해 메모리 사용량 30% 개선 (1GB -> 0.7GB)
배치 시스템 적용을 통한 데이터베이스 저장 성능 개선
1차 개선 (50000개 데이터 기준 1분 40초 -> 20초)
2차 개선 (50000개 데이터 기준 20초 -> 0.35초)
책임에 맞는 Service로 분리하여 비즈니스 로직 개선
경력
(주)에프에이솔루션
인턴 | AI사업부
2022.08. ~ 2023.02. (7개월)
태아 심박동 그래프 분석 서비스
AI를 통해 태아 심박동 그래프를 분석하여 결과를 알려주는 서비스입니다.
데이터베이스 조회 및 저장 성능 개선
개인정보 마스킹 및 이미지 저장을 위한 API 개발
그래프 인식 알고리즘 개발
Python, JavaScript, MS-SQL, OpenCV, Ajax
포트폴리오
대외활동
인프런 워밍업 클럽 0기
인프랩
인프런의 워밍업 클럽 0기에 참여하여 강의를 통해 Spring Boot을 이용한 REST API 설계와 AWS를 활용한 배포 과정을 실습 했습니다. 과제 진행과 미니 프로젝트를 통해 부족한 부분에 대해 학습하고 생각하는 경험이 목표인 활동이었습니다.
자기소개
백엔드 엔지니어로서 주어진 문제를 해결하기 위해 문제를 작게 나누어 각 부분을 점진적으로 해결하는 방식을 추구합니다. 작은 문제들을 하나씩 풀어 나가며 다양한 해결책을 탐구하고, 그중에서 가장 적합한 방법을 선택하는 유연한 사고를 지향합니다.
문제를 해결하는 과정에서 습득한 지식은 다른 환경에서도 활용할 수 있도록 다양한 관점에서 고민하고 응용하며, 이를 통해 지속적으로 성장하고 있습니다. 특히 주력으로 사용하거나 흥미를 느끼는 기술 분야에서는 개인 프로젝트에 적용시켜보거나 오픈소스 프로젝트에 기여하며 기술 역량을 더욱 발전시키고자 노력하는 개발자입니다.
자격증
정보처리기사
기사 | 한국산업인력공단
2024.06.
교육
명지대학교
대학교(학사) | 컴퓨터공학과
2016.03. ~ 2023.02. | 졸업