마스터즈 웹 FE 프리스쿨 | Node.js와 개발환경

Autumn·2020년 12월 29일
1

코드스쿼드

목록 보기
1/2
post-thumbnail

Compiled vs Interpreted

자료 출처 바로가기

어떤 레시피를 보고 음식을 만든다고 해보자. 그런데 레시피가 고대 그리스 언어로 적혀있다. 이 때, 누가 이미 한국어로 번역해놓은 레시피를 보는 것은 Compiled, 고대 그리스 언어를 아는 사람이 바로 옆에서 한 줄씩 동시에 통역해주는 것은 Interpreted이다.

Compiled Languages

Examples of pure compiled languages are C, C++, Erlang, Haskell, Rust, and Go.

Compiled languages는 곧바로 machine code로 변환되기 때문에 프로세서가 코드를 실행할 수 있다. 그래서 Interpreted languages보다 더 빠르고 효과적으로 실행되는 경향이 있다. memory management, CPU usage와 같은 hardware aspects를 개발자가 컨트롤할 수 있다.

Compiled languages에는 build step이 있는데, 수동적으로 (사람이 직접) 컴파일을 해줘야 하고, 변경사항이 생길 때마다 rebuild 해줘야 한다.

Interpreted Languages

Examples of common interpreted languages are PHP, Ruby, Python, and JavaScript.

프로그램을 통해 실행되는 interpreter는 각각의 command를 한 줄 한 줄 실행한다. 변경 사항이 생긴다면 그 즉시 변경 사항을 해석(?)해준다. Interpreted languages는 Compiled languages보다 현저히 느렸으나, just-in-time compilation의 발전으로 인해 속도 차이가 줄어들고 있다.


Programming Paradigms

잘 정리되어 있는 사이트 바로가기

자바스크립트 언어는 script 언어 형태인데, 다양한 방식의 프로그래밍 패러다임을 가진 멀티패러다임 언어이다. 위키피디아를 보면 각각의 프로그래밍 패러다임에 어떤 프로그래밍 언어가 속하는지 표로 잘 정리되어 있다.


Debugging

Chrome DevTools 공식 사이트

VSC에서도 디버깅 툴 사용이 가능하고, 크롬 브라우저에서도 사용이 가능하다. 크롬에서는 한 줄 실행될 때마다 코드 바로 옆에 실행된 결과값이 나와서 좀 더 보기 편한 것 같기도..?

Step Over 다음에 호출되는 함수로 이동한다.
Step Into 호출된 함수 안으로 들어가 한 줄씩 읽는다.
Step Out 현재 실행 중인 함수에서 벗어난다. 해당 함수가 리턴된 곳으로 이동!


Node.js / JS 의 module

나름 js파일을 쪼개어 처음으로 html에 여러 개의 js파일을 등록해본 적이 있다. 이 때 아무 생각 없이 다른 js파일에서 함수나 변수를 가져다 썼었는데, 이렇게 마구 가져다 쓰면 프로젝트가 커지고 협업하는 개발자가 많아질수록 다양한 문제 상황에 노출되기가 쉽다고 한다. 그래서 함수나 변수, 객체 등을 모듈화시켜서 필요한 것에만 접근이 가능하도록 할 수 있다.

모듈은 두 가지 방법으로 사용할 수 있는데, exports/requireexport/import 이다. 전자는 node.js의 CommonJS 방식이고 후자는 ES6에서 도입된 방식이다. CommonJS 방식으로 사용하다가 이후에 ES6에서 자바스크립트 모듈이 정식으로(?) 도입되었다. ES6 문법이 좀 더 최신 스펙이니 import를 주로 사용하면 되겠지만, CommonJS 방식도 쓸 일이 있을 수 있으므로 익혀둘 필요가 있다. 자세한 내용과 사용법은 쓰기 귀찮아서 링크로 대신하겠음...

CommonJS와 ES6의 module 비교
CommonJS module 사용법
ES6 module 사용법

profile
한 발짝씩 나아가는 중 〰 🍁 / 자잘한 기록은 아래 🏠 아이콘에 연결된 노션 페이지에 남기고 있어요 😎

1개의 댓글

comment-user-thumbnail
2021년 1월 14일

잘 보고갑니다~

답글 달기