채용공고 올리기

함경재님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
함경재
직업
백엔드 개발자
간단 소개

기술 스택

기술 스택

Java, Spring Boot, JPA, querydsl, MySQL, PostgreSQL, Redis, MongoDB, Docker, docker-compose, ubuntu, nginx, Jenkins, Ansible

경력

회사명

주식회사라이너스

직급 | 부서 | 근무 유형

매니저 | 교육사업본부 | 재직 중

근무 기간

2023.07. ~ 재직 중 (1년 7개월)

담당 업무
  1. 기술스택:
    - Java, Kotlin
    - Spring Framework, Spring Security, Spring Batch
    - MySQL, PostgreSQL, MongoDB, Redis
    - Naver Cloud Platform, AWS, 스마일 서브(클라우드)
    - JPA, Querydsl, OpenFeign, Git


  2. 병렬 처리, Batch Job 이용 API 성능 개선
    [문제]
    - 외부 API 3개 Response 통합하는 API 속도 42초 소요

    [원인 파악]
    - 비효율적인 반복문 사용으로 인한 API 과다 호출
    - 독립적인 API 동기 처리로 인한 지연

    [개선 방안 및 결과]
    - 1차: 반복문 구조 수정으로 호출 횟수 학생 수만큼 줄임 -> 42초에서 10초로 단축
    - 2차: 과목 호출, 과제 호출 등 독립적인 API coroutine async로 병렬, 비동기 호출 -> 10초에서 3초로 단축
    - 3차: 과목 전체 정보의 경우 배치 서버에서 30분 단위로 적재하는 방법으로 변경 -> 3초에서 20ms로 단축

  3. 테스트 코드, 주석 도입으로 멤버스 효율 높이기
    [문제]
    - 사내 솔루션 프로젝트 테스트 코드 부재로 코드 수정 시 사이드 이펙트 가늠 불가
    - 간단한 수정 사항, 요구 사항 개발에도 코드 작성자만 수정 가능

    [원인 파악]
    - 코드에 대한 힌트 없고, 테스트 코드 없어서 코드 분석 어려움
    - 솔루션 제공 기능이 늘어갈수록 코드 수정이 점점 어려워짐

    [개선 방안]
    - 테스트 코드 도입
    - 팀 규칙에 기능 개발, 테스트 코드 작성 후 PR 요청 -> 코드 리뷰 1 Approve 이상 RuleSet 설정
    - PR 생성 시 Github Actions 워크플로우 이용 테스트 코드 실행
    - 메소드 작성 시 주석 템플릿에 코드 요약 추가

    [결과]
    - 담당 로직 아니더라도 테스트 코드, 주석 내용으로 파악 가능
    - 간단한 수정 사항, 요구 사항 구현에 1 멤버스만 투입 가능
    - 동시에 4개 요구사항 처리 가능

  4. 모듈 분리로 서비스 안정성 높이기
    [문제]
    - 수정 사항 적용 및 요구사항 적용 시 백엔드 프로젝트 재시동
    - 재시동 중 동영상 출석, 줌 미팅 웹훅 데이터 분실

    [개선 방안]
    - 안정성, 지속성이 우선인 모듈, 서버로 분리
    - 줌 서버, 파놉토(동영상 출석) 서버, 과제 제출 집계 서버 분리

    [결과]
    - 수정 사항, 요구 사항 적용 시 부담감 감소
    - 데이터 신뢰도 상승

회사명

(주)레인보우8

직급 | 부서 | 근무 유형

백엔드 개발자 | 개발팀

근무 기간

2021.12. ~ 2022.11. (1년)

담당 업무
  1. 기술스택:
    - Java
    - Spring Boot
    - MySQL
    - JPA, QueryDSL, Git
    - AWS

  2. 사내 프로젝트 개발로 배포 줄이기
    [문제]
    - 월 1회 단축 근무 시 공지 사항 배너 변경을 위한 배포 진행
    - 운영 중인 서비스 배포에 대한 부담

    [개선 방안]
    - 공지 사항 배너 API 개발
    - 배너가 N개일 경우 시간순 정렬
    - 관리자가 배너 순서 드래그 앤 드롭으로 변경 가능
    - 업로드로 배너 추가 가능, 배너 삭제 가능

    [결과]
    - 단축 근무 공지 시 배포 필요없이 업로드로 해결

  3. 구글 reCAPTCHA 적용으로 스팸 100개 막기
    [문제]
    - 회사 고객사 페이지 이메일 전송 기능으로 크롤러를 이용한 스팸 메일 전송
    - 매일 회사 고객 문의 이메일함 스팸 메일 100여개 -> 업무 방해

    [원인 파악]
    - 러시아 IP 대역으로 크롤러를 이용한 스팸 메일 전송 확인

    [개선 방안]
    - 1차: 해당 IP 대역을 블락 처리 -> 우회한 IP 대역으로 공격
    - 2차: 구글 reCAPTCHA 적용

    [결과]
    - 스팸 메일 100여개 차단 성공 및 업무 효율 증가

  4. 그 밖의 업무내용:
    - 고객사 홈페이지 광고 스크립트 삽입
    - 고객사 홈페이지 상품 정보 크롤링 및 DB 적재
    - 기존 php 어플리케이션 -> Java, Spring으로 마이그레이션(홈페이지 3개)

회사명

주식회사쿠돈

직급 | 부서 | 근무 유형

백엔드 개발자 | 개발팀

근무 기간

2021.07. ~ 2021.10. (4개월)

담당 업무
  1. 구매 확정 알림 메시지 전송하기
    [문제]
    - 배송 완료 후 구매 확정이 일어나지 않아 정산이 되지 않음
    - CS 팀에서 고객들마다 대응하는 업무 비효율 발생

    [개선 방안]
    - 매일 Schedule에 따라서 20:00 상품 배송 상태 확인 Job 실행
    - 당일 배송 상태 완료인 경우 알림톡으로 전송

    [결과]
    - 알림톡을 받고 구매확정 누르지 않는 고객만 대응하도록 업무 효율 증가

  2. 쿠폰으로 할인해주기
    [요구 사항]
    - 한 달간 사용할 수 있는 쿠폰을 유저 당 1회 발급

    [문제]
    - 쿠폰 발행 페이지 없음
    - 일괄적으로 쿠폰 1회 사용 가능해야 함

    [방안]
    - 쿠폰 테이블에 유저 PK 유무로 사용 여부 판단
    - 쿠폰 미사용 유저일 경우 할인 가격 적용 -> 쿠폰 테이블에 적재
    - 쿠폰 사용 유저일 경우 -> 이미 쿠폰 사용한 유저 Message 반환

회사명

빅스텝에듀

직급 | 부서 | 근무 유형

팀원 | 개발팀

근무 기간

2021.05. ~ 2021.06. (2개월)

담당 업무
  1. 기술스택:
    - Python
    - Django, Django Rest Framework
    - MySQL, SQLite
    - AWS

  2. 인턴 팀으로 한 달안에 서비스 출시하기
    [요구 사항]
    - 기간 한달
    - 인턴 팀(프론트 2명, 백엔드 3명)
    - 멘토링 플랫폼 개발

    [맡은 부분]
    1. 유저 권한 체크
    - JWT 이용해서 멘토, 멘티, 관리자 구분
    - AccessToken, RefreshToken 시간 설정
    - RefreshToken DB 저장으로 로그아웃 처리

    2. Django ORM aggregate 이용해서 평점 구하기
    - aggregate 이용 멘토 평점 총합 구하기
    - count로 평균 평점 구한 후 반올림 처리

    3. S3 이용해서 멘토 자료 보여주기
    - 멘토 파일 업로드 시 S3 버킷에 멘토명_강의명_files로 업로드
    - 주소 DB 저장
    - API 호출 시 주소 반환

  3. S3로 연 300만원 절약하기
    [문제]
    - 멘토 PDF 파일 공유하기 위한 솔루션비 연 구독 300만원
    - 복사, 마우스 우클릭 등 문서 보안 처리

    [방안]
    - S3에 PDF 파일 업로드 후 API로 호출해서 보여주기
    - 프론트에서 복사, 마우스 우클릭 이벤트 블락

    [결과]
    - MVP 모델에서 솔루션 비용 절감

포트폴리오

URL

link

https://github.com/gyeongjae-ham

깃허브
link

https://gyeongjae.medium.com/

URL 링크
댓글