분류 전체보기 63

JSP 용 깜지

① JspExceptionJSP 에서 HTML 용 주석 사용시 간혹 아래와 같이 JspException이 터지는 경우가 있음 주석을 로 교체하면 해결됨 (JSP 전용 주석) Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:599) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:478) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:377) org.apache.jasper.servlet.JspServlet.service(..

JSP_Servlet 2024.10.24

스레드 생성과 실행 - 스레드 종류

1. 자바 메모리메서드 영역프로그램을 실행하는데 필요한 공통 데이터를 관리클래스 정보static 영역런타임 상수 풀 스택 영역자바 실행 시, 하나의 실행 스택이 생성스택 프레임 : 메서드를 호출할 때 마다 하나의 스택프레임이 쌓이고, 메서드가 종료되면 해당 스택 프레임이 제거스레드 별로 하나의 실행 스택이 생성된다. 따라서 스레드 수 만큼 스택이 생성지역 변수, 중간 연산 결과, 메서드 호출 정보 힙 영역객체(인스턴스)와 배열이 생성, GC가 이루어지는 영역2. 멀티 스레드public class HelloThread extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getN..

JAVA 2024.10.23

두 서블릿 간 속성/속성값 공유

1. 포워딩 : setAttribute / getAttribute이는 "같은 요청 내에서만 가능" HttpServletRequest 객체가 같아야 하므로, 서블릿을 두 JAVA 클래스로 따로 만들고, doGet / doPost 등을 각각 오버라이딩 했을때, 사용하기 어려움 1개의 서블릿 내 하나의 메서드 안에서 파라미터를 공유할경우 사용// A 서블릿String value = "someValue";request.setAttribute("key", value);request.getRequestDispatcher("/BServlet").forward(request, response);// B 서블릿String value = (String) request.getAttribute("key"); 2. 쿼리 파라미..

JSP_Servlet 2024.10.23

[oracle sql] 의사 컬럼, 분석 함수, 계층 쿼리

1. 의사컬럼 물리적 테이블에는 존재하지 않지만, select 결과셋(select절에서 추가됨)에는 존재하는 컬럼 rowid : 자바의 hashcode같은 메모리 주소, 각 행들의 키값, Index로 사용rownum : 결과셋의 번호를 순서대로 붙인 것select rowid, rownum, empno, ename from emp;  의사컬럼이 추가되는 시점은 select절이다. order by 전에 추가된다.select rowid, rownum, empno, ename from emp order by sal desc; 2. 분석 함수일반테이블의 결과셋과 group by 의 결과셋을 같이 출력할때 사용 □ 윈도우 함수(오버 함수)를 사용하는 경우 (내부적으로 join 등이 실행된다)형태 : 함수이름(매개값..

SQL 2024.10.22

Context switching와 스레드작업 종류(CPU-bound tasks, I/O-bound tasks)

Context switching정의 : CPU에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것  위원회 준비를 하다가, 다른부서에 시스템 사용문의 요청이 들어왔으면 위원회 준비를 어디까지 헀는지 적어놨다가 멈추고 나중에 메모를 보면서 머리속에 진행흐름(문맥)을 기억해내고 진행을 해야한다 운영체제의 멀티테스킹도 과정이 같은데, 잠깐 중단하는 스레드 진행 위치와 계산하던 변수의 값(문맥)을 메모리에 저장해놨다가 다시 진행할때 이 값들은 CPU에 불러와야한다. 이런과정을 컨텍스트 스위칭이라고 한다. 컨텍스트 스위치 과정에서 이전에 실행 중인 값을 메모리에 잠깐 저장하고, 이후에 다시 실행하는 시점에 저장한 문맥을 CPU에 다시 불러와야 해서 약간의 비용이 발생한다.  그러므로 멀티스레드는..

JAVA 2024.10.21

(스레드) Thread와 Scheduling

"운영체제가 스케줄링을 수행하고CPU를 최대한 사용하면서 작업이 골고루 수행될 수 있게 최적화 한다." 1. 멀티태스킹에서의 Scheduling 과정 한 CPU 코어가 프로세스A - 잠깐 중단 하고 프로세스B - 잠깐 중단...(반복)  □ 단일 코어 스케쥴링 (CPU 코어1개)대기스케쥴링 큐 스레드A1, 스레드B2, 스레드B1CPU 코어-  프로세스A 스케쥴링 큐  스레드B2, 스레드B1CPU 코어스레드A1  - 잠깐 중단 하고 프로세스B 스케쥴링 큐  스레드A1, 스레드B1CPU 코어스레드B2 - 잠깐 중단..  프로세스B 스케쥴링 큐  스레드A1 , 스레드B2CPU 코어 스레드B1 □ 멀티 코어 스케쥴링 (CPU 코어 2개 이상)대기스케쥴링 큐 스레드A1, 스레드B2, 스레드B1CPU 코어-    ..

JAVA 2024.10.21

프로세스와 스레드

"운영체제 안에 프로세스가 있고, 프로세스 안에 스레드가 있다."프로그램 : 컴퓨터에서 어떤 작업을 실행할 수 있는 코드 덩어리프로세스 : 운영체제 안에서 실행중인 프로그램스레드 : 프로세스 내에서 실행되는 작업의 단위, 하나의 프로세스는 하나 이상의 스레드를 가지고 있다 1. Program컴퓨터에서 어떤 작업을 위해 실핼할 수 있는 '정적인 상태'의 파일 (ex. exe 파일)사용자가 원하는 일을 처리할 수 있도록 프로그래밍 언어를 사용하여 올바른 수행절차를 표현해 놓은 명령어의 집합(=  어떤 작업을 하기 위해 해야할 일들을 순서대로 나열 = 코드 덩어리)이에 필요한 데이터를 묶어 놓은 파일로 보조 기억장치에 저장되어있다.2. Process (작업의 단위)자바 언어로 비유하면 클래스는 프로그램, 인스..

JAVA 2024.10.21

(스레드) Multi-Tasking과 Multi-Process

"멀티 태스킹은 소프트웨어 기반, 멀티 프로세스는 하드웨어 기반 개념이다" 1. Multi Tasking프로그램의 실행은 프로그램을 구성하는 코드를 순서대로 CPU에서 연산(실행)한다. CPU 코어는 하나로 가정하고, 한 번에 하나의 프로그램 코드만 실행한다.Ex - CPU연산이 느리다면, 음악 프로그램을 모두 실행한 다음에 워드 프로그램을 실행할 수 있다.이를 개선하기 위해 멀티 태스킹을 사용,하나의 CPU 코어로 여러 프로그램을 동시에 실행할 수 있는 기술.CPU가 매우 빠르게 두 프로그램의 코드를 번갈아 수행하여, 사용자가 동시에 실행되는 것 처럼 느끼게 해준다.각 프로그램의 실행 시간을 분할해서 마치 동시에 실행되는 것 처럼 하는 기법을 시분할 기법이라고 한다.하나의 컴퓨터가 동시에 여러 작업을 ..

JAVA 2024.10.21