다시 한 번 문과를 가길 잘했다는 생각이 듭니다.
아니, 이과를 갔으면 이렇게까지 이해하기 어렵지는 않았으려나요.
컴퓨터 개론도 쉽지 않습니다.
아직 프로그래밍 언어는 시작도 못했는데..
프로그래밍 언어의 분류
Dynamic Typing과 Static Typing
1. Dynamic Typing
- 간편함과 편리함을 추구하는 언어
- 컴퓨터적 구조를 생략하기 때문에 코드의 내용이 눈에 잘 들어오고, 사람이 코드를 이해하기 편함
- 비교적 고수준이고, 추상화가 많이 된 언어
- 실행 속도에 민감하거나 여러 사람이 협업해야 하는 프로젝트에는 불리함
- Ruby, Python 등
2. Static Typing
- 안정성과 정교함을 추구하는 언어
- 컴퓨터적 구조를 코드에 적어 주기 때문에, 코드의 구조가 눈에 잘 들어오고 컴퓨터가 고민을 덜 하게 됨
- 비교적 저수준이고, 추상화가 덜 된 언어
- 여러 사람이 협업하는 복잡한 프로젝트나, 컴퓨터의 성능이 낮은 임베디드 시스템에 용이
- C, Java, 포트란, 코틀린 등
※ 객체 지향형 프로그래밍 언어 : 의미 있는 단위(객체)별로 나누어진 프로그래밍 언어, 데이터나 기능에 변화가 생기더라도 관련된 객체만 수정하면 되기 때문에 협업하기 편리하고 유지/보수에 용이하지만, 코드를 나누고 설계하는 과정이 어려움
읽기 쉬운 코드를 만들기 위한 방법
1. 코멘트를 잘 활용한다.
2. 변수의 이름을 잘 짓는다. → 변수 이름이 너무 길지 않고, 다른 변수와 겹치지 않도록 충분히 구체적이면서도 간결한 이름으로
3. 각 프로그래밍 언어마다의 스타일 가이드를 잘 지켜서 코드를 작성한다.
잘 구조화된 코드를 활용한다 → 파일 분리를 잘 해야 하고, 다른 사람들의 디자인 패턴을 활용한다
1. 라이브러리 : 다른 사람들이 이미 만들어 둔(구조화가 잘 되어 있는) 코드를 가져와서 활용
2. 프레임워크 : 이미 만들어져 있는 프로그램의 뼈대를 가져와서 빈 칸에 내용만 채우는 방식으로 활용
지금 프로그래밍 언어는 파이썬 겉핥기만 한 상태입니다.
저는 순종적인 사람이라서, 강의에서 시키는 대로 파이참을 설치해 보았습니다.

그저께는 print와 return의 차이를 도저히 이해할 수가 없어서 그거 이해하는 데 또 한참이 걸렸네요.
- print : 함수의 결과값을 단순히 보여주기만 하기 때문에 이 결과를 가지고 함수를 계산할 수 없음(변수가 될 수 없음) / 실제 컴퓨터의 프린터에서 내용이 출력되는 것과 같음, 이 출력된 종이를 가지고 다시 입력을 하거나 내용을 수정할 수 없는 것과 같음
- return : 결과값 반환, 함수 속에서 계산이 이루어지고 나온 결과값이기 때문에, 다른 함수의 변수가 되는 등 중간값이 될 수도 있음
예를 들어,
def sum_number(a, b):
return a + b
print(sum_number(1, 2) + sum_number(3, 4))
를 출력하면
sum_number 함수 각각의 return값인 3과(1+2=3) 7(3+4=7)을 더한 10이 출력되지만,
def sum_number(a, b):
print(a + b)
print(sum_number(1, 2) + sum_number(3, 4))
를 출력하면
sum_number(1, 2)값인 3과 sum_number(3, 4)값인 7은 각각 함수가 print된 NoneType 값이기 때문에 None + None은 계산이 되지 않습니다.(덧셈의 변수가 될 수 없습니다)
재미있지만 쉽지 않습니다.
목표는 내일까지 컴퓨터 개론을 끝내고 파이썬 기초 강의를 듣기 시작하는 것입니다.
화이팅!
'코딩 일지' 카테고리의 다른 글
비전공자 문과생, 코드잇 결제하고 독학하기 시작했습니다. (1) | 2021.05.27 |
---|
댓글