[Day 5] 4/23 (토픽2) 프로그래밍 언어 이해하기 ②

sonffani·2021년 4월 22일
1
post-thumbnail

4/23~
컴퓨터 개론 - <토픽2> 프로그래밍 언어 이해하기 - 프로그래밍 언어 제대로 사용하기 - 03. 스타일 가이드 정리 부터 들을 차례

스타일 가이드 정리

가독성 좋은 코드를 작성하는 데 있어서 굉장히 중요한 부분 중 하나가 “스타일 가이드”입니다. (Convention이라고도 합니다) 스타일 가이드를 잘 적용시키면 가독성이 좋을 뿐 만 아니라, 여러 사람들이 동시에 작업을 할 때 생길 수 있는 혼선을 막을 수 있습니다.

어떤 스타일 가이드가 있는지 간단하게 정리해 봅시다.

Python 스타일 가이드

Python의 경우 PEP8(Python Enhance Proposal 8)이라는 스타일 가이드가 있습니다.
Python 공식 스타일 가이드(일명: PEP8)
https://www.python.org/dev/peps/pep-0008/

Google Python 스타일 가이드
글로벌 IT 기업인 Google에서 사용하는 스타일 가이드입니다.
PEP8과 비교해서 가장 다른 점은 “Docstring”을 작성하는 법에 대해 좀 더 깊이 다루고 있습니다.
https://github.com/google/styleguide/blob/gh-pages/pyguide.md

JavaScript 스타일 가이드

JavaScript 표준 스타일 가이드
https://standardjs.com/

Airbnb JavaScript 스타일 가이드
https://github.com/airbnb/javascript

Google JavaScript 스타일 가이드
https://google.github.io/styleguide/jsguide.html

Java 스타일 가이드

Java를 소유한 회사 오라클의 스타일 가이드
https://www.oracle.com/technetwork/java/codeconvtoc-136057.html

Google Java 스타일 가이드
https://google.github.io/styleguide/javaguide.html

여러분이 원하는 언어의 스타일 가이드를 직접 찾아보고, 많이 보면서 눈에 익혀보세요!

스타일 가이드 적용하기

No : RandomNumber=GenerateNumber ( 1,45 )
Yes : random_number = generate_number(1, 45)

규칙 1: 함수 호출, 함수 파라미터 등에서 불필요한 공백을 넣지 않는다.
규칙 2: , 다음에는 하나의 공백을 넣어줘야 한다.
규칙 3: 변수에 값을 저장할 때 사용하는 등호(=) 앞뒤로 하나의 공백을 넣는다.
규칙 4: 함수, 변수는 소문자로 쓰고, 단어 간은 밑줄(_)을 사용하여 연결한다.

구조화가 잘 된 코드

코드 분리 / 파일 분리
관련된 코드를 필요한 만큼 분리
객체 지향 프로그래밍 배우면 자기 것으로 만들고 좋은 코드 구조 만들기 가능
그만큼 구조화 중요!
Design Pattern
프로그래밍에서 고질적으로 발생하는 문제들을 해결하기 위한 테크닉

라이브러리

자주 쓰일 법한 코드
프로그래밍 성장에 큰 기여
언어 선택의 기준이 되기도 함
pandas, seaborn, beautifulsoup, https://pypi.org - python

프레임워크Ⅰ

적은 양의 코드로 프로그램을 만들 수 있음
라이브러리와 유사 (근데 다른 개념)

  • 프레임워크는 뼈대(scaffold) 잡혀있고, 내 코드가 들어갈 곳만 비워져(?)있음
    ex. Ruby -rails

프레임워크Ⅱ

큰 틀이 정해져 있고,
세부 내용을 바꾸는 경우 사용하기 좋음
ex. 쇼핑몰 프레임워크
내가 생각하지 못한 점까지 프레임워크에 반영되어 있어서 좋음
ex. 비번 - 암호화 코드까지
프레임워크 바꾸는 게 어렵다는 것이 단점, 그래서 수정보다 처음부터 다시 만드는게 낫다고 생각할 수 도

라이브러리 vs 프레임워크

라이브러리
이미 누가 만들어 둔 도구를 가져와서 사용!
코드를 가져오는데 돈이 안듬!
ex. 카페 하는 데, 좋은 기계를 가져옴

프레임워크
최소한의 노력으로 프로그래밍 가능
ex. 카페 하는 데, 프렌차이즈로 운영

남의 코드에서 배우기

프로그래머의 가장 좋은 스승
그동안 프로그래밍 언어를 잘 활용할 수 있는 방법들을 살펴봤습니다.
하지만 이게 바로 내 코드에 적용시키는게 어려울 수 있는데요.
아무래도 처음 배우는 거다 보니, 낯설어서 그렇겠죠.

개발자에게 있어서 가장 좋은 스승은 잘 짜여진 좋은 코드입니다.

훌륭한 개발자들의 코드를 잘 살펴보고, 그 코드는 어떻게 구조가 짜여져 있는지, 스타일 가이드는 어떻게 적용하고 있는지, 변수 이름이나 주석은 어떻게 쓰고 있는지, 어떤 라이브러리나 프레임워크를 사용하고 있는지, 이런 것들을 잘 살펴볼 필요가 있습니다.

이 코드를 계속 관찰하고 마주칠 때마다 유심히 살펴보아야 좋은 코드를 눈에 익히고 내 것으로 만들어 실력을 늘릴 수 있습니다.

좋은 코드를 찾을 수 있는 곳 1: 라이브러리
좋은 코드는 어디서 찾을 수 있을까요?
프로그래밍 특유의 공유 문화 때문에, 금세 좋은 코드들을 많이 찾을 수 있는데요.
먼저, 라이브러리 내부의 코드들이 있습니다.

여러 사람이 공유해서 함께 쓰려고 만든 라이브러리라면, 그 코드의 퀄리티가 높아야겠죠?
그만큼 훌륭한 사람들이 신경도 많이 써서 만들었을 겁니다.

프로그래밍을 하다가 라이브러리를 쓰게 됐다면, 그 라이브러리의 내부를 한번 살펴 보세요.

예를 들어, 데이터 사이언스에 사용하는 파이썬 라이브러리로 pandas, seaborn 같은 걸 아까 소개해 드렸죠? 이건 파이썬 라이브러리이니까, 그 내부도 파이썬 언어로 되어 있습니다. 모든 걸 다 이해하긴 어렵겠지만, '아! 이름은 이렇게 지었구나', '코멘트는 이렇게 달았구나' 하면서 유심히 살펴보시면 좋습니다.

코드를 공부할 만한 라이브러리를 몇 개 소개시켜드리겠습니다. 라이브러리 공식 홈페이지에는 라이브러리 사용법과 예시가 잘 나와있습니다.
Seaborn 라이브러리 - https://seaborn.pydata.org/tutorial.html
Pandas 라이브러리 - https://pandas.pydata.org/docs/user_guide/10min.html

좋은 코드를 찾을 수 있는 곳 2: 개발 문서
프로그래밍에서는 개발 문서가 매우 많이 등장합니다.
라이브러리나 프레임워크 같은 걸 만들 때도, "이렇게 쓰면 됩니다!" 라며 알려주는 문서들이 있고, 언어 자체에도 공식 설명 문서들이 있습니다.

공식 문서에서는 매우 신중하게 예시를 작성해서 공유합니다. 그 예시가 곧 가장 엄선된 정석 코드여야 하기 때문이죠. 이런 문서들을 자주 읽으면서, 사람들이 어떤 방식으로 코드를 공유하는지 잘 살펴 보세요.

몇 가지 언어의 공식 사이트 링크를 공유드립니다.
Python - https://docs.python.org/ko/3/
Javascript - https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide
Ruby- https://www.ruby-lang.org/ko/documentation/
Java- https://docs.oracle.com/en/java/

좋은 코드를 찾을 수 있는 곳 3: 커뮤니티
특정 상황에 대한 좋은 예시가 궁금하다면, 인터넷에 검색해 보세요.
개발자들이 이미 여러 방식의 장단점을 고민하고 논의해둔 기록들이 있을 겁니다.

그리고 프로그래밍에는 공유의 문화가 잘 되어 있기 때문에, 좋은 사례와 이유 같은 걸 적어둔 사이트, 블로그 등도 많습니다.

구글 검색을 할 때 Best Practice라는 키워드로 검색을 해보면, 어떤 게 가장 좋은 코드인지 사람들의 논의 혹은 예시 코드들을 발견할 수 있을 겁니다.

profile
판교 어떤 IT회사에서 일하는 중. 개발 도전기 💪🏻

0개의 댓글