본문 바로가기

전체 아티클136

Promise를 사용한 비동기 통신, Async · Await 비동기 통신의 차이점 Promise와 Async · Await의 차이점 에러 핸들링 측면 Promise를 활용할 시에는 .catch() 문을 통해 에러 핸들링이 가능하다. Async · Await은 에러 핸들링 할 수 있는 기능이 없어 try-catch() 문을 활용해야한다. 코드 가독성 Promise의 .then() 지옥 가능성 (아래 내용에서 예시로 확인이 가능하다) 코드가 길어지면 길어질수록, Async · Await 을 활용한 코드가 가독성이 좋다. Async · Await 은 비동기 코드가 동기 코드처럼 읽히도록 가독성이 좋고, 흐름을 이해하기 쉽게 해준다. 자바스크립트에서 비동기 처리는 왜 필요할까? 자바스크립트는 동기적인 언어이다. 즉, 코드 하나하나가 처리되면서 지연시간이 발생하면 이후의 태스크들은 무아지경으로.. 2023. 2. 12.
취업에 있어 우리가 길잡이로 가져야 할 태도 - 인풋(일일커밋, 블로그, 강연, 컨퍼런스 등등)보단 아웃풋을 보여줘라 (00강의를 들었다 -> 뭘 위해서 이걸 들었고 어디에 이렇게 사용해서 결과가 나왔다.) (00책을 읽었다 -> 읽고나서 어떤 변화가 있었다.) - 회사는 공부잘하는 학생을 뽑는 것이 아니기 때문에 얼마나 노력했다보다 노력의 결과물이 이렇다는 것을 보여주기 - 깃허브, 블로그 등 코드를 보여줄 수 있는 부분을 첨부를 해줘야한다. - 이력서 글에서 나오는 사람의 느낌을 본다.(자기소개, 지원동기 등) - 혼자만의 실력을 보여줄 수 있는 프로젝트 하나는 있으면 좋음. - 태도, 로열티(회사, 팀원, 서비스에 대한 애정…)가 채용에 큰 영향을 끼친다. 2023. 2. 10.
Git과 Github의 차이 버전관리를 왜 사용할까요? 개발자 간의 협업을 위해 전체 개발 소스를 공유하면서, 개발 파트를 나눌 수 있고 같은 모듈을 개발하더라도 소스를 공유하면서 개발을 할 수 있기 때문에 사용을 한다. Git git은 본인의 코드와 수정내역을 기록하고 관리하도록 돕는 버전 관리 프로그램이며, 로컬에서 프로젝트의 기록을 스스로 관리할 수 있도록 해줍니다. git을 통해 브랜치를 생성하고 이전 브랜치로 복구, 삭제, 병합이 가능합니다. 하지만 로컬 저장소를 사용하기 때문에 다른 개발자와의 실시간으로 작업을 공유할 수 없다. Github git 저장소를 관리하는 클라우드 기반 호스팅 서비스입니다. git 저장소 호스팅 서비스는 클라우드 기반으로 다른 사람과 소스코드 공유가 가능하며 git의 기본적인 기능을 확장하며 제.. 2023. 2. 10.
불변성을 유지하려면 어떻게 해야할까? 불변성이란 ? 보통 불변성의 의미는 `상태를 변경하지 않는 것` 이라는 간단한 정의로 설명된다. 그러나 대부분 불변성에 대해 설명을 할 때, 함수 외부의 변수에 접근, 재할당을 해서는 안된다, 함수의 인자를 변경하면 안된다와 같이 상태를 변경하는 행위를 금지하는 예시 정도만 설명하고, 상태를 변경한다는 것이 정확히 무엇을 의미하는지는 자세히 설명을 하지 않는다. (나도 가벼운 예시 정도만 알고, 레퍼런스의 블로그를 통해 자세히 알게 되었다) 불변성이 이야기하는 상태의 변경이라는 것은 단순한 변수의 재할당을 이야기하는 것이 아닌, 메모리에 저장된 값을 변경하는 모든 행위를 의미하며, 여기에 변수의 재할당과 같은 행위도 포함되는 것이다. 우리는 변수를 통해 메모리에 접근을 하고 있다. 우리는 변수를 재할당하.. 2023. 2. 9.
호이스팅에서의 TDZ(Temporary Dead Zone) 호이스팅에서의 TDZ(Temporary Dead Zone) 자바스크립트에서는 `var`, `let`, `const` 세 변수로 이루어진다. 이 세 변수 모두 호이스팅이 일어나며, var은 선언과 동시에 초기화가 되기 때문에 undefined를 반환하지만 나머지 let과 const의 경우 선언만 될 뿐 초기화가 이루어지지 않는다. 이 단계에서 TDZ에 들어가게 된다. name = 'hello' // ReferenceError: Cannot access 'name' before initialization let name = 'hi' 위의 코드를 보자, `name`이 호이스팅 되지 않았다면, 두 번째 `let` 선언에서 already declared 에러가 났었어야했는데, 현실은 초기화 하기 전에 액세스 할 .. 2023. 2. 9.
var, let, const의 차이는 무엇일까? var, let, const의 세가지 차이점 var 선언은 전역 범위 또는 함수 범위이며, let과 const는 블록 범위({})이다. var 변수는 범위 내에서 업데이트 및 재선언이 가능하다. let 변수는 업데이트를 할 수 있지만 재선언이 불가하다. const는 재선언과 업데이트 모두 다 불가하다. 세 변수 모두 최상단으로 호이스팅이 되지만, var 변수만 undefined로 초기화되어지고, let과 const 변수는 초기화 되지 않는다. var과 let은 초기화하지 않은 상태로 선언할 수 있지만 (값을 지정해주지 않으면 undefined), const는 선언 중에 초기화를 해야한다. ES2015(ES6) 등장 전에는 문제점들이 있음에도 불구하고, `var` 로 변수를 선언하는 것이 지배적이었다. 따.. 2023. 2. 9.