성능2 JOIN으로 성능 개선하기 🗣️ 배경해당 주제는 현재 진행하고 있는 프로젝트에 새로운 feature를 도입하다 맞이한 문제이다. 우리 프로젝트 팀원들은 기존 구글 폼지를 사용하여 맞이했던 여러 가지 문제점들을 해결하기 위해 웹사이트 내에서 직접 사용자가 작성할 수 있는 폼지 서비스를 제공하고자 하였다.폼지 서비스 중 폼지 답변에 대한 통계를 조회하는 기능이 있었다. 해당 기능에서 고민하지 않고 생각나는 대로 그대로 개발한 무능한 코드를 볼 수 있었다. 우리는 Form테이블과 1 : N 관계를 맺고 있는 FormField 테이블을 생성하였는데, 아래는 FormField의 DDL문이다. 아래는 FormField와 1: N 관계를 맺고 있는 FormAnswer 테이블의 DDL 문이다. 🤫 문제 상황아래의 사진은 폼지 통계를 조회하는.. 2025. 2. 16. Enum 조회 성능 향상하기(feat. Map) 🥲 문제 상황현재 진행하고 있는 프로젝트에서 업로드된 파일의 MIME Type을 활용하여 “IMAGE”, “FILE”, “VIDEO”로 구분할 수 있도록 아래와 같이 Enum을 활용하였다.현재는 총 23개의 Type을 생성해 놨지만, 추후 더 추가될 가능성도 있다. 내가 원하고자 하는 바는 인자(Argument)로 mimeType을 입력하면, 해당 콘텐츠 타입의 keyMediaType(”IMAGE”, “FILE”, “VIDEO” 중 하나)를 반환하는 것이다.아래의 그림에 구현된 코드를 보면 기존에 나는 Arrays.stream() 을 활용하여 Enum의 모든 요소를 순회하면서 조건에 맞는 요소를 찾는 방식이었다. 위 방법의 시간복잡도는 O(n)이다. 현재 내가 작성한 요소의 개수가 23개라면, 최악의 .. 2025. 1. 21. 이전 1 다음