팀 생성 기능의 트러블 슈팅

금은체리·2024년 6월 7일
0

프로젝트에서 팀 생성 기능을 구현하는 과정에서, 사용자가 팀을 생성할 때 여러 예외 상황이 발생하였습니다. 주요 문제로는 데이터베이스 연동 오류, 유효하지 않은 입력 처리, 그리고 동시성 문제가 있었습니다.

진단 과정

  1. 데이터베이스 연동 오류

    • 문제: 팀 정보를 데이터베이스에 저장할 때 ConstraintViolationException이 발생하였습니다.
    • 원인: 팀 이름에 대한 유니크 제약 조건이 설정되어 있었으나, 동일한 팀 이름으로 여러 요청이 들어올 경우 이를 사전에 필터링하지 못했습니다.
    • 해결: 서비스 레이어에서 팀 이름의 중복 검사 로직을 추가하여, 이미 존재하는 이름인 경우 CustomException을 발생시키도록 처리했습니다.
  2. 유효하지 않은 입력 처리

    • 문제: 사용자로부터 입력 받은 데이터 중 일부가 유효하지 않은 경우가 간헐적으로 발생했습니다.
    • 원인: 프론트엔드에서의 입력 검증 부재와 백엔드에서의 예외 처리 미흡이 원인으로 파악되었습니다.
    • 해결: @Valid 어노테이션을 사용하여 입력 데이터의 검증을 강화하고, 프론트엔드에서도 입력 검증 로직을 추가하여 두 번의 검증 과정을 거치도록 구현했습니다.
  3. 동시성 문제

    • 문제: 고도의 동시 요청 상황에서 동일한 사용자가 여러 팀을 생성하는 문제가 발견되었습니다.
    • 원인: 트랜잭션 관리가 적절히 이루어지지 않아 발생한 문제로 추정되었습니다.
    • 해결: 서비스 메소드에 @Transactional 어노테이션을 적용하여 메소드 전체를 하나의 트랜잭션으로 관리하도록 설정하고, 필요한 경우에는 트랜잭션 격리 수준을 조정하여 문제를 해결했습니다.

결과 및 효과

위와 같은 트러블 슈팅을 통해 팀 생성 기능의 안정성을 높일 수 있었습니다. 데이터베이스 연동 오류와 유효하지 않은 입력 처리의 개선으로 데이터 무결성을 확보했으며, 동시성 문제 해결로 서비스의 신뢰성을 강화했습니다

profile
전 체리 알러지가 있어요!

0개의 댓글