채용공고 올리기

이정호님을 응원해보세요!

INFCON 참여
지금 만족하고 있어요
책임감
협업 지향
목표 지향적
커뮤니케이션
열정적

미리보기

기본 정보

이름
이정호
직업
백엔드 개발자
간단 소개

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

기술 스택

기술 스택

Java, Kotlin, MySQL, Spring Boot, JPA, Docker, junit5, Mockito

프로젝트

프로젝트명

Juso

소속/기관명

대덕소프트웨어마이스터고등학교

프로젝트 기간

2023.10. ~ 2024.01.

프로젝트 내용

Daum 우편번호 서비스가 다운됐을 경우를 대비한 우편번호 조회 서비스입니다. 3명으로 구성된 BE 팀에서 SpringBoot(Kotlin)와 JPA를 사용해 주소 검색 및 초성 검색 API를 개발했습니다. 도로명주소 DB에서 주소 데이터를 받기 위해 Zip File을 압축 해제하여 파일로 다운로드하는 로직을 구현했으며 SpringBatch Tasklet 방식을 이용해 약 1300만건의 데이터를 다뤘습니다. 또한 MySQL의 FullText 인덱스 설계 및 querydsl에서 적용시켜 검색 성능을 최적화 했습니다.

Index를 통한 쿼리 실행 시간 98% 단축

  • 30만건 데이터에서 주소, 지번 조회 위해 관리번호 통한 Self Join 쿼리 작성중
    → ON절에 사용되는 관리번호에 인덱스가 존재하지 않았고 쿼리 실행시 약 28초 소요

  • 관리번호 컬럼 인덱스 생성을 통해 쿼리 실행 시간을 약 0.6초(98% 단축)로 최적화

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

  • JPA에서 PK에 UUID(0, 0)을 넣었을 때 persist가 아닌 merge로 동작
    → 불필요한 select 쿼리가 나가 배치 작업 실행 시간이 2배 이상 걸리는 문제 발생

  • Persistable의 isNew 메소드를 재정의 → insert 쿼리만 나가도록 해결

Batch 작업시 OutOfMemory 해결

  • 대량의 데이터를 한 번에 save 시킬 때 메모리에 모든 데이터가 올라가 OOM 발생

  • saveAllAndFlush 메소드 사용 후 entityManager를 clear하도록 하여 OOM 해결

프로젝트명

XQUARE

소속/기관명

대덕소프트웨어마이스터고등학교

프로젝트 기간

2023.03. ~ 2024.03.

프로젝트 내용

교내 여러 서비스들을 원앱으로 통합한 서비스입니다.
3명으로 구성된 BE 팀 및 MSA 환경에서 버그제보, 급식, 시간표 등 도메인을 맡아 SpringBoot(Kotlin, Java), JPA를 사용하여 API 개발 및 성능 개선, Sentry, Slack을 사용하여 발생하는 이슈에 빠르게 대응 가능한 환경을 구축했습니다. 또한 기존 Cloudflare Record, AWS RDS 등의 리소스를 Terraform으로 마이그레이션 했습니다. 또한 9명 규모의 팀에서 PM을 맡아 회의를 주도하고 팀원들의 의견을 조율하며 프로젝트를 이끌었습니다.

프로젝트명

PiCK

소속/기관명

대덕소프트웨어마이스터고등학교

프로젝트 기간

2023.03. ~ 2024.03.

프로젝트 내용

교내 수기로 관리되어 불편함이 있던 출결관리를 온라인으로 변경한 서비스입니다. 5명으로 구성된 BE 팀에서 SpringBoot(Kotlin)와 JPA를 사용해 출결 상태, 외출자 목록, 반 별 출결 조회 등의 API 개발 및 유지보수와 (프로젝트 절반 이상 기여) 600줄 이상의 코드 리팩토링을 했습니다. 또한 5명 규모 팀에서 UX 작성 리딩을 맡아보며 클라이언트에 대한 이해도를 높였습니다.

포트폴리오

URL

link

깃허브

깃허브
link

포트폴리오

URL 링크
댓글