분류 전체보기 719

SRE 백엔드 pytest DB연동 - 작성중

pytest로 테스트 코드를 작성하던 중 DB연동 과정을 소개합니다. Mock테스트 지양 많은 테스트코드 또는 TDD 책에서 외부와 연결관계 있는 것은 Mock으로 대체할 수도 있다고 설명합니다. 처음에 Mock을 봤을 때는 유레카였는데... 몇주가 지나다보니 Mock을 쓰는건 정말 대안이 없을 때 써야겠다고 생각했습니다. Mock으로 DB테스트를 하면 테스트 코드를 쉽게 초록불로 표시할 수 있지만, 오히려 테스트하고자 하는 기능을 제대로 테스트를 못할 것 같다고 생각했습니다. 그래서 pytest로 DB연동하는 방법을 찾기 시작했습니다. DB관리는 어떻게? 가장 쉬운 방법은 테스트용 DB를 별도로 관리하는 것입니다. 테스트 코드를 실행하기 전에 DB를 구축하고 테스트가 끝난 후에 DB를 삭제하는 방법입니..

SRE 백엔드 레이어

약 2~3주동안 고민하면서 계속 변경되는 백엔드 레이어를 잠깐 정리하고자 합니다. 현재 일하는 직군이 백엔드 개발자가 아니여서 내용이 부족할 수 있습니다. 레이어 구조 현재 백엔드는 FastAPI로 개발하고 있습니다. FastAPI는 springboot, Django와 다르게 레이어 구조가 정해진게 없습니다. 자유롭게 레이어구조를 사용할 수 있습니다. 그러다보니, 저처럼 백엔드 개발자가 아닌 사람은 적응하기 어렵습니다. boiler template을 여러개 살펴보고 결정한 레이어는 controller, service 레이어로 결정했습니다. 단순히, 외부 요청과 응답을 처리하는 레이어와 내부로직을 처리 레이어로 분리했습니다. 가장 큰 고민이며 아직도 해결못한 문제. 예외처리를 어떻게 할 것인가? 예외처리를..

git commit 취소

git commit취소는 head포인터를 이전 commit로 이동하고 현재 commit을 삭제합니다. 되돌릴 때 working directory를 보존할지 삭제할지 옵션이 있습니다. 1. working directory 삭제 이전 commit으로 되돌리고 working directory까지 비웁니다. git reset --soft HEAD^ 2. working directory 보존 이전 commit으로 되돌리고 working directory를 보존합니다. git reset --mixed HEAD^ 참고자료 * git 공식문서: https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%..

Loki API를 사용하면서 불편한점!

쿠버네티스 파드 로그 저장소를 보통 엘라스틱서치를 많이 사용하는 편입니다. 하지만, 다루기 어렵고 높은 사양을 요구해서 가볍게 사용하는 환경에서는 Loki를 대체로 사용합니다. 불편한 점 첫번째 - 그라파나 제한된 기능 Loki의 Loki대시보드를 그라파나로 사용할 경우 권한분리 기능이 유로입니다. Edit권한이 있는 계정이 있어야 그라파나에서 파드 로그를 볼 수 있습니다. 불편한 점 두번째 - Loki API 제가 참여한 팀은 그라파나 유료기능을 사용하지 않아 자체 API기능을 만들기로 했고 그 개발을 제가 일부 맡았습니다. Loki API로 순탄하게 진행될거라 생각했지만!!! Loki API응답에서 400 또는 500에러가 가끔씩 발생했습니다. 열심히 디버깅을 해보니 놀랍게도... retention설..

회고모음 2022.06.28

6월 4주차 회고

1. 회사업무 1.1 리팩토링 롤백 파이썬 프로젝트에서 새로운 요구사항을 추가하기 위해 리팩토링을 했습니다. 기존 구조에서 새로운 기능을 추가하려면 고칠 부위가 많아서 공통적인 기능을 모으는게 좋다고 생각했습니다. 리팩토링을 하고 새로운 기능을 추가하고 테스트코드를 추가했지만, 팀 인원이 개발에 투자할 시간이 없기 때문에... 롤백을 하고 똑같은 코드를 여러곳에 추가했습니다. 개발팀이 아니고 설계된 내용을 코드로 옮기는 팀이므로 개발적인 리팩토링은 과감히 버린 것 같습니다. 1.2 loki 아키텍처 분석 공식문서: https://grafana.com/docs/loki/latest/fundamentals/architecture/#read-path [챕터 1.1]에 개발한 내용은 loki API문서를 한번 ..

회고모음 2022.06.26