채용공고 올리기

최영우님을 응원해보세요!

지금 만족하고 있어요
성실함
협업 지향
유연함
기술적
열정적

미리보기

기본 정보

이름
최영우
직업
이메일
xxspdlqjxx@naver.com
간단 소개

안녕하세요! 끊임없이 질문하고 성장하는 개발자 최영우입니다. Java, Spring을 주로 사용하며 이 외에도 Python, JavaScript, React도 사용해 본 경험이 있습니다. 도메인에 대해 이해하고 객체지향적인 설계를 하는 것을 좋아합니다. 눈 앞에 있는 요구사항만 보지 않고, 항상 더 넓은 시야로 확장성을 고려하면서 개발하고자 노력합니다.

기술 스택

기술 스택

Java, Python, Spring, AWS, Spring Boot, MySQL, JPA, webflux, aws-rds, websocket

프로젝트

프로젝트명

Nomadic

소속/기관명

개인

프로젝트 기간

2023.10. ~ 진행 중

프로젝트 내용

Nomadic은 여행을 도와주는 서비스로, 숙소 예약, 여행지 추천, 계획 생성 등 여러 여행에 도움이 되는 기능을 제공합니다.

자주 사용하던 Triple이라는 서비스를 보고 이러한 서비스는 어떻게 만들 수 있고 더 나아가 어떻게 개선할 수 있을까에서 시작된 프로젝트입니다.


  • 좋아요 기능 성능 개선 - nGrinder를 사용한 성능 테스트,

    만약 ‘좋아요’ 이벤트와 같은 대용량 트래픽이 발생하거나,

    여러 번 ‘좋아요’를 의도적으로 반복적으로 눌렀을 때, 장애가 발생할 것으로 예상되어 진행한 성능 개선

    • 좋아요 로직이 실행될 때마다 DB 커넥션이 사용되어 DB 커넥션 부족 오류 발생 →

      DB 커넥션을 최대한 줄이기 위해 Bulk 연산 사용

      • 좋아요 성능 vuser 1000명 기준 TPS 2000 → 7000으로 향상

      • 좋아요 성능 vuser 1000명 기준 MTT 470 → 90으로 향상

    • Spring Actuator + Prometheus + Grafana를 사용한 모니터링

      • 성능 개선한 좋아요 기능의 CPU 사용량이 기능 중요도에 비해 너무 높아 Bucket4J 트래픽 처리율 제한을 통한 CPU 사용량 낮추기 40% → 10%

⠀⠀⠀⠀⠀https://youngs-java-study.tistory.com/28

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

  • 사용자 응답 값으로 Entity를 그대로 반환함으로 발생한 순환 참조 문제 → DTO 사용 해결

⠀⠀https://youngs-java-study.tistory.com/30

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

  • 숙소 전체 조회의 여러 가지 복잡한 검색 조건들에 대한 동적 퀴리 생성에 있어 Native Query를 사용하기엔 코드의 복잡성이 증가하고 유지 보수가 쉽지 않아 Querydsl 사용으로 변경하여 보다 더 효율적인 동적 쿼리 생성

  • 책임 주도 설계를 통한 객체 지향적인 도메인 설계를 통해 확장에 유연하고 유지보수가 쉬운 프로젝트 설계

  • Docker와 Jenkins를 이용한 자동 CI/CD 구현

  • No offset Pagination을 사용하여 전체 조회에 따른 리소스 감소

프로젝트명

Stock-simulation

소속/기관명

개인

프로젝트 기간

2024.03. ~ 2024.11.

프로젝트 내용

“지금은 돈이 없어서 주식은 못하지만, 만약 주식을 시작한다면, 나는 잘할까?”라는 의문에서 시작된 실제 주식 정보를 토대로 하는 모의 주식 투자 프로젝트입니다.


  • WebFlux를 사용하여 Reactive Programming 패러다임 적용, 주식 가격을 비동기적으로 실시간 변경

⠀⠀https://github.com/piedra-de-flor/stock-simulation/pull/17

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

  • FireBase RealTime DB를 사용하여 주식 가격을 실시간으로 제공함으로써 서버 부하 감소 및 빠르게 변동하는 실시간 주식 가격을 사용자가 빠르게 접근할 수 있게 됨으로써 UX 향상

    • (주식 30개 기준) 실시간 가격 조회 및 실시간 가격 업데이트

      CPU 사용량 13% → 3%

⠀⠀⠀https://youngs-java-study.tistory.com/34

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

  • 동시 매수 혹은 동시 매도 상황에서의 동시성 문제를 해결하기 위해, Pessimistic Lock을 사용한 동시성 문제 해결

⠀⠀https://youngs-java-study.tistory.com/33

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

  • WebSocket을 사용하여 KIS(한국투자증권) API를 통한 실시간 주식 정보 받아오기 및 클라이언트에게 실시간으로 정보 보여주기

  • 더 완벽한 객체지향을 구현하기 위해 OOP 구조 변경

⠀⠀ https://youngs-java-study.tistory.com/32

프로젝트명

Guardia

소속/기관명

경기대학교 심화캡스톤 디자인 (졸업작품)

프로젝트 기간

2024.03. ~ 2024.06.

프로젝트 내용

최근 실종 아동 혹은 실종 노인들의 수가 급격히 늘어나고, 이태원 참사와 같은 밀집 지역에 대한 주의가 필요하다고 판단되어, CCTV와 AI를 사용한 미아 방지와 인구 혼잡도 조회 서비스입니다.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀


  • 2명의 AI 개발자와 1명의 클라우드 개발자, 1명의 프론트 개발자, 2명의 백엔드 개발자로 구성된 팀에서 풀스택 개발를 담당했습니다.

  • RTSP를 사용한 CCTV 관련 Spring 서버, 데이터 처리를 위한 Spring 서버, AI model 실행을 위한 Flask 서버로 서비스의 분리를 통해 성능 향상 및 연쇄 장애 대처

  • 인구 혼잡도 통계를 위한 시간별, 일별, 주간별, 월별 데이터 계산 성능을 높이고자 Spring Batch 사용

  • CCTV를 IaaS를 통해 사용하도록 하기 위해 인프라 학습

  • 교내 캡스톤 디자인 금상 수상

교육

소속/기관명

경기대학교

종류 | 전공

대학교(학사) | 컴퓨터공학과

재학 기간 | 재학 상태

2020.03. ~ 2025.02. | 졸업

자격증

자격증명

정보처리기사

점수 | 발급기관

기사 | 한국산업인력공단

취득연월

2024.12.

댓글