[CS] 타입스크립트의 컴파일 과정
·
CS
타입스크립트는 브라우저가 바로 이해할 수 없기 때문에 JS로 변환하는 과정이 필요하다.이 과정에서 타입스크립트 컴파일러(tsc)가 어떻게 코드를 JS로 트랜스파일하고, 타입 검사 및 추론 과정이 어떻게 진행되는지 살펴본다. 1. Scanner (Lexer)연속된 글자인 소스코드를 컴파일러가 이해할 수 있는 의미 단위로 토큰화하는 과정이다.let age: number = 25;이를 토큰화하면 let identifier(age) : number = 25 ; 로 분리된다.토큰 단위로 쪼개면 파서가 구조를 이해하기 쉬워진다. 2. Parser토큰을 AST(추상 구문 트리)로 변환한다.코드 구조를 트리 형태로 표현해 컴파일러가 변수, 함수, 클래스, 표현식 등을 분석할 수 있게 한다.VariableDeclarat..
[CS] 컴파일러와 인터프리터, JIT
·
CS
더보기컴파일러와 인터프리터는 모두 프로그래밍 언어를 실행 가능한 기계어로 번역하는 프로그램이다.컴파일러는 전체 소스코드를 한 번에 미리 번역해 실행 시 프로그램의 속도가 빠르지만, 디버깅이 어렵다.반면 인터프리터는 소스코드를 한 줄씩 중간 코드로 모두 번역한 후 실행하여 디버깅이 용이하지만, 프로그램 실행 속도가 느려질 수 있다. 컴파일러 (Compiler)ex. C, C++장점컴파일이 완료된 실행 파일은 컴퓨터에서 빠르게 실행할 수 있어 효율적이다.기계어로 번역되기 때문에 프로그램 코드가 유출되지 않는다.컴파일 에러와 관련된 에러를 초기에 발견할 수 있다.단점코드를 수정하면 컴파일을 다시 수행해야 한다.소스 파일 전체를 컴파일 해야하므로 용량이 크다. 즉, 수정사항이 빈번이 발생할 경우 문제가 발생할..
[CS] Unix와 Linux
·
CS
1. Unix1.1 유닉스 탄생 배경 ( + C언어의 탄생 ! )https://joone.net/2017/02/18/%ec%9c%a0%eb%8b%89%ec%8a%a4%ec%99%80-c%ec%96%b8%ec%96%b4/ 8. 유닉스와 C언어1960년대 MIT에서 ITS(Incompatible Timesharing System)가 한창 개발되고 있는 동안, 미 동부의 다른 곳에서도 해커의 기운이 물씬 풍기는 곳이 있었는데, 바로 벨 연구소(AT&T Bell Laboratories)였다. 여기서 앞으joone.net 미국 AT&T 벨 연구소의 개발자들은 모든 컴퓨터에서 돌아가는 하나의 운영체제를 만들겠다는 Multics 프로젝트를 꿈꾸고 있었다.하지만 바램과 달리, 너무 많은 기능으로 코드가 복잡했고, 계속..
[CS] Git이란, (+ Gist)
·
CS
GitGit이란, 분산형 버전 관리 시스템(Distributed Version Control System, DVCS) 의 한 종류입니다. 버전 관리 시스템먼저, 버전 관리 시스템(Version Control System, VCS)은 파일(코드)의 변경 이력을 저장하고, 이전 상태로 되돌리거나 변경 사항을 추적할 수 있도록 도와주는 도구입니다.예를 들어, 코드를 과거 버전으로 되돌리거나, 누가/언제/무엇을 변경했는지 확인하거나, 여러 사람이 동시에 작업할 수 있도록 협업을 지원합니다. 중앙형 vs 분산형이러한 버전 관리 시스템은 크게 중앙형(Centralized)과 분산형(Distributed)로 나뉩니다.중앙형분산형SVNGit- 모든 작업 이력(버전 정보)은 서버에만 저장됨- 개발자는 서버에서 최신 버전..
[CS] 스택(Stack), 큐(Queue), 덱(Deque)
·
CS
스택 Stack LIFO (Last In First Out), 후입선출 방식의 선형 자료구조이다.가장 마지막에 삽입된 데이터가 가장 먼저 제거된다.주요 연산:push(item) : 데이터를 스택의 맨 위에 삽입pop() : 스택의 맨 위 데이터를 제거 및 반환peek() / top() : 가장 위에 있는 데이터를 제거하지 않고 조회제한 사항: 중간에 있는 데이터를 직접 접근, 수정, 삭제 불가사용 예시:웹 브라우저의 뒤로 가기 기능 (방문 기록이 스택처럼 쌓임)괄호 짝 검사재귀 호출 처리 (함수 호출 스택) 큐 Queue FIFO (First In First Out), 즉 선입선출 방식의 선형 자료구조이다.먼저 들어온 데이터가 먼저 나가며, 한쪽에서는 삽입만, 다른 한쪽에서는 삭제만 수행한다.주요 연산..