본문 바로가기
기술 기록/Python,Django

DRF stu.d.a A0) DRF + TDD + CI

by Fola 2022. 8. 29.

 

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월부터는 정말 진지하게 취업을 준비해보자.

 

 

 

 

번외.

    사투의 흔적 

env 파일과 관련된 Github Action 커밋 목록 Checks #42 ~ #66. 총 25개의 커밋과 커밋 메시지가 나열되어 있다. #66 #43 #42 외에는 모두 통과되지 못한 커밋이다. 이전 페이지에는 하나의 화면에 표시할 수 없었던 많은 시행착오 커밋들이 더 있다.

댓글