1. Python 언어의 이해
컴파일 언어인 C, Java와는 다르게 Python은 인터프리터 언어입니다.컴파일러란?
- 사람이 작성한 코드를 바로 실행하는 것이 아닌, 컴퓨터가 이해할 수 있도록 기계어로 번역하는 과정을 의미합니다.
- 대표적인 컴파일 언어로는 C, Java 등이 있습니다.
- 인터프리터 언어의 특성 상 코드를 컴파일 하는 단계가 없기 때문에 코드가 실행되기까지의 속도는 빠르지만, 런타임에서 코드가 동작하는 시간은 비교적 느린 편입니다.
- 동적 타입 언어로 C, Java와 다르게 변수를 할당할 때 자료형을 지정해 주지 않아도 됩니다.
- 정적 타입 언어인 Java의 변수 선언
- int num = 10;
- String hello = "world!!"
- 동적 타입 언어인 Python의 변수 선언
- num = 10
- hello = "world!!"
- 정적 타입 언어인 Java의 변수 선언
- 문법이 쉽고 간결합니다. 때문에 생산성이 좋으며 코드의 가독성이 좋습니다.
Java에서의 문자 출력
public class PrintHelloWorld {
public static void main(String[] args) {
System.out.println("hello world!!");
}
}
Python에서의 문자 출력
print("hello world!!")
자바 랑 비교 했을 때 문법 과 생산성,가독성 차의는 어마 어마하다..
코드 컨벤션
프로그래밍 언어에는 각 언어에 맞는 코드 컨벤션이 존재합니다.
코드 컨벤션이란?
개발을 하다 보면 한 번씩 접하게 되는 밈이 있습니다.
-이 코드가 무슨 코드인지는 오직 신과 나만이 안다 그리고 이제는 오직 신만이 아신다.-
실제로 개발을 하다 보면 내가 짠 코드가 1주일만 지나도
"과거의 나는 과연 무슨 생각으로 이런 코드를 짠 걸까.." 라는 생각이 들 때가 있습니다.
내가 짠 코드를 봐도 이런 생각이 드는데,
팀 프로젝트를 하며 다른 사람이 짠 코드를 볼 때는 어떨까요?
코드 컨벤션은 이러한 상황을 만들지 않게 하기 위해 스타일을 통일하자는 "약속"입니다.
파이썬에서는 PEP-8이라는 컨벤션 가이드를 제공하고 있습니다.
코드 컨벤션은 언어에 따라 요구하는 내용이 다르기 때문에, 내가 개발하는 언어에 맞는 컨벤션 스타일에 맞춰 코드를 작성할 필요가 있습니다.
- 파이썬에서 요구하는 코드 컨벤션
- 파이썬에서는 네이밍 컨벤션으로 변수 / 함수를 네이밍할 때는 Snake 표기법을, Class를 네이밍할 때는 Pascal 표기법을 사용합니다.
- 네이밍 컨벤션이란?예를 들어 Python is very good 이라는 문장이 있을 때, 아래와 같이 사용됩니다.
- Pascal : PythonIsVeryGood / 각 단어를 대문자로 구별합니다.
- Camel : pythonIsVeryGood / Pascal과 동일하지만, 첫 문자가 소문자로 시작합니다. 모양이 쌍봉낙타와 비슷하게 생겼다고 해서 지어진 이름입니다.
- 네이밍 컨벤션에는 대표적으로 Pascal, Snake, Camel 표기법이 존재합니다.
- Camel 표현식은 첫 번째 문자가 소문자로 시작하는 Lower Camel Case와
첫 번째 문자가 대문자로 시작하는 Upper Camel Case가 존재합니다.
이 때문에 간혹 Pascal과 Camel 표현법의 용어가 혼동되기도 하는데,
Microsoft에서는 소문자로 시작하는 표현법만 Camel로, 대문자로 시작하는 것은
Pascal이라고 명시하고 있습니다. 더 자세한 내용은 여기서 확인할 수 있습니다.
- 네이밍 컨벤션이란?예를 들어 Python is very good 이라는 문장이 있을 때, 아래와 같이 사용됩니다.
- Snake : python_is_very_good / 각 단어를 언더바( _ )로 구분합니다. 모양이 뱀과 비슷하게 생겼다고 해서 지어진 이름입니다.
- 클래스, 함수, 변수 등을 네이밍할 때는 이름만 보고 해당 코드가 어떤걸 의미하는지 추측할 수 있어야 합니다.
- PIE = 3.14 상수를 표현할 때는 예외적으로 모든 문자를 대문자로 표현합니다.
- numbers = [1,2,3,4] list를 표기할 때는 복수로 표현한다. 혹은 number_list와 같이 표현할 수도 있습니다.
- for number in numbers: 반복문 사용 시 가독성을 늘릴 수 있습니다.
- def add(a, b): return a + b 함수를 네이밍할 때는 해당 함수가 어떤 역할을 하는지 표현해야 합니다.
- 파이썬에서는 네이밍 컨벤션으로 변수 / 함수를 네이밍할 때는 Snake 표기법을, Class를 네이밍할 때는 Pascal 표기법을 사용합니다.
오늘 내용을 공부하면서 알고 있던 내용도 있고, 처음 듣는 내용도 있었다.
첫번째로 코드 컨벤션 알수있게 되었다 그 중에서도 네이밍 컨벤션을 할 때 사용하는 Pascal, Camel ,Snake
과 같은 들어 본적은있었지만
정확하게 모르고있었는데
오늘 배우게 되었다.
아직 완벽하게 이해 지는 못했지만, 개념 은 어느정도 잡힌거 같다.
그리고 어떤 언어 던지 역시 가독성이 좋아야 된다고 다시 하번 느끼게 되었다.
잘 생각 해보면 책 도 가독성이 떨어지는 글을 읽으면 아무리 좋은 내용과 주제 라도 정확하게 전달이 안된다.
아직 제대된 코드를 만들어 본적은 없지만,
만들게 될 떄 오늘 내용을 생각 하면서 만들어 보도록 해야겠다.
두번째로 파이썬 기초에서는 기존에 배운 내용 을 복습 하는생각으로 들었다.
그래서 거의 다 이해는데 문제는 없었지만,
변수 유효 범위(variable scope)에 대한 이해
는 배우게되었다.
지역변수는 사용 되는 경우 가 많이 있고 사용을 권장하는편인데
전역변수(Global Variable) 은 권장하지 않은 변수 라는거 알게 되었다.
사용 할 때 가 오면 오늘 내용을 다시 한번 보고 사용하도록 하겠다.
(https://teamsparta.notion.site/Python-1-743e6c6067da45ee8a023d96e7e515f2)
'TIL(Daily) > Python' 카테고리의 다른 글
Wed/07/Sep/22 TIL (1) | 2022.09.08 |
---|---|
Tue/06/Sep/22-TLI (0) | 2022.09.06 |
클래스 (0) | 2022.09.02 |
함수 심화 (0) | 2022.09.02 |
map, filter, lambda식 (0) | 2022.09.02 |
댓글