[Do it! Node.js 입문] 12. API
·
백엔드/Node.js
애플리케이션백엔드 개발에서 애플리케이션은 특정 기능을 제공하는 프로그램, 그 자체로 완전한 소프트웨어이다. APIApplication Programming Interface의 약자로, 애플리케이션 간에 자료를 주고 받으면서 특정 기능을 실행한다. API를 사용하면 다른 시스템끼리 자료를 주고 받을 수도 있고, 새로운 애플리케이션을 만들 수도 있다. 예를 들어 SNS 사이트를 만든다고 하면, 애플리케이션은 사용자 로그인을 위한 API, 게시물을 작성하는 API 등 다양한 API가 존재할 수 있다. 만일 웹사이트에서 사용한 API를 공개할 경우 이 API를 다른 애플리케이션에서도 활용할 수 있다. API는 프로그램의 명령 목록을 정리하고, 명령을 받으면 응용프로그램과 상호작용하여 명령에 대한 값을 전달한다...
[Do it! Node.js 입문] 11. 데이터베이스
·
백엔드/Node.js
백엔드는 많은 자료를 저장하고 가공하는 일을 한다. 당연하게도 백엔드 개발에 DB의 역할은 아주 중요하다.데이터베이스 데이터 베이스는 관계형 데이터베이스와 NoSQL 데이터베이스로 나눌 수 있다.관계형 데이터베이스(SQL데이터베이스)저장할 자료의 구조를 행과 열로 구분해서 table형태로 관리한다.퍼즐 조각을 연결하듯 필요할 때마다 원하는 정보를 검색하고 표시할 수 있다.관계형 데이터베이스는 SQL(Structed Query Language)언어를 사용하므로 SQL 데이터베이스라고도 한다.NoSQL 데이터베이스위에서 자료를 표 형태로 저장했다면 NoSQL 데이터베이스는 문서 형태로 저장한다. 자료의 구조가 표처럼 고정되지 않으므로 새로운 필드를 추가하기도 쉽고 기존 필드를 수정할 수도 있다. 즉, 자료의..
[Do it! Node.js 입문] 10. 미들웨어
·
백엔드/Node.js
미들웨어(middleware)말 그대로 '중간'에 있는 것. 웹 애플리케이션에서 클라이언트의 요청과 서버의 응답 사이에 위치하여 요청과 응답을 처리하는 함수이다.더보기파싱(parsing)주어진 데이터를 읽어들여서 원하는 형태로 분석하고 해석하는 과정을 말함.예를 들어 요청 안에 포함된 id와 password 값을 애플리케이션에서 읽을 수 있는 형태로 변환하는 것을 말한다.  애플리케이션 레벨 미들웨어 애플리케이션 단계에서 사용하는 미들웨어를 가리킨다.app.get("/contacts", (req, res) => {...});app.get("/contacts/:id", (req, res) => {...}); 라우트 코드에서 경로 다음에 오는 (req, req) => {...} 코드 부분이 미들웨어에 해당한..
[Do it! Node.js 입문] 09. express 활용
·
백엔드/Node.js
라우팅익스프레스에서는 다음과 같은 형식을 사용한다.app.METHOD(path, handler)app: express로 만든 인스턴스METHOD: GET, POST, PUT...path: 요청 URLhandler: 실행할 콜백 함수 요청 객체와 응답 객체주요 요청 객체의 종류와 속성은 다음과 같다.req.body서버로 POST 요청할 때 넘겨준 정보를 담고 있는 객체이다. 보통 HTML 폼을 통해 전송된 데이터나 API 클라이언트가 JSON 형식으로 전송한 데이터를 포함한다.req.cookies클라이언트에 저장된 쿠키 정보를 서버로 함께 넘겼을 경우 쿠키 정보를 담고 있다.쿠키에 관한 자세한 사항은 후에 다루겠다.req.headers헤더 정보를 가진다.req.paramsURL 뒤에 라우트 파라미터가 포함..
[Do it! Node.js 입문] 08. express 설정
·
백엔드/Node.js
익스프레스(express)는 노드에 기반한 백엔드 프레임워크로, js를 사용해서 서버 개발을 할 때 적합하다.  익스프레스의 주요 기능들라우팅미들웨어템플릿 엔진 (동적, ejs)정적인 파일 지원 (css, html) 작업 환경 만들기1. 애플리케이션 정보를 담는 package.json 만들기npm을 초기화하면 즉시 package.json을 만들 수 있다.이때 entry point를 app.js로 설정해준다. (국룰이기 때문) 2. 익스프레스 패키지 설치npm i 또는 npm install 키워드를 사용하여 express를 설치한다.설치가 끝나면 json파일에 현재 설치한 익스프레스 버전이 함께 표시된다. 3. 노드몬 설치노드몬(nodemon)은 브라우저에서 서버를 리스닝하고 있다가 애플리케이션 파일이 수..
[Do it! Node.js 입문] 07. 비동기 작업 처리 방법
·
백엔드/Node.js
비동기 작업을 처리하는 데에는 크게 3가지 방법이 있다. 콜백(callback) 함수Promiseasync/await위 3가지 방법으로 비동기 함수를 구현할 수 있는 것이다.  callback 함수콜백함수는 다른 함수의 파라미터로 전달되는 함수를 말한다.어떤 이벤트가 발생했을 때 호출되어야 하는 작업을 지정할 때 유용하다. 작업이 완료되면 지정된 함수를 호출한다.// 비동기 작업을 수행하는 함수function fetchData(callback) { // 비동기적으로 데이터를 가져오는 시뮬레이션 (예: AJAX 요청) setTimeout(function() { const data = '비동기 데이터'; // 콜백 함수 호출하여 데이터 전달 callback(d..
[Do it! Node.js 입문] 06. IP 주소와 포트
·
백엔드/Node.js
클라이언트와 서버 사이에 데이터를 주고받으려면 중간에 통로가 필요하다.이 통로를 흔히 socket(소켓) 이라고 한다. 소켓은 IP주소와 포트를 통해 서로 식별한다. 더보기예를 들어, 택배 차량 = 소켓물건을 받는 사람의 주소 = IP주소최종 도착점인 집 호수 = 포트 IP 주소인터넷에는 수많은 클라이언트 컴퓨터와 서버 컴퓨터가 연결되어 있어서 이 컴퓨터들을 서로 구별하기 위한 주소가 할당되어 있다. 이것을 Internet Protocol, 줄여서 IP주소라 부른다.  하지만 모든 사이트의 IP주소 자체를 기억하는 것은 불가능하다. 따라서 숫자 대신 영문으로 된 주소를 도메인이름이라 하고, 도메인 이름은 IP주소로 변환해 주는 서버를 DNS서버(Domain Name System Serve)라고 한다.  ..
[Do it! Node.js 입문] 05. HTTP 이해하기
·
백엔드/Node.js
웹은 클라이언트와 서버 간에 자료를 주고받으며 동작한다.이때 클라이언트와 서버 간에 미리 약속한 규칙이 있는데, 이것을 HTTP 프로토콜이라고 한다. HTTP 프로토콜HTTP 요청클라이언트 → 서버로 자료를 요청하는 것HTTP 응답서버 → 클라이언트로 자료를 보내는 것  요청과 응답클라이언트와 서버 사이에 정보를 주고받는 메시지에는 여러 가지 정보가 포함되어 있다.클라이언트 → 서버로 보내는 요청 메시지는 요청 헤더와 요청 본문으로 구성된다.위는 tia.png라는 파일의 헤더를 나타낸 것이다. General : 전체 네트워크 상태Response Headers : 응답 헤더. 서버에서 해당 파일을 보내면서 함께 넘겨준 정보Request Headers : 요청 헤더. 구글 웹 사이트 주소를 입력해서 서버로 ..