#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목[종강후,학습#1] Google Python Guide2021-06-10 11:01
작성자 Level 10

구글에서 Python으로 프로그래밍을 할 때, 지켜야 하는 것과 하지 말아야 하는 것을 구글이 자체 정리한 Coding Guideline 문서 입니다. 


[구글 Python Coding Guideline 바로가기]


아마 첫번째 인상은 "내가 Python을 배운게 맞나?" 싶을 정도로 모르는 내용이 많을 겁니다. 이에 Wrapup 수업 영상에서 그저 파이썬이라는 빙산의 일각을 배웠을 뿐이라고 하는 겁니다 (2021년 기준 파이썬 전체의 5~10% 정도?). 그리고 수업에서 왜 그렇게도 Self-Motivation & Self-Learning을 강조했는지 알게 되는게 중요하지요. 다시 Coding Guideline으로 돌아와서,,, 


Coding Guideline은 기초 문법을 가르치는 것이 아니고, 이미 프로그래밍을 할 줄 아는 개발자에게, 지켜야할 권장 사항을 알려줍니다. 예를 들어, 변수/함수/클래스/메소드/화일 등의 이름을 어떻게 정해야 하는지, 전역 변수는 왜 쓰지 말라고 하는지, "indent는 반드시 4개의 space로 만들어야 한다 (Indent your code blocks with 4 spaces.)"와 같은 세세한 사항부터 고난이도의 기술을 어떻게 적용할지 등을 정합니다. 구글의 경우는 A4 용지 49페이지 분량으로 Python 언어로 소프트웨어를 개발하는 경우 지켜야할 사항을 정리하고 있습니다. 


통상 회사를 가면 lint 혹은 profiler 류의 프로그램을 사용하여, 자동으로 coding guideline의 준수 여부를 검사합니다. Coding guideline 준수 여부에 따라서, 개발자의 코드를 수용 할지 말지 시스템이 판단하고, 위반시에는 코드를 거부하며, 필요시 인사에 반영하게 됩니다 (개발자의 등급/레벨 분류). 가이드라인 이라는 단어가 우리나라에서는 지켜도 그만 안지켜도 그만이라고 인식이 되는데, 소프트웨어 개발 분야에서는 반드시 지켜야 하는 사항이니, 입사전 혹은 졸업전 이런 사항을 미리 배우고 포트폴리오에 반영을 하면 제출한 결과물에 대한 평가가 좋을 겁니다. 특히나 프로그래밍 언어는 처음 버릇이 나중까지 가는 경우가 대부분 이니, Python 언어에 대한 coding guideline을 연습하여 입사시 혹은 필드에 나갈때 도움이 되도록 합니다.


구글 이외 회사들도 자체 가이드라인이 있거나, Python.org의 아래 권고를 따릅니다.


[PEP 8 -- Style Guide for Python Code 바로가기] 


추가적인 FYI (For Your Information)로,,


웹파이선프로그래밍을 성공적으로 수강하여 C++ 수업을 듣게되는 학생의 경우, Google에서 제공하는 C++ Style Guide도 있으니, 수강시 참조하면 좋은 코딩 습관을 갖게될 겁니다. C++은 언어의 특성상 더 어렵고 방대하며, 매우 까탈스럽게 (파이선과 달리 자동으로 해주는게 거의 없는지라) 지켜야할 일이 더 많기에, A4 용지 80페이지 수준의 내용입니다.


[Google C++ Style Guide 바로가기]


HTML/CSS의 경우는 네이버(NHN)의 NHN 코딩 컨벤션이 있으니, 관심자는 참조 바랍니다. 대략 A4 용지 85페이지 분량입니다.


[NHN 코딩 컨벤션 바로가기]


결국 이런 경험들을 겪다보면, 어느 순간 매우 깐깐해지고 꼼꼼해지며 논리적으로 까다로와지는 본인을 느끼게 됩니다.


“컴공과 남친이 불안하다고 말끝마다 ;를 붙입니다…왜 이러죠? [바로가기]” 

"(소프트웨어) 개발자들의 8가지 직업병 [바로가기]"


직업병은 그 직업을 선택하면 가질수 밖에 없는 필연적인 것이니, 너무 거부하지 말고, 마음의 안정을 취하며, 현생과 직업이 섞이지 않도록 노력할 수 밖엔 없습니다. 손목의 터널 증후군과 함께 평생 안고 가야할 필연적인 친구 입니다. 


그렇게 해서 우리는 하고 싶은 소프트웨어 분야의 회사에 자신있게 진출하거나 창업을 하고, 남들이 부러워 하고 언론에서 연일 띄우는 고액의 연봉이나 본인이 창업한 회사에서의 성취감을 갖게 됩니다. 댓가는 1학년 1학기부터 내려온 다크 서클, 매학기 쏟아진 텀플들과 팀플들, 매학기 인간들이 만들었다기에는 도저히 믿기지 않는 너무나도 이상한 외계언어 같은 과목들, 학생들이 이번학기 본인 과목만 수강하는 것처럼 폭격하는 교수님들, 캠퍼스의 시작 부터 끝 까지 뛰어다니면서 흘린 땀들 입니다. 통과의례 같은 과목들을 묵묵히 열심히 혹은 꾸역꾸역 지나면 최소한 "먹고 사는 것을 걱정할 상황"을 지나 "하고 싶은 것을 즐겁게 해도 충분히 먹고 살수 있는 상황"을 겪게 될테니, 즐겁고 행복하게 소융 생활을 하며, ""행복한 소프트웨어 프로그래머""로 진화 하도록 합시다.

댓글