목록JavaScript (26)
정골라코딩

MongoDB -MongoDB란? : 대표적인 NoSQL, Document DB ->Mongo는 Humongous에서 따온 말로, 엄청나게 큰 DB라는 의미 (대용량 데이터를 처리하기 좋게 만들어짐) -RDB vs NoSQL RDB: Relational Database 관계형 데이터베이스 자료들의 관계를 주요하게 다룸. SQL 질의어를 사용하기 위해 데이터를 구조화해야 함 NoSQL: Non SQL 또는 Not Only SQL 구조화된 질의어를 사용하지 않는 데이터베이스 자료 간의 관계에 초점을 두지 않음 데이터를 구조화하지 않고, 유연하게 저장함 -NoSQL 을 사용하는 이유 SQL 을 사용하기 위해서는 데이터를 구조화하는 것이 필수 (DDL) -> 스키마에 정의된 데이터가 아니면 저장할 수 없는 제약..

NPM 과 모듈 -NPM 이란? -NPM 온라인 저장소 수많은 오픈 소스 라이브러리와 도구들이 업로드되는 장소 필요한 라이브러리나 도구를 손쉽게 검색 가능 Node.js 의 인기로, 거대한 생태계를 보유 -커맨드라인 도구 저장소에서 라이브러리 도구 설치 프로젝트 관리를 위한 다양한 명령어를 제공 프로젝트 설정/관리 프로젝트 의존성 관리 NPM 사용해 보기 -NPM을 사용한다는 것은? : NPM 커맨드라인 도구의 사용법을 익히는 것. 프로젝트의 생성부터 다양한 기능을 사용하는 법까지 학습 -프로젝트 생성하기 $npm init 프로젝트 디렉토리를 생성하고, 해당 디렉토리 안에서 npm init 명령어를 사용하면 몇 번의 질문을 통해 package.json 이라는 파일을 만들어 주고 이 디렉터리는 Node.j..

Node.js 모듈 (Common JS) vs ES6 모듈 노드에서 각 파일은 비공개 네임스페이스를 가진 독립적인 모듈입니다. (각 파일은 모두 모듈) 노드의 전역 객체 exports는 항상 정의 되어있습니다. (module.exports의 기본값은 exports가 참조하는 것과 같은 객체입니다.) ES6의 모듈성은 노드의 모듈성과 같은 개념이다. 각 파일이 하나의 모듈이며 파일에서 정의한 상수, 변수, 함수, 클래스는 명시적으로 내보내지 않는 한 해당 모듈에서만 사용됩니다. 모듈에서 값을 내보내면 다른 모듈에서 명시적으로 가져와 사용할 수 있습니다. Node 서버 생성 const http = require('http'); const server=http.createServer((request,respo..

Node.js 이해 Node.js의 등장 배경 Node.js의 탄생 -> Node.js는 자바스크립트를 어느 환경에서나 실행할 수 있게 해주는 실행기 Node.js vs Browser Node.js로 할 수 있는 것들 Node.js의 특징 Node.js 특징 한 줄 요약 =>싱글 스레드-비동기-이벤트 기반 스레드란? : 명령을 실행하는 단위; 한 개의 스레드는 한 번에 한 가지 동작만 실행 가능 싱글 스레드와 멀티 스레드의 차이점 그렇다면 싱글 스레드는 안 좋은 것 아닌가요? 장점) 스레드가 늘어나지 않기 때문에 리소스 관리에 효율적 단점) 스레드 기반의 작업들의 효율이 떨어짐 ex) CPU 연산 작업 그래서 Node.js는 비동기 동작으로 스레드 기반의 작업을 최소화합니다. 비동기란? -동작을 실행한 ..

Promise Callback 함수 A 호출에서 함수 B가 인자로 전달될 때 => 인자 값인 함수 B: 콜백 함수 함수 A의 매개변수로 전달되어 A안에서 호출됨: B의 실행 제어권을 A에게 전달 (콜백 함수는 동기적으로, 비동기적으로 유용하게 쓰임) 콜백 함수의 단점: 콜백 지옥 -콜백 함수 안에 또 다른 콜백 함수로 연쇄적으로 연결되어 있는 형태 -어디서 어떤 식으로 함수들이 연결 되어있는지 한눈에 파악 쉽지 않음 -비즈니스 로직 직관적 이해 어려움 -에러,디버깅, 문제 분성 등의 유지 보수가 어렵다 => 가독성이 떨어짐 콜백 함수의 단점: 비동기 함수 에러처리 에러가 전파되다 보니 비동기 함수에서 발생하는 에러를 처리하지 못함 Promise -콜백을 좀 더 깔끔하게 사용할 수 있다. -어떤 이벤트가 ..

ES6 최신 문법들 Symbol -ES6 에 도입된 7번째 데이터 타입 -변경 불가능한 원시 타입의 값 -다른 값과 중복되지 않은 유일무이한 값 => 이름 충돌 위험이 없는 프로퍼티 키 값을 만들기 위해 주로 사용 -다른 원시 타입과 다르게 리터럴 표기법이 없다 => 생성된 심벌 값은 외부로 노출되지 않음 => 무조건 Symbol()를 호출하여 생성 (생성자 함수가 아니라서 new 안 붙여야함) => 다른 값과 절대 중복 되지 않는 유일무이한 값 => Symbol를 프로퍼티 키 값을 사용, 접근할 때 대괄호 [] 사용 Symbol의 장점 -단순 문자열로 만든 키 값은 접근이 쉬움 -특별한 상수 값이 대체불가 할 수 있게 유일무이한 값으로 사용 가능 -프로퍼티로 심벌 값을 사용하게 되면 다른 프로퍼티 키와..

자바스크립트 제어 흐름 자바스크립트 비동기 이해하기 -자바스크립트는 다른 멀티스레드 프로그래밍 언어와 다른 방식으로 비동기 동작을 처리한다. -처음 자바스크립트를 접하는 경우, 동작에 대한 정확한 이해가 없으면 코드의 흐름을 따라가기 어렵다. -자바스크립트 내부의 비동기 동작을 이해하기 위해서는 이벤트 루프 등의 개념을 알아야만 한다. 자바스크립트 엔진 -자바스크립트 엔진은 하나의 메인 스레드로 구성된다. -메인 스레드는 코드를 읽어 한 줄씩 실행한다. -브라우저 환경에서는 유저 이벤트를 처리하고 화면을 그린다. 동기적 제어 흐름 -동기적 제어 흐름을 현재 실행 중인 코드가 종료되기 전까지 다음 줄의 코드를 실행하지 않는 것을 의미한다. -분기문, 반복문, 함수 호출 등이 동기적으로 실행된다. -코드의 ..
문제 설명) 배열의 모든 요소가 square number(정수의 제곱)인지 확인하는 boolean 함수를 작성하세요. Square number 예시: 9는 3 × 3으로 쓸 수 있기 때문에 true를 반환합니다. isSquare([1, 4, 9, 81, 36, 1024]) output: true isSquare([0, 4, -9]); output: false isSquare([]); output: undefined 1. Number.isInteger()를 사용해서 배열의 요소가 정수인지 확인하는 코드를 작성하세요. 2. Math.sqrt()를 사용해서 제곱근이 정수가 아니라면 undefined 를 반환하는 코드를 작성하세요. 빈 배열일 경우에는 undefined를 반환합니다. 배열의 요소 중에 squar..
문제 설명) 아래의 조건에 맞는 함수를 구현해 보세요. [조건] 함수명: isTriangle 입력: 숫자 3개 출력(반환): boolean (3개 숫자로 삼각형을 만들 수 있다면 true, 없다면 false) [예시 1] 입력: 7, 7, 15 출력: false [예시 2] 입력: 3, 4, 6 출력: true Tip 삼각형 여부를 확인하는 방법은, 어느 한 변의 길이가 나머지 두 변의 길이를 합한 것보다 길거나 같을 수 없다는 점을 이용하는 것입니다. function isTriangle(a,b,c){ if(a+b
문제 설명) 1. input String을 뒤집어서 반환하는 getReverse 함수를 return 문 한 줄로 작정하세요. split(), reverse()와 join()메소드를 사용하세요. input: "Happy Thanksgiving!" output: "!gnivigsknahT yppaH" 2. 입력값의 3자리 단위씩 컴마로 묶어서 반환하는 groupByCommas 함수를 return 문 한 줄로 작정하세요. toLocaleString() 메소드를 사용하세요. input: "2443243" output: "2,443,243" 3. 문자열의 중간에 있는 문자열을 반환하는 getMiddle 함수를 return 문 한 줄로 작성하세요. 이 때 문자열의 길이가 짝수라면 가운데 두글자를 반환하고 홀수라면 ..