2021년 08월 19일 TIL

less than 1 minute read

프로젝트 마무리날이 20일이라 오늘은 전반적으로 산출물을 만드는 과정이 있었다. 항상 이슈는 시간이 급한 과정에서 발생하는 듯하다.

여러가지 이슈가 있었는데, 먼저 첫번째 이슈는 캐시문제였다.

클라이언트에서 사이즈를 5로 지정하고 컬럼을 가져오는데 자꾸 0번 페이지를 10개를 가져오는 문제가 있었다.

시간에 쫓기는 상황에서 이런 문제가 생겨서 굉장히 마음이 급했지만, 팀원들과 함께 이러저러한 변수들을 제거하며 원인을 찾아보니

프로그램 구조상 클라이언트에서 가져오는 페이지의 사이즈가 정해져있었기때문에, 해싱의 키값을 SeachDto의 HashCode값과 pageable의 PageNumber 값을 더한 것으로 잡아두었었다.

그 이후 테스트를 위해 PostMan에서 사이즈 10으로 0번 페이지를 호출하고, 자연스럽게 그 데이터가 캐싱되어 그것을 계속 돌려주고 있는 것이었다.

Redis 캐시 서버를 초기화하고 다시 확인해보니 정상 동작하였다.

두 번째 이슈로는 AWS Access key 문제였다. 현재 우리의 프로젝트의 CI CD 구조가

  1. Jenkins가 push 이벤트를 감지하여 빌드 & 도커 이미지 생성
  2. 도커 이미지 도커 허브에 업로드
  3. yaml 파일로 github repo에 업로드
  4. yaml을 argo CD가 읽고 쿠버네티스에 전달
  5. 쿠버네티스에 배포

의 순서인데, github repo가 public으로 되어있었고, 이 자동 배포의 과정에서 Access key과 노출되었다고 aws에서 전화가 왔었다.

미국 AWS 본사에서 전화도 받아본 것은 처음이라 팀원들 모두 정말 놀란 경험이었다.

업로드 구조에 문제가 있다는 판단에 전반적인 구조 자체를 수정하고, s3키를 재발급받는 것으로 해결했다. 지나고나니 별일 아닌듯하지만,

시간에 쫓기면서 저런 일들이 계속 발생하니 조금은 힘들었지만, 그래도 많이 배운 하루였다.

Categories:

Updated: