Cache란 자주 사용하는 데이터를 미리 저장해놓고 다시 이 데이터를 필요로 할 때마다 빠르게 참조하여 읽기 기능을 개선하는 기술이다. 현재 진행 중인 프로젝트에서 성능 개선을 위해 캐시를 도입하였고, Redis를 사용하기로 했다. 거의 모든 API 요청에서 회원을 조회하는 쿼리가 나갔고 이를 캐싱처리하기 위해 위와 같이 구상하였다. 최초 로그인 시 redis에 값을 넣어주고 추후에 loadByUsername 호출될 때 redis 에서 값을 먼저 찾을 수 있도록 코드를 수정하였다. Redis 설정 build.gradle implementation 'org.springframework.boot:spring-boot-starter-data-redis' RedisConfig @Configuration @Ena..
Git Flow 개념 git flow 전략이란 여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work-flow다. 브랜치 생성에 규칙을 만들어서 협업을 유연하게 하는 방법론을 말한다. 브랜치 종류 master : 기준이 되는 브랜치로 제품을 배포하는 브랜치 | 실제 운영 환경 develop : 개발 브랜치로 개발자들이 이 브랜치를 기준으로 각자 작업한 기능들을 Merge feature : 단위 기능을 개발하는 브랜치로 기능 개발이 완료되면 develop 브랜치에 Merge release : 배포를 위해 master 브랜치로 보내기 전에 먼저 QA(품질검사)를 하기위한 브랜치 hotfix : master 브랜치로 배포를 했는데 버그가 생겼을 떄 긴급 수정하는 브랜치 gi..
작년에 10월에 처음 aws에 서버 배포를 시도했었다. 해커톤을 진행하다 개발을 끝내고 배포를 시도했던건데 아무런 지식도 없이 맨땅에 해딩하다보니 수없이 삽질을 했다. jpa + mysql을 사용한 프로젝트였지만 rds 세팅도 하지 않고 elastic beanstalk으로 배포하려 했었다. 아무튼 1년이 지난 지금 여전히 aws는 어렵다. 이번에 github action ci/cd 파이프라인을 구축했던 과정을 남겨두려한다. 인스턴스 생성 인스턴스 생성은 우분투로 하였고 따라할 다른 블로그도 너무 많으니 생략 태그 값 설정 지금 설정하는 태그는 뒤에서 codedeploy를 사용하기 위함이다 인바운드 규칙 편집 인바운드 규칙은 본인의 프로젝트에 맞게 열면 된다. 필자는 아래와 같이 열어주었다. ssh 접속을..