2025-02-12학습 (Node.js, json)

airbus·2025년 2월 12일

프로그래머스

목록 보기
9/93

🔵 Today

Node.js의 express 모듈
GET으로 데이터 요청하기
객체와 json

📘 Learned

express

express : http모듈처럼 node 환경에서 웹 서버의 기능을 제공하는 웹 서버 '프레임워크'입니다.
설치 : npm 사이트에서 express 검색시 나오는 'exact match'가 붙어있는 게시글에서 install 명령어와 기능, 사용법 확인이 가능합니다.
install > npm i express (터미널에 입력)

※ 설치 후 오류

  • [MODULE_NOT_FOUND] cannot find module express : 말 그대로 모듈을 찾을 수 없다는 뜻 입니다. npm 버전, 파일이 존재하지 않음, 경로 이상 등이 원인이 될 수 있다고 합니다.
  • 해결방법 : 다음과 같은 방법 시도 중 해결되었습니다.
    1) 해결안됨 : node 공식사이트에서 node 설치 파일을 다시 받아, 다시 설치.
    2) 해결안됨 : express 모듈 제거 후 다시 설치
    3) 해결완료 : VSC에서 node 관련 폴더, 파일 전부 삭제 (node_modules 폴더, package-lock.json, package.json) 후 다시 express 설치

위 과정에서의 문제점 : package.json 파일은 삭제하면 프로젝트에 사용한 의존성 모듈 목록이 삭제됩니다(필요한 모듈 확인 불가).. , 다행이 배우는 단계라 진행중인 프로젝트가 없어서 다행이지만.

📁 혹시라도 삭제할 경우 : 일반적으로 프로젝트 진행시 git을 사용하여 버전관리를 진행중일 것 입니다. git checkout package.json으로 마지막 커밋 상태로 복구하고 npm install을 입력하여 (package.json에 있는)모듈과 의존성들을 복구합니다.

get

get 메소드로 API를 만들고 호출하기

const express = require('express') //express 모듈을 불러옵니다.
const app = express() // express를 app에 저장합니다.

app.get('/', function (req, res) { //get으로 요청, req:요청시의 정보가 담김. res:서버에서 전송하는 정보가 담김.
  res.send('Hello World') // send: 메시지 전송
})

app.listen(7777) // 7777번 포트 사용.

// API : GET + "http://localhost:7777/______"

=> get 메소드로 ' /' 의 url을 요청하면 req, res 를 매개변수로 받은 (익명, 콜백)함수를 호출하겠다. 라는 것

object

객체(object) : 사람, 사물 같이 세상에 존재하는, 식별할 수 있는 모든 것을 객체라고 할 수 있습니다.
객체를 추상적이라고 하는데, 자료형이 정해져 있지 않고 다양한 자료형의 데이터를 담을 수 있습니다.

객체 생성 방법
1)
객체 생성후 속성 추가

let obj = new Object(); // 객체 생성 * Object에서 O는 대문자로 적어야합니다.

obj.country = "korea"; //객체에 데이터 입력
obj.money = 10000 // 키 : 값 // 키는 문자형을 사용합니다. 값은 모든 자료형이 가능합니다.
				// obj는 객체, money는 키, 10000은 값 입니다.
				// obj.money는 객체obj 의 속성(property)라고 합니다.

2)
중괄호 {} 사용 = 객체 리터럴

let obj = {	// 객체를 생성하고 {} 안에 속성( 키 : 값 ) 을 추가합니다.
	
	country : 'korea', //  속성은 '키 : 값'으로 구성되어 있습니다.
  	money : 30000,	// 속성 사이에는 ,(쉼표)를 사용합니다.
};

obj.book = 'booook';	// 객체.속성명 = 값; 으로 객체에 속성 추가가 가능합니다.

delete obj.money;	// 객체의 속성을 삭제합니다.

obj.country = 'southKorea'; // 속성 country의 값을 southKorea로 수정합니다.

객체 구조

const cup = {
	drink : function(spe) {	// 객체의 내부에서 정의된 함수입니다.
      return `${spe}로 물을 마십니다.`; // 메소드 = 객체의 행동을 정의
    }
  //=============================================
  size : 'M',	// 객체의 행동이 아닌 특징을 정의합니다.
  price : 3000,	// 속성 = 객체의 정보 
}


console.log(cup.drink('mug');
=> mug로 물을 마십니다.

const 객체
javascript 변수를 배울 때 let은 값을 변경이 가능하지만. const는 값 변경이 안된다고 했습니다.
그러면 const로 객체를 만들면 값이 변경 할 수 있는지에 대해서는 다음과 같습니다.

  • let A = 1; 일 때 A에 1을 대입하는데, 이때 1은 A라는 문자가 아니라 변수 A가 가르키는 메모리 주소에 저장이 됩니다.
  • const C = {country : 'korea', population : 40000000}; 와 같이 객체일 경우 C는 메모리의 주소를 '참조'하고 있습니다. const로 인해서 '참조'하고 있는 주소값의 변경은 불가능하지만, 객체 내부의 값들은 참조하고 있는 '주소'를 가르키며 때문에 객체의 속성 값들은 변경이 가능합니다.

ex) 아파트에서 주소는 고정이지만. 각 호수에 사는 사람들이 바뀌고 인테리어 공사는 가능한?

json

javascript object notation : 자바스크립트 객체 문법

  • Javascript 객체 문법을 따르는 문자 기반의 데이터 포맷입니다.
  • .json형식으로 시스템에서 데이터를 쉽고 효율적인(표준화된) 방식으로 작성한 텍스트 기반의 문서입니다.

  • Javascript 객체 리터럴 문법을 따르는 문자열입니다.
    └ ex) 객체형식 {키:값}, 배열형식 [값, 값, 값, 값]
    └ 그리고 ( " ) 큰 따옴표만을 사용합니다. ( ' ) X // js에서는 써도 되지만 json 에서는 X

- mdn json
- js and json

  • Javascript 에서만 사용하는게 아니라 다른 언어에서도 사용가능하며, 파싱(자료형변환)이 빠릅니다.
  • 클라이언트와 서버간 네트워크 통신, API 데이터처리, 파일 저장 에 많이 사용하는 방식입니다.

기타

  • VSC에서 분명 서버는 끈 것 같은데 '사용중' 오류가 나는 경우
    1.netstat -ano | findstr :(포트번호) - 해당 포트번호를 사용중인 프로세스 ID(PID)를 탐색합니다.
    2. TCP 127.0.0.1:(포트번호) 0.0.0.0:0 LISTENING 4812 - 4812 이 숫자가 PID 입니다.
    3. taskkill /PID 4812 /F - PID 강제종료
    위 과정을 실행하면 해당포트를 점유하고 있던 서버가 종료됩니다.

learned : nodejs의 expres 모듈과 get메소드를 사용한 api 통신방법에 대해 학습하였습니다.
liked : 여기저기서 조금씩 학습하고 조각조각 있던 지식들이 조금은 도움이 되었고 서로 어떤식으로 연결이 되고 사용이 되는지 알 수 있었습니다.
lacked : package.json을 삭제하면 안되는 줄 모르고 함부로 삭제했는데. 지금 단계에서 알게되어서 다행이라고 생각합니다.
longed for : 지금까지 배운것을 다시 한번 돌아보고, get이외의 메소드들도 사용해보고, sql 연동?도 학습하여 어떤식으로 웹서버의 기능을 만들 수 있는지에 대해 알아보려고 합니다.

0개의 댓글