목록
'홈' 729건
-
자주 사용하는 미들웨어미들웨어는 익스프레스의 핵심입니다. 요청과 응답의 중간(middle)에 위치하여 미들웨어라고 부릅니다. 라우터와 에러 핸들러 또한 미들웨어의 일종으므로 미들웨어가 익스프레스의 전부라고 해도 과언이 아닙니다. 미들웨어 요청과 응담을 조작하여 기능을 추가하기도 하고, 나쁜 요청을 걸러내기도 합니다.미들웨어는 app.use와 함께 사용됩니다. app.use(미들웨어) 꼴입니다. 익스프레스 서버에 미들웨어를 연결해봅시다.app.jsconst express = require("express");const path = require("path");const app = express();app.set("port", process.env.PORT || 3000);app.use((req, res, next) => { ..
-
dispatch를 이용한 포워드 방법dispatch를 이용한 포워드 방법dispatch를 이용한 포워딩 과정이 redirect 방법과 다른 점은 클라이언트의 웹 브라우저를 거치지 않고 서버에서 포워딩이 진행된다는 것입니다. 따라서 웹 브라우저 주소창의 URL이 변경되지 않습니다. 즉, 클라이언트 측에서는 포워드기 진행되었는지 알 수 없습니다. 즉, 클라이언트 측에서 포워드가 진행되었는지 알 수 없습니다.1. 클라이언트의 웹 브라우저에서 첫 번째 서블릿에 요청합니다.2. 첫 번째 서블릿은 RequestDispatch를 이용해 두 번째 서블릿으로 포워드합니다. 서블릿을 이용한 dispatch 포워딩 실습1. sec03.ex01 패키지에 다음과 같이 두 개의 서블릿 클래스를 추가합니다. 2. FirstServlet 클래스를 다음과 같이 작성합니..
-
어댑터(Adapter) 클래스리스너 인터페이스를 상속받아 이벤트 리스너를 구현할 때 리스너 인터페이스의 메서드를 모두 구현하여야 하는 부담이 있습니다.자바의 JDK에는 이런 부담을 줄이기 위해 리스너 인터페이스를 미리 구현해 놓은 클래스를 제공하는데 이것이 바로 어댑터 클래스(Adapter)입니다.class MouseAdapter extends MouseListener, MouseMotionListener, MouseWheelListener { public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public v..
-
익스프레스 프로젝트 시작하기먼저 learn-express 폴더를 만듭니다. 항상 package.json을 제일 먼저 생성해야 합니다. package.json을 제일 먼저 생성해야 합니다. package.json을 생성해주는 npm init 명령어를 콘솔에서 호출해도 되고 직접 파일을 만들어도 됩니다. version이나 description, author, license는 원하는 대로 자유롭게 수정해도 괜찮습니다.package.json{ "name": "learn-express", "version": "1.0.0", "description": "익스프레스를 배우자", "main": "app.js", "scripts": { "start": "nodemon app" }, "author": "cherry", "lice..
-
서블릿 포워드 기능 & 서블릿의 여러 가지 포워드 방법포워드 기능요청에 대한 추가 작업을 다른 서블릿에게 수행하게 합니다.요청(request)에 포함된 정보를 다른 서블릿이나 JSP와 공유할 수 있습니다.요청(request)에 정보를 포함시켜 다른 서블릿에 전달할 수 있습니다.모델2 개발 시 서블릿에서 JSP로 데이터를 전달하는 데 사용됩니다. 서블릿의 여러 가지 포워드 방법redirect 방법HttpServletResponse 객체의 sendRedirect() 메서드를 이용합니다.웹 브라우저에 재요청하는 방식입니다.형식: sendRedirect("포워드할 서블릿 또는 JSP"); Refresh 방법HttpServletResponse 객체의 addHeader() 메서드를 사용합니다.웹 브라우저에 재요청하는 방식입니다.형식: response.addHeader..
-
이벤트 리스너리스너 인터페이스이벤트 리스너란 이벤트를 처리하는 자바 프로그램 코드로서 클래스를 만듭니다. JDK는 이벤트 리스너 인터페이스(interface)를 제공하며, 개발자가 이 인터페이스를 상속받고 추상 메서드를 모두 구현하여 이벤트 리스너를 작성한다.ActionListener 인터페이스의 경우를 예로 들어봅시다. ActrionListener 인터페이스는 자바 패키지에 다음과 같이 선언되어 있습니다.interface ActionListener { public void actionPerformed(ActionEvent e); // Action 이벤트 발생 처리} 버튼을 누르는 Action 이벤트가 발생하면 actionPerformed(ActionEvent e) 메소드가 호출되고, 이때 ActionEvent 객체..
-
패키지 배포하기1. npm 웹 사이트(https://www.npmjs.com) 우측 상단의 Sign Up을 눌러 회원가입을 합니다.2. 회원가입 confirm 메일을 확인합니다.3. 콘솔에서 npm addUser 명령어를 입력하여 생성한 계정으로 로그인합니다. 이에 패키지로 만들 코드를 작성합니다. package.json의 main 부분의 파일명과 일치해야 합니다. 그래야 npm에서 이 파일이 패키지와 진입점임을 알 수 있습니다.index.jsmodule.exports = () => { return "hello package";}; 이제 npm publish 명령어를 사용하여 이 패키지를 배포해봅시다. 하지만 에러가 발생할 것입니다.콘솔$ npm publishnpm noticenpm notice 📦 npmtest..
-
기타 npm 명령어npm으로 설치한 패키지를 사용하다 보면 새로운 기능이 추가되거나 버그를 고친 새로운 버전이 나올 때가 있습니다. npm outdated 명령어로 업데이트할 수 있는 패키지가 있는지 확인해보면 됩니다. Current와 Wanted가 다르다면 업데이트가 필요한 경우입니다. 이럴 때는 npm updated [패키지명]으로 업데이트할 수 있습니다. npm update를 하면 업데이트 가능한 모든 패키지가 Wanted에 적힌 버전으로 업데이트하면 됩니다. Latest는 해당 패키지의 최신 버전이지만 package.json에 적힌 버전 범위와 다르다면 설치되지 않습니다.npm uninstall [패키지명]은 해당 패키지를 제거하는 명령어입니다. 패키지가 node_modules 폴더와 package.json에서 사..
-
회원 정보 삭제하기1. MemberServlet 클래스를 다음과 작성합니다. 태그를 이용해 회원 정보를 삭제할 수 있는 링크를 추가합니다. 브라우저에서 삭제 요청도 전송하므로 if문에 else if문을 추가하여 삭제 기능을 추가합니다.package sec02.ex02;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;import jav..
-
이벤트 객체이벤트 객체란?이벤트 객체는 현재 발생한 이벤트에 관한 정보를 가진 객체이며, 이벤트 리스너에게 전달됩니다. 모든 이벤트 객체들은 java.util.EventObject 클레스를 상속받으며, java.awt.event와 javax.swing.event 패키지에 구현되어 있습니다. 응용프로그램은 이벤트를 처리하기 위해 반드시 다음 import 문을 포함해야 합니다.import java.awt.event.*; // 이벤트 처리가 필요한 모든 소스에 포함import javax.swing.event.*; // 스윙 이벤트를 다루는 경우에 추가 포함 이벤트 객체 정보 Object getSource()getSource()는 현재 발생한 이벤트의 소스 컴포넌트의 레퍼런스를 리턴합니다. getSource()의 리턴 타..
-
이벤트 기반 프로그래밍이벤트 기반 프로그래밍이벤트 기반 프로그래밍(event drivem programming)은 이벤트의 발생에 의해 프로그램 실행 흐름이 결정되는 방식의 프로그래밍 패러다임입니다. 이벤트는 키 입력, 마우스 클릭, 마우스 드래그 등 사용자의 액션이나, 센서 등 외부 장치로부터의 입력, 네트워크를 통한 데이터 수신, 다른 스레드나 프로그램으로부터의 메시지 수신 등에 의해 발생합니다.이벤트 기반 응용프로그램은 각 이벤트를 처리하는 이벤트 리스너(event listener)들을 보유하며, 이벤트가 발생할 때마다 리스너가 실행됩니다. 그러므로 프로그램 내의 어떤 코드가 언제 실행될지는 전적으로 이벤트의 발생에 달려있습니다. 자바의 이벤트 기반 GUI응용프로그램 구조이벤트 리스너는 이벤트를 처리하는 프로그램 코드로..
-
패키지 버전 이해하기노드 패키지들의 버전은 항상 세 가지로 이루어져 있습니다. 심지어 노드의 버전도 세 자리입니다. 버전이 세 자리인 이유는 SemVer 방식의 버전 넘버링이 따르기 때문입니다.SemVer는 Semantic Versioning(유의적 버전)의 약어입니다. 버전을 구성하는 세 자리가 모두 의미를 가지고 있다는 뜻입니다.각각의 패키지는 모두 버전이 다르고 페키지 간의 의존 관계도 복잡합니다. 만약 어떤 패키지 간의 의존 관계도 복잡합니다. 만약 어떤 패키지의 버전을 업그레이드했는데, 그것을 사용하는 다른 패키지에서 에러가 발생한다면 문제가 됩니다. 많은 패키지가 서로 얽히다 보면 이 문제는 점점 더 심각해집니다. 따라서 버전 번호를 어떻게 정하고 올려야 하는지를 명시하는 규칙이 등장했습니다.버전의 첫 번째 자리..