제로부터 쌓는 개발일지
article thumbnail
반응형

웹 프레임워크(Web Framework)의 역할

  • 개발의 효율성 증대: 웹 프레임워크는 반복되는 기본적인 작업을 줄여주고, 표준화된 방법으로 웹 애플리케이션을 구축할 수 있도록 도와줌
  • 프로젝트의 구조화: 프레임워크는 일정한 구조와 패턴을 제공함으로써, 프로젝트의 일관성을 유지하고 유지 보수를 용이하게 함

 

Express.js의 주요 특징

  • 미들웨어 지원: Express.js는 요청과 응답 사이에 중간에 위치하는 미들웨어를 사용
    로깅, 보안, 데이터 파싱 등 다양한 작업을 용이하게 처리할 수 있도록 함
  • 라우팅 시스템: Express는 강력한 라우팅 시스템을 제공하여, URL에 따라 다른 동작을 수행할 수 있도록 설정 가능
  • 커뮤니티 및 생태계: Express는 Node.js에서 가장 인기 있는 프레임워크 중 하나이며, 강력한 커뮤니티와 풍부한 라이브러리 생태계를 보유

 

웹 서버와 Express.js의 관계

  • Express.js는 웹 서버 자체가 아니다: Express.js는 Node.js를 기반으로 하는 웹 서버를 구축하는데 도움을 주는 프레임워크
    Node.js 위에서 동작하며 웹 서버의 기능을 쉽게 구현할 수 있게 해 줌
  • 웹 서버의 기본 기능 제공: Express.js는 웹 서버의 기본적인 기능인 요청 처리 및 응답을 보내는 기능을 제공하여 웹 애플리케이션 개발 과정을 간소화

 

Express.js의 활용

  • 다양한 웹 애플리케이션의 개발: Express.js는 REST API, 웹 사이트, 실시간 통신 애플리케이션 등 다양한 유형의 웹 애플리케이션을 구축하는 데 적합
  • 확장성 및 유연성: Express는 매우 유연하며, 필요에 따라 다양한 미들웨어를 추가하거나 제거하여 애플리케이션 확장 가능

 


Express.js를 이용하면, Node.js를 기반으로 한 웹 애플리케이션 개발이 훨씬 더 간단해지고, 개발자는 웹 서버의 기본적인 구조와 기능을 빠르게 구현할 수 있게 됨

 

 

 

새 프로젝트 설정

  1. 프로젝트 폴더 생성 및 초기화
    - VS Code에서 FileOpen으로 새 폴더(spa-shop)를 생성
    - 새 파일 app.js를 생성 (서버의 주요 로직을 담게 될 중심 파일)
    - VS Code의 터미널에서 yarn init -y 명령어를 실행하여 package.json 파일을 생성
      프로젝트의 메타데이터와 의존성을 관리
  2. package.json 수정
    - package.json파일에 "type": "module"을 추가하여 ES6 모듈을 사용할 수 있도록 설정
      importexport 구문을 사용할 수 있음

 

Express.js 설치 및 기본 서버 코드 작성

  1. Express.js 설치
    터미널에서 yarn add express 명령어를 사용하여 Express.js를 설치
  2. 기본 서버 코드 작성 (app.js)
    - Express 인스턴스를 생성하고, 3000 포트에서 서버를 시작하는 기본 코드를 작성
    - app.get('/', (req, res) => {...})를 사용하여 루트 URL (/)에 대한 GET 요청을 처리하는 코드를 추가

 

서버 실행 및 확인

  1. 서버 실행
    - 터미널에서 node app.js를 실행하여 서버를 시작
  2. 브라우저를 통한 확인
    - 웹 브라우저를 열고 http://localhost:3000/ 주소로 접속하여 서버의 응답을 확인

 

추가 정보

  • 포트 충돌 해결: 이미 사용 중인 포트에 대한 충돌 문제가 발생할 경우 app.js에서 서버를 시작하는 포트 번호를 변경하거나, 사용 중인 프로세스를 종료해야 됨
  • 종속성 관리: package.json 파일은 프로젝트에 필요한 종속성을 관리하며, yarn.lock 파일은 설치된 패키지의 정확한 버전을 기록
  • node_modules: node_modules 디렉토리는 프로젝트에 설치된 모든 npm 패키지를 포함
    일반적으로 관리 시스템에서 제외됨
반응형
profile

제로부터 쌓는 개발일지

@PachyuChepe

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...