이력
프로젝트
(주) 콜버스랩
(2024.03 ~ )
zaritalk
java 11, Maven, Spring boot, Spring data jpa, Spring security, Spring batch, Spring quartz, QueryDSL
EC2, EBS, Api gate way, Lambda, SQS, S3, RDS
mac os, intelliJ, datagrip
git, github, github action, jenkins, sonar cloud, whatap, sentry
-
포인트 시스템 개편 (2024.12)
- 기존 포인트 도메인에 유효기간 정책을 반영하면서 세입자 전용으로 제한적이던 기존 포인트 도메인을 계정 단위로 마이그레이션
- SQS를 활용하여 재시도 및 무중단 배포 전략 적용
- DLQ를 활용하여 재시도 실패 시 대안 마련 및 경보 알림 설정
-
세입자 익명 커뮤니티 (2024.08)
- 전체 공개 게시판, 거주지 기반 게시판을 제공하는 익명 커뮤니티
- 블라인드, 블랙리스트 사용자, 관리자 조회 등에 대한 개인화 조건을 적용한 쿼리로 인한 슬로우쿼리 발생 및 DB부하 발생
- 초반 5페이지를 주로 조회하는 도메인 특성 상 모든 사용자에게 공통으로 서빙되는 내용을 조회하고 캐싱
- 개인화 조건은 이후 추가로 적용하여 DB 부하를 서버로 분산
- 단일 쿼리 수행 시 최대 30000ms의 응답을 50~100ms로 개선
-
사진 평가 포인트 게임 (2024.03)
- 사진을 활용하는 도메인에 대해서 0 ~ 5 사이의 점수를 매기고 보상으로 포인트를 받는 게임
- 매긴 점수가 평가 완료 후 계산 된 평점일 경우 보너스 포인트 지급
- 평가 결과에 따른 사진 재정렬, 삭제, 보상 등 후처리
- 겹치지 않는 사진 N장에 대해 평가 항목을 중복되지 않도록 분배해야 했기에 Lock을 걸었으나 이로 인한 요청 지연 및 DB 부하가 심할 것으로 예상
- 이를 줄이기 위해 로컬 캐시를 이용하여 사용자의 요청 N번의 Lock 경합을 인스턴스 M개 사이의 일정한 요청으로 분산
- ContextClosedEvent를 이용하여 서버 종료 및 배포 시점에 로컬 캐시를 DB로 반납하도록 구현
- 선착순 평가 게임임에도 N개의 서버 간 동시성 및 요청 지연 없이 하루 평균 300명이 약 1만건의 평가를 수행
- 적절한 추상화와 팩터리 패턴 사용으로 리뷰 사진, 매물 사진 등 평가 가능 사진을 추가하고 제거하는 것이 수월함
(주) 드라마앤컴퍼니
(2023.12 ~ 2024.03)
remember
mybridge
ruby, rails, sidekiq
java, kotlin, gradle, Spring boot, Spring data jpa, Spring security, Spring batch
EC2, ECS, Lambda, SQS, SNS, RDS, ElastiCache
mac os, intelliJ, rubymine, datagrip
git, github, github action, code deploy, new relic, querypie
(주) 콜버스랩
(2022.05 ~ 2023.12)
zaritalk
java 11, Maven, Spring boot, Spring data jpa, Spring security, Spring batch, Spring quartz, QueryDSL
EC2, EBS, Api gate way, Lambda, SQS, S3, RDS
mac os, intelliJ, datagrip
git, github, github action, jenkins, sonar cloud, whatap, sentry
-
실거래 시세 서비스(2023.11)
- 아파트 매매 실거래가 지도 시세 서비스 개발
- 국토교통부를 비롯한 여러 API를 조합하여 원천 데이터 적재, 가공, 서빙
-
임대장부 사용성 개선(2023.10)
- CX팀과의 협업을 통해 VOC로 자주 들어오는 임대인, 임차인의 불편 요소를 해소하여 일 평균 약 20건의 VOC가 약 2건 내외로 감소
-
인프라 관리*(2023.08)*
- 개발,운영 만으로 유지되던 환경을 개발 ,QA ,운영으로 나누어 개발과 QA와 테스트를 위한 환경 제공
- 증가한 사용자 수에 맞게 EBS(API Server), EC2(Jenkins), RDS(MySQL) 스케일 업
- JDK 8 → JDK 11 버전 변경 (EBS 플랫폼 변경)
-
임대장부 리팩터링*(2023.05 ~ 2023.08)*
- 자리톡의 핵심 도메인 임대장부 기능은 임대인 전용 기능이었음, 임대장부(약 150만건)를 비롯한 전반적인 구조 변경을 통해 임대인과 임차인 모두가 사용 가능하도록 리팩터링 진행
- 도메인 주도 설계를 바탕으로 변경 되는 비즈니스 로직을 이벤트 스토밍을 통해 추출하고 컨텍스트를 구분하여 각 도메인 간 결합도를 낮추는 방식으로 구현
- 쿼리로 해결하기 어려운 40만건에 대한 후속 데이터 처리를 SQS를 이용하여 중단 배포 작업 시간을 단축하고 어플리케이션 부하 없이 처리
- 데이터 마이그레이션 쿼리를 단순 작성 시 약 4시간의 소요 시간이 필요했으나 프로시저와 유니크키 임시 사용 등을 활용해 20분 이내로 단축
- 회고
-
채용 (2023.03 ~ 2023.09)
- 2023년 5월 코드 리뷰 테스트를 개발하여 변별력을 높이고 채용 리드 타임 감소 및 인터뷰 비용 감소를 통한 채용 효율화 증대
- 채용을 진행하며 신입 개발자 2명과 테크리드 1명을 채용을 진행하며 신입부터 CTO까지 다양한 개발자와의 대화를 통해 연차별 개발자에게 요구 받는 역량의 차이와 개발 실력 뿐 아니라 서비스를 위해 필요한 역량이 많다는 것을 배움
-
특일 정보를 활용한 영업일 계산 및 최신화 (2022.12)
- 월세 카드 결제 시 공휴일, 주말을 제외한 영업일 계산이 필요. 이때 대체 공휴일까지 매일 최신화하여 반영 할 수 있도록 운영 효율화
- 영업일을 저장하고 계산 할지, 휴일을 저장하고 계산 할지 고민 했으나 임시 공휴일, 대체 공휴일 발생 시 존재하는 행을 찾아 제거하기 보단 새로운 행 하나를 추가하는 방식의 휴일 관리가 더 적은 자원을 대상으로 관리하며 오직 조회와 삽입만 발생하기 때문에 휴일 관리로 선택
-
전자 문서 (2022.09 ~ 2022.11)
- 약 150만의 임대인과 임차인이 주고 받는 전자 문서 설계, 개발, 배포
- 기본적으로 게시판 구조이지만 채팅을 하듯이 댓글 개수, 안 읽은 임차인 수 등을 확인 가능
- 정규화를 통해 약 10개 내외의 테이블이 관계를 맺었기 때문에 받은 문서 및 알림에서의 조회 작업 최적화를 위해 Notification Table을 두고 두 번의 쓰기 작업을 통해 받은 문서, 답글 알림 조회 최적화
-
주소록을 활용한 임대인의 간편 임차인 관리(2022.09)
- 주소록으로 등록한 세입자의 임대장부 등록 주기를 추적하며 임대인의 사용자 경험을 끌어 올림
-
Quartz to Batch 마이그레이션 (2022.05 ~ 2022.06)
- 활성 인스턴스 한 대를 줄여 비용 절감
- 외부 파라미터 주입 및 제어를 통해 코드 재작성 없이 스케쥴링이 가능하도록 운영 효율화
임대인, 임차인, 중개인 대상 임대 관리 종합 서비스
(주) 오픈이지