목록

'홈' 731건

  • expression-session
    프로그래밍 언어/NODE JS · 댓글
    세션 관리용 미들웨어입니다. 로그인 등의 이유로 세션을 구현하거나 특정 사용자를 위한 데이터를 임시적으로 저장해둘 때 매우 유용합니다. 세션은 사용자별로 req.session 객체 안에 유지됩니다.app.use( session({ resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, name: "session-cookie", })); express-session 1.5 버전 이전에는 내부적으로 cookie-parser를 사용하고 있어서 cookie-parser 미들웨어보다 뒤에 위치해야 했지만..
  • JButton, 버튼 컴포넌트
    프로그래밍 언어/JAVA · 댓글 1
    JButtonJButton은 버튼 컴포넌트(간단히 버튼)를 만드는데 이용됩니다. 레이블 컴포넌트가 문자열이나 이미지를 화면에 출력하는 용도로 사용되는 것이라면, 버튼은 사용자로부터 명령을 받기 위해 사용됩니다. 버튼을 마우스로 클릭하거나 키로 선택하면 Action 이벤트가 발생합니다. 버튼 컴포넌트 생성버튼은 다음 생성자를 이용하여 생성합니다.JButton() // 빈 버튼JButton(Icon image) // 이미지 버튼JButton(String text) // 문자열 버튼JButton (String text, Icon image) // 문자열과 이미지를 가진 버튼 예를 들면 "hello" 문자열을 가진 버튼은 다음 코드로 생성합니다.JButton btn = new JButton("hello"); 이..
  • ServletContext의 파일 입출력 기능
    프로그래밍 언어/자바 웹 · 댓글 1
    1. 프로젝트 pro08의 WebApp/WEB-INF 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한 후 New > Folder를 선택합니다. 2. 폴더 이름으로 bin을 입력하고 Finish를 클릭합니다. 3. bin 폴더가 생성된 것을 확인할 수 있습니다. 4. bin 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한 후 New > File을 선택합니다. 5. 파일 이름으로 init.txt를 입력하고 Finish를 클릭합니다. 6. 생성된 파일에 메뉴 항목을 입력한 후 저장합니다. 7. 이제 init.txt에서 메뉴 데이터를 읽어와 출력하는 기능을 구현해 보겠습니다. 다음과 같이 ContextFileServlet 클래스를 준비합니다. 8. ContextFileServlet 클래스를 다음과 같이 작성합니다. ..
  • JLabel, 레이블 컴포넌트
    프로그래밍 언어/JAVA · 댓글
    JLabelJLabel은 문자열이나 이미지를 스크린에 출력하는 레이블 컴포넌트를 만드는 클래스입니다. 레이블 컴포넌트 생성레이블 컴포넌트 레이블이라고도 부르며, 다음 생성자를 이용하여 생성합니다.JLabel() // 빈 레이블JLabel(Icon image) // 이미지 레이블JLabel(String text) // 문자열 레이블JLabel(String text, Icon image, int hAlign) // 문자열과 이미지를 모두 가진 레이블 hAlign: 수평 정렬 값으로 SwitchConstant.LEFT, SwingConstant.RIGHT, SwingConstant.CENTER 중 하나 문자열 레이블 생성JLabel textLabel = new JLabel("사랑합니다"); 이미지 레이블 생..
  • cookie-parser
    프로그래밍 언어/NODE JS · 댓글
    cookie-parser는 요청에 동봉된 쿠키를 해석해 req.cookies 객체로 만듭니다. cookie-parser 미들웨어는 다음과 같이 사용합니다.app.use(cookieParser(비밀키)); 해석된 쿠키들들은 req.cookies 객체에 들어갑니다. 예를 들어 name=zecrocho 쿠키를 보냈다면 req.cookies는 { name: 'zerocho' }가 됩니다. 유효 기간이 지난 쿠키는 알아서 걸러냅니다.첫 번째 인수로 비밀 키를 넣어 줄 수 있습니다. 서명된 쿠키가 있는 경우, 제공한 비밀 키를 통해 해당 쿠키가 내 서버가 만든 쿠키임을 검증할 수 있습니다. 쿠키는 클라이언트에서 위조하기 쉬우므로 비밀 키를 통해 만들어낸 서명을 쿠키 값 뒤에 붙입니다. 서명이 붙으면 쿠키가 name..
  • ServletContext의 매개변수 설정 기능
    프로그래밍 언어/자바 웹 · 댓글 1
    1. 다음과 같이 ContextParamServlet 클래스 파일과 web.xml 파일을 준비합니다. 2. web.xml에 메뉴 항목을 설정합니다. 태그 안에 태그와 태그를 이용해 메뉴에 대한 하위 메뉴 항목을 설정합니다. menu_member 회원등록 회원조회 회원수정 menu_order 주문조회 주문등록 주문수정 주문취소 menu_goods 상품조회 상품등록 상품수정 상품삭제 3. ContextParamServlet 클래스를 다음과 같이 작성합니다. getServletContext() 메서드로 ServletContext 객체에 접근합니다. 그리고 getInitParameter() 메서드의 인자로 각각의 메뉴 이름을 전달한 후 메뉴 항목들을 가져와 이를 브라우저로 출력합..
  • 스윙 컴포넌트 소개
    프로그래밍 언어/JAVA · 댓글 2
    스윙 프로그램으로 GUI 화면을 구성하는 방법은 두 가지입니다.첫 번째, 컴포넌트 기반 GUI 프로그래밍입니다. 스윙 패키지에 주어진 GUI 컴포넌트를 이용하여 쉽게 GUI 프로그램을 작성할 수 있는 장점이 있지만, 자바 패키지에서 제공하는 GUI 컴포넌트의 한계를 벗어날 수 없습니다.두 번째, 그래픽 기반 GUI 프로그래밍입니다. 선, 원 등의 도형과 이미지를 이용하여 그래픽을 직접 환경에 그립니다. 이 방법은 자바 패키지의 컴포넌트에는 없는 독특한 GUI를 구성할 수 있고 실행 속도가 빨라 게임 등에서 주로 사용됩니다. 하지만, 프로그래밍에 대한 개발자의 부담이 큰 단점이 있습니다. 많은 경우 이 두 방법으로 혼합하여 GUI 응용프로그램을 작성합니다. 스윙 컴포넌트의 상속 구조스윙 컴포넌트는 JCom..
  • body-parser
    프로그래밍 언어/NODE JS · 댓글
    요청의 본문에 있는 데이터를 해석해서 req.body 객채로 만들어주는 미들웨어입니다. 보통 폼 데이터나 AJAX 요청의 데이터를 처리합니다. 단, 멀티파트(이미지, 동영상, 파일) 데이터는 처리하지 못합니다. 이 경우에는 뒤에 나오는 multer 모듈을 사용하면 됩니다.body-parser 미들웨어는 다음과 같이 사용합니다.app.use(express.login());app.use(express.urlencoder({ extended: false })); body-parser를 직접 설치해야 하는 경우도 있습니다. body-parser는 JSON과 URL-encoded 형식의 데이터 외에도 Raw, Text 형식의 데이터를 추가로 해셕할 수 있습니다.Raw는 요청의 본문이 버퍼 데이터일 때 해석하는 미..
  • ServletContext 사용법
    프로그래밍 언어/자바 웹 · 댓글 1
    ServletContext 클래스ServletContext 클래스는 톰캣 컨테이너 실행 시 각 컨텍스트(웹 애플리케이션)마다 한 개의 ServletContext 객체를 생성합니다. 그리고 톰캣 컨테이너가 종료하면 ServletContext 객체 역시 소멸됩니다. ServletContext 객체는 웹 애플리케이션 전체의 공통 자원이나 정보를 미리 바인딩해서 서블릿들이 공유하여 사용합니다.ServletContext 클래스의 특징은 다음과 같습니다.javax.servlet.ServletContext로 정의되어 있습니다.서블릿과 컨테이너 간의 연동을 위해 사용합니다.컨텍스트(웹 애플리케이션)마다 하나의 ServletContext가 생성됩니다.서블릿끼리 자원(데이터)을 공유하는 데 사용합니다.컨테이너 실행 시 생..
  • MouseEvent와 MouseListener, MouseMotionListener, MouseWheelListener
    프로그래밍 언어/JAVA · 댓글 1
    Mouse 이벤트Mouse 이벤트는 사용자의 마우스 조작에 따라 총 8가지 경우에 발생합니다. 이 중에서 5가지 경우는 MouseListener의 메서드가 호출되고, 2가지 경우는 MouseMotionListener의 메소드가, 나머지 1가지는 MouseWheelListener의 메소드가 호출됩니다. 모든 스윙 컴포넌트가 Mouse 이벤트를 받을 수 있으며, Mouse 이벤트가 발생하면 MouseEvent 객체나 MouseWheelEvent 객체가 리스너의 메서드에 전달됩니다. 마우스가 눌러진 위치에서 그대로 떼어지면 다음 순서로 메서드가 호출됩니다.mousePressed(), mouseReleased(), mouseClicked() 하지만 마우스가 드래그되면 다음 순서로 호출됩니다.mousePresse..
  • static
    프로그래밍 언어/NODE JS · 댓글
    static 미들웨어는 정적인 파일들을 제공하는 라우터 역할을 합니다. 기본적으로 제공되기에 따로 설치할 필요 없이 express 객체 안에서 꺼내 정착하면 됩니다. 다음과 같이 사용합니다.app.use('요청 경로', express.static('실제 경로'));app.use("/", express.static(path.join(__dirname, "public"))); 함수의 인수로 정적 파일들이 담겨 있는 폴더를 지정하면 됩니다. 현재 public 폴더가 지정되어 있습니다. 예를 들어 public/stylesheets/style.css는 http://localhost:3000/stylesheets/style.css로 접근할 수 있습니다. public 폴더를 만들고 css나 js, 이미지 파일들을 p..
  • morgan
    프로그래밍 언어/NODE JS · 댓글
    morgan 연결 후 localhost:3000에 다시 접속해보면 기존 로그 외에 추가적인 로그를 볼 수 있습니다.3000 번 포트에서 대기 중모든 요청에 다 실행됩니다.GET / 요청에서만 실행됩니다.Error: 에러는 에러 처리 미들웨어로 갑니다.// 에러 스택 트레이스 생략GET / 500 13.548 ms - 50 현재 콘솔에 나오는 GET / 500 7.409ms - 50 로그는 morgan 미들웨어에서 나오는 것입니다. 요청과 응답에 대한 정보를 콘솔에 기록합니다.morgan 미들웨어는 다음과 같이 사용합니다.app.use(morgan('dev')); 인수로 dev 외에 combined, common, short, tiny 등을 넣을 수 있습니다. 인수로 바꾸면 로그가 달라집니다. 개발 환경에..

expression-session

세션 관리용 미들웨어입니다. 로그인 등의 이유로 세션을 구현하거나 특정 사용자를 위한 데이터를 임시적으로 저장해둘 때 매우 유용합니다. 세션은 사용자별로 req.session 객체 안에 유지됩니다.app.use( session({ resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, name: "session-cookie", })); express-session 1.5 버전 이전에는 내부적으로 cookie-parser를 사용하고 있어서 cookie-parser 미들웨어보다 뒤에 위치해야 했지만..

JButton, 버튼 컴포넌트

JButtonJButton은 버튼 컴포넌트(간단히 버튼)를 만드는데 이용됩니다. 레이블 컴포넌트가 문자열이나 이미지를 화면에 출력하는 용도로 사용되는 것이라면, 버튼은 사용자로부터 명령을 받기 위해 사용됩니다. 버튼을 마우스로 클릭하거나 키로 선택하면 Action 이벤트가 발생합니다. 버튼 컴포넌트 생성버튼은 다음 생성자를 이용하여 생성합니다.JButton() // 빈 버튼JButton(Icon image) // 이미지 버튼JButton(String text) // 문자열 버튼JButton (String text, Icon image) // 문자열과 이미지를 가진 버튼 예를 들면 "hello" 문자열을 가진 버튼은 다음 코드로 생성합니다.JButton btn = new JButton("hello"); 이..

ServletContext의 파일 입출력 기능

1. 프로젝트 pro08의 WebApp/WEB-INF 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한 후 New > Folder를 선택합니다. 2. 폴더 이름으로 bin을 입력하고 Finish를 클릭합니다. 3. bin 폴더가 생성된 것을 확인할 수 있습니다. 4. bin 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한 후 New > File을 선택합니다. 5. 파일 이름으로 init.txt를 입력하고 Finish를 클릭합니다. 6. 생성된 파일에 메뉴 항목을 입력한 후 저장합니다. 7. 이제 init.txt에서 메뉴 데이터를 읽어와 출력하는 기능을 구현해 보겠습니다. 다음과 같이 ContextFileServlet 클래스를 준비합니다. 8. ContextFileServlet 클래스를 다음과 같이 작성합니다. ..

JLabel, 레이블 컴포넌트

JLabelJLabel은 문자열이나 이미지를 스크린에 출력하는 레이블 컴포넌트를 만드는 클래스입니다. 레이블 컴포넌트 생성레이블 컴포넌트 레이블이라고도 부르며, 다음 생성자를 이용하여 생성합니다.JLabel() // 빈 레이블JLabel(Icon image) // 이미지 레이블JLabel(String text) // 문자열 레이블JLabel(String text, Icon image, int hAlign) // 문자열과 이미지를 모두 가진 레이블 hAlign: 수평 정렬 값으로 SwitchConstant.LEFT, SwingConstant.RIGHT, SwingConstant.CENTER 중 하나 문자열 레이블 생성JLabel textLabel = new JLabel("사랑합니다"); 이미지 레이블 생..

cookie-parser

cookie-parser는 요청에 동봉된 쿠키를 해석해 req.cookies 객체로 만듭니다. cookie-parser 미들웨어는 다음과 같이 사용합니다.app.use(cookieParser(비밀키)); 해석된 쿠키들들은 req.cookies 객체에 들어갑니다. 예를 들어 name=zecrocho 쿠키를 보냈다면 req.cookies는 { name: 'zerocho' }가 됩니다. 유효 기간이 지난 쿠키는 알아서 걸러냅니다.첫 번째 인수로 비밀 키를 넣어 줄 수 있습니다. 서명된 쿠키가 있는 경우, 제공한 비밀 키를 통해 해당 쿠키가 내 서버가 만든 쿠키임을 검증할 수 있습니다. 쿠키는 클라이언트에서 위조하기 쉬우므로 비밀 키를 통해 만들어낸 서명을 쿠키 값 뒤에 붙입니다. 서명이 붙으면 쿠키가 name..

ServletContext의 매개변수 설정 기능

1. 다음과 같이 ContextParamServlet 클래스 파일과 web.xml 파일을 준비합니다. 2. web.xml에 메뉴 항목을 설정합니다. 태그 안에 태그와 태그를 이용해 메뉴에 대한 하위 메뉴 항목을 설정합니다. menu_member 회원등록 회원조회 회원수정 menu_order 주문조회 주문등록 주문수정 주문취소 menu_goods 상품조회 상품등록 상품수정 상품삭제 3. ContextParamServlet 클래스를 다음과 같이 작성합니다. getServletContext() 메서드로 ServletContext 객체에 접근합니다. 그리고 getInitParameter() 메서드의 인자로 각각의 메뉴 이름을 전달한 후 메뉴 항목들을 가져와 이를 브라우저로 출력합..

스윙 컴포넌트 소개

스윙 프로그램으로 GUI 화면을 구성하는 방법은 두 가지입니다.첫 번째, 컴포넌트 기반 GUI 프로그래밍입니다. 스윙 패키지에 주어진 GUI 컴포넌트를 이용하여 쉽게 GUI 프로그램을 작성할 수 있는 장점이 있지만, 자바 패키지에서 제공하는 GUI 컴포넌트의 한계를 벗어날 수 없습니다.두 번째, 그래픽 기반 GUI 프로그래밍입니다. 선, 원 등의 도형과 이미지를 이용하여 그래픽을 직접 환경에 그립니다. 이 방법은 자바 패키지의 컴포넌트에는 없는 독특한 GUI를 구성할 수 있고 실행 속도가 빨라 게임 등에서 주로 사용됩니다. 하지만, 프로그래밍에 대한 개발자의 부담이 큰 단점이 있습니다. 많은 경우 이 두 방법으로 혼합하여 GUI 응용프로그램을 작성합니다. 스윙 컴포넌트의 상속 구조스윙 컴포넌트는 JCom..

body-parser

요청의 본문에 있는 데이터를 해석해서 req.body 객채로 만들어주는 미들웨어입니다. 보통 폼 데이터나 AJAX 요청의 데이터를 처리합니다. 단, 멀티파트(이미지, 동영상, 파일) 데이터는 처리하지 못합니다. 이 경우에는 뒤에 나오는 multer 모듈을 사용하면 됩니다.body-parser 미들웨어는 다음과 같이 사용합니다.app.use(express.login());app.use(express.urlencoder({ extended: false })); body-parser를 직접 설치해야 하는 경우도 있습니다. body-parser는 JSON과 URL-encoded 형식의 데이터 외에도 Raw, Text 형식의 데이터를 추가로 해셕할 수 있습니다.Raw는 요청의 본문이 버퍼 데이터일 때 해석하는 미..

ServletContext 사용법

ServletContext 클래스ServletContext 클래스는 톰캣 컨테이너 실행 시 각 컨텍스트(웹 애플리케이션)마다 한 개의 ServletContext 객체를 생성합니다. 그리고 톰캣 컨테이너가 종료하면 ServletContext 객체 역시 소멸됩니다. ServletContext 객체는 웹 애플리케이션 전체의 공통 자원이나 정보를 미리 바인딩해서 서블릿들이 공유하여 사용합니다.ServletContext 클래스의 특징은 다음과 같습니다.javax.servlet.ServletContext로 정의되어 있습니다.서블릿과 컨테이너 간의 연동을 위해 사용합니다.컨텍스트(웹 애플리케이션)마다 하나의 ServletContext가 생성됩니다.서블릿끼리 자원(데이터)을 공유하는 데 사용합니다.컨테이너 실행 시 생..

MouseEvent와 MouseListener, MouseMotionListener, MouseWheelListener

Mouse 이벤트Mouse 이벤트는 사용자의 마우스 조작에 따라 총 8가지 경우에 발생합니다. 이 중에서 5가지 경우는 MouseListener의 메서드가 호출되고, 2가지 경우는 MouseMotionListener의 메소드가, 나머지 1가지는 MouseWheelListener의 메소드가 호출됩니다. 모든 스윙 컴포넌트가 Mouse 이벤트를 받을 수 있으며, Mouse 이벤트가 발생하면 MouseEvent 객체나 MouseWheelEvent 객체가 리스너의 메서드에 전달됩니다. 마우스가 눌러진 위치에서 그대로 떼어지면 다음 순서로 메서드가 호출됩니다.mousePressed(), mouseReleased(), mouseClicked() 하지만 마우스가 드래그되면 다음 순서로 호출됩니다.mousePresse..

static

static 미들웨어는 정적인 파일들을 제공하는 라우터 역할을 합니다. 기본적으로 제공되기에 따로 설치할 필요 없이 express 객체 안에서 꺼내 정착하면 됩니다. 다음과 같이 사용합니다.app.use('요청 경로', express.static('실제 경로'));app.use("/", express.static(path.join(__dirname, "public"))); 함수의 인수로 정적 파일들이 담겨 있는 폴더를 지정하면 됩니다. 현재 public 폴더가 지정되어 있습니다. 예를 들어 public/stylesheets/style.css는 http://localhost:3000/stylesheets/style.css로 접근할 수 있습니다. public 폴더를 만들고 css나 js, 이미지 파일들을 p..

morgan

morgan 연결 후 localhost:3000에 다시 접속해보면 기존 로그 외에 추가적인 로그를 볼 수 있습니다.3000 번 포트에서 대기 중모든 요청에 다 실행됩니다.GET / 요청에서만 실행됩니다.Error: 에러는 에러 처리 미들웨어로 갑니다.// 에러 스택 트레이스 생략GET / 500 13.548 ms - 50 현재 콘솔에 나오는 GET / 500 7.409ms - 50 로그는 morgan 미들웨어에서 나오는 것입니다. 요청과 응답에 대한 정보를 콘솔에 기록합니다.morgan 미들웨어는 다음과 같이 사용합니다.app.use(morgan('dev')); 인수로 dev 외에 combined, common, short, tiny 등을 넣을 수 있습니다. 인수로 바꾸면 로그가 달라집니다. 개발 환경에..