본문 바로가기
프로그래밍 언어/Python

정적타이핑과 동적타이핑

by Suff07 2023. 12. 27.

※ 주의

현재 제가 적는 게시글은 제가 잘 몰랐던 파이썬의 개념에 대해 적고 정리하는 글입니다.

그러므로 어느정도 기초적인 문법은 알고 있다는 전제하에서 글을 적습니다.

만약 문법을 전혀 모르신다면 아래 링크를 참고하시면서 봐주세용

https://wikidocs.net/book/1

 

점프 투 파이썬

이 책은 파이썬이란 언어를 처음 접해보는 독자들과 프로그래밍을 한 번도 해 본적이 없는 사람들을 대상으로 한다. 프로그래밍을 할 때 사용되는 전문적인 용어들을 알기 쉽게 풀어서 …

wikidocs.net

 


 

동적타이핑이란 프로그래밍 언어에서 변수의 데이터 타입을 실행중에 결정하는 방식을 말합니다.

즉, 컴파일타임에 자료형 검사를 하게 된다면 정적타이핑이며 런타임시에 자료형 검사를 하게 되면 동적 타이핑입니다.

※ 프로그램이 자료형의 규칙을 지키는지 검증하는 과정을 자료형 검사라고 한다.

 

 

이해가 안되면 코드를 통해서 간단하게 알아보도록 합시다.

 

#include <stdio.h>

int main() {
    int x = 10;        // 정수형 변수 x를 선언하고 초기화
    float y = 3.14;    // 실수형 변수 y를 선언하고 초기화

    printf("x: %d\n", x);
    printf("y: %f\n", y);

    return 0;
}

 

위의 코드는 C언어입니다.

C언어에서 int x와 float y라는 부분이 보일텐데 이렇게 int형과 float로 변수의 타입을 지정합니다.

 

public class Example {
    public static void main(String[] args) {
        int x = 10;        // 정수형 변수 x를 선언하고 초기화
        double y = 3.14;   // 실수형 변수 y를 선언하고 초기화

        System.out.println("x: " + x);
        System.out.println("y: " + y);
    }
}

 

 

위의 코드는 자바 코드의 일부 예시입니다.

자바 또한 int형과 double을 통해 변수의 타입을 지정합니다.

 

이렇게 코드를 기계어로 변환하는 과정 자체(= 컴파일 타임)에서 변수의 타입을 지정해주고 이를 검증하는 단계를 정적타이핑이라 합니다.

 


 

이제 파이썬을 한번 보도록 하겠습니다.

 

class Student:
  def __init__(self):
    self.name = None
    self.ban = None
    self.no = None
    self.kor = None
    self.eng = None
    self.math = None
   

s = Student()
s.name = "홍길동"
s.ban = 1
s.no = 1
s.kor = 100
s.eng = 60
s.math = 70
total = s.kor + s.eng + s.math
average = float(total/3)
print("이름 : ", s.name)
print("총점 : ", total)
print("평균 : ", average)

 

여기서 클래스 부분에 name,ban,kor,eng,math와 같은 파라미터의 타입이 따로 지정이 안된것을 볼 수 있습니다.

이렇게 코딩시에 따로 변수의 타입을 지정하지 않고 컴파일러가(더 정확하게는 인터프리터) 동적으로 결정이 되는것을 동적 타이핑이라 합니다.

 

 

'프로그래밍 언어 > Python' 카테고리의 다른 글

클래스와 객체 2번째 이야기  (0) 2024.01.06
클래스와 객체 1번째 이야기  (0) 2024.01.02
NameSpace란?  (0) 2023.12.29
파이썬의 동작과정  (2) 2023.12.27