What I Learned Today
오늘은 프로젝트가 끝나고 다시 수업을 시작하는 날이다.
오전은 간단하게 프로그래밍에 대해 배웠다.
- 머신코드 : 컴퓨터가 직접 알아들을 수 있는 기계의 언어다.
- 컴퓨터는 오직 0과 1만 이해할 수 있다.
- 전기가 흐를 때는 1 흐르지 않을 때는 0의 상태
- 프로세서 : 머신언어를 처리하는 컴퓨터의 두뇌이다.
- 작은 칩으로 컴퓨터와 다른 장치에 상주한다.
- 저수준 언어 : 컴퓨터가 이해할 수 있고 사람도 조금은 읽기 쉽다.
- 어셈블리 언어가 대표적이다.
- 고수준 언어 : 사람이 쓰기 아주 쉬운 언어, 컴퓨터는 번역해서 이해한다.
- JS가 대표적이다.
- 자바스크립트 : 웹 사이트, 웹 애플리케이션, 모바일 앱 등을 개발하는 데 사용되는 공용 프로그래밍 언어
- 변환 : 컴파일링, 인터프리팅 과정을 거쳐 머신 코드로 변환된다.
- 컴파일러 : 컴파일러는 작성된 소스 코드를 머신 코드로 변환해 별도의 실행 파일을 생성한다. (번역)
- 인터프리터 : 소스 코드를 사전에 컴파일하지 않고 실행 될 대마다 실시간으로 컴파일된다. (통역)
- 인터미디에이트 코드 : 컴파일러와 인터프리터의 중간 단계에 있는 코드 (일부만 번역한 문서)
- 변환 : 컴파일링, 인터프리팅 과정을 거쳐 머신 코드로 변환된다.
- 프로그래밍 : 컴퓨터에 알려주는 일련의 명령어 모음이다.
- 컴퓨터에게 명령을 하려면 우리는 프로그래밍 구문으로 언급을 한다.
오후에는 JS의 에코시스템에 대해 배웠다.
- JS는 스크립트 언어로 스스로 실행될 수 없다.
- 웹 브라우저와 같이 JS를 실행할 수 있는 환경이 필요하다.
- JS의 장점은 모든 운영체제의 웹 브라우저에서 실행된다.
- 목적은 사용자와의 상호작용의 목적으로 사용된다.
- JS 엔진 : JS 코드를 실행하는 프로그램
- 대부분의 웹 브라우저에는 JS 엔진이 내장되어 있다.
- 이 엔진은 JS 코드를 읽고 분석하여, 실행 가능한 머신 코드로 변환한다.
- 변환 과정에서 다양한 최적화 기술이 적용되어 빠르고 효율적인 실행이 가능해진다.
- Chrome, Node.js, Edge(신버전), Opera, Brave는 V8 엔진을 사용한다.
- V8 엔진 : Google이 개발했고 C++로 작성되어 있다.
- 전통적인 인터프리터 대신 JIT 컴파일 방식을 사용해 직접 머신 코드로 컴파일한다.
- JS는 원래 브라우저 전용 언어였지만 V8 덕분에 서버 측에서도 실행이 가능해졌다.
- JS -> V8 -> 머신 코드
- 특징 :
- 바이트코드로 실행하고 머신 코드로 변환해 빠르다.
- 실행 중에도 코드 분석 및 성능 개선을 수행한다.
- 특징 :
The Problem I Faced
오랜만에 수업이라서 그런지 살짝 정신을 놓았다.
What I Tried to Do
시원한 물을 한잔 마셨다.
How I Solved It
So
Aha Moments
GIGO : Garbage In, Garbage Out 이라는 말의 약자로 쓰레기를 던지면 쓰레기를 뱉는다는 말이다.
모든 개발자가 아는 프로그래밍 원칙으로 입력 품질과 출력 품질 간의 관계를 설명한다.
프로그램에 잘못된 입력을 제공하면 필연적으로 의미 없는 출력이 나온다는 것을 의미한다.
반응형