전체 글

· JS
Async & Await async와 await를 사용하면 synchronous식으로 promise를 사용하게 해줌 기존에 존재하는 promise를 감싸 사용하기 쉽게 해주는 syntactic sugar Promise가 항상 나쁘다는 것은 아님 Async 아래 두 fetchUser function은 똑같이 promise를 리턴함 // promise function fetchUser() { return new Promise((resolve, reject) => { resolve('chamy'); }); } // async async function fetchUser() { return 'chamy'; }async를 사용하면 코드 블럭이 promise로 변경됨 async를 사용하..
13장 특이한 데이터형 목차 13.1 구조체 13.2 포인터 13.3 전역 데이터 13장에서는 특이한 데이터형에 대해 다룬다. 구조체, 포인터, 전역 데이터에 대해 다루는데 일반적으로 잘 사용되지 않는 부분일 수도 있다. 포인터 같은 경우는 자바, C# 등의 언어에서는 에러 발생 위험이 높아 제공하지 않는 형이고, 구조체의 경우 내가 아는 한 C와 C++에서만 사용한다. 전역 데이터는 사용하지 않는 것을 추천하는 것을 많이 들어봤을 것이다. 전역 데이터를 사용해야하는 상황이 생길 경우 어떻게 사용하는지에 대해 설명하고 있다. 13.1 구조체 "구조체"라는 용어는 서로 다른 형의 집합으로 구성된 데이터를 의미한다. C와 C++의 struct와 마이크로소프트 비주얼 베이직의 Structure를 다룬다. 구조..
· JS
Promise Promise는 비동기 처리를 위한 JS object State는 promise가 만들어져서 operation이 수행중인 경우 pending, 완료 상태는 fulfilled 상태, 문제가 발생한 상태는 rejected 상태 데이터를 만드는 Producer와 데이터를 소비하는 Consumer Producer const promise = new Promise((resolve, reject) => { // 네트워크 또는 파일을 읽어오는 부분을 주로 처리 console.log('doing something...'); setTimeout(() => { resolve('chamy'); }, 2000); });Promise는 생성되자마자 자동적으로 executor가 바로 실..
12장 기본 데이터형 목차 12.1 숫자 일반 12.2 정수 12.3 부동 소수점 수 12.4 문자와 문자열 12.5 불린 변수 12.6 열거형 12.7 이름 상수 12.8 배열 12.9 새로운 형 만들기(형 별명) 12.1 숫자 일반 숫자를 사용할 때 오류를 유발하지 않기 위한 지침 매직 넘버를 피한다. 필요하다면 0과 1은 그냥 사용한다. 0으로 나눔 오류를 미리 방지한다. 컴파일러의 경고에 주의를 기울인다. 12.2 정수 정수를 사용할 때 고려사항 정수 나눗셈을 검사한다. 정수 오버플로를 검사한다. 중간 결과에서의 오버플로를 검사한다. 12.3 부동 소수점 수 부동 소수점 사용 지침 서로 크기가 매우 다른 수를 더하거나 빼지 않는다. 동치 비교를 피한다. 라운딩 오류를 예측한다. 특정한 데이터형을 ..
· JS
Callback JS는 기본적으로 hoisintg 이후 동기적(Synchronous) -> 작성한 순서대로 동작 console.log('1'); // Synchronous setTimeout(() => console.log(2), 1000); // Asynchronous, Callback console.log('3'); // Synchronous // 1 // 3 // 2Synchronous Callback function printImmediately(print) { print(); } printImmediately(() => console.log('hello'));printImmediately가 hoisitng 돼서 가장 위에서 선언되고, 아래에서 이를 호출..
11장 변수 이름의 기능 목록 11.1 좋은 이름을 위한 고려 사항 11.2 특정 타입의 데이터 이름 짓기 11.3 이름 규약의 효과 11.4 비형식적인 이름 규약 11.5 표준 접두사 11.6 읽기 쉬운 짧은 이름 11.7 피해야 할 변수 이름 이번 장을 읽으면서 10장과 대부분 내용이 비슷하다고 느껴졌다. 10장을 보고 왔다면 가벼운 마음으로 읽고 넘어가면 되겠다. 11.1 좋은 이름을 위한 고려사항 변수 이름을 지을 때 그 이름이 변수가 나타내는 것을 완전하고 정확하게 설명하는지를 가장 중요하게 고려해야 한다. 좋은 이름을 생각해내는 효과적인 기법은 변수가 표현하는 것을 단어로 서술하는 것이다. 종종 서술문 자체가 가장 좋은 변수 이름인 경우가 있다. 나쁜 변수명을 자바로 작성한 예제 x = x -..
10장 변수 사용 시 고려할 사항 목차 10.1 데이터 사용 능력 10.2 변수 선언을 쉽게 만드는 방법 10.3 변수 초기화 가이드라인 10.4 범위 10.5 지속성 10.6 결합시점 10.7 데이터형과 제어 구조 사이의 관계 10.8 변수를 한 가지 목적으로만 사용하는 방법 10.1 데이터 사용 능력 이 장에서 기본적인 테스트를 통해 내가 어떤 수준의 데이터 사용 능력이 있는지 점검해보았다. 나는 숙련된 개발자 수준이 나왔는데 전혀 신뢰할 수 없었다. 내 스스로가 숙련되지 않았다고 생각하는데 이렇게 높은 점수가 나온 것이 의아했다. 그래도 그동안 공부한 것이 헛되지는 않았다는 뿌듯함은 있었다. 정말로 숙련된 개발자가 되기 위해 자기 개발에 힘써야겠다. 10.2 변수 선언을 쉽게 만드는 방법 요즘 자바..
· JS
Json HTTP HyperText Transfer Protocol AJAX Asynchronous Javascript And XML 웹 페이지와 서버가 비동기적으로 데이터를 주고 받음 XML HTML과 같은 Mark up language 태그로 데이터를 표현할 수 있음 현재는 XML보다 JSON을 더 많ㅇ ㅣ사용 JSON JavaScript Object Notation ES3의 object에 큰 영감을 받아 만들어진 데이터 포맷 Javascript의 object처럼 key와 value로 이루어져 있음 프로그래밍 언어와 플랫폼에 독립적 -> 모든 언어에서 사용될 수 있음 Sender는 object를 serialize하고 receiver는 Object를 deserialize함 Object To JSON s..
9장 의사코드 프로그래밍 프로세스 목차 9.1 클래스 및 루틴 개발 단계 요약 9.2 전문가를 위한 의사코드 9.3 PPP를 이용한 루틴 구현 9.4 PPP 대안 이 장에서는 설계와 문서 작업 시 해야 하는 작업을 줄이고 품질을 향상시키는 의사코드 프로그래밍 프로세스(Pseudocode Programming Process, PPP)에 대해서 설명한다. 9.1 클래스 및 루틴 개발 단계 요약 클래스 생성 단계 클래스에 대한 일반적인 설계 작성 -> 클래스 내에 각 루틴 구현 -> 클래스를 전체적으로 검토하고 테스트 루틴을 작성하는 단계 '루틴 설계 -> 설계 검사 -> 루틴 코드 작성 -> 코드 검토 및 테스트' 단계를 필요할 때까지 반복하고 완료 9.2 전문가를 위한 의사코드 "의사코드"라..
· JS
Array Declaration 배열 선언 방법은 다음과 같이 두 가지 방법이 있음 const arr1 = new Array(); const arr2 = [1, 2]; Index Position const fruits = ['apple', 'banana']; console.log(fruits[0]); // apple console.log(fruits[1]); // banana Looping Over an Array 배열의 내용을 모두 출력하는 방법은 여러가지가 있음 전통적인 for loop // for for (let i = 0; i < fruits.length; i++) { console.log(fruits[i]); } 이전에 object에서 봤던 for of // for of for (let frui..
Chamy619
Chamy's Blog