박민영

박민영

Backend Developer

minyeongpark.pmy@gmail.com

소개

측정과 트레이드오프 분석으로 시스템 문제를 해결하는 백엔드 개발자

스레드풀·커넥션 풀·트랜잭션 경계 등 시스템 레벨 문제를 벤치마크로 검증하며 해결합니다. 모든 기술 선택에 "왜 이 방법인가"를 수치 기반으로 설명하는 것을 중요하게 생각합니다.

Velog Link : Spring은 다중 요청을 어떻게 처리할까?

학력

서울과학기술대학교

컴퓨터공학과

Mar. 2021 - Aug. 2025

학사 (학점 4.16 / 4.5)

삼성 청년 SW · AI 아카데미

서울

Web(Java) 트랙 (1,725 시간)

Dec. 2025 - 현재

  • Java: Java 객체지향 프로그래밍(상속, 다형성, 인터페이스), 예외 처리, 파일 I/O 학습

  • 알고리즘 및 자료구조: 스택, 큐, 트리, 그래프 등 자료구조 활용 및 완전탐색, DFS/BFS, 그리디, DP 등 알고리즘 학습

  • 웹 프론트엔드: HTML/CSS, JavaScript, AJAX 학습

  • AI: 생성형 AI 원리 이해 및 프롬프트 엔지니어링 실습

기술

  • Java & Spring Boot를 활용하여 REST API 설계레이어드 아키텍처 기반 애플리케이션 개발이 가능합니다.

  • Spring Data JPA를 활용한 엔티티 연관관계 설계 및 트랜잭션 전파 전략 적용이 가능합니다.

  • ThreadPoolTaskExecutor 기반 비동기 처리 파이프라인 설계리소스 및 성능 지표를 고려한 스레드풀 크기 최적화가 가능합니다.

  • Spring Security를 활용한 JWT 기반 무상태 인증 구현 및 OAuth2 소셜 로그인 연동이 가능합니다.

  • FFmpeg JavaCV를 활용한 영상 처리 파이프라인 구현이 가능합니다.

  • SSE(Server-Sent Events)를 활용한 푸시 알림 구현이 가능합니다.

  • Database as a Queue를 통해 요청 유실을 방지하는 구조 설계가 가능합니다.

  • GitHub Actions를 활용한 CI/CD 파이프라인 구축 경험이 있습니다.

프로젝트

DIVE (AI 기반 기술면접 연습 웹사이트)

백엔드 개발

Oct. 2024 - 현재

  • 서비스 소개 : 기술 면접을 편리하고 체계적으로 준비할 수 있도록 지원하는 웹사이트입니다. 사용자는 분야별 면접 질문 목록을 생성하고, 녹화한 영상 답변에 대해 Claude AI 모델의 피드백을 받을 수 있습니다.

  • 기술 스택 : Java 17, Spring Boot 3.3, Spring Data JPA, MySQL 8.0, AWS EC2, Github Actions, Swagger

  • 참여 인원 : 프론트엔드 1인, 백엔드 1인

  • I/O Bound 작업 전용 스레드풀을 도입하여 Tomcat 스레드 고갈 방지

    • 피드백 생성 작업이 영상 업로드 및 AI 분석 작업에 장시간이 소요되는 I/O Bound 작업임을 고려하여, Tomcat 스레드 고갈을 방지하고자 전용 ThreadPoolTaskExecutor 도입

    • 1GB RAM 환경에서 작업 당 약 150MB의 메모리를 점유하는 것을 고려하여, 이론적 병렬 처리 한계(약 7개) 전후의 성능 변화를 분석하고자 스레드풀 크기를 4, 5, 10, 20, 30개로 변경하며 20건의 동시 요청 테스트 수행

    • 트레이드 오프 :

      • Size 4 : 초기 응답시간은 빠르나(40초), 후순위 요청의 응답시간이 길어져 평균 응답 시간이 107초로 지연됨

      • Size 10 : 초기 응답시간은 다소 늘어났으나(52초), 대기열을 빠르게 해소하여 평균 응답 시간을 89.5초로 단축 (Size 4 대비 약 17초 개선)

    • 결과 : Tomcat 스레드풀만 사용했을 경우 대비 평균 응답시간(+8s) 지연을 감수하고, Tomcat 스레드 고갈을 예방하여 피드백 요청의 초기 응답시간 18초 단축 및 기타 요청의 응답 지연 방지

  • 피드백 생성 작업을 비동기 처리하고 작업 완료 시 알림 제공

    • 영상 업로드 및 AI 분석 작업을 비동기 처리하여 사용자의 불필요한 대기 시간을 제거하고, 작업 완료 시 즉시 알림을 제공하여 흐름이 끊기지 않는 학습을 지원

    • 클라이언트의 주기적인 Polling으로 발생하는 불필요한 HTTP 트래픽 및 서버 부하를 예방하고자 Server-Sent-Events로 구현

    • spring.jpa.open-in-view=false 설정하여 트랜잭션 종료 시 즉시 커넥션 반환하여 커넥션 풀 고갈 방지

  • Fetch Join 쿼리를 통한 지연 로딩 예외 및 N+1 문제 해결

    • OSIV 비활성화로 인해 영속성 컨텍스트 밖에서 QuestionSet의 Question 컬렉션 필드를 지연 로딩할 때 LazyInitializationException이 발생

    • QuestionSetRepository 클래스에 JPQL을 활용하여 JOIN FETCH 쿼리를 적용하여, QuestionSet을 조회하는 시점에 questions를 한 번의 쿼리로 미리 함께 조회하도록 함

    • 결과 : 지연 로딩 예외를 해결하고 데이터 조회 시 발생할 수 있는 N+1 문제를 예방

  • Database as Queue를 통해 영상 작업 요청의 유실을 방지

    • 스레드풀 포화 시 요청이 유실되는 문제를 해결하기 위해 요청 정보를 DB에 PENDING 상태로 저장하는 Database as a Queue 도입

    • 스케줄러가 1초마다 스레드풀 여유 용량만큼만 작업을 조회하여 처리하고, 완료 시 삭제·실패 시 FAILED 상태로 이력 보존

    • 결과 : 스레드풀 포화 상태에서도 요청 유실 없이 순차 처리

  • GitHub Actions 활용한 배포 자동화 : 수동 배포로 인한 휴먼 에러를 방지하고 배포 시간을 단축하기 위해 GitHub Actions CI/CD 파이프라인을 구축하여 배포 프로세스를 자동화

TraBlog

백엔드 개발

Aug. 2023 - Dec. 2023

  • 기술 스택 : Java 11, Spring Boot 2.7, Spring Data JPA, MariaDB, AWS EC2, Swagger

  • 참여 인원 : 프론트엔드 1인, 백엔드 1인, 디자이너 1인

  • 서비스 : MZ세대를 위한 여행 기록 및 방문 여행지 스탬프 모으기 크로스 플랫폼 앱입니다. 사용자는 사진과 함께 여행 기록 포스트를 업로드 할 수 있고, 지도 상의 방문 여행지에 스탬프를 남길 수 있습니다.

  • Nginx 리버스 프록시 및 정적 파일 서빙

    • Nginx를 통해 클라이언트 요청을 Spring Boot 서버로 라우팅

    • 정적 이미지 파일은 Spring Boot를 거치지 않고 Nginx가 직접 제공하도록 구성

  • JWT 토큰 기반 인증 구현

    • JWT 방식을 사용하여 무상태 인증 구현

    • Access Token과 Refresh Token으로 보안성과 사용자 편의성 확보

  • Swagger API 문서 자동화

    • Swagger를 통해 RESTful API 명세 자동 생성 및 테스트 환경 제공

  • GitHub Projects의 칸반 보드를 활용한 팀 진행 상황 공유 및 일정 관리

자격증

정보처리기사

한국산업인력공단

Aug. 2025

TOEIC Speaking Advanced Low

ETS

Jan. 2026

연락처

GitHub

minyeongg

웹사이트

https://velog.io/@minyeongg