미리보기
기본 정보
기술의 매커니즘을 이해하고 사용하여 솔루션을 창출하는 것에 흥미를 느끼며, 팀원들과의 협력을 통해 함께 성장하는 것을 추구합니다.
기술 스택
Java, Spring Boot, JPA, MySQL, Docker, Linux
프로젝트
협업 프로젝트: Goods (중고 거래 플랫폼)
팀
2024.04. ~ 2024.06.
[프로젝트 소개]
- Good's는 5명의 개발자가 협업하여 개발한 중고 거래 플랫폼입니다.
[인원 구성]
- 프론트엔드 개발자 2명 + 백엔드 개발자 3명
[사용 기술]
Java
Spring Boot
Spring Data JPA
MySQL
Docker
AWS EC2
Redis
GitHub Actions
WebSocket
Git
Nginx
Elastic Search
[역할 및 성과]
인프라 개발
AWS EC2, S3, RDS를 활용한 배포 환경 구축
Nginx를 리버스 프록시 서버로 설정하여 프론트엔드와 백엔드 간의
안전한 HTTPS 통신 환경 구현Docker Compose를 사용해 개발 환경 구축 및 컨테이너 의존성 문제 해결
GitHub Actions를 이용한 애플리케이션 자동 배포 설정,
SSH 연결 시I/O 타임아웃 문제 해결
인증 시스템 개발
Redis를 이용한 Refresh Token 관리를 통해 보안을 강화한 JWT 기반
로그인 API 개발
@WithMockUser를 활용해 SecurityContext에 Authentication 객체를
등록하여 테스트 코드 구현
상품 관리 API 개발
양방향 연관 관계에서 발생하는 N+1 문제를 Lazy Loading과 Fetch Join을
조합하여 해결
toMany 관계 default_batch_fetch_size 옵션을 활용하여 Pagination 처리
실시간 채팅 기능 개발
STOMP와 RabbitMQ를 사용하여 WebSocket 기반 채팅 API 개발
WebSocket Handshake 문제를 Nginx 설정을 통해 해결
개인 프로젝트: Goal Challenge(목표 달성 서비스)
개인
2024.03. ~ 2024.04.
[프로젝트 소개]
- Goal Challenge는 사용자가 원하는 챌린지를 신청하고 매일 기록할 수 있는 서비스입니다.
[인원 구성]
- 1인 개인 프로젝트
[사용 기술]
Java
Spring Boot
Spring Data JPA
MySQL
Docker
Redis
JWT
Git
[성과]
멀티 쓰레드 동시성 문제 해결
Redisson Lock을 이용하여 챌린지 선착순 신청 시 발생하는 동시성 문제를 해결
테스트 코드 내 트랜잭션을 분리하여 멀티쓰레드 시나리오 테스트
쿼리 최적화
불필요한 조인을 줄이기 위해 JPQL을 사용하여 참여 수 카운트 쿼리 최적화
포트폴리오
대외활동
백엔드 스쿨
제로베이스
[학습 내용]
Java, Spring Boot를 활용한 백엔드 프로젝트 개발
팀 프로젝트 참여 및 코드 리뷰, PR을 통해 협업 능력 향상
알고리즘 및 자료구조 학습, 주간 코딩 테스트에서 50명 중 4위 수료
운영체제, 네트워크 등 CS 학습 후 주간 CS 테스트에서 50명 중 1위 수료
대학원 연구실 서버 리소스 관리자
전북대학교
[목적]
- 연구 효율성을 높이기 위한 클러스터 및 워크스테이션 리소스 관리
[성과]
작업 스케쥴링 및 자원 최적화를 위해 Sun Grid Engine (SGE) 설치, 연구 효율 향상
디스크 파티션, LVM 설정 및 NAS 구축으로 데이터 저장 및 접근 효율 향상
RAM 및 GPU Scale-Up, 우분투 기반 시스템 유지 관리
해외 연구 협업 (노르웨이)
노르웨이 NTNU
[목적]
- 책임 연구원으로서 알고리즘 성능 증명 및 연구 데이터 확보
[성과]
연구실 알고리즘의 실용성을 증명하고, NTNU와 국제 연구 협약 체결
협업 연구 결과를 바탕으로 논문 게재
긍정적 프로젝트 결과로 현재까지 연구 교류 지속
파이썬 & 리눅스 강사 _ 전북대학교
전북대학교
[목적]
- 학과 1학년을 대상으로 리눅스와 파이썬 기초 강의 설계 및 진행
[성과]
리눅스 환경에서 간단한 프로그램 실습
간단한 파이썬 프로그램 작성
교육
전북대학교
대학원(석사) | 물리탐사(지구물리컴퓨팅)
2022.03. ~ 2024.02. | 졸업
전북대학교
대학교(학사) | 자원에너지공학
2015.03. ~ 2022.02. | 졸업
자기소개
저는 정해진 하나의 정답이 아닌, 문제 해결을 위한 다양한 접근 방식과 창의적인 사고를 요구하는 점과 문제를 해결하기 위해 끊임없이 고민하고 연구하며 답을 찾아가는 과정에 매력을 느껴 개발자의 길을 선택하게 되었습니다.
대학원 진학 후, Fortran 언어를 사용해 Linux 환경에서 수치 해석학 연구를 진행하며 이러한 매력을 실감했습니다. 계산 알고리즘을 향상 시키기 위해 코드를 작성하고 에러를 해결하는 과정에서, 동료들과 밤을 새워가며 토론하고 고민한 끝에 문제를 해결했을 때의 성취감은 매우 컸으며, 이 경험은 제가 개발에 대한 흥미와 열정을 확고히 하는 계기가 되었습니다.
또한 연구실에서 서버 관리자 업무를 맡으며 컴퓨터 리소스를 효율적으로 관리하고, 연구원들의 연구 효율성을 높이기 위해 노력했습니다. 디스크 최적화와 병렬 컴퓨팅 환경을 직접 설계하고 구축한 후, 연구원들이 "작업이 훨씬 편리해지고 빨라졌다"라고 말했을 때 큰 보람을 느꼈습니다. 이 경험을 통해 누군가의 문제를 해결하고 더 나은 환경을 제공하는 것이 제가 추구하는 방향임을 깨달았습니다.
이러한 경험을 바탕으로, 사용자에게 더 빠르고 편리한 서비스를 제공하고 시스템을 안정적으로 유지 및 개선할 수 있는 백엔드 개발자가 되기로 결심했습니다. 앞으로도 끊임없이 고민하고 성장하며, 더 나은 서비스를 제공하는 개발자가 되고자 노력할 것입니다.