프로그래밍 언어 제대로 사용하기
03. 스타일 가이드 활용하기
가독성 높은 코드
1. 상황에 맞는 적절한 코멘트 작성하기
-> Comment 코멘트 : 사람에게만 전하는 메시지
2. 변수명 잘 짓기
-> 전체적인 코드의 흐름 안에서 충분히 구체적이고 간결한 이름
=> 사람마다 주관적이다. 따라서 일정한 규칙이 있어야 더 깔끔하게 작성할 수 있다.
예 ) 코멘트 : 코드 옆 or 코드 위
예 ) 변수명 : math score(X)
math_score (snake 표기법)
mathScore (pascal 표기법)
MathScore (camel 표기법)
이를 위해 각 언어마다 스타일 가이드가 존재한다.
- 스타일 가이드 검색하는 방법 : 언어이름 + 스타일가이드
예 ) 파이썬 스타일가이드 - https://www.python.org/dev/peps/pep-0008/
PEP 8 -- Style Guide for Python Code
The official home of the Python Programming Language
www.python.org
예 ) 자바스크립트 스타일가이드 - https://standardjs.com/
JavaScript Standard Style
JavaScript Standard Style Sponsored by English • Español (Latinoamérica) • Français • Bahasa Indonesia • Italiano (Italian) • 日本語 (Japanese) • 한국어 (Korean) • Português (Brasil) • 简体中文 (Simplified Chinese) •
standardjs.com
예) 자바 스타일가이드 (오라클 버전) - https://www.oracle.com/technetwork/java/codeconvtoc-136057.html
예) 자바 스타일가이드 (구글 버전) - https://google.github.io/styleguide/javaguide.html
이를 지켜 작성하는 것이 중요 !
예 ) 파이썬 : 띄어쓰기 - 콤마와 괄호 사이에는 띄어쓰기를 하지마라, 피해야 할 이름들 - 소문자 l, 대문자 O, 대문자 I 는 폰트에 따라 헷갈리기 때문
06. 구조화가 잘 된 코드
- 코드가 잘 구조화 되지 않았을 경우
엄청 긴 코드 속에서 특정 기능이 어떻게 작동하는지 찾기 어려움.
에러에 대해 문제를 찾을 수 없음.
따라서, 코드 분리가 필요하다.(객체지향프로그래밍)
코드를 작성하면서 겪는 어려움이나 문제점들은 대체로 비슷하다.
이를 다같이 고민하고 토론한 끝에 좋은 해결책을 제안해 두었다.
- 디자인 패턴(Design Pattern)
: 프로그래밍에서 고질적으로 발생하는 문제들을 해결하기 위한 테크닉
추천 책 : 'Design Patterns' - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
* Tip : 보통 문제에 대한 해결책은 이미 존재한다 ! 검색 필수 !
08. 라이브러리
긴 코드를 나누면 마치 각 블록을 조립하듯 프로그램을 만들 수 있다.
그런데 프로그램을 여러 조각으로 나누다 보면 다른 프로그램이지만 같은 코드를 사용하게 되기도 한다.
- 라이브러리 : 자주 쓰일법한 코드를 모아 둔 것.
이러한 라이브러리를 통해 프로그래밍이 매우 발전하였다.
더 빠른 속도로 쉽게 프로그램을 만들 수 있게 되었기 때문이다.
예 ) 데이터 사이언스 분야 - import pandas as pd, import seaborn as sns
+ df.corr() : 상관관계 분석
라이브러리는 언어를 선택하는 기준이 되기도 함 !
언어마다 자신에게 맞는 라이브러리가 있다.
* Tip : 데이터 사이언스 - 파이썬 선호
09. 프레임워크 1
- 프레임워크
: 적은 양의 코드만으로도 프로그램을 만들 수 있다는 점에서 라이브러리와 유사함.
라이브러리 : 내가 필요한 코드를 가져와 내 코드에 붙이는 것 - 코드를 다 작성하지 않아도 프로그램을 만들 수 있음.
프레임워크 : 프로그래밍의 뼈대가 이미 준비되어 있고 내가 작성할 공간들만 비워져 있는 것 - 공간을 채우면 프로그램을 만들 수 있음.
예 ) Ruby on rails 프로그래밍 언어 - 루비, 프레임워크 레일즈
프로젝트 생성
- rails new project
프로젝트 폴더로 이동
- cd project
레일즈로 생성하다 뼈대
- rails generate scaffold Restaurant(프로그램 이름) name:string score:integer description:text (프로그램에 필요한 정보)
데이터 베이스 생성
- rake db:migrate
프로그램 작동(실행)
- rails server
주소창에 결과에 나온 주소 입력하면 프로그램 확인 가능 !
10. 프레임워크 2
- 프레임워크의 특징
큰 틀이 정해져 있고 세부내용만 바뀌는 시스템에 좋다. - 필수 기능이 다 만들어져 있을 것.
예 ) 쇼핑몰 - 옷, 음식, 가구 등 다양한 종류이지만 판매라는 목적에서 필요한 기능이 비슷하기 때문
내가 미처 생각하지 못한 부분까지 고려되어 있다. (해킹 방지, 비밀번호 암호화 등 보안처럼 까다롭고 어려운 부분을 쉽게 해결 가능)
프로그램의 틀을 바꾸기 위해서는 복잡한 구조를 파악해야 하기 때문에 더 어려울 수 있다.
11. 라이브러리 VS 프레임워크
라이브러리 | 공통점 | 프레임워크 |
- 이미 누가 만들어 둔 도구를 가져와서 사용하는 개념 - 코드를 가져와 사용하는 데 돈이 들지 않음. |
- 적은 양의 코드만으로도 프로그램을 만들 수 있음. | - 프랜차이즈와 같은 개념 - 마음대로 변경은 불가능. - 최소한의 노력으로 프로그램 제작 가능. |
13. 남의 코드에서 배우기
* Tip : 개발자는 잘 짜여진 좋은 코드를 통해 많은 것을 배울 수 있다.
- 좋은 코드를 보며 공부하는 방법
1. 훌륭한 개발자의 코드 구조를 살펴봐라
2. 스타일 가이드 적용 방식을 분석해라
3. 변수 이름 및 주석 처리 방식을 파악해라
4. 어떤 라이브러리 또는 프레임워크를 사용하고 있는지 살펴봐라
- 좋은 코드 찾는 방법
1. 라이브러리 내부 코드
라이브러리 공식 홈페이지를 보면 사용법과 예시가 자세히 나와있다.
파이썬 라이브러리 추천
- seaborn : https://seaborn.pydata.org/tutorial.html
User guide and tutorial — seaborn 0.11.1 documentation
seaborn.pydata.org
- pandas : https://pandas.pydata.org/docs/user_guide/10min.html
10 minutes to pandas — pandas 1.3.1 documentation
This is a short introduction to pandas, geared mainly for new users. You can see more complex recipes in the Cookbook. Time series pandas has simple, powerful, and efficient functionality for performing resampling operations during frequency conversion (e.
pandas.pydata.org
2. 개발 문서
공식문서는 언제나 신중하게 엄선하여 작성된 코드로 이루어져 있다 !
언어 자체의 공식 사이트 를 찾아볼 것 !
- Python : https://docs.python.org/ko/3/
- Java : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide
- JavaScript : https://www.ruby-lang.org/ko/documentation/
- Ruby : https://docs.oracle.com/en/java/
3. 커뮤니티특정 상황에 대한 좋은 예시를 찾고 싶은 땐 검색 활용 !개발자들 간의 공유 문화로 다양한 사례와 분석, 이유 등을 찾을 수 있다.
* Tip : 구글검색창에 Best Practice 라는 키워드로 검색하면 어떤게 가장 좋은 코드인지 사람들의 논의 혹은 예시 코드 발견 가능 !
'Daily 일상 기록 > 인강 기록' 카테고리의 다른 글
컴퓨터 개론 03. 프로그래머의 세계 이해하기 (2) (0) | 2021.07.28 |
---|---|
컴퓨터 개론 03. 프로그래머의 세계 이해하기 (0) | 2021.07.27 |
컴퓨터 개론 02. 프로그래밍 언어 이해하기 (2) (0) | 2021.07.21 |
컴퓨터 개론 02. 프로그래밍 언어 이해하기 (0) | 2021.07.19 |
컴퓨터개론 01. 프로그래밍 시작하기 in Python (2) (0) | 2021.07.18 |