채용공고 올리기

최수원님을 응원해보세요!

지금 만족하고 있어요
성실함
책임감
효율적
자기 주도적
문제 해결사

미리보기

기본 정보

이름
최수원
직업
신입 백엔드 개발자
이메일
suwon3274@gmail.com
간단 소개

자기소개

자기소개
문제의 근본적 원인을 파악하고, 합리적으로 해결하기 위해 노력합니다.
  • 단순히 문제를 풀어나가기보다 현재 상황에 가장 적합한 방법이 무엇인지 트레이드 오프를 거쳐 신중히 고민합니다.

불편했던 워크 플로우를 코드로 개선해나가는 것을 즐깁니다.
  • 빌드/배포 시스템, 실시간 에러 알림 시스템 구축을 통해 팀원들이 더욱 개발에 집중할 수 있는 환경을 만드는 것에 기여합니다.

기술 스택

기술 스택

Java, Spring Boot, JPA, MySQL, C, Git

경력

회사명

B1ND (교내 전공 동아리)

직급 | 부서 | 근무 유형

팀원 | 서비스 파트 | 재직 중

근무 기간

2023.03. ~ 재직 중 (2년 1개월)

담당 업무
  • 서비스 개발 / 서버 관리

    • 도담도담 API 개발/운영 주 담당 (Java, Spring Boot, JPA, MySQL)

    • 실시간 서버 에러 알림 시스템 구축 (Java, Discord WebHook)

    • 빌드/배포 시스템 구축(NCP, GitHub Actions)

프로젝트

프로젝트명

도담도담 - 불편했던 워크플로우 개선

소속/기관명

B1ND

프로젝트 기간

2024.06. ~ 2024.06.

프로젝트 내용

서버 배포, 실시간 에러 알림 자동화로 백엔드 팀의 개발 생산성 향상

<기존>
  • 서버 배포를 위한 번거로운 Gradle, Docker 명령어 작업 때문에 개발 흐름이 끊겨 전체적인 작업 효율이 저하됨.

<개선>
  • GitHub Actions를 사용해 master 브랜치에 변경 사항이 감지될 때마다, 자동으로 Naver Cloud 서버에 배포되도록 구현함.

<기존>
  • 수동으로 에러를 파악하는 기존 플로우 때문에 장애 대응 시간이 길어지는 문제가 발생함. (사용자 제보 -> 서버 로그 확인)

<개선>
  • 팀 메신저인 Discord의 WebHook 기능을 이용해 실시간으로 서버 에러 정보를 알려주도록 구현함. (에러 발생 시각, Endpoint, Stack Trace 등)

프로젝트명

도담도담 - 귀가 버스 신청 데이터 정합성 보장

소속/기관명

B1ND

프로젝트 기간

2024.06. ~ 2024.06.

프로젝트 내용

귀가 버스 최대 신청 인원 초과 문제 해결을 위해 JPA로 비관적 락 적용

<기존>
  • 버스 레코드에 여러 트랜잭션이 동시에 접근하여 데이터 정합성 문제가 발생함.

  • 이로 인해 신청자 수가 버스 최대 좌석 수를 초과하여 신청했음에도 버스에 탑승하지 못하는 학생들이 생김.

<개선>
  • 서비스 특성 상 신청한 순서대로 학생들을 탑승시켜야했고, 몇 천~만건의 동시 요청이 발생하는 상황이 아니었기에 비관적 락을 적용함.

  • JPA에서 제공하는 @Lock(PESSIMISTIC_LOCK)을 사용하여 버스 조회 시점에 X-Lock을 걸어 트랜잭션 실행 순서를 보장함.

프로젝트명

도담도담 - 토큰 서버 성능 최적화

소속/기관명

B1ND

프로젝트 기간

2024.06. ~ 2024.07.

프로젝트 내용

NodeJS -> Spring WebFlux 전환으로 서비스 성능 병목 지점인 토큰 서버 성능 개선

<기존>
  • 메인 서버와 OAuth 서버가 토큰 서버에 강하게 결합하는 구조였음. 한꺼번에 많은 요청이 들어올 경우, 토큰 서버의 레이턴시가 높아져 전체 서비스에 성능 문제가 발생함.

  • 비용적, 복잡성의 문제로 스케일업/아웃의 한계가 있었음. 따라서, 서버 자원을 최대한 효율적으로 사용하도록 개선 작업이 필요했음.

<개선>
  • 토큰 서버를 Spring WebFlux로 전환함.

  • 멀티 스레드 기반 Non-Blocking I/O의 이점을 최대한으로 활용하기 위해 기존의 Blocking 작업을 Non-Blocking하게 변경함.

    • jjwt 라이브러리를 사용하던 중, jwt id를 설정하기 위해 Java SecureRandom으로 난수를 생성하는 과정에서 엔트로피 풀 부족 이슈로 Blocking 호출이 발생한다는 것을 파악함.

    • 별도 스레드 풀에서 실행시켜 Event Loop 스레드의 Blocking을 막는 방법이 있었지만, Java Security 독스를 통해 Non-Blocking하게 난수를 생성하는 알고리즘(NativePRNGNonBlocking)을 찾아 적용함. 이를 통해 추가 오버헤드 없이 Non-Blocking을 구현함.

  • 부하 테스트 결과 : p50 레이턴시 69% 개선 (300ms -> 92ms), TPS 188% 개선 (2813/s -> 8114/s)

프로젝트명

도담도담 - API 서버 코드 재작성

소속/기관명

B1ND

프로젝트 기간

2024.07. ~ 2024.08.

프로젝트 내용

코드 관리 및 확장의 효율성을 위해 Gradle 멀티 모듈 도입

<기존>
  • 단일 모듈 프로젝트에서 패키지 구조만 나누어도 의존성 분리가 가능하지만, 개발 과정에서 실수로 의존 방향이 무너질 수 있는 리스크가 존재함.

  • 배치 시스템과 같은 어플리케이션을 추가하려면 도메인 로직을 중복 작성하는 번거로움이 있었음.

<1차 개선>
  • Gradle 기반 멀티 모듈 구조를 도입해 어플리케이션 모듈이 코어 모듈을 의존하는 형태로 변경함.

  • 새로운 어플리케이션을 추가하려면 코어 모듈을 의존하는 새로운 모듈을 만들면 되기에 코드 재사용성이 높아짐.

  • 1차 개선된 모듈 구조 : api, core, infra

<2차 개선>
  • 미래에 새로운 어플리케이션이 여러 개 추가된다면, 코어 모듈이 가지는 책임이 비대해질 수 있었음.

  • 기존 모듈들을 책임을 기준으로 세분화하여 필요한 의존성만을 조립할 수 있는 구조로 변경함.

  • 기능 수정, 코드 리팩토링 등의 작업에서 영향 범위를 파악하는데 훨씬 용이해짐.

  • 2차 개선된 모듈 구조 : dodam-application, dodam-system-core, dodam-system-domain, dodam-in-system-available

포트폴리오

첨부파일

첨부파일명

최수원_포트폴리오_5.1.1.pdf

대외활동

활동명

알고리즘 문제 풀이 스터디

소속/기관명

대구소프트웨어마이스터고등학교

연도

2024

내용

뛰어난 문제 정의/해결력을 갖추길 희망하는 고등학교 3학년 학우들과 알고리즘 문제 풀이 스터디를 진행 중입니다.
하루에 최소 1개의 알고리즘 문제를 풀고 있으며, 어려워서 모르는 문제들을 집단지성으로 해결하며 사고를 확장시키고
있습니다.

GitHub : https://github.com/boj-dgsw/ps

백준 프로필 : https://solved.ac/profile/suwon3274

활동명

교내 컨퍼런스 백엔드 챕터 발표

소속/기관명

대구소프트웨어마이스터고등학교

연도

2023

내용

고등학교 1~2학년 후배들을 대상으로 OAuth2.0 동작 방식과 도담도담의 OAuth 서비스에 대해 소개했습니다. 수십 명의 사람 앞에서 발표하는 것이 처음이어서 많이 떨렸지만, 이를 계기로 발표에 대한 자신감을 가질 수 있었습니다.

활동명

국립 대구 디딤센터 코딩 교육 봉사

소속/기관명

대구소프트웨어마이스터고등학교

연도

2022

내용

국립 대구 디딤센터에서 손선풍기/RC카 Arduino Kit 조립/코딩 교육 봉사를 진행했습니다.
초등학생부터 고등학생까지 다양한 나이대의 학생들에 수준을 맞춰 활동에 잘 참여하도록 보조했습니다.

기사 : https://www.veritas-a.com/news/articleView.html?idxno=413042

자격증

자격증명

TOEIC

점수 | 발급기관

720점 | 한국TOEIC위원회

취득연월

2024.02.

자격증명

정보처리산업기사

점수 | 발급기관

한국산업인력공단

취득연월

2023.12.

자격증명

TOEIC 브릿지

점수 | 발급기관

98점 | 한국TOEIC위원회

취득연월

2024.12.

자격증명

TOPCIT

점수 | 발급기관

3수준 | 정보통신기획평가원

취득연월

2023.05.

자격증명

SQLD

점수 | 발급기관

한국데이터산업진흥원

취득연월

2023.04.

교육

소속/기관명

대구소프트웨어마이스터고등학교

종류 | 전공

고등학교 | 임베디드SW개발과

재학 기간 | 재학 상태

2022.03. ~ 현재 | 재학 중

외국어

외국어명

영어

점수

일상 회화 가능

댓글