Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 티스토리챌린지
- 이해할 수 있는
- 오블완
- boj
- 구름edu
- nomadcoders
- 자바스크립트
- 백준
- 노마드 코더
- SQLD
- SQL 개발자
- 노개북
- K-Digital Credit
- 자격증
- IT 지식
- 제로베이스
- js
- 공부를 가장한 일기일지도
- 알고리즘
- 최원영 저자
- CodeStates
- 비전공자를 위한
- 개발자북클럽
- 노마드코더
- 엘리스코딩
- Do it! 시리즈
- javascript
- 톺아보기
- 프로그래머스
- 모던 자바스크립트 deep dive
Archives
- Today
- Total
개발자를 희망하는 초보의 자기개발 이야기
정적 타입 언어와 동적 타입 언어, 강타입 언어와 약타입 언어 본문
반응형
정적 타입 언어(Static Typed Languages)
변수가 선언될 때 타입이 결정된다.
프로그램이 실행되기 전에, 컴파일 시간에 변수의 타입을 검사하며, 타입 에러는 주로 컴파일 시간에 발견되기 때문에, 실행 전에 많은 오류를 방지할 수 있다.
예: C, C++, Java, Rust 등
동적 타입 언어(Dynamic Typed Languages)
변수의 타입이 실행 시간에 결정된다.
타입 검사가 실행 시간에 이루어지며, 변수는 여러 타입의 값들을 담을 수 있다.
타입 에러는 프로그램이 실행될 때 발견될 수 있으며, 런타임 에러로 이어질 수 있다.
예: Python, JavaScript, Ruby 등
이 두 타입 시스템 간의 주요 차이는 타입의 안정성과 유연성에 관한 절충에서 발생한다.
정적 타입 언어는 보통 더 안정적이고 예측 가능하지만, 더 많은 코드 작성을 요구할 수 있다.
반면, 동적 타입 언어는 더 유연하고 개발 속도가 빠를 수 있지만, 런타임 오류의 가능성이 더 높다.
강타입 언어
다른 형끼리의 변환이 금지되어있고, 만약 변환을 하고 싶다면 명시적으로 타입을 선언해줘야한다.
(자료형이 맞지 않을 시 에러 발생)
예 : Java, Python, Ruby
약타입 언어
다른 형끼리의 변환이 가능하며, 암묵적으로 변환을 해주기도 한다.
예 : C, JavaScript, PHP
정리
- 자동 형 변환 가능 유무에 따라 강타입 / 약타입
- 자료형의 결정 시점에 따라 정적 타입 / 동적 타입 언어
반응형