
미리보기
- 직업
- 백엔드 개발자
- 이름
- 노희찬
- 이메일
- shgmlcks1004@naver.com
- 간단소개
- [ 동시성 이슈를 Redisson 을 사용해서 멀티쓰레딩 상황에서도 해결할 수 있는 백엔드 엔지니어 입니다 ] [ JPA N+1 문제를 다양한 방식(Fetch Join, Batch Size)으로 해결하며 성능을 4배 향상 시킨 경험이 있습니다 ] [ RabbitMQ 와 STOMP 를 활용해서 채팅 부하를 해결하는 백엔드 엔지니어 입니다 ]

기술 스택
- 기술 스택
- Java
- Spring Boot
- JPA
- MySQL
- Docker
- Linux
프로젝트
- 프로젝트명
- 협업 프로젝트: Goods (중고 거래 플랫폼)
- 소속/기관명
- 팀
- 프로젝트 기간
- 2024.04. - 2024.06.
- (3개월)
- 프로젝트 설명
[인원 구성]
- 프론트엔드 2명 + 백엔드 3명
[사용 기술]
- Java, Spring Boot, Spring Data JPA, MySQL, Docker, AWS EC2, Redis, GitHub Actions, WebSocket, RabbitMQ
[주요 성과]
- JPA 페이징 N+1 문제를 지연 로딩과 batch fetch size 옵션으로 풀어내어 TPS 4배 향상
- STOMP 와 RabbitMQ 를 사용하여 채팅 기능 구현
- JWT 를 사용하여 로그인 기능 구현
- GitHub Actions 를 사용한 AWS EC2 자동화 배포로 인한 개발 효율성 향상
- 프로젝트명
- 개인 프로젝트: Goal Challenge(목표 달성 서비스)
- 소속/기관명
- 개인
- 프로젝트 기간
- 2024.03. - 2024.04.
- (2개월)
- 프로젝트 설명
[사용 기술]
- Java, Spring Boot, Spring Data JPA, MySQL, Docker, Redis, JWT, Git
[주요 성과]
-Redisson Lock 을 사용한 멀티 쓰레드 동시성 문제 해결
포트폴리오
대외활동
- 활동명
- 백엔드 스쿨
- 소속/기관
- 제로베이스
- 활동 연도
- 2024
- 활동 상세 설명
Java, Spring Boot를 활용한 백엔드 프로젝트 개발
팀 프로젝트 참여 및 코드 리뷰, PR을 통해 협업 능력 향상
알고리즘 및 자료구조 학습, 주간 코딩 테스트에서 50명 중 4위 수료
운영체제, 네트워크 등 CS 학습 후 주간 CS 테스트에서 50명 중 1위 수료
[학습 내용]
- 활동명
- 대학원 연구실 서버 리소스 관리자
- 소속/기관
- 전북대학교
- 활동 연도
- 2022
- 활동 상세 설명
작업 스케쥴링 및 자원 최적화를 위해 Sun Grid Engine (SGE) 설치, 연구 효율 향상
디스크 파티션, LVM 설정 및 NAS 구축으로 데이터 저장 및 접근 효율 향상
RAM 및 GPU Scale-Up, 우분투 기반 시스템 유지 관리
[목적]
- 연구 효율성을 높이기 위한 클러스터 및 워크스테이션 리소스 관리
[성과]
- 활동명
- 해외 연구 협업 (노르웨이)
- 소속/기관
- 노르웨이 NTNU
- 활동 연도
- 2022
- 활동 상세 설명
[해외파견]
연구실 알고리즘의 실용성을 증명하고, NTNU와 국제 연구 협약 체결 및 협업 연구 결과를 바탕으로 논문 게재
- 활동명
- 파이썬 & 리눅스 강사 _ 전북대학교
- 소속/기관
- 전북대학교
- 활동 연도
- 2023
- 활동 상세 설명
리눅스 환경에서 간단한 프로그램 실습
간단한 파이썬 프로그램 작성
[목적]
- 학과 1학년을 대상으로 리눅스와 파이썬 기초 강의 설계 및 진행
[성과]
교육
- 소속/기관
- 전북대학교
- 종류 | 전공명/전공계열
- 대학원(석사) | 물리탐사(지구물리컴퓨팅)
- 재학 기간 (재학 상태)
- 2022.03. - 2024.02. (졸업)
- 소속/기관
- 전북대학교
- 종류 | 전공명/전공계열
- 대학교(학사) | 자원에너지공학
- 재학 기간 (재학 상태)
- 2015.03. - 2022.02. (졸업)
자기소개
- 자기소개
개발자로의 성장 과정
"저는 다양한 관점에서 문제를 고민하고, 연구하며 해결해 나가는 과정에 매력을 느껴 개발자의 길을 선택했습니다."
대학원에서는 리눅스 환경 기반에서 포트란 언어를 활용해 수치해석 연구를 진행하며, 알고리즘 최적화와 에러 해결을 위해 논문을 참고하고 동료들과 협력하는 과정을 통해 문제를 논리적으로 분석하고 해결하는 능력을 길렀습니다.
이후 Java, Spring, JPA 등 백엔드 핵심 기술을 학습하고, 컴퓨터공학 기초 이론을 함께 공부하며 기술적 기반을 탄탄히 다졌습니다.
쌓아온 역량을 바탕으로 여러 프로젝트를 진행했고, Docker와 AWS 등을 활용해 배포 및 인프라 구성 경험도 갖추었습니다. 프로젝트 과정에서는 JPA N+1 문제를 fetch join과 batch size로 해결하고, 성능 테스트를 통해 DB 부하를 감소시키며 TPS를 약 4배 향상시킨 경험이 있습니다.
또한, 선착순 신청 기능에서는 동시성 문제 해결을 위해 Redisson Lock을 도입하여 안정적인 처리 로직을 구현하는 등 실제 문제를 다양한 방법으로 해결하는 역량을 키웠습니다.어떤 개발자로 성장하고 싶은지
"저는 코딩을 대화의 수단으로 사용하는 개발자, 그리고 문제를 두려워하지 않고 끝내 해결하는 개발자가 되고 싶습니다"
코딩은 사용자와 서비스, 기획자와 개발자, 개발자와 개발자 간의 소통 수단이라고 생각합니다. 사람 간의 대화가 상황에 따라 달라지듯, 코드도 대상과 맥락에 따라 유연하게 설계되어야 합니다. 저는 기술에 매몰되기보다, 상대방이 이해하기 쉬운 코드, 명확한 의도가 담긴 로직을 고민하며 개발하고자 합니다. 이를 위해 트레이드오프를 고려하고, 기술적 구현보다 설계 의도를 먼저 전달하는 것을 지향합니다.
또한, 문제를 책임감 있게 해결하는 개발자가 되고자 합니다. 실제 프로젝트에서는 예기치 못한 오류가 자주 발생했습니다. 그럴 때마다 저는 구글링, 다양한 접근법 시도, 동료와의 소통을 통해 문제를 해결해왔습니다. "두려워하지 말고, 결국 해결된다"는 마인드셋으로 임할 때 더 빠르게, 더 정확하게 해결할 수 있다는 것을 경험했습니다.
저는 앞으로도 다양한 문제를 경험하고 해결하며 성장할 것이고, 시니어 개발자가 되었을 때는 제가 먼저 겪은 경험을 바탕으로 팀원에게 해결 방향을 제시하고, 함께 성장하는 개발 문화를 만들어가고 싶습니다.