JAVA(247)
-
[Java][Thread] 쓰레드 클래스의 start()와 run() 메서드
1. 왜 쓰레드 클래스의 run() 메서드 대신 start() 메서드를 호출해야 하는가? 일반적으로 쓰레드 인스턴스를 생성하면 쓰레드 클래스에 재정의되어 있는 run() 메서드를 호출합니다. 하지만 실제로 클라이언트에서 호출할때는 start() 메서드를 호출하여 run() 메서드를 실행시킵니다. class MyThread implements Runnable{ public void run(){ ... } } Thread t1 = new Thread(new MyThread()); t1.start(); run() 메서드 대신 start() 메서드를 호출해야 하는 이유는 run() 메서드를 호출하면 호출 스택(callstack)이 생성되지 않고 쓰레드가 독립적으로 수행되지 않습니다. 그러나 start() 메서드..
2022.06.30 -
[JSP] 15. JSTL(JSP Standard Tag Library) #2 코어 태그(import, url, redirect, out, catch)
1. URL 처리 태그 import 태그 redirect 태그 url 태그 1.1 import 태그 import 태그는 태그와 비슷한 기능을 제공하는 태그로서 사용 방법은 다음과 같습니다. url : 읽어 올 URL 주소 charEncoding : 읽어 온 데이터의 문자집합 var : 읽어 온 데이터를 저장할 변수명 scope : 변수를 저장할 범위 지정 param 태그는 태그처럼 전송할 파라미터의 이름과 값을 지정할 때 사용됩니다. 태그와 태그의 차이점 태그는 같은 웹 어플리케이션 내의 자원만을 포함할 수 있습니다. 태그는 같은 웹 어플리케이션 내의 자원뿐만 아니라 다른 웹 어플리케이션 또는 다른 서버의 자원까지도 접근할 수 있습니다. import 태그에서 url 속성의 값 3가지 형태 완전한 URL ..
2022.06.29 -
[JSP] 15. JSTL(JSP Standard Tag Library) #2 코어 태그(set, remove, if, choose, forEach, forTokens)
1. 코어 태그 코어 태그 라이브러리는 if-else나 변수의 지정 등과 같이 논리적인 처리를 위해 사용되는 스크립트 코드를 대체하기 위한 태그를 제공합니다. 코어 태그 라이브러리 기능 분류 태그 설명 변수지원 set JSP에서 사용될 변수를 설정 remove 설정한 변수를 제거 흐름제어 if 조건에 따라 내부 코드를 수행 choose 다중 조건을 처리할 때 사용 forEach 컬렉션이나 Map의 각 항목을 처리할 때 사용함 forTokens 구분자로 분리된 각각의 토큰을 처리할 때 사용됨 URL 처리 import URL을 사용하여 다른 자원의 결과를 삽입 redirect 지정한 경로로 리다이렉트 url URL을 재작성 기타 태그 catch 예외 처리에 사용됨 out JspWriter에 내용을 알맞게 처..
2022.06.29 -
[JSP] 15. JSTL(JSP Standard Tag Library) #1 JSTL이란 무엇인가?
1. JSTL이란 무엇인가? JSTL는 자바 EE 웹 애플리케이션 개발 플랫폼의 구성요소입니다. XML 데이터 처리, 조건문 실행, 데이터베이스 접근, 반복문과 같은 일반적인 작업을 위한 JSP 태그의 태그 라이브러리를 추가하여 JSP 규격을 확장한 것입니다. 즉, JSTL는 JSP 페이지에서 일반적으로 많이 쓰이는 자바 언어 로직들을 태그 라이브러리화 한것입니다. 왜 JSTL를 사용해야 하는가? JSP는 스크립트릿( )과 표현식 등의 스크립트 코드와 HTML 코드가 뒤섞이게 되는데 이렇게 뒤썩인 JSP 코드는 알아보기 힘든 경우가 있습니다. 예를 들어 if문이나 for문을 사용할 경우에 다음과 같은 형태가 됩니다. 위 코드는 직원의 정보를 담은 리스트를 순회하며 해당 직원의 부서가 인사부인 사람의 이름..
2022.06.29 -
[Java][Thread] 쓰레드의 구현과 실행
1. 쓰레드를 구현하는 방법 Thread 클래스를 상속하는 방법 Runnable 인터페이스를 구현하는 방법 1.1 Thread 클래스를 상속하는 방법 class MyThread extends Thread{ public void run(){ // Thread 클래스의 run()을 오버라이딩 ... } } MyThread t1 = new MyThread(); t1.start(); 1.2 Runnable 인터페이스를 구현하는 방법 class MyThread implements Runnable{ public void run(){ // Runnable 인터페이스의 run()을 구현 ... } } Thread t1 = new Thread(new MyThread()); t1.start(); 2. 현재 실행중인 쓰레드..
2022.06.28 -
[Java][Thread] 프로세스와 쓰레드
1. 프로세스와 쓰레드는 무엇인가? 프로세스 : 실행중인 하나의 프로그램 쓰레드 : 하나의 프로세스안에서 수행되는 1개 이상의 작은 프로세스(경량 프로세스라고도 부름) 프로세스의 구성 위 그림에서 하나의 프로세스가 하나의 쓰레드를 가지고 있으면 싱글쓰레드 프로세스라고 부르고 쓰레드가 2개 이상이라면 멀티쓰레드 프로세스라고 부릅니다. 2. 멀티태스킹과 멀티쓰레딩 멀티태스킹(MultiTasking, 멀티프로세싱) : 메모리 위에 여러개의 프로세스를 올려두고 실행하는 것을 의미합니다. 멀티쓰레딩(MultiThreading) : 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것을 의미합니다. 3. 멀티쓰레딩의 장단점 CPU의 사용률을 향상시킴 자원을 보다 효율적으로 사용할 수 있음 사용자에 대한 ..
2022.06.28