미리보기
기본 정보
안녕하세요 '함께' 성장할 줄 아는 개발자 최승준입니다 👋🏻
기술 스택
Spring Boot, Java, AWS, MySQL, Redis, Querydsl, Spring Data JPA, Spring, Swagger, Slack, Notion, GitHub, Discord, Kotlin, RestDocs
프로젝트
땅콩 : 가벼운 주제로 친구들과 즐기는 단체 대화주제 제공 서비스
우아한테크코스 6기
2024.07. ~ 진행 중
[주요 기여 내용]
• SpringBoot 3/Java 17 기반 HTTP API 서버 개발
• 방 입장 로직에서 발생하는 따닥 문제에 비관적 락/배타적 락을 적용하여 방 제한 인원보다 많은 인원이 방에 입장할 수 있던 동시성 문제 해결
• 삭제 파일 임시 저장소 구축을 통해 'rm' 명령으로 인한 데이터 영구 삭제 방어 및 7일이 지난 임시 저장소 데이터 처리 자동화 시스템 구축을 통해 디스크 자원 누수 방지
• Single AZ였던 API 서버와 DB 서버를 Multi AZ 배포하여 HA(High Availability) 환경 구축 및 SPOF(Single Point Of Failure) 문제 방지
• SNS, CloudWatch를 활용하여 ELB TargetGroup HealthCheck 실패 경보 전달 시스템 구축을 통해 신속한 디버깅 환경 구축
• Polling 방식을 통한 실시간성 보장으로 다수의 유저들이 함께 즐길 수 있는 서비스 환경 구축
• Spring AOP, Logback를 통해 로깅 시스템을 구축하여 디스크 용량 누수 방지 및 개발 환경(dev)과 운영 환경(prod) 간의 로깅 정책 분리
• 협업툴 Discord를 통해 API 문서 변경 사항 알림 및 Github 활동 추적 기능을 설정하여 개발 생산성 향상
• CloudWatch Agent를 통해 Application 로그 모니터링 환경을 구축하여 비업무 시간의 디버깅 효율 향상
라이온하트(LionHeart) : 예비 아빠들을 위한 하루 10분 육아 아티클 서비스
대학생 IT 벤처창업 동아리 SOPT 장기해커톤
2023.07. ~ 2023.08.
[주요 기여 내용]
• SpringBoot 2/Java 11 기반 HTTP API 서버 개발
• RedisDB RTR 방식 도입을 통해 JWT Token Refresh 속도 개선 (56ms → 5ms)
• 멀티모듈 아키텍처 적용을 통해 API 서버와 Notification 서버가 공통으로 사용하는 로직을 하나의 모듈에서 관리함으로써 중복 코드 제거 및 코드 유지보수성 향상
• 블루그린 무중단 CI/CD 구축을 통한 다운타임 제거
• 서비스의 주요 기능인 '매일 아침 8시 사용자에게 아티클 전달' 을 보장하기 위해 NACK/ACK 방식을 지원하는 AWS SQS 메시지큐를 추가 및 이를 통해 메시지 전송 실패시 큐에서 삭제하지 않고 재전송하는 at-least-once 전달 구조 구축
• 협업툴 Slack을 사용하여 5xx 에러 알림 기능 구현을 통한 에러 처리 속도 향상 및 개발 생산성 향상
포트폴리오
교육
우아한테크코스 6기
사설 교육 | 백엔드
2024.02. ~ 현재 | 재학 중
동양미래대학교
대학교(전문학사) | 컴퓨터소프트웨어공학
2019.03. ~ 2024.02. | 졸업
자기소개
"다수의 팀 프로젝트 및 협업 경험을 통해 팀의 가치를 알고 있습니다."
팀 단위로 함께 고민하고 협력하여 짧은 시간내에 실사용 가능한 애플리케이션을 구현해본 경험이 있습니다.
혼자였다면 불가능했을 일정과 체계적인 설계를 팀원들과 '함께' 고민하고 이루어낸 경험을 토대로 팀의 소중함을 이해하게 되었습니다.
"좋은 팀 문화를 만들어가는 것에 관심이 많습니다."
특히 우아한테크코스의 프로젝트 팀에서 좋은 팀을 만들기 위해 먼저 나서서 공유 문화와 회고 문화를 활성화시킨 경험이 있습니다.
공유를 통해 다른 팀원이 담당한 부분에 대한 작업 이해도를 향상시켰으며, 팀문화에 대한 KPT 회고 주도를 통해 점진적으로 성장해나가는 팀을 만들 수 있었습니다.
"개발 생산성 개선에 관심이 많습니다."
반복 작업을 자동화하거나 작업에 필요한 소요 시간을 단축하는 등 더 빠르고, 편리하게 만들어 개발에만 집중할 수 있는 환경을 구축하기 위해 노력합니다.
프로젝트에서 90일 주기로 TLS 인증서를 갱신해야하는 Let's Encrypt CA를 이용하는 과정에서 개발자의 착오로 인증서를 갱신하지 못해 서버 연결이 끊기는 경우에 대한 고민이 있었습니다. 해당 문제에 대해 certbot을 사용해 인증서 만료 1일 전 Down time 없이 인증서를 자동 교체하는 스크립트 작성과 스케쥴링 작업 설정을 수행하여 문제에 해결책을 제시해본 경험이 있습니다.