채용공고 올리기

박상철님을 응원해보세요!

이직/구직 중이에요
커뮤니케이션
자기 주도적
문제 해결사
고객 중심
적응력

미리보기

기본 정보

이름
박상철
직업
백엔드 개발자
간단 소개

자기소개

자기소개

저는 어릴 적부터 게임을 정말 좋아했습니다. 다양한 장르의 게임을 즐기면서, 언젠가는 제가 즐겨 왔던 그 게임들처럼 멋진 게임을 직접 만들어보고 싶다는 꿈을 품게 되었습니다.

그러던 중 우연한 기회로 프로그래밍을 접하게 되었고, 개발의 세계에 깊이 빠져들게 되었습니다. 개발을 배우면서 놀랍게도 게임과 프로그래밍 사이에 많은 유사점이 있다는 것을 발견했습니다. 논리적 사고, 문제 해결 능력, 창의성 등 게임을 즐기면서 자연스럽게 익혔던 능력들이 프로그래밍에서도 큰 도움이 되었습니다. 이러한 발견은 제가 개발에 더욱 흥미를 느끼게 된 계기가 되었고, 게임 개발이라는 꿈을 향해 한 걸음 더 나아갈 수 있게 해주었습니다.

이스트게임즈는 오랜 기간 동안 전 세계 유저들에게 사랑받는 게임을 개발해 온 회사입니다. 귀사의 일원으로서 제 게임에 대한 이해와 개발 능력을 바탕으로 혁신적인 게임 개발에 기여하고 싶습니다. 열정적인 게이머이자 개발자로서, 저는 사용자의 관점에서 게임을 이해하고 이를 개발에 반영할 수 있는 독특한 시각을 가지고 있다고 믿습니다.

게임을 사랑하는 마음과 개발에 대한 열정을 가진 저는 이스트게임즈의 게임 서버 개발자로서 큰 가치를 창출할 수 있을 것입니다.

기술 스택

기술 스택

Java, Spring Boot, Spring Security, MySQL, JPA, querydsl, Redis, AWS, Git, GitHub, Docker

프로젝트

프로젝트명

Binder

소속/기관명

스위프 6기

프로젝트 기간

2024.09. ~ 진행 중

프로젝트 내용

내 주변의 쓰레기통을 찾아주는 서비스(Bin-Finder)

구성 인원: 기획 1, 디자인 1, 프론트엔드2, 백엔드 2

협업 내용:

  • 주 3회 회의를 통해 다른 직군과 협력하며 사용자 경험을 고려한 API 설계

  • 쓰레기통 검색, 공공데이터 기반 쓰레기통 등록을 제외한 대부분 기능 구현

  • 팀 내 의사결정 과정에 적극적으로 참여하며 기술적 제안(검색 개선)

  • 지속적인 홍보로 일일 사용자 50명 달성

주요 성과:

댓글 좋아요 기능 동시성 테스트 중 발생한 데드락 문제 해결

  • 낙관적 락으로는 해결할 수 없는 데이터베이스 레벨의 락 문제

  • MySQL 공식 문서를 통해 외래키 제약 조건으로 인한 공유 락 획득이 원인임을 파악

  • 비관적 락을 도입하여 트랜잭션 시작 시점부터 배타 락 획득

  • 데드락 및 동시성 문제 해결로 댓글 좋아요 수의 데이터 정합성 확보

  • 트랜잭션 격리 수준, JPA의 동작 방식, 그리고 데이터베이스 락 메커니즘에 대한 이해 획득

AI를 이용한 욕설 필터링 기능 구현

  • 데이터베이스에서 욕설 목록을 저장하고 비교하는 방식은 필터링을 우회하는 방법에 취약한 문제 발생

  • ChatGPT API를 이용하여 필터링을 우회하는 방법도 통제

  • ChatGPT가 잘못된 응답을 반환하는 경우에는 후처리 로직을 통해 오탐 문제 개선

  • DB 학습 모델 적용으로 GPT 호출 빈도 최적화 및 성능 개선(30배)

  • 관리자의 모니터링 부담 감소 효과

AWS 인프라 환경 구축 및 CI/CD 적용

  • EC2, ELB, RDS, Route53, S3 등 프로젝트에 필요한 인프라 구축 및 비용 최소화

  • 잦은 API 스펙 변경으로 인해 API 문서 공유를 위한 배포 자동화 필요성 체감

  • Github Actions를 통한 CI/CD 적용으로 배포 시간 75% 단축 (10분 -> 2분) 및 협업 경험 개선

심사를 위한 관리자 페이지 구현

  • 데이터 정규화를 통해 복잡한 관리자 페이지 구현

  • 3개 이상 누적된 신고만 표시하여 관리자의 업무 효율성 향상

  • 신고 타입별 집계 기능 구현으로 관리자의 심사 및 사유 작성 프로세스 개선

소셜 로그인 시 기존 계정과의 이메일 중복 문제

  • 이메일 기반 사용자 계정 통합 로직 개발 및 적용

  • 사용자 계정 통합으로 중복 계정 생성 방지하여 사용자 경험 향상

프로젝트명

Air Dnb

소속/기관명

코드스쿼드

프로젝트 기간

2024.05. ~ 2024.06.

프로젝트 내용

에어비엔비를 모방한 숙소 예약 시스템

대규모 트래픽 대응 쿠폰 시스템

  • 선착순 쿠폰 발급 기능에서 쿠폰 초과 발급 및 대규모 동시 요청으로 인한 시스템 부하 문제 발생

  • Redis의 Queue와 Spring의 Scheduler를 이용해 대기열 시스템을 구현

  • 기존 대비 성능 5배 개선

동시 예약시 오버부킹 문제 해결

  • 낙관적 락, 비관적 락으로는 동시에 여러 날짜를 예약할 수 있는 숙소시스템의 동시성 이슈를 해결하기 어려움

  • Redis의 분산 락을 활용하여 동시성 제어를 구현

  • 동시성 문제 제어를 통한 오버부킹 0건 달성

숙소 검색시 N+1 쿼리 발생으로 인한 검색 성능 저하 문제 해결

  • FetchJoin과 스프링 부트의 batch 설정을 활용하여 쿼리 실행 횟수를 감소

  • 쿼리 실행 횟수 감소로 검색 성능 개선

프로젝트명

커스텀 WAS

소속/기관명

코드스쿼드

프로젝트 기간

2024.03. ~ 2024.04.

프로젝트 내용

순수 Java로 웹 애플리케이션 서버(WAS)를 구현한 개인 프로젝트

중앙 집중식 요청 처리를 위한 프론트 컨트롤러 패턴 적용

  • 분산된 요청 처리 로직으로 인해 코드 복잡도가 증가하고 유지보수의 어려움 발생

  • 중앙 집중식 요청 처리를 위해 프론트 컨트롤러 패턴을 적용

  • DispatcherServlet과 유사한 구조로 요청 처리 흐름을 일원화하여 유지보수성을 크게 향상시킴

인가 전용 인터셉터 구현

  • 공통적인 권한 검증 등을 각 컨트롤러에서 처리함으로 유지보수의 어려움 발생

  • 인터셉터를 도입하여 중앙에서 공통 작업을 처리하고 특정 URL 패턴에 대해 필터링을 적용

  • 권한 검증 로직을 개별 컨트롤러에서 분리하여 코드 모듈화 및 재사용성을 높임

Multipart 요청 처리를 위한 컴포넌트 구현

  • 파일 업로드 시 메모리 사용량 급증으로 인한 서버 다운, 바이너리 데이터를 처리하지 못하고 무한 로딩 현상 발생

  • 스트리밍 방식으로 파일 업로드를 처리하여 메모리 사용을 최적화, ContentLength 헤더를 읽어 바이너리 데이터도 파싱할 수 있도록 개선

  • 안정적이고 효율적인 파일 업로드 기능을 구현하여 메모리 사용량을 크게 줄일 수 있었음

포트폴리오

URL

link

https://www.bin-finder.net

URL 링크
link

https://github.com/binder-binFinder/binder-back-end

깃허브
link

https://velog.io/@parksangchu/posts

URL 링크

교육

소속/기관명

코드스쿼드

종류 | 전공

사설 교육 | 백엔드 개발자 양성 교육

재학 기간 | 재학 상태

2024.02. ~ 2024.08. | 졸업

소속/기관명

인하대학교

종류 | 전공

대학교(학사) | 경영학과

재학 기간 | 재학 상태

2011.02. ~ 2015.02. | 졸업

대외활동

활동명

스위프 6기

소속/기관명

스위그

연도

내용

기획자, 개발자, 디자이너가 한 팀으로 6주간 웹 어플리케이션을 만드는 프로젝트

댓글