0.
정말 오랜만의 블로그 포스팅
한동안 새 글이 없었음에도 일일 방문자가 꽤 많아 기분이 좋았다.
1. 근래에는 Django REST framework를 이용한 API 서버 개발을 공부하고 있다.
코드: https://github.com/dpcalfola/study_django_rest_framework
2. 구조
* 코드는 TDD(Test Driven Development)에 입각하여 작성
* Docker-compose를 사용하여 모든 컨테이너를 통합, 제어하여 빌드
* CI(Continus Integration) 구현
- Github Action을 통해 매 git push 때마다 빌드, Test Code, Lint 등을 체크
3. 문제 해결 일화 - env 숨김 파일을 Github Action에 적용하기
DRF 코드 작성보다 Docker-compose 설정이나 CI 쪽 개발이 더 어렵고
많은 시간이 소요되고 있다.
공개돼서는 안 되는 env 코드 내용을 Public Repository에 업로드하지 않고
Github action 구현에 성공한 일이 기억에 오래 남을 것 같다.
예제 코드는 로컬 환경을 전제하고 있어
SECRET_KEY나 DB 정보를 숨기는 등의 보안 관련한 내용이 없어서 많이 헤맸다.
나는 단순히 공부로 끝내지 않고
api 서버를 실제로 운용하고 싶었기 때문에
보안 관련 사항은 그냥 넘어갈 수가 없었다.
Github Secrets에 저장한 내용을 이용하여 env 파일을 생성하여 해결했고 만족스러웠다.
파일 생성은 echo ${DJANGO_ENV} >> env.py 형태의 명령어를 사용했다.
리눅스 마스터 자격증을 취득하며 공부한 내용이 도움이 되었다.
4. TDD는 아름다워!!
TDD 개념이 정말 재밌고 유용하게 느껴진다.
MVC 디자인 패턴에 대해 처음 알게 되었을 때만큼 신선한 충격이었다.
다만 내가 원하는 결과물을 상상하여 자유롭게 Test Code를 작성하기 위해서는
많은 노력과 연습이 필요할 것 같다.
테스트 코드를 패스하지 못한 코드를 면밀히 살펴보던 중
작성한 코드가 아닌 테스트 코드가 잘못 작성했다는 것을 깨닫고
테스트 코드를 수정하여 CI를 통과시키는 코미디가 빈번하다.
5. 마치며
Deploy 가능한 api 서버 개발이 가능해지면
만들고 싶은 많은 아이디어를 실현할 수 있다.
부지런히 공부해서 하루빨리 재밌고 유용한 프로그램을 만들어보자고 다짐.
그리고 9월부터는 정말 진지하게 취업을 준비해보자.
번외.
사투의 흔적
'기술 기록 > Python,Django' 카테고리의 다른 글
DRF api 서버 만들기 진행 기록 (0) | 2022.09.30 |
---|---|
파이썬PS) 백준 14729 칠무해 - 최대힙 사용 (0) | 2022.07.04 |
error, 파이참버그) ValueError: invalid literal for int() with base 10: '' / 파이참 인풋 버그 (0) | 2022.05.30 |
Django ) 데코레이터를 이용한 유저 검증 (0) | 2022.05.16 |
파이썬PS) 백준 6603 로또. 백트래킹 (0) | 2022.04.12 |
댓글