회고모음

6월 4주차 회고

악분 2022. 6. 26. 22:18
반응형

1. 회사업무

1.1 리팩토링 롤백

파이썬 프로젝트에서 새로운 요구사항을 추가하기 위해 리팩토링을 했습니다. 기존 구조에서 새로운 기능을 추가하려면 고칠 부위가 많아서 공통적인 기능을 모으는게 좋다고 생각했습니다.

 

리팩토링을 하고 새로운 기능을 추가하고 테스트코드를 추가했지만, 팀 인원이 개발에 투자할 시간이 없기 때문에... 롤백을 하고 똑같은 코드를 여러곳에 추가했습니다. 개발팀이 아니고 설계된 내용을 코드로 옮기는 팀이므로 개발적인 리팩토링은 과감히 버린 것 같습니다.

 

1.2 loki 아키텍처 분석

공식문서: https://grafana.com/docs/loki/latest/fundamentals/architecture/#read-path

[챕터 1.1]에 개발한 내용은 loki API문서를 한번 더 추상화 시킨 API이었습니다. API개발중에 발견한 것은 loki는 짧은시간에 많은 읽기쿼리 요청이 오면 장애가 발생할 수 있습니다.

loki 아키텍처는 역할에 따라 컴퍼넌트가 분리되어 있는데, querier 컴퍼넌트가 사용자가 요청한 쿼리를 실행합니다. 캐시에 데이터가 없으면 직접 쿼리를 실행합니다. 현재 loki에는 페이징기능이 없기 때문에, 쿼리 실행결과가 많으면 querier컴퍼넌트가 죽습니다.

 

2. 업무이외

2.1 TDD공부

테스트코드를 작성하기 위해 TDD를 공부했습니다. 처음에는 단순히 테스트코드만 작성하려고 했으나, "테스트코드는 코드를 평가하는게 아니라 설계를 평가하는 것"이라는 글귀를 읽고 TDD를 공부하기로 했습니다.

 

설계를 한 후, 테스트코드를 작성하면서 필요한 기능을 개발했습니다. TDD를 진행하니 오히려 개발속도가 빨라지고 개발코드 품질이 높아진 느낌이 들었습니다. 

첫 TDD commit 링크: https://github.com/srmproject/Backend-python/commit/7784e8a9b48068abbda830ab4ffce97a9a709495

 

2.2 쿠버네티스 job생성 모듈 추가

프로젝트에서 job생성 모듈을 추가했습니다. 파이썬 SDK를 이용하여 개발을 진행하고 있는데 쿠버네티스를 더 깊게 이해할 수 있는 시간이었습니다. yaml파일에서 무의식적으로 설정했던 필드값을 파이썬 SDK에서는 객체로 설정되어 있어서 편하게 개발을 진행할 수 있었습니다.

 

2.3 CI/CD 파이프라인에 테스트코드 자동화 프로토타입 작성

테스트코드 실행결과와 커버리지 보고서를 시각화 하는 방법을 고민했습니다. 이번주는 커버리지 보고서를 sonarqube와 연동할 수 있는 것을 알았습니다. 그리고, 바로 연동을 시도했더니 성공적으로 시각화가 되었습니다. 남은건 실행결과와 sonarqube 권한관리를 자료조사 해야할 것 같습니다.

 

반응형