매번 같은 형태의 데이터를 각 메뉴마다 지속적으로 사용한다면큰 부하는 아니지만 DB에 수시로 접근하여 조회를 해와야 한다. 여기서 복잡도가 올라가게 되고 조회해오는 항목들이 방대해지면 이제 점차적으로 DB에 부하를 야기하게 될 것이다. 그래서 반복 호출 되는 이러한 것들을 기존에 사용하고 있는 Redis 활용하여 cache 로 사용하고자 한다. 심플하게 한번 적용해보자Redis data 를 build.gradle 에 추가한다.implementation 'org.springframework.boot:spring-boot-starter-data-redis' application 프로퍼티에 redis 를 설정한다(필자는 기존에 redis session을 사용하고 있어서 되어있었다.)spr..
우리가 서비스를 구축해서 사용하다보면 업데이트, 버그픽스시 서비스를 순단하고 배포하고 오류수정 후 오픈하는 식의 과정을 가졌었다. 옛날에는 거의 사용자가 없는 시간대에 배포를 하곤 했었다는...ㅋ 요즘엔 AWS codedeploy 를 이용해서 blue/green 배포를 하거나아니면 도커 컨테이너를 새로 올려서 배포판으로 연결하거나 하는 여러 방식이 있다.각각의 서비스 구축 상태에 따라 여러 방식으로 blue/green 무중단 배포 시스템을 구성 할 수 있다. 과거했던 프로젝트들이 대부분 Jenkins - apache - tomcat 이런식으로 구성되어있고서비스 배포할때마다 1~5분 정도 순단되는 상황을 겪고 있다.(프로젝트 시작 당시에는 내부프로젝트니까 퇴근시간에 배포하지 뭐~ 이런 마인드 였나보..
서비스를 무중단으로 운영하려다 보니 서비스는 무중단으로 알게모르게 패치가 적용되었지만 로그인 한 사용자들은 세션정보가 이전 was에 남아있기 때문에 재로그인을 할 수 밖에 없는 상황에 빠지게 된다. 그래서 세션을 spring session + redis 를 이용하여 세션을 redis에 담아보려 한다. 먼저 redis를 도커를 이용해 설치해줍시다. docker run -d --name redis -p 6379:6379 -v redis:/data redis:6.2.11-alpine 위와 같이 redis 도커 이미지를 컨테이너에 구동시켰습니다. 그리고 redis-cli를 이용하여 비밀번호를 설정해줍니다. docker exec -it redis /bin/sh /data # redis-cli 127.0.0.1:6..