채용공고 올리기

신수현님을 응원해보세요!

지금 만족하고 있어요
성실함
책임감
유연함
꼼꼼함
커뮤니케이션

미리보기

기본 정보

이름
신수현
직업
백엔드 개발자
간단 소개

안녕하세요! 꾸준함과 책임을 중요시하는 신수현입니다.

기술 스택

기술 스택

Java, Spring Boot, spring-framework, Spring Security, JPA, MySQL, Redis, aws-ec2, Docker, postman, swagger

프로젝트

프로젝트명

PigonAir

소속/기관명

항해99 | BE - 4명, INFRA - 1명

프로젝트 기간

2024.03. ~ 2024.05.

프로젝트 내용

대용량 트래픽을 경험해보기 위한 항공권 티켓팅 서비스

📂 GitHub Repository
🔗 프로젝트 GitHub


개발 주요 사항

1. 항공권 예약 기능

  • 좌석 잠금/해제 로직:
    예약 후 15분 내 결제가 이루어지지 않을 경우 좌석을 자동 해제.

  • 데이터 무결성 확보:
    비관적 락을 활용해 데이터 무결성 확보.

2. 결제 후 처리 로직

  • 비동기 처리(@Async):
    결제 정보 저장 및 이메일 전송을 비동기 방식으로 처리하여 응답 속도 최적화.

  • RabbitMQ 활용:
    이메일 전송 작업을 메시지 큐를 통해 분리, 트랜잭션 부담 최소화 및 지연 작업 최적화.


트러블슈팅 및 고민점

1. 동시성 문제 | notion

  • 문제: 동일 좌석의 중복 예약.

  • 해결: 비관적 락 적용으로 안정적인 트랜잭션 관리 구현.

2. 결제 후 처리 딜레이 | notion

  • 문제: 이메일 전송으로 트랜잭션 지연 발생.

  • 해결: RabbitMQ로 이메일 전송 비동기 처리, 클라이언트 응답 속도 개선.

3. LazyInitialization Error | notion

  • 문제: 트랜잭션 외부에서 연관 엔티티 로드 실패.

  • 해결: @Transactional 및 @EntityGraph로 트랜잭션 범위 및 N+1 문제 해결.


성과

  • 대용량 트래픽 환경에서 안정적인 데이터 처리와 성능 최적화 경험.

  • 비동기 처리 및 메시지 큐 활용으로 시스템 안정성 강화.

프로젝트명

RingMyBell

소속/기관명

공모전 팀 | BE - 1명, FE- 2명

프로젝트 기간

2024.09. ~ 2024.09.

프로젝트 내용

주변에 응급 차량이 있을 경우 사용자에게 알림을 제공하는 시스템 개발

📂 GitHub Repository
🔗 프로젝트 GitHub


개발 주요 사항

1. 사용자 및 응급 차량 회원가입

  • 일반 사용자와 응급 차량을 분리하여 회원가입 로직 구현

  • 사용자 데이터 검증을 위해 DTO와 Bean Validation 사용

2. JWT 기반 로그인

  • Spring SecurityJWT를 활용한 인증 및 권한 관리 구현

  • Redis를 활용한 RTR 방식(Refresh Token Rotation)으로 보안 강화

3. GeoHash 기반 거리 계산

  • GeoHash 알고리즘을 활용하여 응급 차량과 사용자 간 실시간 거리 계산 로직 구현

4. WebSocket 연결

  • 실시간 알림 기능 구현

  • 응급 차량의 위치 데이터를 WebSocket을 통해 실시간으로 전송

5. 협업 도구 도입

  • Swagger를 통해 API 명세 작성, 프론트엔드와의 원활한 협업 지원

  • Postman으로 API 테스트


트러블슈팅 및 고민점

1. 프론트엔드 작업 지연

  • 주기적인 미팅에서 갈등을 방지하려다 의사결정이 지연되었던 점을 반성

  • 이후 프로젝트에서는 유연하면서도 강단 있는 의사결정의 중요성을 깨달음

2. 스케줄 관리 부족

  • 작업 진행 상황을 명확히 파악하지 못했던 점을 인지

  • 협업 시 칸반보드와 같은 스케줄링 도구 활용의 필요성 깨달음


성과

  1. 보안성 강화

    • RTR 방식의 Refresh Token 구현을 통해 보안성에 대해 깊이 고민

  2. Redis 활용 경험

    • Redis의 다양한 기능(캐싱, 토큰 저장, GeoHash 등)을 활용하며 실무 능력 향상

  3. 실시간 통신 경험

    • WebSocket을 통한 실시간 데이터 전송 및 알림 기능 구현 경험 축적

  4. Swagger 도입 경험

    • API 명세화를 통해 협업 효율성을 높이고 RESTful 설계에 대한 이해 증대

포트폴리오

URL

link

Github

깃허브

교육

소속/기관명

대전대학교

종류 | 전공

대학교(학사) | 정보보안학과

재학 기간 | 재학 상태

2020.03. ~ 현재 | 재학 중

소속/기관명

항해99

종류 | 전공

사설 교육 | 백엔드

재학 기간 | 재학 상태

2024.02. ~ 2024.05. | 졸업

자기소개

자기소개

[왜 개발인가?]

해킹에 대한 막연한 호기심으로 정보보안학과에 진학했습니다. 학업 중 국정원이 주최한 프로젝트에 참여하여 모 대학병원의 시스템 취약점을 분석한 경험이 있습니다. 당시, 저는 웹사이트를 만들어본 적이 없었기에 OWASP Top 10에 있는 공격 기법을 무작정 시도해보는 방식으로 접근할 수밖에 없었습니다.

이 경험을 통해, 단순히 공격하는 입장이 아니라, 웹사이트를 직접 설계하고 구현해보는 것이 중요하다는 깨달음을 얻었습니다. 이를 계기로 개발 공부를 시작했으며, 자연스럽게 개발에 매료되었습니다.

보안이라는 학문도 여전히 매력적이지만, 요구사항에 맞춰 무언가를 창조하고, 내가 원하는 프로그램을 직접 만들어낼 수 있다는 점에서 개발은 저에게 더 큰 흥미를 주었습니다. 창작과 문제 해결을 통해 세상에 가치를 더하는 개발이, 제가 진정으로 열정을 쏟을 수 있는 분야임을 느끼고 있습니다.

[나의 성격은?]

1. 책임감 있는 태도

저는 책임감이 강하다고 자신할 수 있습니다.
남에게 피해를 끼치는 것을 싫어하며, 맡은 역할에서 문제가 발생하지 않도록 최선을 다해 기한 내에 주어진 목표를 달성하려고 노력합니다. 실수가 발생했을 경우, 빠르게 인정하고 진심으로 사과하며, 반드시 해결책을 찾아 문제를 바로잡습니다.

2. 상대방을 배려하는 소통 능력

저는 상대방의 입장을 생각하며 소통하려고 노력합니다. 업무상 커뮤니케이션은 물론 일상생활에서도 이 점을 중요하게 여기며, 종종 "인사성이 바르다"는 칭찬을 듣습니다.
개발은 팀원과의 협업이 필수적인 분야이므로, 이러한 성격이 트러블을 줄이고, 더 나은 방법으로 문제를 해결하는 데 큰 도움이 된다고 자부합니다.
다만, 때로는 강단 있는 결정을 내려야 할 상황에서 부족함을 느낀 적이 있습니다. 앞으로 이 부분을 보완하여 유연하면서도 결단력 있는 사람으로 성장하고 싶습니다.

[개발과 관련된 경험?]

1. 주력 언어와 기술 스택

저는 Java를 주력 언어로 사용하며, Spring을 중심으로 지속적으로 공부하고 있습니다.
객체 지향 프로그래밍에 관심이 많아, 유지보수성이 높은 코드를 작성하기 위해 고민하고 개선해 나가고 있습니다.

2. 배포 경험

Docker를 활용해 NCPAWS EC2 환경에 애플리케이션을 배포한 경험이 있습니다.

3. 기술 스택 흡수와 적용

WebSocket, Spring Security, OAuth2.0, Redis, RabbitMQ 등 프로젝트에 필요한 스택을 빠르게 학습하고 적용한 경험이 있습니다. 저는 새로운 기술을 접할 때마다 스펀지처럼 흡수하고, 이를 실무에 반영해 왔습니다.

댓글