목록

'홈' 731건

  • 워크벤치 커넥션 생성하기
    프로그래밍 언어/NODE JS · 댓글
    먼저 워크벤치를 실행합니다. MySQL Connections 옆의 + 버튼을 클릭합니다. 커넥션 생성 화면에서 Connection Name에 localhost라고 하고 Password에서 Store in Vault... 버튼을 누릅니다. MySQL 설치 시 설정했던 비밀번호를 입력하고 OK를 누릅니다. Setup New Connection 화면에서도 OK를 눌러 커넥션을 생성하면 됩니다. MySQL Connections에 새로 생성된 localhost를 누릅니다.다음은 접속 화면입니다.
  • 서블릿에서 세션 API 이용하기
    프로그래밍 언어/자바 웹 · 댓글 2
    1. 다음과 같이 세션 테스트를 위한 실습 파일인 SessionTest 클래스를 준비합니다. 2. SessionTest 클레스를 다음과 같이 작성합니다. request의 인지 없는 getSession() 메서드를 호출하여 세션이 없으면 새로 생성하고, 세션이 있으면 기존 세션을 가져옵니다. 또한 세션 객채의 getMaxInactiveInterval()를 호출하여 생성된 세션의 유효 시간을 가져옵니다.package sec03.ex01;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.H..
  • 세션 API의 특징과 기능
    프로그래밍 언어/자바 웹 · 댓글 1
    서블릿에서 세션을 이용하려면 HttpSession 클래스 객체를 생성해서 사용해야 합니다. HttpSession 객체는 HttpServletRequest의 getSession() 메서드를 호출해서 생성합니다. 세션을 얻는 getSession() 메서드로는 다음과 같인 것들이 있습니다.getSession(): 기존의 세션 객체가 존재하면 반환하고, 없으면 새로 생성합니다.getSession(true): 기존의 세션 객체가 존재하면 반환하고, 없으면 새로 생성합니다.getSession(false): 기존의 세션 객체가 존재하면 반환하고, 없으면 null을 반환합니다.또한 HttpSession 클래스에서 제공하는 세션 기능 관련 메서드는 다음과 같습니다. HttpSession 클래스의 여러 가지 메서드반환 타..
  • Thread 클래스를 상속받아 스레드 만들기
    프로그래밍 언어/JAVA · 댓글 1
    Thread 클래스의 경로명은 java.lang.Thread입니다. Thread 클래스를 상속받아 개발자의 스레드 코드를 만들 수 있습니다. Thread 클래스는 스레드를 만들고 유지 관리하기 위해 많은 메서드를 제공합니다. 스레드 클래스 작성: Thread 클래스 상속 먼저 Thread를 상속받아 TimeThread 클래스를 작성합니다.class TimeTread extends Thread { // Thread 상속받음 ...............................................} 스레드 코드 작성: run() 메소드 오버라이딩Thread의 run() 메서드를 오버라이딩합니다. run() 메서드에 작성된 코드를 스레드 코드라고 부른다. 스레드는 run()에서부터 실행을 시작하고..
  • 세션 기능 실행 과정
    프로그래밍 언어/자바 웹 · 댓글 1
    클라이언트의 브라우저가 서버에 취초 접속하면 서버의 서블릿은 세션 객체를 생상한 후 세션 객체에 대한 세션 id를 브라우저에 전송합니다. 그러면 브라우저는 이 세션 id를 브라우저가 사용하는 세션 쿠키에 저장합니다. 즉, 서버로부터 전송된 id도 쿠키이며, 쿠키 이름은 jsessionId입니다.그리고 재접속하여 세션 쿠키에 저장된 세션 is(sessionId)를 다시 서버로 전송하면 서버에서는 전송된 세션 id를 이용해 브라우저의 세션 객체에 접근하여 브라우저에 대한 작업을 수행합니다. 1. 브라우저로 사이트에 접속합니다.2. 서버는 접속한 브라우저에 대한 세션 객체를 생성합니다.3. 서버는 생성된 세션 id를 클라이언트 브라우저에 응답합니다.4. 브라우저는 서버로부터 받은 세션 id를 브라우저가 사용하..
  • MySQL 설치하기
    프로그래밍 언어/NODE JS · 댓글 6
    MySQL의 공식 사이트(https://dev.mysql.com/downloads/installer/)에서 Download 버튼을 눌러 인스톨러를 내려받습니다. 용량이 적은 mysql-installer-web-community를 내려받습니다. 로그인할 필요 없이 No thanks, just start my download.를 클릭하면 다운로드가 시작됩니다. 내려받은 파일을 실행하면 MySQL Installer가 화면에 나타냅니다. 설치 진행 중에 Choosing a Setup Type 부분에서 Custom을 선택한 후 Next 버튼을 누릅니다. MySQL Installer가 기본적으로 설치하는 제품이 전부 필요한 것은 아니므로 MySQL Server와 MySQL Workbench만 선택해 설치합니다. ..
  • 자바의 멀티스레딩
    프로그래밍 언어/JAVA · 댓글 7
    멀티스레드와 자바 가상 기계(JVM)자바에는 프로세스(process)가 존재하지 않고 스레드 개념만 존재하며, JVM은 멀티스레딩만 지원합니다. 자바 스레드(java thread)는 JVM에 의해 스케줄되는 실행 단위 코드 블록입니다. 하나의 JVM은 하나의 자바 응용프로그램만 실행합니다. 사용자가 자바 응용프로그램을 실행시키면, JVM이 먼저 실행되고 JVM이 자바 응용프로그램을 로딩하여 실행시킵니다. 자바 응용프로그램이 종료되면 JVM도 함깨 종료됩니다. 만일 한 컴퓨터에서 n개의 자바 응용프로그램이 실행된다는 하면 n개의 JVM이 실행된다. JVM은 멀티스레딩을 지원하며 자바 응용프로그램은 하나 이상의 스레드를 생성할 수 있습니다. 2개 이상의 자바 응용프로그램이 각각 JVM에 의해 실행되며, 서로..
  • 스레드와 멀티태스킹
    프로그래밍 언어/JAVA · 댓글 2
    멀티태스킹멀티태스킹(multitasking)이란 멀티(multi) + 태스킹(tasking)의 합성어로 다수의 작업을 동시에 처리하는 것을 말합니다. 멀티태스킹 프로그램간단한 응용프로그램은 보통 하나의 작업(태스크)만 하는 경우가 대부분이지만, 큰 규모의 응용프로그램은 많은 경우 여러 작업(태스크)을 동시에 실행합니다. 스래드와 멀티태스크컴퓨터의 스레드(thread)는 thread of control의 준말로서 프로그램 코드를 실행하는 하나의 실 혹은 작업입니다. 하나의 실로 하나의 바느질밖에 없듯이, 하나의 스레드로 하나의 작업밖에 처리할 수 없습니다.스레드는 운영체제나 JVM에서 테스크(작업)를 실행하는 단위로서, 운영체제나 JVM에 의해 관리되는 단위입니다. JVM은 하나의 테스크(작업)를 실행하기..
  • 데이터베이스란?
    프로그래밍 언어/NODE JS · 댓글 1
    데이터베이스는 관련성을 가지며 중복이 없는 데이터들의 집합입니다. 이러한 데이터베이스를 관리하는 시스템을 DBMS(데이터베이스 관리 시스템)라고 부릅니다.보통 서버의 하드 디스크나 SSD 등의 저장 매체에 데이터를 저장합니다. 저장 매체가 고장나거나 사용자가 직접 데이터를 지우지 않는 이상 계속 데이터가 보존되므로 서버 종료 여부와 상관없이 데이터를 지속적으로 사용할 수 있습니다. 또한, 서버에 데이터베이스를 올라묜 여러 사람이 동사애 사용할 수 있습니다. 사람들에게 각각 다른 권한을 줘서 어떤 사람은 읽기만 가능하고, 어떤 사람은 모든 작업을 가능하게 할 수 있습니다,데이터베이스를 관리하는 DBMS 중에서 RDBMS라고 부르는 관계형 DBMS가 많이 사용됩니다. 대표적인 RDBMS로는 Oracle, ..
  • 스윙의 페인팅 메커니즘
    프로그래밍 언어/JAVA · 댓글 2
    스윙 컴포넌트이 그려지는 과정스윙에서 페인팅의 기본 골격은 JComponent에 의해 구현되어 있습니다. 모든 스윙 컴포넌트들은 JCompent를 상속받음으로써 자연스럽게 스윙의 페인팅 메커니즘에 따라 가도록 됩니다. 스윙의 페인팅과 관련된 몇 개의 JComponent의 메소드는 다음과 같습니다. repaint()repaint()는 Component 클래스의 메서드로 자바 플랫폼에게 컴포넌트에 변화가 일어났으니 강제로 페인팅할 것을 지시하는 메서드입니다.component.repaint(); // 컴포넌트 다시 그리기 지시 컴포넌트를 다시 그리기 위해서는 부모 컴포넌트부터 그리는 것이 좋습니다. 컴포넌트의 크기나 위치가 변경되었다면, 컴포넌트의 부모에게 컴포넌트의 이전 모양이나 이전 위치의 진상을 지우도록..
  • extends와 block
    프로그래밍 언어/NODE JS · 댓글 1
    레이아웃을 정할 수 있으며, 공통되는 레이아웃 부분을 따로 관리할 수 있어 좋습니다. include와도 함께 사용하곤 합니다. 레이아웃이 될 파일에는 공통된 마크업을 넣되, 페이지마다 달라지는 부분을 block으로 비워둡니다. block은 여러 개 만들어도 됩니다. block을 선언하는 방법은 {% block [블록명] %}입니다. {% endblock %}로 블록을 종료합니다. block이 되는 파일에서는 {% extends 경로 %} 키워드로 레이아웃 파일을 지정하고 block 부분을 넣습니다. 나중에 익스프레스에서 res.render('body')를 사용해 하나의 HTML로 합친 후 렌더링할 수 있습니다. 같은 이름의 block 부분이 서로 합쳐집니다. 이제 넌적스의 문법은 충분히 배웠습니다. ..
  • 에러 처리 미들웨어
    프로그래밍 언어/NODE JS · 댓글 2
    이제 404 응답 미들웨어와 에러 처리 미들웨어를 다음과 같이 수정하여 에러 발생 시 error.html에 에러 내용을 표시합니다.app.jsapp.use((req, res, next) => { const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`); error.status = 404; next(error);});app.use((err, req, res, next) => { res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== "production" ? err : {}; res.status(err.status || 500); res.render("er..

워크벤치 커넥션 생성하기

먼저 워크벤치를 실행합니다. MySQL Connections 옆의 + 버튼을 클릭합니다. 커넥션 생성 화면에서 Connection Name에 localhost라고 하고 Password에서 Store in Vault... 버튼을 누릅니다. MySQL 설치 시 설정했던 비밀번호를 입력하고 OK를 누릅니다. Setup New Connection 화면에서도 OK를 눌러 커넥션을 생성하면 됩니다. MySQL Connections에 새로 생성된 localhost를 누릅니다.다음은 접속 화면입니다.

서블릿에서 세션 API 이용하기

1. 다음과 같이 세션 테스트를 위한 실습 파일인 SessionTest 클래스를 준비합니다. 2. SessionTest 클레스를 다음과 같이 작성합니다. request의 인지 없는 getSession() 메서드를 호출하여 세션이 없으면 새로 생성하고, 세션이 있으면 기존 세션을 가져옵니다. 또한 세션 객채의 getMaxInactiveInterval()를 호출하여 생성된 세션의 유효 시간을 가져옵니다.package sec03.ex01;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.H..

세션 API의 특징과 기능

서블릿에서 세션을 이용하려면 HttpSession 클래스 객체를 생성해서 사용해야 합니다. HttpSession 객체는 HttpServletRequest의 getSession() 메서드를 호출해서 생성합니다. 세션을 얻는 getSession() 메서드로는 다음과 같인 것들이 있습니다.getSession(): 기존의 세션 객체가 존재하면 반환하고, 없으면 새로 생성합니다.getSession(true): 기존의 세션 객체가 존재하면 반환하고, 없으면 새로 생성합니다.getSession(false): 기존의 세션 객체가 존재하면 반환하고, 없으면 null을 반환합니다.또한 HttpSession 클래스에서 제공하는 세션 기능 관련 메서드는 다음과 같습니다. HttpSession 클래스의 여러 가지 메서드반환 타..

Thread 클래스를 상속받아 스레드 만들기

Thread 클래스의 경로명은 java.lang.Thread입니다. Thread 클래스를 상속받아 개발자의 스레드 코드를 만들 수 있습니다. Thread 클래스는 스레드를 만들고 유지 관리하기 위해 많은 메서드를 제공합니다. 스레드 클래스 작성: Thread 클래스 상속 먼저 Thread를 상속받아 TimeThread 클래스를 작성합니다.class TimeTread extends Thread { // Thread 상속받음 ...............................................} 스레드 코드 작성: run() 메소드 오버라이딩Thread의 run() 메서드를 오버라이딩합니다. run() 메서드에 작성된 코드를 스레드 코드라고 부른다. 스레드는 run()에서부터 실행을 시작하고..

세션 기능 실행 과정

클라이언트의 브라우저가 서버에 취초 접속하면 서버의 서블릿은 세션 객체를 생상한 후 세션 객체에 대한 세션 id를 브라우저에 전송합니다. 그러면 브라우저는 이 세션 id를 브라우저가 사용하는 세션 쿠키에 저장합니다. 즉, 서버로부터 전송된 id도 쿠키이며, 쿠키 이름은 jsessionId입니다.그리고 재접속하여 세션 쿠키에 저장된 세션 is(sessionId)를 다시 서버로 전송하면 서버에서는 전송된 세션 id를 이용해 브라우저의 세션 객체에 접근하여 브라우저에 대한 작업을 수행합니다. 1. 브라우저로 사이트에 접속합니다.2. 서버는 접속한 브라우저에 대한 세션 객체를 생성합니다.3. 서버는 생성된 세션 id를 클라이언트 브라우저에 응답합니다.4. 브라우저는 서버로부터 받은 세션 id를 브라우저가 사용하..

MySQL 설치하기

MySQL의 공식 사이트(https://dev.mysql.com/downloads/installer/)에서 Download 버튼을 눌러 인스톨러를 내려받습니다. 용량이 적은 mysql-installer-web-community를 내려받습니다. 로그인할 필요 없이 No thanks, just start my download.를 클릭하면 다운로드가 시작됩니다. 내려받은 파일을 실행하면 MySQL Installer가 화면에 나타냅니다. 설치 진행 중에 Choosing a Setup Type 부분에서 Custom을 선택한 후 Next 버튼을 누릅니다. MySQL Installer가 기본적으로 설치하는 제품이 전부 필요한 것은 아니므로 MySQL Server와 MySQL Workbench만 선택해 설치합니다. ..

자바의 멀티스레딩

멀티스레드와 자바 가상 기계(JVM)자바에는 프로세스(process)가 존재하지 않고 스레드 개념만 존재하며, JVM은 멀티스레딩만 지원합니다. 자바 스레드(java thread)는 JVM에 의해 스케줄되는 실행 단위 코드 블록입니다. 하나의 JVM은 하나의 자바 응용프로그램만 실행합니다. 사용자가 자바 응용프로그램을 실행시키면, JVM이 먼저 실행되고 JVM이 자바 응용프로그램을 로딩하여 실행시킵니다. 자바 응용프로그램이 종료되면 JVM도 함깨 종료됩니다. 만일 한 컴퓨터에서 n개의 자바 응용프로그램이 실행된다는 하면 n개의 JVM이 실행된다. JVM은 멀티스레딩을 지원하며 자바 응용프로그램은 하나 이상의 스레드를 생성할 수 있습니다. 2개 이상의 자바 응용프로그램이 각각 JVM에 의해 실행되며, 서로..

스레드와 멀티태스킹

멀티태스킹멀티태스킹(multitasking)이란 멀티(multi) + 태스킹(tasking)의 합성어로 다수의 작업을 동시에 처리하는 것을 말합니다. 멀티태스킹 프로그램간단한 응용프로그램은 보통 하나의 작업(태스크)만 하는 경우가 대부분이지만, 큰 규모의 응용프로그램은 많은 경우 여러 작업(태스크)을 동시에 실행합니다. 스래드와 멀티태스크컴퓨터의 스레드(thread)는 thread of control의 준말로서 프로그램 코드를 실행하는 하나의 실 혹은 작업입니다. 하나의 실로 하나의 바느질밖에 없듯이, 하나의 스레드로 하나의 작업밖에 처리할 수 없습니다.스레드는 운영체제나 JVM에서 테스크(작업)를 실행하는 단위로서, 운영체제나 JVM에 의해 관리되는 단위입니다. JVM은 하나의 테스크(작업)를 실행하기..

데이터베이스란?

데이터베이스는 관련성을 가지며 중복이 없는 데이터들의 집합입니다. 이러한 데이터베이스를 관리하는 시스템을 DBMS(데이터베이스 관리 시스템)라고 부릅니다.보통 서버의 하드 디스크나 SSD 등의 저장 매체에 데이터를 저장합니다. 저장 매체가 고장나거나 사용자가 직접 데이터를 지우지 않는 이상 계속 데이터가 보존되므로 서버 종료 여부와 상관없이 데이터를 지속적으로 사용할 수 있습니다. 또한, 서버에 데이터베이스를 올라묜 여러 사람이 동사애 사용할 수 있습니다. 사람들에게 각각 다른 권한을 줘서 어떤 사람은 읽기만 가능하고, 어떤 사람은 모든 작업을 가능하게 할 수 있습니다,데이터베이스를 관리하는 DBMS 중에서 RDBMS라고 부르는 관계형 DBMS가 많이 사용됩니다. 대표적인 RDBMS로는 Oracle, ..

스윙의 페인팅 메커니즘

스윙 컴포넌트이 그려지는 과정스윙에서 페인팅의 기본 골격은 JComponent에 의해 구현되어 있습니다. 모든 스윙 컴포넌트들은 JCompent를 상속받음으로써 자연스럽게 스윙의 페인팅 메커니즘에 따라 가도록 됩니다. 스윙의 페인팅과 관련된 몇 개의 JComponent의 메소드는 다음과 같습니다. repaint()repaint()는 Component 클래스의 메서드로 자바 플랫폼에게 컴포넌트에 변화가 일어났으니 강제로 페인팅할 것을 지시하는 메서드입니다.component.repaint(); // 컴포넌트 다시 그리기 지시 컴포넌트를 다시 그리기 위해서는 부모 컴포넌트부터 그리는 것이 좋습니다. 컴포넌트의 크기나 위치가 변경되었다면, 컴포넌트의 부모에게 컴포넌트의 이전 모양이나 이전 위치의 진상을 지우도록..

extends와 block

레이아웃을 정할 수 있으며, 공통되는 레이아웃 부분을 따로 관리할 수 있어 좋습니다. include와도 함께 사용하곤 합니다. 레이아웃이 될 파일에는 공통된 마크업을 넣되, 페이지마다 달라지는 부분을 block으로 비워둡니다. block은 여러 개 만들어도 됩니다. block을 선언하는 방법은 {% block [블록명] %}입니다. {% endblock %}로 블록을 종료합니다. block이 되는 파일에서는 {% extends 경로 %} 키워드로 레이아웃 파일을 지정하고 block 부분을 넣습니다. 나중에 익스프레스에서 res.render('body')를 사용해 하나의 HTML로 합친 후 렌더링할 수 있습니다. 같은 이름의 block 부분이 서로 합쳐집니다. 이제 넌적스의 문법은 충분히 배웠습니다. ..

에러 처리 미들웨어

이제 404 응답 미들웨어와 에러 처리 미들웨어를 다음과 같이 수정하여 에러 발생 시 error.html에 에러 내용을 표시합니다.app.jsapp.use((req, res, next) => { const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`); error.status = 404; next(error);});app.use((err, req, res, next) => { res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== "production" ? err : {}; res.status(err.status || 500); res.render("er..