ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 날짜 타입 자료형 삽질후기
    Python & Flask & Django 2017. 5. 15. 21:25



    Python Language 에 대한 어떠한 스터디도 진행하지 않은 채로 Django Project를 맡았다. 실무적인 경험을 해보지 않은 개발언어를 가지고 프로젝트를 진행하는 것 만큼 위험한 것도 없는 것 같다. 정말 많은 삽질들 중에서 정말 지금생각해도 어이없는 한가지 팁을 공유하고자 한다. (Python 고수분들은 모두 아실테니 브라우저를 당장 종료하시길.)  


    datetime 자료형을 공부하지 않아 벌어진 삽질의 예


    Django Framework의 Model 을 사용하여 날짜와 관련한 데이터를 저장해 두었고, 다수 정보들의 신청일시를 프린트하는 화면을 출력하고자 한다. 그런데.. 목록에서 월별 합계값을 누적한 누계 리스트가 별도로 계산하여 출력해야 한다. 방법은 3가지 정도를 떠올렸다.


    1) Django Model에서 QuerySet Object를 가져올때 Group By기능을 제공해주지 않을까?? 라는 순수한 마음에서 떠오른 첫 번째 방법


    2) Django Model에서 값을 가져오고 String으로 몇월인지 확인하여 월을 Key로 갖는 Dictionary를 구성하여 Value 값을 더해간다.

    ( 오늘의 주제에 대해 전혀 알지 못해 진정 삽질로 치닫은 결과)


    3) 마지막 세번째는 갑자기 기억이 안난다.


    아무튼 첫번째 방법을 시도하기 위해 구글링을 하였으나 불편하다. 복잡하다. 유지보수하기 어려운 코드가 될 것같다는 세가지 이유로 간단히 포기.


    난 시간이 없고 내가 정해놓은 마감에 쫓기고 있으니 미련 없이 2번 방법으로 돌진! 결과는 대만족.


    1) datetime 타입을 String으로 바꾼다.

    2) 몇월인지 포함하는 부분의 String을 [5:7] index를 사용해 자른다.

    3) 잘라낸 인덱스를 Dictionary 의 Key로 입력하고 Count한 값을 누계로 Value에 저장한다.

    4) JSON으로 예쁘게 포장하여 화면단에서는 jquery를 이용해 id Selector를 사용하여 값을 매핑해준다.



    이렇게 월별 누계에 대한 출력 미션은 일단락 지어지는 것 같았다. 그러던 어느날..



    datetime 자료형에서 기본 제공하는 년/월/일 parameter를 발견


    Python 기초적인 코딩 공부를 위해 CodeAcademy lecture를 진행하는중... 말도 안되는 하늘이 무너지는 느낌의 허탈한 느낌의 Parameter 3가지를 발견한다.


    datetime.year

    datetime.month

    datetime.day


    와....... 이런 배신감과 자괴감과 허탈감은 그 어떤 것으로도 표현할 수 없었다.

    샘플 예제 코드는 아래와 같다. 





    Conclusion


    그렇다. 

    파이썬은 정말 친절한 언어다.


    난 아직 파이썬을 1도 모른다. 


    공부하자.























    'Python & Flask & Django' 카테고리의 다른 글

    Django Model field reference  (0) 2017.04.24
    Django Coding Style  (0) 2017.04.06
    __init__.py  (0) 2017.04.06
    Django Settings - INSTALLED_APPS, MIDDLEWARE  (0) 2017.03.20
    Django Settings  (0) 2017.03.15
Designed by Tistory.