[협업프로젝트] Spring Data Elastic Search 설정 및 구현 회고 (2)
·
회고
서론 기존 프로젝트에서 검색 엔진을 ELK 스택(Elasticsearch, Logstash, Kibana )으로 전환하고프로젝트의 요구사항 중 하나였던 실시간 검색어 기능 구현을 완료하면서,이전에 작성했던 글에서 다룬 초기 설계 및 설정 과정을 기반으로 아키텍처가 어떻게 개선되었는지 정리하고자 한다. 초기 설계 단계에서 검색 기록 관리와 실시간 인기 검색어 제공을 목표로 설정했고,이에 따라 기존 MySQL 기반의 스택은검색 시스템을 ELK(Elasticsearch, Logstash, Kibana) 스택으로 전환하며 얻을 수 있는 성능 향상 및 확장성을 확인했다.이번 구현에서는 Spring Boot와 Nginx, Docker, 그리고 Filebeat 및 Logstash를 연동하여실시간 검색어를 10위까지 ..
[협업프로젝트] Spring Data Elastic Search 설정 및 구현 회고 (1)
·
Project/협업프로젝트
서론협업 프로젝트를 진행하면서 검색 기능을 구현하는 단계에 들어섰다. 내가 초기 설계 단계에서 설정했던 대로 사용자의 편의성을 높이기 위해 검색 기능과 사용자별 검색 기록을 볼 수 있는 기능을 제공하기로 했으며, 초기 Figma UI를 구현하여 검색 관련 API를 설계 및 구현했다. 초기에는 DB의 LIKE 기능을 이용해 '%키워드%'로 검색하고 사용자별 검색 기록을 저장해 관리하는 방식으로 충분하다고 생각했다. 하지만 추가 요구사항으로 실시간 검색어 및 일일 가장 인기 있는 장소 순위(검색어) 구현이 언급되면서 상황이 달라졌다. 추가 요구사항을 고려해보니, 처음에 계획했던 MySQL의 LIKE 기능을 이용한 '%키워드%' 검색 방식으로는 한계가 있었다. LIKE는 전체 데이터를 시간대별로 조회하는 풀..
[협업프로젝트] SwaggerUI + Spring RestDocs 로 API 문서화하기
·
Project/협업프로젝트
SwaggerUI VS Spring REST Docs 팀 프로젝트 스택 결정 시 API 문서화를 도와주는 프레임워크에 Spring Rest Docs와 Swagger가 언급되었고, 두 가지 스택 중 한 스택을 결정하기로 하였다. 다음은 어떤 스택을 사용할지에 대해 서로 공부해서 소통하기로 한 결과를 표로 정리한 내용이다. 주요 특징 Spring Rest Docs Swagger 주 용 도 테스트 기반 API 문서화 API 스펙 정의 및 시각적 문서화 문서화 방식 테스트 케이스를 사용하여 API를 호출하고 문서화 API 스펙을 정의하고 자동으로 시각적 문서를 생성 테스트 기반 문서화 예 (JUnit, REST Assured, MockMvc 등을 사용) 아니요 문서 형식 다양한 형식을 지원 (HTML, Asci..
[JPA] QueryDSL을 RepositoryImpl로 관리해보자.
·
Back-End/Spring
서론 JPA와 MyBatis의 자바 ORM을 모두 경험한 결과, MyBatis는 SQL 쿼리에 더 직접적인 접근을 가지고 JPA는 객체지향적인 접근을 가지고 있어서 정적 쿼리를 다루는 것은 JPA가 비교적 간단하고 직관적이지만 동적 쿼리를 다루는 것은, JPA가 상대적으로 어려움(엔티티와 속성의 제약)이 있다. JPA의 장점을 더 살리기 위해 쿼리를 분리화 해서 유지 관리하기 쉬운 방법을 모색했고, RepositoryImpl 클래스 내부에서 QueryDSL을 사용하여 쿼리를 생성하고 실행하는 방식을 찾았다. 이번 포스팅은 그 방식을 spring 코드 예시로 설명하며 정리해보려고 한다. Repository에서 QueryDSL 사용하기 public interface OrderRepository extends..
[MVC-2편] 오류 코드와 메시지 처리
·
Back-End/Spring
해당 포스팅은 인프런스프링 MVC2편 강의를 듣고 적은 강의 노트를 정리하며 기록하기 위한 글입니다. 강의를 시청하며, 프로젝트에 적용할 수 있는 부분들이나 궁금한 기능들을 정리하며 포스팅할 예정입니다. 제 개인적인 의견이 더해져 올바르지 않은 정보가 들어가 있다면, 피드백이나 댓글로 남겨주시면 감사하겠습니다. 자세한 강의 내용은 인프런 스프링 MVC에서 만나보실 수 있습니다. 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 목표 오류 메시지를 체계적으로 ..