컴퓨터 개론

Codeit과 시작하는 프로그래밍 시작하기 :)

AngeRay 2021. 5. 6. 19:34

프로그래밍 기본개념


1. 코멘트(comment) 

 

 

한국말로 '주석' 이라고 하며, 코멘트는 실제 프로그램이 실행될 때는 무시된다.

코딩 하다가 메모 하는 거라고 생각하면 된다.

프로그램이 더 커질수록 코멘트는 중요하다.

 

코멘트 사용 이유

  • 복잡한 코드 설명
  • 하다가 만 부분 표시
  • 다른 개발자들과 소통 
  • // , /* */ , #, <!-- --> 등등 코멘트는 여러개가 있다. 각각 맞는 프로그래밍 언어에 사용한다. 

2. 자료형 개요

컴퓨터를 복잡한 계산기라고 생각할 수 있다.

프로그래밍이란? 계산할 수식들을 컴퓨터에게 알려주는 것 이라고 생각하면 된다.

자료형(Date Type) 이란? 컴퓨터는 계산기보다 더 다양한 종류의 값들을 쓸 수 있는데 이를 자료형이라고 한다.

자료형의 종류에는 여러가지가 있다.

(자료형 또는 데이터 타입(data type)은 컴퓨터 과학과 프로그래밍 언어에서 실수치, 정수, 불린 자료형 따위의 여러 종류의 데이터를 식별하는 분류)

 

Number(숫자) : 정수와 소수로 이루어진 수들을 의미한다.

  • 정수(Integer)
  • 소수(Floating Point)
  • 정리하면 정수2 와 소수2.0은 date type이 다른 타입이기 때문에 약간의 차이가 있다

String(문자열) : 키보드로 쓸 수 있는 글자들을 표현하는 자료형

  • " " 를 사용한다.
  • 문자를 계산할 수 있다. "Hello" + "World" = "HelloWorld"
  •  2 , 2.0 , "2" 세개 모두 date type이 다르다.

Boolean(불린)

  • 참과 거짓을 나타내는 date type
  • boolean의 값은 딱 2개 이다. true와 false
  • 뭔가 값들을 비교할 때 많이 사용한다.

3. 추상화 개요

 

 

복잡한 내용은 숨기고, 주요 기능에만 신경 쓸 수 있게 해주는 것을 컴퓨터 과학에서는 추상화(Abstraction) 이라고 부른다.

추상화의 목적은 복잡한 디테일들을 숨기는 것 이다.

내부적인 것을 몰라도 아무 문제 없이 사용할 수 있다는게 추상화의 장점이자 목적이다.

 

프로그래밍에서 추상화는 세 단계로 나뉜다.

  1. 변수(Variable) : 값을 저장하는 것.
  2. 함수(Function) : 명령을 저장하는 것.
  3. 객체 

4. 변수

데이터를 어떤 공간에 담아서 이름표를 붙여 주는 것이다.

변수는 프로그래밍에서 가장 기본적이며 중요한 개념이다.

 

ex) burger_price = 4990

  • 4990 이라는 데이터를 buger_price 라는 변수에 저장한다는 뜻 이다.
  • buger_price 변수를 정의했다 라고도 표현한다.
  • 여기서 = 는 우리가 일반적으로 생각하는 수학 등호랑은 다르다. 수학 등호에서는 같다는 의미이지만 프로그래밍에서 등호는 지정 연산자 라고 해서 등호 오른쪽에 있는 값을 등호의 왼쪽에 있는 변수에 지정해 준다는 의미이다.
  • 즉 4990 이라는 정수값을 buger_price 라는 이름의 변수에 넣어 준다는 것이다.
  • burger_price 라는 변수를 사용하면 정수 4990을 사용하는 것과 같다.

변수 이름을 잘 짓는것도 프로그래밍의 중요한 스킬이다.


5. 함수

명령을 저장하는 역할

실제로 함수가 출력되기 까지 내부적으로 엄청나게 복잡한 과정이 있을 수 있다.

그런데 우린 그것을 굳이 알 필요가 없다.

그냥 어떻게 사용하는지 알면된다. 이게 추상화의 개념이다.

명령의 복잡한 디테일을 다 알 필요없이 주요 기능만 집중하기 위해 함수를 사용하는 것이다.

기본 제공되는 함수는 '내장 함수' 라고 부른다. (ex. consol.log API)

내장 함수는 프로그래밍 언어를 만든 개발자들이 미리 만들어 놓은 거라고 생각하면 된다.

즉 이런 내장 함수 외에는 우리가 직접 만들어야 한다.

 

ex) 파이썬에서 함수 정의시 def hello():  (def : define 의 줄임말로 '정의' 라는 뜻이다.)

→ 즉 새로운 함수를 정의하겠다는 의미이다.

콜론(:) 을 쓰면 함수 정의의 첫 줄이 완성된다. 함수 정의의 첫 줄을 함수의 '헤더' 라고 부른다.

 

def hello(): 

  # 함수에 실제로 어떤 동작을 할지 적어준다. (함수내용)

    print("Hello!")

    print("Welcome to Codeit!")

 

hello()

 # 함수 실행 (hello 함수를 호출한다.)

 # 함수를 사용한다는 것과 같다.

 

→ ** 함수를 정의해서 호출한다.


6. 파라미터

함수 호출 시 조금씩 다르게 동작하고 싶다면 파라미터와 전달인자를 이용한다.

 

def hello(name):

# hello 함수를 정의할 때 name 이라는 파라미터를 받도록 함

# 이 함수 내에서 name 이라는 값을 사용할 때 문자열 ray를 사용하는 것과 똑같다.

  

hello("ray")

# 함수를 호출하는 것은 함수를 사용하는 것과 같은 의미이다.

# 실제로 hello 함수를 사용할 때 우리가 원하는 값을 파라미터로 넘겨 줄 수 있다.

# 문자열 ray가 name 파라미터 안으로 들어간다. (문자열 ray을 파라미터로 넘긴것)

# "ray" 가 name에 지정된다. 그러면 hello 함수 내에서 name을 사용할 수 있다.

# hello(넘겨주는 값)

 

어떤 파라미터(매개변수)를 넘겨주냐에 따라서  함수의 동작을 조금씩 다르게 할 수 있다.

 


7.  여러개의 파라미터

한 함수에 여러 개의 파라미터를 동시에 전달해 줄 순 없을까?

변수명도 자유롭게 지을 수 있듯이 파라미터명도 자유롭게 지정가능하다.

하지만 의미있게 지정한다.

 

def print_sum(a, b):

# print_sum 함수는 파라미터 두 개를 받는다.

      print(a + b)

 

print_sum(7, 3)

# 첫번째 파라미터로 7이 넘어가고, 두번째 파라미터로 3이 넘어간다.

 


8. return문

변수는 값을 저장하는 역할 

함수는 명령을 저장하는 역할

파라미터는 함수에 넘겨 주는 값 

파라미터로 정보를 넘겨주면 파라미터에 따라 함수가 조금씩 다르게 동작하도록 할 수 있다.

 

함수에 또 다른 중요한 개념 return에 대해서 배워본다.

return은 해석하면 돌려준다 라는 의미인데 함수에서 리턴은 실제로 어떤 정보를 돌려준다는 뜻이다.

함수에게 뭔가 정보를 주면 어떤 다른 정보로 돌려주는 것이다.

** = 는 지정연산자