전체 글

전체 글

    Spring Boot에서 Redis로 세션 클러스터링 구축

    전체 소스에 대한 깃헙 링크는 여기에 있습니다. Session을 저장하면 일반적으로 서버 메모리에 저장됩니다. 이런 경우 서버 이중화 시에 서버마다 서로 다른 세션을 사용하므로 세션을 클러스터링(군집화)해서 하나로 묶어줘야 합니다. Session 값을 DB에 저장해서 세션 클러스터링을 구축할 수도 있지만 DB에 저장하면 그렇게 되면 매번 하드디스크에 접근하게 되는 것이라 디스크 I/O가 지속적으로 일어나 속도가 느리다는 단점이 있습니다. WAS 기능을 이용한 세션 클러스터링 기능을 이용할 수도 있지만 이렇게 하는 경우 서버의 스케일이 커질 때 관리가 어려워집니다. 하지만 인메모리 DB인 Redis를 이용해서 세션 클러스터링을 해준다면 위의 단점들을 극복할 수 있습니다. JWT를 이용한다면 세션을 이용하지..

    Windows에 Redis 설치하기

    아래에서 윈도우 Redis 설치 파일을 다운받아 설치한다. Releases · microsoftarchive/redis Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redis github.com 아래와 같은 경로에 설치가 되면 redis-server.exe를 실행하면 redis-server가 실행된다. redis.windows-service.conf를 열어서(redis.windows.conf파일 아님) 비밀번..

    스프링부트 + Github + Jenkins + Docker / CI & CD 연습하기 (2)

    환경 Ubuntu 20.04 Server 순서 스프링부트 프로젝트를 Github에 Commit Github의 Webhook 기능을 이용해 Jenkins에 자동으로 trigger 유발 trigger된 Jenkins에서 Github Clone후 Dockerfile을 통해 Docker Image 생성 Docker Image를 Docker Hub에 Push SSH Agent를 통해 원격 서버에서 Docker Image를 Pull 한 후 Run으로 실행 이전 글에서 설명했던 부분은 전부 넘어가도록 하겠습니다. 아래 내용은 프로젝트를 Docker Image를 만드는 데서부터 시작합니다. 왜 jar로 하면 될 일을 굳이 Docker를 쓸까요? Docker를 이용하면 어떤 운영체제든지 쉽게 컨테이너 실행이 가능하며 가..

    스프링부트 + Github + Jenkins / CI & CD 연습하기 (1)

    환경 Ubuntu 20.04 Server 순서 스프링부트 프로젝트를 Github에 Commit Github의 Webhook 기능을 이용해 Jenkins에 자동으로 trigger 유발 trigger된 Jenkins에서 Github Clone후 Build를 통해 jar파일 생성 jar파일을 Publish Over SSH를 이용해 다중 서버로 배포 후 배포 전체적인 흐름을 설명하기 위한 글이며 각각의 흐름 중 모르는게 있다면 따로 찾아보시길 추천합니다. 반대로 흐름을 까먹으셨다면 다시 이 글로 돌아와서 어느 부분을 연동시켜야 되는지 찾으시길 추천합니다. Jenkins에서 Github 연동 GitHub - stir084/JenkinsStudy Contribute to stir084/JenkinsStudy dev..