두숟갈 스터디 - 2
무엇을 공부했나요? Two Scoops of Django 1~3장 내용을 살펴보는 시간을 가졌습니다. 1장 코딩스타일 2장 최적화된 장고 환경 꾸미기 3장 어떻게 장고 프로젝트를 구성할 것인가 문수 님께서 1장부터 3장의 내용을 요약한 자료를 준비해주셨고, 스터디 시간에 직접 발표를 해주셨습니다. 각 장에 대한 요약이 끝나면 호성 님께서 심화발표 형식으로 실무 경험담, 8퍼센트에서의 적용방식에 대해서 공유해주셨습니다. 중간중간 궁금한 내용에 대해서는 서로 질문하고 답변하는 형식으로 진행되었습니다. 스터디에서 다루었던 내용 중 주요 내용을 정리하면 아래와 같습니다. 1장 코딩스타일 파이썬 공식 스타일 가이드인 PEP8를 적용한다. flake8 패키지를 활용하면 PEP8 가이드에 맞추어 파이썬 파일의 코드 스타일을 검사한다. import를 할 때 아래와 같은 순서로 그룹을 짓는다. isort 유틸리티를 활용하면 import 순서를 자동으로 조정할 수 있다. 표준 라이브러리 임포트 코어 장고 임포트 장고와 무관한 외부 앱 임포트 프로젝트 앱 임포트 명시적 성격의 상대 임포트를 이용한다.(explicit relative imports) import * 를 피한다. 각 모듈은 개별적으로 임포트 한다. 2장 최적화된 장고 환경 꾸미기 같은 데이터베이스를 이용한다. 운영 환경에서 PostgreSQL을 사용한다면 로컬 개발 환경에서도 PostgreSQL을 사용한다. 이는 여러 가지 이유가 있는데, 같은 데이터베이스를 사용하지 않으면 문제가 발생해도 재현이 어려울 수 있고, 테스트에서 미리 오류를 발견하지 못할 가능성이 있다. pip와 virtualenv를 활용하여 파이썬 패키지 의존성 문제를 해결하고 독립된 프로젝트 환경을 구성한다. git과 같은 버전 컨트롤 시스템을 이용하여 코드의 변경 내용을 기록한다. 3장 어떻게 장고 프로젝트를 구성할 것인가 프로젝트의 레이아웃은 코어 장고 개발자들 사이에서도 여러 의견이 분분하다. 일반적으로 가장 널리 쓰이는 프로젝트 구성은 아래와 같다. <repository_root>/ # 최상위 레벨 : 저장소 루트 (.gitignore, requirements.txt 포함) ├── <configuration_root>/ # 두 번째 레벨 : 설정 루트 (settings.py, urls.py 포함) ├── <django_project_root>/ # 세 번째 레벨 : 프로젝트 루트 (manage.py, app폴더 포함) Cookiecutter를 활용하여 장고 프로젝트 초기 구성을 쉽게 생성할 수 있다. 사람들은 프로젝트 구성에 대해 각자 자신만이 생각하는 옳은 방법을 가지고 있다. 그리고 언제나 옳은 방법이 하나만 있는 건 아니다. 자세한 스터디 자료는 github에서 확인하실 수 있습니다. 어땠나요? 저는 초보 개발자이자 외부인으로서 8퍼센트의 스터디에 참여하고 있습니다. 그동안 혼자 공부 하면서 궁금했던 내용에 대해서 질문을 하고 답변을 받을 수 있어서 유익한 시간이었습니다. 무엇보다도 경험이 풍부하신 개발자 분들의 이야기를 듣는 것 만으로 공부가 되는 기분이 듭니다. 호성 님께서 스터디 중간에 Travis CI 를 활용하여 커밋 된 코드의 테스트를 진행하는 부분을 보여주셨습니다. 스터디에서 다루었던 flake8, isort을 현업에서도 직접 활용하고 있었고, 이를 통해서 필요성에 대해 더욱 공감할 수 있었습니다. 집에 돌아와서는 flake8을 설치하고 실행해보았습니다. 제가 작성한 코드 중 생각도 못했던 부분에서 PEP8 가이드에 맞지 않는 부분이 많았기에 놀랐습니다. 오늘 배운 내용을 바탕으로 더 읽기 쉬운 코드를 작성할 수 있도록 연습 해야겠다는 생각을 했습니다. 앞으로 두숟갈 스터디에서 바보 같은 질문 담당으로 꾸준히 공부할 수 있었으면 좋겠습니다 :)
