채용공고 올리기

최호석님을 응원해보세요!

이직/구직 중이에요
성실함
책임감
열정적

미리보기

기본 정보

이름
최호석
직업
신입 백엔드 개발자
이메일
ghtjr410@gmail.com
간단 소개

자기 주도적 공부, 긍정적인 사고, 동료등과의 화합 세 가지를 핵심 가치로 생각합니다. 개발 중 마주한 문제에 대한 해결 과정을 작성하는 것을 좋아하고 도움이 필요한 동료에게 문서를 공유하여 같이 문제 해결하는 것을 좋아합니다. 어려운 상황이나 복잡한 프로젝트도 긍정적인 마인드와 협업을 통해 제한된 시간 안에 성공적으로 마무리하는 것을 목표로 합니다.

기술 스택

기술 스택

Java, Spring Boot, JPA, MySQL, Kafka, Docker, AWS

프로젝트

프로젝트명

MiniBlog (Monolithic)

소속/기관명

프로젝트 기간

2024.06. ~ 2024.07.

프로젝트 내용

GitHub: https://github.com/ghtjr410/MiniBlog


REST API 설계, JWT 인증 인가 구현, 비즈니스 로직 구현을 담당하였습니다.

프로젝트가 끝난후 2025.01 ~ 2025.02 기간동안 리팩토링을 하였습니다.

아래는 리팩토링 내용입니다.

1. 조회수 배치 업데이트 - 스케쥴링과 임시 테이블 조인 업데이트 활용
  • 객체 내부 수정 ➜ 낙관적 락 ➜ Atomic 연산
    최종 : Redis 임시저장 + 스케쥴링 + 임시 테이블 JOIN 업데이트 적용

  • 조회수 증가 10,000건 요청 1,279 증가 (성공률 12.7%) ➜ 10,000건 증가 (성공률 100%) 개선

  • Atomic 연산 쿼리 10,000건 ➜ 최소 5건으로 감소 (쿼리 수 99.95% 감소)

2. QueryDSL 동적 쿼리와 무한 스크롤 성능 최적화 전략

  • QueryDSL을 활용해 24개 조합하나의 동적 쿼리로 통합 ➜ 코드량 50% 감소

  • Page와 Slice 방식의 적용 기준을 명확히 하여 불필요한 Count제거쿼리성능 최적화

3. JWT 블랙리스트 조회 성능 개선

  • 로그아웃시 토큰 블랙리스트 등록 ➜ filterChain에서 블랙리스트 유무 확인 ➜ 조회속도를 높여 인증요청 성능 향상 기대

  • MySQL 인덱스 적용 ➜ Redis 성능 비교 후 Redis 선택

  • 10만개 데이터 1만 회 조회 ➜ 평균 응답시간 50% 감소, 처리량 17.35% 증가

프로젝트명

Miniblog (MSA)

소속/기관명

개인

프로젝트 기간

2024.08. ~ 2024.12.

프로젝트 내용

GitHub: https://github.com/ghtjr410/Miniblog-K8s-Microservices-Stack

배포: https://blog.ghtjr.com


해당 개인 프로젝트분산 시스템에서 발생할 수 있는 다양한 문제를 직접 경험하고 해결하며 서버 간 비동기 통신을 안정적으로 처리하는 아키텍처 설계에 중점을 두었습니다.

1. Kafka 기반 이벤트 발행: Outbox 패턴, Avro, 멱등성, SagaStatus를 활용해 트랜잭션 안정성 및 확장성 확보

  • 주요 구현: @Retryable , 동적 토픽 할당SpEL , 원자적 상태 업데이트

2. Kafka 이벤트 발행 병목 현상 해결: Virtual Thread 기반 병렬처리

  • 이벤트 처리량 3배 증가, 성능 67% 향상

3. API Gateway 인증 통합: 커스텀 헤더 및 스푸핑 방지로 신뢰성 강화

  • 하위 서버 중복 인증 제거: 평균 응답 속도 26.32% 개선

4. 이미지 업로드 최적화: Base64 ➜ URL방식 (S3, CloudFront) 전환 성능 개선

  • 데이터 전송 속도 93.4% 향상, 저장 크기 99.97% 감소, 로딩 속도 89.2% 향상

5. MSA 분산 추적 및 모니터링: 9개 서버 비동기 통신 TraceId 공유로 작업 흐름 통합

  • Tempo와 Zipkin활용: TraceId 공유 및 비동기 이벤트 경로 추적

  • AOP 관찰: Repository JPA 커스텀 메서드까지 추적, 주요 데이터 로직 상세히 파악가능

  • Grafana 기반 로그, 트레이싱, 매트릭 통합 시각화: 평균 오류 감지 시간 약 70% 단축 10분3분

6. Docker 기반 개발환경 구축 및 최적화

  • 멀티 스테이징 빌드로 이미지 크기 44.4%감소

  • Docker Compose 활용: 9개의 오픈소스 컨테이너 통합 및 네트워크 통신 구성

7. AWS EKS 기반 Kubernetes 환경 구성 및 최적화

  • NLB(5개 IP = 월간 18USD) ➜ ALB + Route53(1개 IP, 월간 3.60USD) 전환: 월 비용 80% 절감

  • Certification Manager: 100% HTTPS 환경 구현 (HTTP요청도 HTTPS로 리디렉션)

  • React 앱 2개, Spring 서버 9개, 인프라 11개 구성, 배포, 관리 YAML 작성

8. 9개 서버 배포 자동화: Jenkins와 Helm 활용

  • Kubectl 수작업 실수 방지, 배포속도 10분3분 개선

프로젝트명

MusicalSpot

소속/기관명

프로젝트 기간

2024.07. ~ 2024.08.

프로젝트 내용

GitHub: http://github.com/ghtjr410/MusicalSPot

배포: https://musical.ghtjr.com/


REST API 설계와 JWT 인증 인가 구현, Azure 클라우드 환경 구성, GitHub Actions를 통한 배포자동화를 담당하였습니다.

1. Azure 클라우드 환경 구축 GitHub Actions로 배포 자동화

  • Azure, GitHub Actions 직접 작성한 사용법 개발문서 공유

  • 모든 팀, 학생 16명 전원 100% 배포 성공 사례 달성

2. 병합 전 팀원들과 코드 리뷰 문화 구성

  • 메인 브랜치 1인, 3개의 서브 브랜치 분리로 팀원들과 코드 변경 충돌 최소화

  • SourceTree 도입: 터미널에서 변경 내역 확인이 어려움을 시각화된 변경 내역으로 해결

  • 1:1로 팀원과 병합 전 코드 의도 파악: 충돌 가능성 점검으로 병합 오류 감소



자세한 모든 내용은 포트폴리오에서 확인할 수 있습니다.

 

이력서에는 핵심 내용만 간략히 정리했습니다.

포트폴리오에는 아래와 같은 상세한 과정이 정리되어 있습니다.

  1. 아키텍처 설계 과정

  2. 성능 최적화 과정과 기술 선택 이유

  3. 문제 정의와 해결과정

포트폴리오

URL

link

포트폴리오(노션

노션
link

GitHub

깃허브

자기소개

자기소개

< 끊임없이 "왜?"라는 질문을 던지는 개발자 >

개발을 할 때, 단순히 기능을 구현하는 것이 아니라 "왜 이렇게 해야하는가?"를 끊임없이 고민합니다.

  • 데이터 정합성은 어떻게 보장할 것인가?

  • 동시성 문제는 어떻게 해결할 것인가?

  • 트랜잭션 유지시간을 어떻게 줄일 것인가?

  • 성능 최적화는 어떤 방식이 현재 가장 효율적인가?

예를 들어, Kafka 기반의 이벤트 발행 시스템을 설계할 때, 단순히 클론코딩으로 적용하는 것이 아니라

  • 트랜잭션 유지시간을 줄이기 위해 Outbox 패턴을 도입하고,

  • 이벤트 중복발행 문제를 해결하기 위해 SagaStatus 필드를 추가하고,

  • 단일 스레드 병목을 해결하기 위해 가상 스레드 기반 병렬 처리를 적용

이러한 문제들을 고민하고 개선해 나가며, 단순한 기능 구현을 넘어 "문제를 정의하고 해결하는 개발자"로 성장하기 위해 노력하고있습니다.

 

제가 구현한 방식이 Best Practice는 아닐 수 있습니다.
하지만 끊임없이 "왜?"라는 질문을 던지며, 구현 방식의 의도를 명확히 하고 지속적으로 개선해 나가고자 합니다.

 

결국, 현재 상황에서 최선의 해결책에 도달하는 것이 진정한 개발자의 역할이라고 생각합니다.

 


< 지식을 공유하고 협업을 즐기는 개발자 >

저는 팀원들과 친밀감을 형성하며 협업하는 과정에서 보람을 느낍니다.

어색한 상황에서도 대화를 통해 벽을 허물 수 있다고 믿기에, 스몰토크를 적극 활용합니다.

사소한 대화 하나가 팀의 분위기를 긍정적으로 바꾸는 데 큰 역할을 한다고 생각합니다.

 

또한 저는 지식 공유를 통해 동료의 성장을 돕는 것을 좋아합니다.

예전에 팀 프로젝트가 끝날 무렵, 같은 반 학생들이 구현은 거의 마쳤지만 배포 과정에서 어려움을 겪고 있었습니다.

당시 Azure를 사용해 React, Spring를 배포하고 Redis와 MySQL을 연동한 경험이 있었습니다.

뿐만 아니라, Azure 회원가입부터 FreeTier설정, GitHub Actions로 자동 배포까지 모든 과정을 문서화해 두었기에 이 지식을 공유하면 도움이 될 것이라고 생각했습니다.

 

즉시 12명의 학생에게 Notion 문서를 공유했고, 자습실에서 직접 설정 과정을 함께 진행했습니다.

서로의 설정을 점검하며 배포 환경을 한 단계씩 구성하는 동안, 학생들은 점차 배포 과정을 이해하고 자신감을 얻었습니다.

몇몇 학생들은 "문서가 추상적이고 설치 흐름이 직관적이지 않다" 는 피드백을 주었고, 이를 계기로 설치 과정의 흐름을 명확히 정리하여 문서를 수정했습니다.

 

결과적으로, 반 전원이 배포에 성공하여 프로젝트 발표날, 모두가 웃고 박수를 치며 기쁨을 나눌 수 있었습니다.

이 후 전원 회식을 하며 동료애와 협력의 의미를 다시 한번 느낄 수 있었습니다.

 


< 빠른 적응과 주도적인 자세 >

마지막으로 저는 문제 해결에 대한 끊임없는 탐구심과 동료와 함께 성장하고자 하는 의지를 가진 사람입니다.

열린 마음과 배움의 자세를 가지고 항상 밝은 웃음으로 동료에게 먼저 다가가 대화를 통해 팀 분위기에 녹아들겠습니다.

더 나아가 주도적인 학습피드백을 적극적으로 수용하며 전문성을 쌓아가는 과정에서 팀과 협업하여 성과를 더욱 발전시키는데 이바지하겠습니다.

자격증

자격증명

정보처리산업기사

점수 | 발급기관

한국산업인력공단

취득연월

2024.09.

자격증명

SQLD

점수 | 발급기관

한국데이터산업진흥원

취득연월

2024.06.

자격증명

리눅스마스터 2급

점수 | 발급기관

한국정보통신진흥협회

취득연월

2024.06.

자격증명

네트워크 관리사 2급

점수 | 발급기관

한국정보통신자격협회

취득연월

2019.10.

자격증명

CostPro 2급

점수 | 발급기관

(주) 와이비엠

취득연월

2024.04.

교육

소속/기관명

코리아 IT 아카데미

종류 | 전공

사설 교육 | 스프링 응용 개발자

재학 기간 | 재학 상태

2024.04. ~ 2024.08. | 수료

소속/기관명

코리아 IT 아카데미

종류 | 전공

사설 교육 | Java 백엔드 개발 과정

재학 기간 | 재학 상태

2023.10. ~ 2024.07. | 수료

소속/기관명

평생교육원 (학점은행제) 108/140학점

종류 | 전공

대학교(학사) | 컴퓨터공학 (학사)

재학 기간 | 재학 상태

2024.12. ~ 현재 | 재학 중

소속/기관명

연세게임교육원 (학점은행제)

종류 | 전공

대학교(학사) | 게임프로그래밍 (멀티미디어학)

재학 기간 | 재학 상태

2016.03. ~ 2018.12. | 중퇴

댓글