자바스크립트로 배우는 SICP

자바스크립트로 배우는 SICP. SICP란 무엇일까? 단어 뜻 그대로 풀어보면 Structure and Interpretation of Computer Programs. 즉 컴퓨터 프로그램의 구조와 해석이란 뜻이다.

해당 책은 MIT에서 CS 입문 과목을 기반으로 쓰여진 책으로 초기에는 스킴이란 언어로 쓰였으나 최근 자바스크립트 기반으로 다시 출판되었다고 한다.

 

스킴이란 언어가 생소하고 낯설어서 보다 익숙한 자바스크립트로 나왔지만 그럼에도 책의 두께와 내용에 압도되어 쉽게 쉽게 읽히지는 않았다.

 

이 책을 선택했던 이유는 그저 프로그래밍이 돌아가게끔 코드를 짜는데만 고민을 하였지 프로그래밍의 동작 원리와 어떻게 구조가 되어있는지는 크게 관심을 가지지 않았다.

이런 나를 반성하면서 책을 읽기 시작했는데 예상대로 쉽지는 않았지만 많은 부분을 얻고 생각할 수 있었다.

 

목차

 

함수, 데이터, 메타언어의 추상화, 레지스터 등 평소 깊게 생각하지 않았던 내용들을 다루고 있어서 오랜만에 CS를 제대로 공부한다는 느낌이 들어서 좋았다.

 

책의 두께와 내용의 깊이와 난이도 때문에 쉽게 읽히지는 않지만 읽으면서 점점 진지하게 주변 개발자들에게 꼭 읽어보면 좋을 것 같다고 추천해야겠다고 생각했다.

 

※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


WRITTEN BY
김치치즈스마일
세계정복!

,

모던 자바스크립트로 배우는 리액트 입문은 딱 제목에서도 써 있듯이 입문용 책이다.

모던 자바스크립트로 배우는 리액트 입문 표지

순수 백엔드 개발만 개발했던 사름들과 같이 웹개발이 아닌 다른 개발을 해오던 사람들에게 리액트를 공부하라고 하면 큰 장벽이 느껴질 수 있다.

그 이유 중에서 아무래도 자바스크립트에 대한 큰 이해도 없이 바로 리액트를 개발하려다 보니 어렵게 느껴지는 점이 컸을 거라고 생각한다. (나 또한 그랬던 경험이 있다...)

 

그런 점에서 이 책은 굉장히 기본적인 자바스크립트의 내용을 다루면서 시작하여 리액트의 기본적인 개념들을 익혀나가는 순서로 진행되어진다.

 

위의 목차처럼 기본적인 자바스크립트 내용들부터 시작해서 리액트의 기본적인 내용들을 하나씩 다 익혀나갈 수 있는 커리큘럼으로 잘 짜여진 책이다.

또한 흑백이 아닌 올 컬러에 가상의 인물 세명을 등장시켜서 대화의 형식으로 내용들을 잘 정리한 부분이 독특하면서도 한편으로는 알기 쉽게 설명하기 위해서 잘 표현한 것 같다는 생각이 들었다.

단원별 배울 내용을 대화 형식으로 미리 정리
주요 정의들을 정리

하지만 아쉽게도 책 제목과 책의 두께에서도 충분히 유추할 수 있듯이 실무에 바로 적용해서 사용할 수 있을 정도의 깊이있는 내용까지는 들어가지 않아서 이미 리액트에 대해서 어느정도 맛본 경험이 있는 사람들이 보기에는 거리가 있는 책이라고 생각한다.

 

그래도 리액트란 어떤 것인가? 궁금하거나 리액트를 처음해보기에 앞서 기본적인 내용들을 익히고 싶은 사람들에게는 매우 쉬우면서도 부담없이 읽을 수 있는 좋은 책이라고 생각한다.

 

※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


WRITTEN BY
김치치즈스마일
세계정복!

,

'무던한 개발자를 위한 모던한 자바스크립트'... 관심을 끌만한 엄청난 제목이었다.

이미 기존에 '인사이드 자바스크립트', '모던 자바스크립트 핵심 가이드' 책 두권을 가지고 있고 읽어 봤기 때문에

과연 이 책은 앞선 두 책과는 '어떤점이 다를 것인가?'가 의문이었다.

그런 점에서 똑같이 모던이라는 단어를 쓰면서도 라임을 이용해서 관심을 이끌게 한 제목은 탁월했다고 생각한다ㅎㅎ

 

서두는 미루고 책을 뙇 펴봤을 때 기존 책들과 다르면서 가장 마음에 들었던 점은 책의 구성을 그냥 이론을 쭉 나열한게 아니라 (아니 나열은 했지만) 단계별로 나누어서 구성하였다.

동그라미는 반드시 알아야 하는 기본 주제, 세모는 중급 주제, 별 모양은 프레임워크 개발자들이면 알아야 할 고급 주제, 모래시계(?) 모양은 복잡하고 어려운 주제. 이렇게 총 네 단계로 책이 구성되어져 있었다.

우선 당장은 많은 내용을 한번에 다 볼게 아니었기 때문에 나는 동그라미의 기본 주제들을 빠르게 읽어나갔다.

다른 책들은 보통 쭉 내용이 나열 되어 있어서 때론 어렵거나 이해가 안가더라도 순서대로 보면서 꼭 보려고 노력하는데, 이 책은 당장 이 내용은 내 수준에서는 안봐도 된다는걸 판단 할 수 있기 때문에 빠르게 볼 수 있어서 좋았다.

그렇다고 책의 내용이 얉거나 없는 것도 아니고 심화적인 내용도 많기 때문에 좋았다. 특히, 끝에 가면 타입스크리트 관련해서도 다루고 있었기 때문에 추후 단계적으로 계속 읽어볼 욕심도 많이 났다.

처음 자바스크립트를 접하면서 어떻게 공부해야 할지 모르는 사람들에게 빠르면서도 단계적으로 학습해 나갈 수 있는 아주 좋은 책이라고 생각한다. :)

 

 

※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

' > 프로그래밍' 카테고리의 다른 글

헤드퍼스트 디자인패턴  (0) 2022.04.24
다시 고등 수학  (0) 2022.04.10
처음 시작하는 파이썬  (0) 2021.08.22
모던 자바스크립트 핵심 가이드  (0) 2021.06.20
실전 아파치 카프카  (0) 2021.04.11

WRITTEN BY
김치치즈스마일
세계정복!

,

회사에서 일을 하면서 자바스크립트는 이제 더이상 뗄래야 뗄 수 없는 언어가 되었다.

하지만 제대로 기본부터 차근차근 자바스크립트를 공부하던건 어언 몇년 전으로 거슬러 올라가서 제이쿼리와 함께 공부 하던 때라 최신 트랜드에는 많이 뒤쳐지고 있다는 생각을 많이 하고 있었다. (물론 리액트를 좀 공부해보려고 끄적끄적 해보긴 했지만...)

 

그러던 중 "모던 자바스크립트 핵심 가이드"를 읽어볼 기회가 생겼다.

처음 책 소개를 보았을 때 가장 눈에 띄었던 건 최신 내용들을 담고 있다고 하여 평소 최신 트랜드를 익히고 싶었기에 매우 흥미로웠다.

 

모던 자바스크립트 핵심 가이드

처음 목차를 봤을 때는 굉장히 많은 내용들이 나열되어 있었지만 책을 직접 보면 알겠지만 책이 두껍지 않다.

책 제목처럼 진짜 핵심적인 내용들을 담고 있었다.

ES6 내용이랑 끝에가서는 타입스크립트와 ES2021까지 정말 최신 내용들을 고루고루 핵심적인 부분만 잘 담고 있었다.

 

완전 깊게까지는 다루고 있지는 않고 (그렇다고 책의 내용이 겉핡기나 가볍다는 것은 아니다. 있을 내용들은 다 있다.)

예제와 챕터마다 마지막에는 핵심적인 내용의 퀴즈까지 담고 있어서 초보자들도 읽기 괜찮은 책이라는 생각이 들었다. (예전에 샀던 한 자바스크립트 책은 너무 깊어서 이해하려고 읽고 또 읽고...ㅠㅠ)

 

핵심적인 내용들만 골라서 딱딱 배우는 느낌이 들어서 명쾌하면서 기분 좋았던 책이였다.

 

※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

' > 프로그래밍' 카테고리의 다른 글

무던한 개발자를 위한 모던한 자바스크립트  (0) 2022.02.23
처음 시작하는 파이썬  (0) 2021.08.22
실전 아파치 카프카  (0) 2021.04.11
혼자 공부하는 파이썬  (0) 2021.03.21
Flutter in Action  (0) 2021.02.21

WRITTEN BY
김치치즈스마일
세계정복!

,

자바스크립트에서는 함수도 객체다!!!

즉, 함수의 기본 기능인 코드 실행뿐만 아니라 함수 자체가 일반 객체처럼 프로퍼티들을 가질 수 있다.

 

function add(x, y) {
	return x + y;
}

add.result = add(1, 2);
add.status = 'OK';

console.log(add.result); // 5
console.log(add.status); // OK

 

정리하자면 자바스크립트의 함수란

- 리터럴에 의해 생성.

- 변수나 배열의 요소, 객체의 프로퍼티 등에 할당 가능.

var foo = 100;
var bar = function() { return 100;};
console.log(bar());     // 100

var obj = {};
obj.baz = function() { return 200;}
console.log(obj.baz()); // 200

- 함수의 인자로 전달 가능.

var foo = function(func) {
	func();
};

foo(function() {
	console.log('Function can be used as the argument');
};

- 함수의 리턴값으로 리턴 가능.

var foo = function() {
	return function() {
    	console.log('this function is the return value');
    }
};

var bar = foo();
bar();

- 동적으로 프로퍼티를 생성 및 할당 가능.

'프로그래밍 > Java script' 카테고리의 다른 글

함수 생성 방법  (0) 2019.05.29
자바스크립트 데이터 타입2  (0) 2018.08.04
자바스크립트 데이터 타입1  (0) 2018.08.04
자바스크립트(JavaScript)란?  (0) 2018.07.21

WRITTEN BY
김치치즈스마일
세계정복!

,

자바스크립트에서는 크게 세가지의 함수 선언 방식이 있다.

 

1. 함수 리터럴 방식

- function keyword로 시작.

- function keyword, 함수명(필수가 아닌 선택사항), 매개변수 리스트, 함수 몸체로 구성.

 

function add(x, y) { // 함수명인 add는 선택사항.
	return x + y;
}

 

1-1. 함수 선언문 방식

- 함수 리터럴 방식과 형태는 같으나 함수명이 반드시 정의되어 있어야 함.

 

function add(x, y) { // 함수명인 add는 필수 정의.
	return x + y;
}

 

2. 함수 표현식

- 함수 리터럴 방식으로 함수를 만들고, 이를 변수에 할당하여 함수를 생성하는 방식.

- 함수명은 선택 사항이며, 보통 사용하지 않음.

- 함수 표현식에 사용된 함수명은 외부 코드에서 접근이 불가능.

 

var add = function(x, y) { // add는 함수 변수이지 함수명이 아님.
	return x + y;
};

var plus = add;
console.log(add(1, 2));  // 3
console.log(plus(2, 3)); // 5
var add = function sum(x, y) { // add는 함수 변수이지 함수명이 아님.
	return x + y;
};

console.log(add(1, 2));  // 3
console.log(sum(1, 2)); // Uncaught ReferenceError : sum is not defined 

 

3. Function() 생성자 함수를 통한 방식

- 자바스크립트의 함수도 Function()이라는 기본 내장 생성자 함수로 부터 생성된 객체.

- 잘 쓰지 않음.

 

var add = new Function('x', 'y', 'return x + y');
console.log(add(3, 4) // 7

 

 

[출처] 인사이드 자바스크립트

'프로그래밍 > Java script' 카테고리의 다른 글

함수도 객체다!  (0) 2019.05.29
자바스크립트 데이터 타입2  (0) 2018.08.04
자바스크립트 데이터 타입1  (0) 2018.08.04
자바스크립트(JavaScript)란?  (0) 2018.07.21

WRITTEN BY
김치치즈스마일
세계정복!

,

자바스크립트는 크게 기본 타입과 참조 타입으로 데이터 타입이 나뉜다.

또한 기본 타입은 숫자(Number), 문자열(String), 불린 값(Boolean), undefined, null로 나뉜다.

이번에는 자바스크립트이 기본 타입들에 관하여 알아보자.

 

 

※ 자바스크립트의 데이터 타입

 

기본 타입이란?

- 자바스크립트의 기본 타입에는 숫자(Number), 문자열(String), 불린값(Boolean), undefined, null이 있음.

- 그 자체가 하나의 값을 나타냄

 

숫자(Number)

- 다른 언어들의 경우 대게 정수, 실수에 따라서 int, long, float, double 등 다양한 숫자 타입이 존재하지만 자바스크립트에서는 단 하나의 숫자형만 존재

- 자바스크립트에서는 모든 숫자를 64비트 부동 소수점 형태로 저장하기 때문

- 단, 자바스크립트에서는 모든 숫자를 실수로 인식하기 때문에 소수부분까지 출력하게 됨


var num = 5 / 2;
console.log(num); // 2.5 출력
console.log(Math.floor(num)); // 2 출력

 

문자열

- 문자열은 작은 따옴표(')나 큰 따옴표(")로 생성

- C나 Java와 같이 char라는 문자 하나만을 나타내는 데이터 타입이 별도로 존재하지 않음

- 한번 정의된 문자열은 변하지 않음


var str = 'test';
console.log(str[0], str[1], str[2], str[3]); // test 출력
str[0] = 'T';
console.log(str); // test 출력

 

불린값

- true, false 값.

 

undefined

- 값이 비어있음을 나타냄

- 자바스크립트 환경 내에서 기본적으로 값이 할당되지 않은 변수

- 변수 자체의 값 또한 undefined

- 즉, 자바스크립트에서의 undefined는 타입이자 값을 나타냄

 

null

- 값이 비어있음을 나타냄

- 개발자가 명시적으로 값이 비어있음을 나타내느데 사용

- null 타입의 typeof 결과는 null이 아니라 object

 

 

[출처] 인사이드 자바스크립트


'프로그래밍 > Java script' 카테고리의 다른 글

함수도 객체다!  (0) 2019.05.29
함수 생성 방법  (0) 2019.05.29
자바스크립트 데이터 타입2  (0) 2018.08.04
자바스크립트(JavaScript)란?  (0) 2018.07.21

WRITTEN BY
김치치즈스마일
세계정복!

,

자바스크립트란 무엇일까? 우리가 흔히 알고 있는 자바(Java)랑 이름이 비슷한데 자바의 다른 이름인 것일까?

아니면 형제 관계의 언어일까?

지금부터 자바스크립트란 무엇인지 알아보자! 

 

자바스크립트란?

웹 브라우저에서 동작하는 스크립트 언어.

넷스케이프에서 개발되었으며 초기에는 라이브스크립트라는 이름으로 개발.

이후 썬 마이크로시스템에서 개발한 자바와 이름을 같게 하는 마케팅 조약을 체결한 후, 자바스크립트라는 이름으로 발전하기 시작.


자바스크립트의 장점

- 유연하며 뛰어난 표현력을 가짐.

- 느슨한 타입 체크로 개발자에게 타입 체크에 대한 자유를 줌.

- 웹개발, 서버개발, 애플리케이션 개발 등 다양한 용도에 쓰일 수 있음.


자바스크립트의 단점

- 디버깅이 어려움

- 타입 체크가 자유로운만큼 컴파일 타임에서 에러를 발견하지 못하고 런 타임 시 발견.

- 최상위 레벨의 객체들은 모두 전역 객체 안에 위치하여, 이름 충돌의 위험성 존재.

 


[출처] 네이버 백과사전

[출처] 인사이드 자바스크립트

'프로그래밍 > Java script' 카테고리의 다른 글

함수도 객체다!  (0) 2019.05.29
함수 생성 방법  (0) 2019.05.29
자바스크립트 데이터 타입2  (0) 2018.08.04
자바스크립트 데이터 타입1  (0) 2018.08.04

WRITTEN BY
김치치즈스마일
세계정복!

,