본문 바로가기

분류 전체보기172

Package Manager (npm) Package Manager란? 패키지 매니저는 패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴입니다! 다른 사람들이 만들어준 코드를 다운로드 받거나, 자신의 코드를 배포하여 다른 사람이 쓸 수 있도록 할 수 있습니다. Node.js에서 대표적으로 사용하는 패키지 매니저는 npm과 yarn이 존재합니다. 패키지란? npm이나 yarn에 업로드된 Node.js 모듈을 패키지라고 부릅니다. 모듈이 다른 모듈을 참조하여 사용하는 것과 같이, 패키지도 다른 패키지를 사용할 수 있습니다. 이런 관계를 의존 관계라고 표현합니다. npm 이란? npm은 자바스크립트에서 사용할 수 있는 패키지(모듈) 관리자입니다! 여러분이 Python과 같은 언어에서 Flask나 BeautifulSoup과 같은 패키.. 2022. 12. 12.
클래스(Class) 클래스(Class)란? 클래스는 정보를 묶는 것 현실과 비슷한 개념(객체)을 나타내기 위한 도구를 클래스(Class)라고 부릅니다. 클래스는 미리 정의해놓으면 필요할 때마다 해당 클래스로 동일한 틀을 가진 객체를 만들 수 있습니다. 여기서 동일한 클래스를 이용해 생성한 객체를 인스턴스(Instance)라고 부릅니다. 클래스 연습해보기 class User { } const user = new User(); user.name = "김정민"; user.age = 29; user.tech = "Node.js"; console.log(user.name); // 김정민 console.log(user.age); // 29 console.log(user.tech); // Node.js 변수 user는 실제 빵, Use.. 2022. 12. 12.
에러 핸들링 (Error handling) 에러 핸들링(Error handling)이란? 에러 핸들링은 에러를 관리하는 방법이고, 예상치 못한 상황에 대처하는 방식입니다. 에러는 예상할 수 있는 에러와 예상치 못한 에러로 구분할 수 있는데, 일반적인 애플리케이션을 설계할 때에는 예상치 못한 에러 상황이 더욱 많이 일어날 것으로 가정해야 합니다. 프로그래머가 작성한 코드에서 예상치 못한 에러가 일어날 가능성은 언제나 존재하고, 이러한 에러 상황을 대비해 언제든지 처리할 수 있어야 합니다. try/catch 서버에서 에러가 발생하지 않게 하기 위해서 예외 처리를 진행합니다. 예외 처리는 일반적으로 try ... catch 문을 사용합니다. users에 들어있는 이름들을 String.toUpperCase()를 이용하여 대문자로 변경하려 할 때 문자열(.. 2022. 12. 12.
객체 리터럴 객체(Object) 란? Javascript의 데이터 타입의 크게 원시 타입과 객체 타입으로 분류됩니다. 원시 타입은 단 하나의 값만을 나타내고, 원시 타입의 값은 변경이 불가능 한 값입니다. 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료 구조이고, 객체 타입의 값을 변경 가능한 값입니다. Javascript는 객체(Object) 기반의 프로그래밍 언어이고, Javascript를 구성하는 거의 모든 것은 객체로 구성되어 있습니다. 객체(Object)는 0개 이상의 프로퍼티로 구성된 집합이며, 하나의 프로퍼티는 Key와 Value로 구성되어 있습니다. 객체 리터럴이란? 리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법입니다. 여기서 .. 2022. 12. 12.
비동기 함수 (Async Function) 특징 비동기 함수는 일반 함수나 화살표 함수와 아주 비슷하지만 두 가지가 다릅니다. 비동기 함수의 결과 값은 항상 Promise 객체로 resolve된다. 비동기 함수 안에서만 await 연산자를 사용할 수 있다. 이 두 가지 특징을 제외하면 기존처럼 일반 함수나, 화살표 함수처럼 사용할 수 있습니다. 아래 세 가지 함수 모두 결과 값은 Promise로 받습니다. // 비동기 + 일반 함수 async function 함수이름() { // 명령문 } // 비동기 + 익명 함수 async function() { // 명령문 } // 비동기 + 화살표 함수 async () => { // 명령문 } 이러한 특징은 마치 아래처럼 작성하는 것과 굉장히 비슷합니다. function 함수이름() { return Pro.. 2022. 12. 12.
프로미스(Promise) 프로미스(Promise)란? 자바스크립트에서 비동기 처리를 동기로 처리할 수 있게 돕는 Built-in(미리 내부적으로 정의된) 객체 유형입니다. 이 객체를 이용하면 여러분은 비동기 처리를 아주 손쉽게 할 수 있습니다. 비동기 처리를 왜 동기적으로 처리해야 하나요? 정확히 말하자면 Javascript 관점에서 비동기적인 코드를 동기적인 것처럼 처리한다는 것입니다. 왜 이런 동작이 필요할까요? 이전에 setTimeout 비동기 함수 처리 예제를 통해 비동기 함수보다 동기 명령이 우선적으로 처리되는 상황을 살펴보았습니다. 예제에서 살펴본 내용은 지극히 합리적입니다. 왜냐면 '그렇게 의도'했기 때문입니다. first를 출력하는 것이 Middle과 Last보다 늦는 것이 의도적이라는 것입니다. 그러나 First.. 2022. 12. 12.