미리보기
기본 정보

Spring Boot, JPA, MySQL과 Docker, CI/CD Tool을 통한 API 서버 개발 및 배포 자동화를 구축한 경험이 있습니다. 여러 협업 프로젝트를 통해 기획부터 Cloud 배포까지 E2E 프로세스를 이해하고 개발한 경험이 있습니다. GitHub를 통한 협업에서 팀원들과의 코드 리뷰를 통해 토론하고 더 나은 서비스를 개발하고자 합니다. 배포이후 Grafana, Prometheus와 같은 모니터링 시스템을 통해 서버를 관리하고 유지보수를 하고있습니다. 새로운 기술을 배우고, 이를 프로젝트에 적용하여 문제를 해결하는 과정에서 큰 보람을 느낍니다.
기술 스택
JPA, MySQL, Docker, ElasticSearch, Redis, Spring Boot, AWS, grafana, Jenkins, Prometheus, nginx, GitHub, github-actions
프로젝트
Project Hub
개인
2024.08. ~ 2024.09.
● Redis 분산락을 통한 공유 자원 처리
○ 프로젝트에 대한 댓글 작성 시 Document 내부 필드를 수정해야하는 상황 발생.
○ 다수의 댓글 작성 요청 시 특정 Document 필드 동시 수정동시성이 보장되지 않음.
○ Redisson과 Custom Annotation을 활용하여 Lock을 획득하고 작업을 처리하도록 개선하여 데이터의 무결성 보장
● Elasticsearch를 통한 검색 기능 최적화
○ 검색 기능을 SQL의 LIKE문을 통해서 전문 검색 구현 시 테이블 풀 스캔으로 인한 성능 저하
■ Elasticsearch를 통해서 검색 기능을 구현하여 역색인를 통해 검색 시간 단축
■ RDB와 ES 비교 시, ES가 약 32%정도 빠른 결과 도출
● Redis를 통한 Like 기능
○ RDB를 사용해 프로젝트 별 좋아요 수를 관리할 경우, 대량의 요청으로 인한 Lock 발생 가능
○ Redis의 Set 자료구조를 활용하여 사용자의 좋아요 요청 처리
■ 좋아요 수를 기준으로 프로젝트 조회 시, Redis에 저장된 내용이 RDB와 동기화가 되지 않는 문제 발생
○ Redis 캐시 정책 중 Read Through + Write Around를 사용하여 MySQL과 동기화 작업을 수행하였습니다
Techeer Log
Techeer
2024.08. ~ 진행 중
● Spring Boot Multi Module 적용 및 JIB Plugins 적용
○ 프로젝트의 소스 코드를 체계적으로 관리하고 유지 보수를 용이하게 하기 위해 Spring Boot 멀티모듈을 사용
○ 개발 중 특정 부분만 재빌드가 필요한 경우, 부분적으로 수정 후 다시 배포를 진행
○ 이미지 빌드 시, 1분이상의 시간이 소모되어, Image Build 시간 최적화 필요성 인지하고, JIB Plugin 적용 후 1개의
모듈당 약 10초 정도로 빌드 시간을 단축
● Jenkins를 활용한 CI/CD 파이프라인 구축
○ Multi Module 사용으로 인해 다수의 설정 파일 필요한 경우, GitHub Actions로는 설정값들을 관리하기
어려웠습니다. 이러한 문제점을 해결하기 위해서 Jenkins를 사용하여 CI/CD 파이프라인을 구축하였습니다.
■ Jenkins를 통해 다양한 개발 환경(local, dev, stage, prod)별로 설정 값을 쉽게 관리
○ Jenkins를 통해 빌드 시 Slack을 통한 알림을 설정하여, 실시간으로 빌드 상태 및 배포 상황 모니터링
○ 빌드, 테스트, 배포 과정 자동화를 통한 개발의 효율성을 향상
● LogBack을 통한 로그 관리 시스템 구축
○ 각 모듈에서 LogBack을 사용한 구조화된 로그 수집 및 Filebeat, Logstash를 통한 ElasticSearch로 로그 전달
○ Kibana를 활용한 실시간으로 로그를 분석하여 시각화 대시보드를 구성
교육
한국공학대학교
대학교(학사) | 전자공학부 임베디드시스템전공
2018.03. ~ 2024.02. | 졸업
제일고등학교
고등학교 | 인문계
2015.03. ~ 2018.02. | 졸업