Programmers

[13일차]Map 객체 활용, Express Generator, JS함수 선언 방식

PARKpatchnotes 2025. 9. 17. 19:02

1. Express에서 Map 객체에 Object를 저장하고 활용하는 방법

JavaScript의 Map 객체는 키-값 쌍의 효율적인 저장과 관리를 가능하게 하는 자료구조이다. 이 구조를 활용하면 객체 자체를 값으로 저장할 수 있으므로, 데이터베이스의 역할을 간단하게 대체할 수 있다. 아래는 상품 정보를 객체로 정의하고, 이를 Map에 저장한 뒤 Express로 제공하는 예시이다.

let Laptop = { name: "Laptop", price: 1000, des: "A high performance laptop" };
let db = new Map();
db.set(1, Laptop);

app.get("/products/:id", (req, res) => {
  const id = parseInt(req.params.id);
  const product = db.get(id);
  if (product) {
    res.json({
      productId: id,
      productName: product.name,
      productPrice: product.price,
      productDescription: product.des,
    });
  } else {
    res.status(404).send("Product not found");
  }
});

핵심 포인트

  • Map 객체의 키로 상품 ID를, 값으로 상품 객체를 저장함으로써, 신속하면서도 유연하게 데이터를 관리할 수 있다.
  • Express 라우터에서 Map.get(id) 메서드를 통해 객체에 접근하여, RESTful API의 구현이 용이해진다.
  • 데이터의 구조화와 관리의 효율성을 동시에 추구할 수 있다.

2. Express Generator의 의의와 존재 목적, 그리고 활용상의 이점

소개

Express Generator는 Node.js의 대표적인 웹 프레임워크인 Express의 표준 프로젝트 구조를 자동으로 생성해주는 명령행 도구이다.

존재하는 이유

  • 웹 애플리케이션 개발 초기 단계에서 반복적으로 수행해야 하는 디렉터리 구조 설계, router 및 view 엔진 설정 등을 자동화하여 개발자가 본질적인 로직 구현에 집중할 수 있도록 도와준다.
  • 일관성 있는 프로젝트 구조를 제공함으로써, 협업 환경과 유지보수의 효율성을 극대화할 수 있다.

사용할 때의 장점

  • 신속한 프로젝트 착수: 복잡한 환경 설정 없이 즉시 개발을 시작할 수 있는 기반을 마련해준다.
  • 구조의 표준화: Express 커뮤니티에서 권장하는 구조로 프로젝트가 세팅되어, 신규 인원의 정착과 협업이 수월해진다.
  • 확장성과 관리의 용이성: routes, views, public 등 기능별로 폴더가 분리되어 있어, 기능 추가 및 관리가 용이하다.
  • 다양한 옵션 제공: 뷰 엔진(ejs, pug, hbs 등)과 CSS 프리프로세서(sass, less 등)의 선택이 자유롭다.

3. JavaScript 함수 선언 방식의 네 가지 유형

JavaScript에서는 동일한 기능의 함수를 네 가지 방식으로 선언할 수 있다.

// 1. 함수 선언식 (Function Declaration)
function add1(x, y) {
  return x + y;
}

// 2. 함수 표현식 (Function Expression)
let add2 = function (x, y) {
  return x + y;
};

// 3. 화살표 함수 (Arrow Function - 블록 바디)
let add3 = (x, y) => {
  return x + y;
};

// 4. 화살표 함수 (Arrow Function - 표현식 바디)
let add4 = (x, y) => x + y;

해설

  • 함수 선언식은 코드 상단으로 끌어올려지는(호이스팅 되는) 특징이 있어, 선언 이전에도 호출이 가능하다.
  • 함수 표현식은 변수에 익명 함수를 할당하는 형태로, 호이스팅이 적용되지 않는다.
  • 화살표 함수function 키워드의 생략이 가능하며, this 바인딩 방식이 다르다는 장점이 있다. 특히 표현식 바디를 활용하면 코드가 매우 간결해진다.