신재윤

Backend Software Engineer

사용자의 입장에서 생각하여 소프트웨어 제품을 개발하는 엔지니어

Contact

Skills

  • Backend : Java, SpringBoot, JPA
  • Database : MySQL, Redis
  • DevOps : AWS, Github Actions, Docker, Nginx
  • Etc : Git, Shell Script

Introduction

안녕하세요. 백엔드 개발자 신재윤입니다. 빠르게 변화하는 시대에 유연하게 적응하기 위해 단순히 구현하는 것에서 그치지 않고, 유지보수가 수월하고 확장 가능한 코드를 작성하려고 노력해왔습니다. 이러한 과정에서 객체지향 프로그래밍, 추상화에 큰 매력을 느꼈습니다.

소프트웨어 제품을 개발할 때, 방대한 지식을 가진 것은 중요합니다. 이를 위해 끊임없이 노력하고 특히, 기본적인 원리를 깊게 공부하는 것이 중요하다고 여깁니다. 하지만 그럼에도 모든 지식을 알 수 없기에 팀원들과의 소통으로 문제를 해결하는 것이 제가 보는 핵심입니다. 저와 팀원이 가진 지식이 통합하여 하나의 거대한 집합체가 되었을 때 커다란 희열을 느낍니다.

인사이트 공유와 코드리뷰로 동료와 함께 성장하며, 열린 마음으로 피드백을 수용하는 자세로 사람들의 불편함을 해결하고 더 나은 삶을 살게 해주는 소프트웨어 제품을 개발하기 위해 나아가는 중입니다.


Projects

모아밤 (모두의 아침과 밤) - Github

프론트엔드 4명, 백엔드 5명 구성

2023.10 ~ 2024.03

담당 역할 : 방, 루틴, 이미지 도메인, 검색 도메인, CI/CD 및 인프라 전체 구축

사용 기술 : Java17, Spring Boot, Spring Data JPA, MySQL, Redis, Querydsl, Docker, SonarCloud, Jacoco, Github Actions, AWS Route53, EC2, Cloudfront, ACM, S3, RDS, CloudWatch, VPC(public/private subnet)

  • 그룹원을 모아 루틴을 정하고, 보상을 받으며, 커스터마이징 캐릭터를 이용해 동기부여를 강화하는 서비스

Backend

  • API 설계 및 구현 (방, 루틴, 이미지 도메인, 검색 도메인)
  • 방 목록 검색 시, 커서 기반 페이징 처리
  • nGrinder와 scouter 활용 성능 테스트 진행하여 서비스 규모에 맞게 커넥션 풀 튜닝 이후
    가상유저 50명일 때 평균 TPS 293.0 → 842.3 성능 향상
  • 쿼리 실행 계획 분석 및 검색 쿼리 개선
    와일드카드 full like의 검색 쿼리를 full-text-search 인덱싱으로 최적화
    더미데이터 100만 건 기준 965ms → 284ms 약 70.6% 성능 향상
  • 동시성 문제 발생 지점 비관적 락 이용 해결
  • Separated Interface Pattern을 통해 시간에 의존적인 코드 개선
  • 테스트 커버리지 80% 적용하여, 447개의 테스트 코드 작성

Infra

  • AWS 서비스 활용하여 개발 서버, 운영 서버 인프라 구축
  • nginx의 keepalive 설정 및 이벤트 처리 방식 epoll로 튜닝하여 서비스 응답 지연시간 해결
  • Github Actions + docker 활용 CI/CD 파이프라인 구축
  • SonarCloud + checkstyle + Jacoco 적용
  • swap 메모리 할당하여 EC2 메모리 부족 문제 개선
  • 도커 이미지 기반 blue/green 무중단 배포 구축하여 downtime 5s → 0s 개선
  • graceful shutdown 도입

 Service Architecture

 CI / CD

JToon - Github

백엔드 5명 구성

2023.09 ~ 2023.09

담당 역할 : 웹툰, 회차, 이미지 도메인, CI/CD 및 인프라 전체 구축

사용 기술 : Java17, Spring Boot, Spring Data JPA, MySQL, Redis, Querydsl, PortOne Iamport, Google SMTP, Docker, Github Actions, AWS Route53, EC2, Cloudfront, ALB, ACM, S3, RDS, Webhook

  • 네이버 웹툰 클론 코딩, 멀티모듈 도입
  • API 설계 및 구현 (웹툰, 회차, 이미지 도메인)
  • 모놀리식 멀티 모듈 환경 세팅
  • 최상위 모듈과 하위 모듈간의 순환 참조가 발생 → 해당 클래스 추상화를 통해 DIP로 해결
  • AWS ALB + ASG 활용하여 탄력성 향상
  • Slack 웹훅 활용하여 오류 알림 시스템 구현

 Project Structure

 Service Architecture

 CI (Continuous Integration)

 CD (Continuous Delivery/Deployment)


Fashion Boomer - Github

프론트엔드 1명, 백엔드 1명 구성

2022.10 ~ 2022.12

담당 역할 : 안드로이드 개발, AWS 배포

  • 쇼핑몰의 제품 사진, 내가 가진 옷의 사진을 누끼따기하여 마네킹에 대보고 매칭이 잘 되는지 확인해보는 프로젝트
  • OAuth 2.0 사용하여 카카오 로그인 구현
  • RecyclerView 이용하여 메모리 성능 향상
  • 안드로이드 12 이후 Splash API로 인한 스플래시 2번 뜨는 이슈 대응
    • 전체 테마를 설정하여, 기본 Splash를 숨기고 커스터마이징 한 Splash Activity 노출

휴대폰 대리점 고객 번호목록 조회 - Github

프론트엔드 1명, 백엔드 1명 구성

2022.04 ~ 2022.05

담당 역할 : 클라이언트 개발, AWS 배포

  • React, react-router-dom 이용 구현
    • 주소창에 주소 입력 이후 진입하면, 권한에 막혀 라우팅 되지 않게 구성
  • Vultr 이용 배포
  • RecyclerView 이용하여 메모리 성능 향상
  • 안드로이드 12 이후 Splash API로 인한 스플래시 2번 뜨는 이슈 대응
    • 전체 테마를 설정하여, 기본 Splash를 숨기고 커스터마이징 한 Splash Activity 노출

Personal Experience


프로그래머스 백엔드 데브코스 4기

2023.06 ~ 2023.12


한국지능정보시스템학회 2022년 추계학술대회

2022.03 ~ 2022.11


소나무정보기술

2022.12 ~ 2023.01


Education

국립 부경대학교


Copyright © JaeYoon Shin. All rights reserved.