채용공고 올리기

배진성님을 응원해보세요!

이직/구직 중이에요
책임감
효율적
자기 주도적
문제 해결사
적응력

미리보기

기본 정보

이름
배진성
직업
백엔드 개발자
간단 소개

스타트업에서 단독으로 백엔드 설계부터 운영까지 담당하며 다양한 문제를 해결해왔습니다. 문제 해결 과정에서는 근본 원인을 분석하여 최적의 해결책을 찾아내는 것을 중요시합니다. 반복적인 업무를 자동화함으로써 팀의 효율성을 향상시킨 경험이 있습니다. 기존 레거시 코드를 지속적으로 개선해 나가며 코드의 품질을 높이는 것을 즐깁니다.

기술 스택

기술 스택

Java, Spring Boot, JPA, MySQL, aws-ecs, amazon-opensearch, aws-elasticache, Git, GitHub

경력

회사명

주식회사엔드앤드코리아

직급 | 부서 | 근무 유형

백엔드개발자 | 개발팀

근무 기간

2022.11. ~ 2024.08. (1년 10개월)

담당 업무

다양한 사이트의 중고 명품들을 하나의 플랫폼에서 확인할 수 있는 서비스의 백엔드를 담당했습니다.

1500만건 이상의 데이터를 다루며 아래와 같은 업무를 진행했습니다.

  • Java, Spring Boot, Mysql, JPA 기반 서비스 개발 및 유지보수

  • AWS Opensearch를 도입해 검색 API 속도 90% 이상 개선

  • 분산락을 이용한 동시성 문제 해결

  • 유지보수와 확장성을 높인 리팩토링

회사명

(주)휴먼엔시스

직급 | 부서 | 근무 유형

주임매니저 | 솔루션 2팀

근무 기간

2020.10. ~ 2021.12. (1년 3개월)

담당 업무
  • 협업 툴을 활용한 프로젝트 일정 관리

  • 프로젝트 공통 기능 개발

  • 코드 리뷰를 통한 코드 효율 최적화

  • 외국인 근로자를 위한 다국어 처리

프로젝트

프로젝트명

EndAnd: Luxury fashion closet

소속/기관명

엔드앤드코리아

프로젝트 기간

2022.11. ~ 2024.08.

프로젝트 내용

사용자가 원하는 중고 명품을 찾기 위해 여러 웹사이트를 일일이 방문해야 하는 불편함을 해소하고자, 다양한 사이트에서 데이터를 수집하여 한 곳에서 통합적으로 보여주는 서비스 입니다.

검색엔진 도입 후 API 응답시간 90% 이상 단축

  • 문제

    • 데이터 양이 증가하면서 기존 SQL Like 구문으로 인한 API 속도 저하 및 검색 품질 저하 문제 발생

  • 해결 방법

    • Elasticsearch를 학습하고, 혼자서 관리해야 하는 상황을 고려해, 리소스를 효율적으로 관리할 수 있는 Aws Opensearch를 도입하여 적용했습니다.

  • 결과

    • 검색의 정확도가 크게 개선되어 좀 더 세분화된 요구사항을 수용할 수 있게 되었습니다.

    • 평균 응답 속도가 100ms 내외로 유지되며, 기존 대비 90% 이상 단축되었습니다.

JtaTransactionManager를 이용해 이기종 데이터베이스간 트랜잭션 보장

  • 문제

    • 두 개의 독립된 데이터베이스 간 작업 중 예외 발생 시 트랜잭션이 올바르게 롤백되지 않아 데이터 불일치 문제 발생

  • 해결 방법

    1. 다중 데이터베이스 간의 트랜잭션을 하나의 단위로 묶어 관리하기 위해 JtaTransactionManager를 도입했습니다.

    2. 성능 저하를 고려해 각각 단일 트랜잭션 매니저를 등록하고, 필요 시 @Transactional의 name 속성을 이용해 분산 트랜잭션을 선택적으로 사용하도록 설정했습니다.

  • 결과

    • 분산 트랜잭션 중 예외가 발생해도 롤백을 보장할 수 있어 데이터 일관성을 유지할 수 있게 되었습니다.

분산락을 이용한 동시성 문제 해결

  • 문제

    • 여러 사용자가 동시에 감정을 요청할 때, 신청자의 정보가 덮어씌워져 알림이 누락되는 문제 발생

  • 해결 방법

    • 제품 당 하나의 요청만 처리하는 요구사항에 맞춰, Redis를 활용해 고유 키로 추가 요청을 차단하도록 분산락을 구현했습니다.

  • 결과

    • 동시 요청 시에도 덮어쓰기 문제가 발생하지 않으며, 감정을 요청한 사용자에게 정확히 알림이 전달되어 서비스의 신뢰도를 높였습니다.

협업을 통한 프로젝트 관리 및 업무 분담

  • 문제

    • 신규 기능을 추가해야 했으나, 초기 기획이 모호하여 세부 기능 정의와 업무 분담이 어려운 상황

  • 해결 방법

    • 기획자와 지속적인 회의를 통해 프로젝트의 목표와 필요한 기능을 구체화 하고, 문서로 정리하여 각 기능 별 담당 팀을 지정하고 업무를 분담했습니다.

  • 결과

    • 효율적인 업무 분담 덕분에 각 팀이 맡은 부분에 집중할 수 있었고, 부족했던 기획 내용도 각 팀이 보완하며 프로젝트를 원활하게 진행할 수 있었습니다.

프로젝트명

Admin 배치 서버 운영

소속/기관명

엔드앤드코리아

프로젝트 기간

2023.01. ~ 2024.08.

프로젝트 내용

OpenSearch 전체, 부분 색인 설계 및 속도 1/2 단축

  • 상황

    • RDS 데이터를 OpenSearch에 색인 하는 과정에서 두 개의 작업이 동시에 진행되는 문제와, 예외 상황을 대비한 색인 속도를 개선해야 하는 문제가 있었습니다.

  • 색인 작업

    • 하루에 한 번 전체 색인

    • 제품 추가 또는 업데이트 시 부분 색인

  • 해결 방법

    1. 두 작업이 동시에 진행되면서 데이터 정합성에 문제가 생길 것을 고려해 겹치지 않도록 Redis를 이용해 제어했습니다.

    2. 전체 동기화 작업의 속도를 개선하기 위해 queryDSL에서 JdbcTemplate으로 전환하여 처리 시간을 1/2 단축시켰습니다.

  • 결과

    • 두 동기화 작업 안정적으로 관리하여 데이터 정합성 문제를 방지했습니다.

    • 전체 색인 시 속도 개선을 통해 예외 상황이나 롤백이 필요한 경우에도 시스템이 안정적으로 동작할 수 있었습니다.

데이터 정제 스케줄러 속도 개선 20분 → 3초

  • 문제

    • 30분마다 동작하는 스케줄러가 전체 데이터를 매번 반복 처리하면서 점점 속도가 느려지는 문제 발생

  • 해결 방법

    • 이미 정제된 제품은 다시 처리할 필요가 없으며, 제품 속성이 변경될 경우 수정시간이 업데이트 된다는 점을 활용했습니다.

    • 스케줄러가 마지막으로 처리한 제품의 수정 시간을 redis에 저장하고, 이후 작업 시 해당 시간 이후에 변경된 데이터만 처리하도록 개선했습니다.

  • 결과

    • 평균 작업 시간이 20분에서 3초로 개선 되었습니다.

유지보수성과 확장성을 높인 리팩토링

  • 문제

    • 플랫폼마다 다른 데이터 포맷으로 인해 다수의 분기문이 만들어져 유지보수 난이도 상승

  • 해결 방법

    • 플랫폼, 카테고리, 성별 별로 처리해야 하는 방식이 다르기 때문에, 각각의 처리 방식을 별도의 클래스로 분리해서 관리하고, 이 정보를 조합해 동적으로 처리 로직을 선택할 수 있도록 구현했습니다.

  • 결과

    • 기존 코드의 유지보수가 용이해지고, 새로운 플랫폼 추가 시 확장성이 향상되었습니다.

MyBatis 배치 작업 시 OutOfMemory 문제 해결

  • 문제

    • MyBatis를 사용한 배치 작업 도중, OutOfMemory 에러가 발생하며 작업이 중단되는 문제 발생

  • 해결 방법

    • HeapDump를 분석하여 mybatis 기본 설정에 의한 캐시 관리 문제인 것을 확인했습니다.

    • 해당 배치 작업에서는 캐시 데이터를 재사용 할 필요가 없다고 판단하여, 전역적으로 캐시를 사용하지 않는 설정을 적용했습니다.

  • 결과

    • 캐시로 인한 메모리 누수를 방지하고, 배치 작업의 안정성을 유지했습니다.

프로젝트명

KT-IDC Admin, Metaware Platform Project(MPP) 시스템 신규 개발

소속/기관명

휴먼엔시스

프로젝트 기간

2022.09. ~ 2022.12.

프로젝트 내용

- 데모 프로젝트 개발
- CKEditor 커스텀 컴포넌트 적용
- 프로젝트 공통 기능 개발

프로젝트명

에코 마케팅 - Andar Sales Boosting(Asb) 시스템 신규 개발

소속/기관명

휴먼엔시스

프로젝트 기간

2021.05. ~ 2021.08.

프로젝트 내용

- React 를 이용한 프론트엔드 개발
- Ubuntu기반의 에코 마케팅 자사 운영 업무 시스템 관리
- Notion, Microsoft Teams 협업툴 이용한 프로젝트 일정관리
- 코드 리뷰를 통한 코드 효율 최적화
- Daily Scrum을 통해 매일 이슈 및 방향성 체크

프로젝트명

현대/기아자동차 - 보안 권한 관리 시스템(SRMS) 신규 개발

소속/기관명

휴먼엔시스

프로젝트 기간

2020.11. ~ 2021.04.

프로젝트 내용

- spring framework, mybatis를 이용한 시스템 신규 개발
- 보안 권한 관리 시스템 메인 페이지 개발
- 결재 관련 문서함 개발

교육

소속/기관명

동서울대학교

종류 | 전공

대학교(전문학사) | 컴퓨터 정보과

재학 기간 | 재학 상태

2014.04. ~ 2018.03. | 졸업

대외활동

활동명

중앙정보기술인재개발원

소속/기관명

중앙정보기술인재개발원

연도

내용

자격증

자격증명

정보처리산업기사

점수 | 발급기관

산업기사 | 한국산업인력공단

취득연월

2019.10.

댓글