목표 성취를 위해 다른 사람과 함께 일하는 것을 좋아하여 여러 프로젝트에서 주로 리더를 맡아 프로젝트를 이끌었으며 때론 주변 상황을 따라가는 유연함을 갖추기 위해 노력합니다. 또한 기록의 중요성을 알고있기에 공부한 것들에 대해 노션, 깃허브 등에 기록하는 습관을 가지고 있습니다. SpringBoot를 사용해 개발하는 것과 DevOps에 관심이 많습니다.

$\large\color{black}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━$

Notion - 공부한 내용들을 정리하는 Notion 링크

Github - 깃허브 링크

Stack - Kotlin, Java, SpringBoot, TypeScript, Express, Jest, Junit, Mockito, JPA, MySQL, Docker, AWS

$\large\color{black}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━$

Juso

2023.10.06 ~ 2024.01.04(3개월)

Daum 우편번호 서비스가 다운됐을 경우를 대비한 우편번호 조회 서비스입니다.

3명으로 구성된 BE 팀에서 SpringBoot(Kotlin) + JPA를 사용해 주소 검색 및 초성 검색 API를 개발했습니다. 도로명주소 DB에서 최신 주소 데이터를 받기 위해 매월 ZipFile을 압축 해제하여 파일로 다운로드 후 SpringBatch Tasklet 방식을 이용하여 약 1300만건의 데이터를 저장하는 스케줄러를 구현했습니다. MySQL의 FullText, 세컨더리 인덱스 설계 후 적용시켜 검색 성능을 최적화 했습니다.

검색 키워드 자동완성 기능

검색 키워드 자동완성 기능

도로명주소 검색 기능

도로명주소 검색 기능

인덱스를 통한 쿼리 실행 시간 98% 단축

Persistable 구현 통한 쿼리 수 절반 감소

Batch 작업시 OutOfMemory 해결