채용공고 올리기

남은찬님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
남은찬
직업
백엔드 개발자
간단 소개

안녕하세요. 밥 사주고 싶은 개발자 남은찬입니다. * 현재에 안주하지 않고, 주도적으로 문제를 찾아 해결해 나갑니다. * 팀 전체의 협업 분위기를 형성에 기여하는 긍정적이고 열려있는 태도로 함께합니다. * 새로운 기술 탐구와 트러블 슈팅에 대해서 기록하며 공유하려고 노력합니다. 감사합니다.

기술 스택

기술 스택

Java, Kotlin, Spring, JPA, querydsl, MySQL, Redis, GitHub, github-actions, Docker, AWS, Slack, Spring Batch, Elasticsearch, Notion

경력

회사명

에스테이트클라우드주식회사(EstateCloudInc.)

직급 | 부서 | 근무 유형

서버 개발자 | 개발팀 | 재직 중

근무 기간

2024.10. ~ 재직 중 (5개월)

담당 업무

수행 업무 🗓


ElasticSearch 기반 로그 모니터링 시스템 구축

  • 각 모듈에 유연하게 적용할 수 있는 템플릿 메소드 패턴의 로깅 모듈 개발

  • OpenSearch 기반의 로그 저장소와 대시보드 구축하고 편리한 로그 추적을 제공할 수 있는 ElasticSearch 인덱스 및 정책 구성

  • 경량 파이프라인 기술인 Vector와 로그 수집 기술인 FileBeat를 활용하여 로그 파이프라인 구축

AWS 기반 서버 구축 및 관리

  • EC2, ECS, RDS 기반 서버 구축 및 관리

  • CloudWatch를 활용한 서버 모니터링

Spring 기반 우대빵 앱 및 ERP API 서버 및 Spring Batch 기반 배치 프로그램 개발

  • 우대빵 앱 및 ERP 시스템에 필요한 API 개발

  • 우대빵 앱에서 제공하는 부동산 매물 변동 및 가격 변동 정보를 수집하는 배치 구축

코드 품질 및 협업 문화 정착

  • GitHub PR/코드리뷰 기반의 개발 프로세스를 통해 코드 품질 향상 및 지속적인 피드백 문화 정착

  • Clean Code 원칙을 준수하며 가독성과 유지보수성이 높은 코드베이스 구축에 기여

개선 업무 🛠


[배치 환경에서 발생하는 Master DB의 부하 개선] (Blog 링크)

  • 기존 배치 프로그램에서 발생하는 모든 부하가 Master DB로 향하는 문제점 발견

  • 대부분의 작업의 Read 작업에서는 Master DB를 바라볼 필요가 없다는 것을 파악

  • 데이터베이스 이중화 설정 추가와 생성 방식에 따라 Master DB, Reader DB를 바라볼 수 있도록 커스텀 ItemReader 재구현

  • Master DB로 몰리는 부하를 Reader DB로 분산에 성공하며 피크타임 Master DB CPU 사용량을 약 70% => 45%로 약 25% 개선놀고있던 Reader DB의 CPU 사용량을 약 25% 끌어올리는데 성공

[실거래 수집 배치 수행시간 개선]

  • 기존 실거래 수집 배치가 약 6시간 정도 걸리는 것과 특정 스탭이 3시간 30분 정도를 소요하는 문제점을 확인

  • 해당 스탭의 Step Execution 데이터를 분석하여 Commit Count가 29449정도 되는 것을 확인

  • 코드를 분석하여 해당 스탭에서 Writer로 전달될 수 있는 최대 Item의 개수가 40개인 것을 확인 후 Writer로 전달될 수 있는 최대 Item의 개수가 1000개가 되도록 ChunkSize 조절

  • 개선 후 Commit Count를 1179로 줄이며 해당 스탭의 수행시간을 3h 30m => 1h 30m으로 줄이는데 성공하며 배치 수행시간 2h 개선

[배포 파이프라인 개선을 통한 배포 안정성과 생산성 강화]

  • 기존의 Jenkins에 의존하던 수동 배포 파이프라인에서 배포시 변경사항을 확인하기 여렵다는 문제점과 배포의 Jenkins서버에 의존된다는 문제점을 발견

  • Github Actions를 활용해 PR 기반의 CI 트리거로 더블 체크환경과 자동 머지 및 CD 트리거 세팅을 통해 배포 안정성 및 생산성 강화

프로젝트

프로젝트명

Inter Ticket

소속/기관명

프로그래머스 / (주)그랩

프로젝트 기간

2023.12. ~ 2024.01.

프로젝트 내용

[프로젝트 소개]
인터파크 티켓 서비스를 클론 타겟으로 삼고 백엔드 구성과 API 를 분석하고 구현하며 티켓팅 서비스에서 겪을 수 있는 기술적 문제를 경험하고 해결하는 과정을 경험하는 프로젝트

[수행 업무]

  • Redis를 활용한 캐시 기반의 공연 랭킹 기능 구현

  • 랭킹 조회 쿼리를 MySQL Straint Join과 Covering Index로 튜닝하여 캐시 갱신 부하 감소

    • 쿼리 수행시간 : 5.64sec => 1.02sec

  • 분산락으로 구현된 티켓 예매 기능을 Redis를 활용해 락 없이 동시성 문제를 해결하며 성능 최적화

    • 평균 TPS : 644TPS=> 4,259TPS

  • 스케줄러와 비동기 이벤트를 활용하여 예매대기 기능 개발

  • ShedLock 을 통해 failover 를 갖춘 스케줄러 서버 설계

프로젝트명

We Share Wish Hair

소속/기관명

경기대학교

프로젝트 기간

2023.01. ~ 2023.06.

프로젝트 내용

[프로젝트 소개]
AI 기반 얼굴형 분석을 통한 맞춤형 헤어스타일 추천 앱

[수행 업무]

  • Redis 를 도입해 좋아요 기능과 관련 조회기능 성능 개선

    • 리뷰 조회 성능 : 7 TPS => 159 TPS

    • 좋아요 성능 : 70 TPS => 177 TPS

  • 새로운 테스트 환경을 구성하고 테스트 코드를 재작성하여 테스트 성능 개선

    • 불필요한 통합테스트 환경을 제거하고 단위테스트에 집중 및 컨텍스트 캐싱을 활용한 통합 테스트 환경 구축

    • 불필요한 해싱 시간을 잡아먹는 Bcrypt구현체를 Fake객체로 대체

    • 테스트 총 실행시간 : 19초 => 5초

  • 메일 인증 시스템 구축과 비동기 이벤트를 적용해 응답 속도 개선

  • aws 기반의 인프라 구축과 배포 자동화 환경 구축

  • 헤어스타일, 리뷰, 회원 도메인 API 개발

  • AI 서버와 연동을 통한 헤어스타일 추천 기능 개발

포트폴리오

URL

link

개발 블로그

URL 링크
link

Github

깃허브

교육

소속/기관명

경기대학교

종류 | 전공

대학교(학사) | 컴퓨터공학부

재학 기간 | 재학 상태

2018.03. ~ 2024.02. | 졸업

대외활동

활동명

프로그래머스 : 클라우드 기반 백엔드 엔지니어링 5기

소속/기관명

프로그래머스 / (주)그랩

연도

내용
  • Spring 백엔드 개발자 역량 - Spring, JPA, DB 등

  • 클라우드 서비스 역량 - AWS, Docker, CI/CD 등

  • 멘토 및 동료 개발자와 교류 - 코드리뷰와 프로젝트 협업 경험

자격증

자격증명

정보처리기사

점수 | 발급기관

합격 | 한국산업인력공단

취득연월

2023.10.

댓글