본문 바로가기

프로젝트23

쓰기지연 전략 쓰기 지연 전략 우리 프로젝트에서는 게시물이 "조회수"라는 필드를 갖고 있었다. 조회수는 게시물이 조회될 때마다 그 값이 1씩 증가한다. 초기에는 게시물이 조회 될 때마다 RDB에 해당 게시물의 조회수를 1 증가하는 Update 쿼리를 날려주는 방식을 사용하였다. ※ 조회수는 설계상 기본적으로 RDB에 저장되고 사용되었다. [조회수 증가_JPA] @Modifying(flushAutomatically = true) @Query("update Board b set b.views = b.views + 1 where b.id = :boardId") void updateViews(@Param("boardId") Long boardId); 실제로 위와 같은 메서드를 JPA로 만들고 게시물이 조회될 때마다 해당 메서.. 2023. 2. 13.
Reids를 사용한 Cache 전략 Redis를 사용한 Cache 전략 프로젝트 진행 중 개발을 하다 보니 자주 조회되지만 변하지 않는 값들이 보였다. 같은 값인데 조회될 때마다 RDB를 거쳐야 하는 것은 확실히 비효율적이다. 따라서 이런 값들을 캐싱해서 조회 시 RDB를 거치지 않게 하고 효율성을 높여보려고 하였다. Spring에서는 메서드에 캐시를 적용할 수 있는 인터페이스를 제공하고 있으며, 이 프로젝트에서는 구현체로 Redis를 사용하였다. Redis는 인메모리 기반의 비관계형 데이터베이스로 물리적인 디스크가 아닌 메모리에서 데이터를 처리하기 때문에 속도가 매우 빠르다. 이번 프로젝트에서는 설치가 간단하고, Spring에서도 손쉽게 사용할 수 있는 Redis를 선택하였다. 1. Redis 설치 & 사용법 [Ubuntu] sudo a.. 2023. 2. 6.
[설정] 초기 개발환경 구성 초기 개발환경 구성 프로젝트를 몇 번 진행하다보니, 초반 설정에 공통되는 부분이 많다고 생각했다. 프로젝트가 Spring Boot라는 동일한 프레임워크 내에서 개발을 하는 것이기 때문에, 당연히 각 프로젝트의 초기 세팅의 큰 틀은 거의 비슷할 수 밖에없다. 테스트, 보안,예외처리, 그리고 프로젝트 내에서 사용될 각종 부가적인 세팅까지 프로젝트마다 세세한 내용은 달라지겠지만, 방향이 크게 다르지 않다면 분명히 반복되는 부분이 존재한다. 그래서 나는 이런 반복되는 초기 설정들을 구성해서 하나의 프로젝트로 만들어놓았다. [GitHub: Init_Spring_Project] [Init_Project_Spring 구조] Init_Spring_Project라는 프로젝트에 프로젝트 시작시 반복적으로 세팅해주어야 하는.. 2023. 1. 20.
Tripagram 회고 Tripagram 회고 11월에 여행 정보 공유를 주제로 한 서비스를 개발하기 위해 팀 단위 프로젝트를 진행하였다. 프로젝트는 11월 8일부터 12월 7일까지 약 한 달 동안 진행되었다. 여기서는 해당 프로젝트를 진행하면서 느낀 점이나 경험한 것들을 기록하려고 한다. 1. 내가 뽑은 내 팀원 이번 프로젝트는 랜덤으로 팀이 정해질 수도 있었지만 내가 직접 팀원을 고를 수 있었다. 나는 랜덤으로 팀이 정해지는 것보다 내가 주도적으로 팀원을 선택하고 싶어서 직접 팀원을 선택하기로 했다. 직접 팀원을 고르려고 하니 내가 직접 팀원을 고를 때만 보이는 것이나 느낄 수 있었던 것들이 있었다. 팀원을 직접 선택하려고 하니 많은 사람들이 후보군으로 내 머릿속에 올라왔다. 각자 다 장점이 있었고 이 중에서 한 명을 뽑는.. 2023. 1. 2.