티스토리 뷰

개발 일지/WIL

11주차

장진혁 2023. 4. 23. 22:45

https://jjinhyeok.tistory.com/74

 

프로젝트 Redis 캐시 적용하기

지난번에 Redis를 설치하고 테스트를 해보았다. 이제 실전 프로젝트에 적용을 해보겠다. 현재 프로젝트 html 보면 JSON으로 데이터를 주고 받고 하고 있기 때문에 JSON을 써야한다. 그래서 Redis 설정

jjinhyeok.tistory.com

이번주는 Redis캐시를 확실하게 적용했고
@Cacheable 캐시를 장애상황일때 대응을 못해서
개선을 했습니다.


@Bean
  public RedisConnectionFactory redisConnectionFactory() {
    LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
        .commandTimeout(Duration.ofMillis(500)) // 타임아웃 설정
        .build();

    RedisStandaloneConfiguration serverConfig = new RedisStandaloneConfiguration(host, port);

    return new LettuceConnectionFactory(serverConfig, clientConfig);
  }
// 상세 페이지 조회
  @Transactional(readOnly = true)
  public DetailEventResponseDto getDetailEvent(Long eventId) {
    String cacheKey = "DetailEventResponseDto::" + eventId;
    DetailEventResponseDto detailEventResponseDto = null;

    try {
      detailEventResponseDto = redisTemplate.opsForValue().get(cacheKey);
      if (detailEventResponseDto == null) {
        detailEventResponseDto = getEventInfo(eventId);
        redisTemplate.opsForValue().set(cacheKey, detailEventResponseDto, Duration.ofHours(1));
      }
    } catch (Exception e) {
      detailEventResponseDto = getEventInfo(eventId);
    }

    return detailEventResponseDto;
  }

  // 공연상세정보 조회 메서드
  private DetailEventResponseDto getEventInfo(Long eventId) {
    return eventRepository.findById(eventId).map(DetailEventResponseDto::new)
        .orElseThrow(() -> new CustomException(ExceptionType.NOT_FOUND_EVENT_EXCEPTION));
  }
Redis서버가 장애 상태일때 타임아웃 시간을 조절해서
바로 DB를 불러올수 있게 개선을 하였으며
최종적으로 조회, 예매하기 부분에서 응답속도와 장애에 대한 대비를 했습니다.

https://jjinhyeok.tistory.com/82

 

application.yaml 로 전환하기

개발환경과 배포환경이 다르다 보니 필요한 정보들이 서로서로 다르다. 그리고 아직 CICD를 진행하지 않아서 수동으로 배포를 하는 상황이다 보니 개발환경과 배포환경이 통일이 되어있지 않다.

jjinhyeok.tistory.com

그리고 개발환경과 배포환경을 계속 수동으로 변경해서 진해을 했는데
프로젝트 규모가 커질수록 수동으로 해주어야 하는게 많아지다 보니
상황에 맞는 프로파일을 준비해서 진행하고 있습니다.

이번주에는 캐시적용으로 눈에 보일만큼의 개선이 이루어졌고
프로젝트에서 사용한 기술은 확실하게 알고가자는 신념으로 진행하면
나중에 취업할때 많은 도움이 될 것이라고 생각됩니다.

다음주는 로드밸런싱을 이용해서 트래픽을 분산시켜서
TPS를 높이는 작업을 하려고 준비중 입니다.

'개발 일지 > WIL' 카테고리의 다른 글

12주차  (0) 2023.05.03
10주차  (0) 2023.04.16
9주차  (0) 2023.04.09
8주차  (0) 2023.04.02
7주차  (0) 2023.03.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함