미리보기
기본 정보

세미 콜론이 아닌, 온점을 지향하는 개발자가 되고싶습니다.
기술 스택
Spring Boot, Java, Python, MySQL
프로젝트
행정 프로그램 개발
개인
2019.08. ~ 2020.08.
사용 기술 및 구현 내용
데이터 추출 및 시각화(Folium 사용)
삼성 휴대폰으로 촬영된 맨홀 뚜껑 이미지를 분석해 좌표 , 시간 등의 메타데이터를 추출
Folium 라이브러리를 사용해 맨홀 위치를 지도에 시각화하여 , 정비 시기와 위치를 직관적으로 tooltip으로 확인
위치 정보와 유지,보수 이력을 연동함으로써 도시관리 업무의 정확도 및 효율성 향상
급여 자동 계산 알고리즘
공무직 직원들의 급여 서류를 일일히 수작업으로 계산하던 과정을 자동화
여러 형태의 서류 폼을 처리할 수 있도록 데이터 입력 로직을 설계하고 , 알고리즘으로 계산 과정을 간소화
금여 정산 시 인적 오류를 줄이고 , 처리 시간을 단축하여 업무 효율성 증대
주요 성과
수기 작성 대비 데이터 관리 정확도 향상 및 업무 속도 개선
맨홀뚜껑 유지,보수 이력 추적이 가능해져 , 도시 인프라 관리 효율성 극대화
급여 자동 계산을 통해 인적 오류가 감소하고 , 처리 시간이 단축된
프로젝트에서 배운 점
데이터 시각화와 위치 정보에 대한 행정 실무적 이해, 일반인과 사용자가 적합한 기술을 대화를 통해 꾸준히 개발(Folium , 좌표계 , 이미지 메타데이터 활용)
업무 로직을 알고리즘으로 전환해 자동화하는 과정에서 문제 해결 능력 및 코드 품질에 대한 인사이트를 습득 하였습니다.
행정 업무와 IT 기술의 결합이 현업 효율성을 높일 수 있다는 점을 체감하고 , 사용자 중심의 개발 마인드 강화
적용 가능 성 및 확장성
데이터 추출, 가공 , 시각화 노하우를 적용 가능
자동화 로직 및 알고리즘 설계 경험을 토대로, 대규모 트래픽 환경이나 복잡한 비즈니스 로직에도 대응할 수 있는 기반 마련
펜션 홈페이지
개인
2024.10. ~ 2024.12.
사용 기술 스택
Back_End : SpringBoot, MySQL,Security,OAuth2,SwaggerUI
Spring Security + JWT(Accesstoken , RefreshTokeb) 로 사용자 보안 강화
MySQL 비관적 락 ( Pessimistic Lock) 적용을 통한 동시섲 제어
OAuth2 를 통한 네이버 , 카카오, 구글 로그인 적용
SwaggerUI를 통한 API 문서화
Front-End : React
CSS를 통한 UI/UX 디자인 개선
Axios로 백엔드 API 통신 , Token을 요구하는 privateApi와 요구하지 않는 publicApi를 따로 개발
CORS 문제 해결
주요 기능 및 구현 내용
사용자 인증, 인가
JWT를 이용해 로그인 회원가입 등 인증 과정을 안전하게 처리
AccessToken과 RefreshToken을 분리 운영하여 세션 보안을 강화
AccessToken의 발급 여부를 통해 , 해당 URL에 접근 가능한지 판단 , Token을 해체하여 @AuthentiCationPrincipal을 구현 직접적인 사용자의 데이터를 보호
동시성 제어 (예약 기능)
여러 사용자가 동시에 예약 요청 시 @Transactional 를 통해 동시성을 중복 예약 방지
DB 트랜잭션 범위를 최소화하고 , 에러 발생 시 빠르게 롤백하도록 설계
단위 테스트를 통해여 100개의 동시처리를 진행했을때 성공은 하나가 되도록 확인
UI/UX개선
React에서 CSS를 활용해 직관적이고 반응형(Responseive) UI를 구성
Axios 기반 API 통신으로 프론트엔드 - 백엔드 간 데이터 교환을 원활히 처리
CORS 문제를 해결하기 위해 서버 설정 파일 수정 및 보안 규칙 점검
DB 설계 , JPA 활용
복잡한 조회 로직을 단순화하고 , 유지보수성을 높이는 데 기여
성과 및 문제 해결
동시성 문제를 @Transactional로 해결해 중복 예약 이슈를 방지 , 서비스 안정성을 확보하였습니다.
JWT 인증 구조 도입으로 , 사용자 정보 노출을 최소화하고 보안 취약점을 사전에 차단하였습니다.
React기반 UI/UX 개선으로 , 사용자 친화적 화면을 구현하고 예약 성공률 및 사용자 만족도 상승
CORS 등 환경 이슈를 사전에 테스트해 개발 속도와 추후 협업 효율을 높였습니다.
배운 점 및 확장 가능성
동시성 제어(DB 락) 과 보안 (JWT , Spring Security)에 대한 실무적 이해도 향상
프론트엔드 - 백엔드 분리 아키텍처에서 API 문서화 , 단위 테스트와 통합 테스트의 중요성 체감
대규모 트래픽을 처리할 때 , 동시성 제어 , 보안 강화가 필수적임을 재확인
추가확장 : 예약 외 결제 시스템 연동 , CI/CD 자동화(배포 효율 극대화) 등으로 기능 확대 가능
포트폴리오
교육
동서대학교
대학교(학사) | 소프트웨어 융합대학
2017.03. ~ 2025.02. | 졸업
대외활동
동아리(CAN) 회장 및 스터디 운영
대학 동아리 'CAN'
2023
활동 내용
동아리 회장으로서 조직관리 , 신입 동아리원 교육 , 프로젝트(스터디) 기획 등을 총괄하였습니다.
JavaScript , 자료구조 , 알고리즘 웹 개발 스터디 등을 기획 , 운영하여 동아리원의 역량 강화를 지원하였습니다.
학기 중에는 정기 세미나 , 방학 중에는 스터디 그룹을 꾸려 진행하였습니다.
본인의 역할
동아리 운영 전반 ( 예산 , 인원관리 , 커뮤니케이션 ) 과 스터디 커리큘럼 구성을 담당하였습니다.
갈등 조정 및 의견 조율을 통해 동아리 내의 분위기를 형성하였습니다.
프로젝트 일정 관리와 상담 등을 진행하여 , 동아리 후배의 고충을 듣고 조언해주는 역할이었습니다.
성과 및 배운 점
리더쉽과 팔로워 십이 상호 보완적으로 작동한다는 것을 실감하고 , 팀워크와 조직 운영 역량을 발전시켰습니다.
후배들의 프로젝트 완성도가 높아지고 , 동아리 내 스터디 참여율이 상승해 구성원들의 학습 만족도가 크게 향상되었습니다.
다양한 사람들 간의 협업을 통해 의사소통 능력을 키웠고 , 대화를 통해 다른 구성원들의 의견을 조율 하는 효과적인 방법을 배웠습니다.
Docker CI/CD (항해 99) 프로그램
항해 99
2024
활동 상세 설명
Docker를 활용해 애플리케이션을 컨테이너화 하고 , GitLab CI를 통한 자동화 배포 파이프라인을 학습 , 구축하였습니다.
AWS EC2 서버 환경을 설정하고 , 우분투 CLI 를 통해 배포 과정에서 발생하는 에러를 로그 분석으로 해결하였습니다.
성과 및 배운 점
컨테이너 기반 환경에서 버전 일관성 유지와 스케일링 용이성을 체감하였습니다.
DevOps 마인드를 바탕으로 개발과 운영을 통합적으로 살피는 능력을 키웠습니다.
CI/CD 자동화 파이프라인을 구축하면서 , 코드 품질과 안정성을 높이는 프로세스를 직접 경험하였습니다.
자기소개
안정성과 확장성을 동시에 추구하는 백엔드 개발자 이선빈 입니다.
1. SpringBoot의 시작
처음 웹 백엔드 개발을 하겠다고 마음먹었을 때 , 여러 언어와 여러 프레임워크중에 SpringBoot의 편리함과 확장성에 매료되었습니다. 간단한 설정과 자동구성을 통해 빠르게 프로토타입을 제작할수 있으며 , 계층적 구조를 명확히 적용하여 유지보수성을 높일 수 있다는 것이었습니다. 이러한 구조화된 개발방식은 , 대규모 트래픽이나 새로운 기능 요구사항이 생겨도 유연하게 확장할 수 있으며 , 다양한 개발 환경에 맞춰 개발할 수 있다는 점이 저에게는 큰 매력이 되었던 것 같습니다.
2.MySQL로 쌓은 데이터 모델링 및 트랜잭션 처리 경험
백엔드 개발에서 데이터 설계와 트랜잭션 처리는 핵심입니다. 학부 때도 DB개론의 수업을 정말 재미있게 들었으며 , 아마 백엔드의 결정에 가장 큰 계기가 된 데이터베이스를 항상 재미있어했습니다. 저는 MySQL을 활용해 , 데이터 무결성을 보장하는 것에 가장 큰 의미가 있다고 생각했고, 트랜잭션 단위로 동시성 이슈를 해결하기 위해 , 비관적 락, 낙관적 락 , Redis 분산락과 , MySQL 기반의 Named Lock의 장단점을 비교, 적용 해 본 경험이 있습니다. 프로젝트에서는 SpringBoot의 이점을 활용한
@Transactional 을 통한것을 최종적으로 채택, 멀티쓰레드를 이용한 단위 테스트를 통해 테스트하며 중복 예약이 없는 안정적인 서비스를 구현하였습니다.
3. 안정적인 서비스 운영을 위한 핵심 역량
1. 보안 및 인증 (Spring Security , JWT)
Spring Security와 JWT를 결합해 사용자 인증 , 인가 로직을 구현하였습니다. AccessToken과 RefreshToken 을 분리 운영함으로써 세션 하이재킹 등 보안 위험을 최소화 하였습니다. 그리고 사용자의 정보 누출을 최소화 하기위해 서비스 안에서는 UUID로만 통신하고 UserDetails를 이용한 CustomUserDetails를 사용하여 Token 자체에서 회원의 UUID를 확인하여 , 보안 설정을 강화하였습니다.
2. CI/CD 와 DevOps마인드
Docker CI/CD(항해 99) 활동을 통해 AWS EC2 환경에서 Dockerfile 작성 , GitLab CI 등 자동화 배포 파이프라인을 구축하였습니다. 배포 과정에서 포트 충돌 , 환경 변수 설정 이슈 등 로그 분석과 커뮤티니 활용으로 해결하여 , 개발과 운영을 통합적으로 살피는 DevOps마인드를 키웠습니다.
4. 협업과 코드 품질 : 팀 성장을 이끄는 백엔드 개발자
백엔드 로직이 안정적이고 다양한 환경에 대응할 수 있어야 , 팀내의 프론트엔드 , 기획 , 디자인 등 다양한 직군과의 협업이 원할해진다고 생각하였습니다.
동아리 회장에서 후배들의 프로젝트 기획과 스터디를 지원하며 , 갈등 조장과 의사소통 능력을 체득하였으며, 갈등 조정과 의사소통 능력을 체득하였습니다. 또한 후배들의 코드 리뷰를 통해서 , 코드 품질과 팀원의 역량을 높이는 방법 그리고 제 코드에 대한 객관적인 시선을 가지게 되었습니다. 또한 프로젝트를 진행하면서 Swagger나 Postman 등으로 API 스펙을 명확히 정의해 , 프론트 엔드 작업 사이에서 원할한 데이터 정의하는 방법을 배웠습니다.
5. 데이터 무결성과 금융 서비스에 대한 관심
펜션 홈페이지 작성을 통해 , 결제할때나 예약할 때 , 금융 서비스에 관련된 서비스 로직이 들어갈때는 트랜잭션 안정성과 보안이 필수임을 알게 되었습니다. MySQL에서 ACID 특성을 제대로 활용하고 , Spring Transactional 트랜잭션 범위를 명확히 설정해 데이터 무결성을 지키는 방식을 학습하였습니다. 금융 서비스 처럼 대규모 트래픽이 발생하는 환경에서 비관적 락 등 동시성 제어 전략이 필요함에 있어서 실제 프로젝트를 통해 알게 되었습니다. 이러한 경험을 바탕으로 거래나 결제 기능 등을 도입할때 잠재적 오류와 보안 이슈를 좀 더 잘 다룰수 있고 예측하며 , 대비할 자신이 생겼습니다.
6. 앞으로의 목표 : 확장성과 안정성 , 신기술을 모두 갖춘 서비스 구현
Spring Boot와 MySQL을 중심으로 쌓아온 역량에 AI 같은 최신 기술을 결합해, 안정성과 혁신성을 균형 있게 추구하는 백엔드 서비스를 만들고 싶습니다. 대규모 트래픽에도 흔들리지 않는 분산 아키텍처, 마이크로서비스(MSA) 환경에서의 데이터 일관성, 그리고 Kubernetes 등 클라우드 네이티브 기술을 도입해 지속적인 확장을 실현하는 것이 저의 목표입니다.
학부 때부터 쌓아온 DB 이론과 트랜잭션 처리 경험을 바탕으로, 사용자에게 신뢰를 주고 동시에 새로운 경험을 제공하는 백엔드 서비스를 구현하겠습니다.
“금융 서비스에서는 특히 데이터 무결성과 보안이 가장 중요하다.”
이 원칙을 지키기 위해, 저는 Spring Boot와 MySQL 기반의 백엔드 기술 역량을 지속적으로 키우고, DevOps와 협업 문화를 통해 안정적이면서도 유연한 서비스를 만들어가겠습니다.
감사합니다.