분류 전체보기

    [TypeScript] 타입스크립트 컴파일러

    타입 스크립트 컴파일러 타입스크립트 텍스트 파일 실행은 먼저 아래와 같이 동작한다. 텍스트를 컴파일러 프로그램이 파싱하여 추상 문법 트리(abstract syntax tree, AST)라는 자료구조로 변환한다. 컴파일러 프로그램이 AST를 바이트코드로 변환한다. 런타임 프로그램에 바이트코드를 입력하여 평가 받고 결과를 얻는다. TS 1. 타입스크립트 소스 → 타입스크립트 AST 2. 타입 검사기가 AST를 확인 3. 타입스크립트 AST → 자바스크립트 소스 JS 4. 자바스크립트 소스 → 자바스크립트 AST 5. AST → 바이트코드 6. 런타임이 바이트코드를 평가 즉 프로그램을 실행한다는 것은, 컴파일러가 소스 코드를 파싱해서 AST로 만들고, 다시 AST를 바이트코드로 변환한 것을 런타임이 평가하도록..

    [TypeScript] 타입스크립트 장단점

    타입 스크립트(TypeScript) 언어는 크게 정적 타입과 동적 타입 언어로 구분할 수 있다. 타입 스크립트는 자바스크립트에 타입을 부여한 정적 타입 언어다. 만약 타입 스크립트를 브라우저에서 실행하려면 파일을 변환하는 트랜스 파일 과정을 거쳐서 사용한다. 공식적으로는 트랜스 파일이 아닌 컴파일된다고 표현한다. 컴파일의 경우 한 언어로 작성된 소스 코드를 다른 언어로 변환하는 것을 뜻하는 반면, 트랜스 파일의 경우 한 언어로 작성된 소스 코드를 비슷한 수준의 다른 언어로 변환한다는 차이가 있다. 예를 들어 Java를 컴파일하면 bytecode 코드가 출력되지만, C++를 트랜스 파일 하면 C가 출력되며 Typescript를 트랜스 파일 하면 Javascript가 출력된다. 하지만 공식적으로 컴파일된다고..

    [Python] 예외 처리(exception handling)

    예외 처리(exception handling) 프로그래밍을 배우다 보면 생각지도 못한 여러가지 오류가 발생하는 것을 경험할 수 있을 것이다. 이렇게 발생하는 오류는 크게 다음과 같이 두 가지로 구분할 수 있다. 문법 오류(syntax errors) 예외(exceptions) 문법 오류(syntax errors)는 프로그래밍을 배우는 과정에서 가장 많이 경험하게 될 오류일 것이다. while True print('안녕하세요!') 실행 결과 File "D:/test.py", line 1 while True ^ SyntaxError: invalid syntax 위와 같이 문법 오류가 발생하면 파서(parser)는 오류가 발생한 라인과 함께 그 대략적인 위치까지도 ‘^’ 기호를 이용하여 알려준다. 위의 예제에서..

    [Python] 파일 입출력

    파일 입출력 파이썬에서는 표준 입출력 함수인 input()과 print() 함수를 사용하여 프로그램과 사용자 사이의 입출력 작업을 수행할 수 있다. 그리고 프로그램과 파일 사이의 입출력 즉, 파일에 저장된 내용을 읽고 쓰는 동작은 파일 객체(file object)를 사용하여 수행할 수 있다. 파일 열고 닫기 파일의 내용을 읽고 쓰기 위해서는 우선 파일을 열어야만 한다. 파이썬에서는 내장 함수인 open() 함수를 사용하여 파일을 열 수 있다. 문법 파일객체 = open(파일명, 파일모드문자열) open() 함수의 첫 번째 인수에는 열고자 하는 파일의 이름과 경로를 문자열 형태로 전달하며, 두 번째 인수에는 파일의 사용 용도를 결정하는 파일 모드 문자열을 전달한다. 이렇게 호출된 open() 함수는 해당 ..

    [Python] 모듈(module)

    모듈(module) 프로그램을 개발하다보면 프로그램의 크기가 커짐에 따라 개발이나 유지보수를 위해 소스 파일을 여러 개로 나눠야 할 수도 있다. 또한, 한 번 정의해서 사용한 편리한 함수를 다른 프로그램에서 또다시 정의하지 않고 곧바로 사용하고 싶어질 수도 있다. 이를 위해 파이썬에서는 한 번 정의했던 변수나 함수, 클래스 등을 다른 파이썬 프로그램에서도 손쉽게 불러와 사용할 수 있도록 하나의 파일로 모아놓는 방법을 제공하며, 이것을 모듈(module)이라고 부른다. 모듈은 파이썬 프로그램에서 사용할 수 있는 여러 정의들과 실행 가능한 구문들을 담고 있는 하나의 파이썬 파일(.py)로써, 파이썬에서 기본적으로 제공하는 모듈뿐만 아니라 다른 사람이 만든 모듈을 사용하거나 자신이 직접 새로운 모듈을 작성하여..

    [Python] 상속(inheritance)

    상속(inheritance) 예를 들어 까치와 참새, 제비는 모두 ‘조류’라는 특징을 가지고 있다. 즉, 까치와 참새, 제비는 모두 서로 다른 ‘종’이지만 하늘을 날 수 있는 ‘조류’라는 공통점을 가지고 있는 것이다. 이러한 개념을 클래스에 적용시켜 보면, 까치와 참새, 제비라는 클래스는 모두 ‘조류’ 클래스의 특징을 ‘상속받았다’고 할 수 있다. 이것이 바로 객체 지향 프로그래밍의 대표적인 개념 중 하나인 상속(inheritance)의 개념이며, 이를 이용하면 이미 존재하는 클래스의 모든 특징을 물려받는 새로운 클래스를 손쉽게 생성할 수 있다. 이러한 상속은 기존 클래스를 직접 수정하지 않고, 기능을 추가하거나 변경하고 싶을 때 유용하게 사용할 수 있다. 이때 이미 존재하던 클래스를 부모 클래스(par..