일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AWS 로드밸런서
- 로현 청춘의개발
- 모던 자바스크립트 Deep Dive
- ios 크로스브라우징
- net::R_SSL_PROTOCOL_ERROR
- activeElement
- React Query
- EC2 HTTPS로 연결
- but requested an insecure XMLHttpRequest endpoint 'http://~~’. This request has been blocked; the content must be served over HTTPS.
- 자바스크립트 옵셔널 체이닝
- 자바스크립트 null 병합
- 리액트 가상키보드
- 모두의시간
- 자바스크립트 호이스팅
- touchmove 이벤트
- Purdue university
- 리액트 쿼리
- 자바스
- 자바스크립트 논리합 연산자
- 자바스크립트 변수 호이스팅
- 자바스크립트 스코프 체인
- K-SW SQUARE
- 퍼듀대학교
- 자바스크립트 렉시컬스코프
- 사파리 가상키보드
- active blur
- 자바스크립트
- 자바스크립트 중첩함수
- refetchOnWindowFocus
- Kafka
- Today
- Total
개발 여행자, 현
[JS] 프로그래밍이란? - 모던 자바스크립트 Deep Dive 본문
크롬 익스텐션 서비스를 타입스크립트가 아닌 자바스크립트로 개발하고 있는데, 개념을 다시 한 번 정립해야될 필요성을 느껴서 오늘부터 한 달 동안 책을 완독하고자 한다.
자바스크립트 공부를 위해 책을 찾아보면 늘 상위권에 위치해 있고, 많은 개발자들이 추천해줬던 책이다.
처음 자바스크립트를 공부할 때는 초심자에게는 어려울 것이라고 하여 Do IT! 시리즈를 보았는데, 이제는 자바스크립트의 깊숙한 부분까지 학습하고자 이 책을 골랐다.
1. 프로그래밍 언어
명령을 수행하는 명령어를 컴퓨터에게 전달을 해야하는데, 컴퓨터가 이해할 수 있는 언어인 기계어(machine code)로 명령을 전달해야 한다. 하지만 사람이 기계어를 이해해서 기계어로 직접 명령을 전달하는데에는 한계가 있고 매우 어려운 일이다.
우리가 사용하는 언어와 매우 다르기도 하고, '비트' 단위로 기술되어 있기 때문이다.
그래서 우리가 사용하는 대안은 '컴파일러' 혹은 '인터프리터'를 이용하는 것이다.
약속된 구문(문법)으로 구성된 프로그래밍 언어를 사용해 프로그램을 작성하면 기계어로 변환을 해주는 일종의 번역기를 이용하는 것이다.
2. 구문과 의미
프로그래밍 학습은 문법을 배우는 것부터 시작한다. 하지만 문법을 잘 안다고 해서 프로그래밍을 잘한다고 말할 수는 없을 것이다.
외국어로 비유하면, 외국어를 잘하려면 상대의 말이나 문장을 정확히 이해한 후 문맥에 따른 적절한 어휘를 선택하여 논리적으로 문장을 구성해야 한다. 프로그래밍 언어도 마찬가지이다, 문법에 맞는 문장을 구성하는 것은 물론 '의미'를 가지고 있어야 언어의 역할을 충실히 수행할 수 있다.
자바스크립트의 변수에는 어떠한 타입의 값도 할당할 수 있다.
const number = 'string'
console.log(number * number);
위 예제는 문법적으로 전혀 문제가 없다. 하지만 의미적으로 옳지 않다. number라는 이름의 변수에 문자열이 할당되어 있기 때문이다. number 라는 변수에는 숫자를 할당하는 것이 의미적으로 옳다.
결국 프로그래밍은 요구사항의 집합을 분석해서 적절한 자료구조와 함수의 집합으로 변환한 후, 그 흐름을 제어하는 것이다.

해당 글은 [모던 자바스크립트 Deep Dive - 저자 이응모] 도서의 내용을 정리한 글입니다.
'JavaScript' 카테고리의 다른 글
[JS] 변수 (변수할당, 호이스팅, 가비지콜렉션) (0) | 2023.07.24 |
---|---|
[JS] 자바스크립트의 표준화와 특징 및 ECMA에 대하여 (0) | 2023.07.22 |
[Javascript] 배열 합치기 (concat, spread 전개연산자) (0) | 2022.08.02 |
[JavaScript] 자바스크립트 Replace() 문자 변환 (0) | 2022.04.06 |
[JavaScript] 자바스크립트 배열이 비어있는지 확인하기 (isArray, length) (0) | 2022.04.05 |