분류 전체보기(63)
-
스프링 컨테이너 등록
번 시간에는 WAS와 스프링을 통합하는 작업을 할 것이다. [목차] 1) 스프링 컨테이너 만들기 2) 컨트롤러를 스프링컨테이너에 빈등록 3) 디스패처 서블릿을 서블릿 컨테이너로 등록 이렇게 3가지 과정을 거칠것이다. 1) 스프링 컨테이너 만들기 일단 위에 프로젝트 파일 구조이다. 위 그림처럼 서블릿에 Dispatcher Servlet을 등록하는 과정을 해야한다. 그리고 스프링 컨테이너를 위해서 build.gradle에 스프링 라이브러리 추가가 필요하다. //스프링MVC implementation 'org.springframework:spring-webmvc:6.0.9' 위에 저 문장을 build.gradle에 추가한다. 추가하면 아래 소스처럼 될것이다. plugins { id 'java' id 'war'..
2023.11.26 -
서블릿 컨테이너 초기화2
서블릿 컨테이너 초기화 하는 두번째 방법을 소개하겠다. 지난 포스팅에서 아래 그림 처럼 서블릿 컨테이너 초기화에 대해서 소개하였다. 서블릿은 서블릿 초기화를 위해서 Servlet interface(ServletContainterInitializer)를 제공한다. 그래서 onStartup method로 초기화를 하였다. public interface ServletContainerInitializer { public void onStartup(Set
2023.11.26 -
Thread
1. Thread란? Thread는 프로세스와 마찬가지로 명령어가 프로세서를 이용하여 실행되어지는 객체의 기본단위이면서 명령어를 독립적으로 실행할 수 있는 하나의 제어 흐름이다. 2. Thread의 특징? Thread는 같은 프로세스 안에서 동작하기 때문에 같은 주소 공간에 존재하게 되며 공유된 메모리를 같이 접근할수 있다. 3. Thread의 장점 1) 어플리케이션의 성능 향상 코드와 데이터를 공유하면서 서로 다른 스레드의 활동을 허용하여 성능을 향상시키고 다중 스레딩은 일부가 차단 되거나 긴 작업을 수행하는 경우에도 실행하는 프로그램을 계속 허용 할 수 있다. 2) 문맥교환 비용 감소로 경제적인 효과 프로세스를 만들기 위한 메모리와 자원할당의 비용은 증가한다. 스레드는 프로세스 자원을 공유할수 있기 ..
2023.11.24 -
Process
1. Process? 일반적으로 디스크에 저장되어있는 프로그램의 실행은 우선 프로그램 자신의 고유한 메모리 공간에 프로그램의 코드가 적재될 것이고 프로세서는 메모리에 적재된 코드 즉, 프로램의 명령어를 하나하나 읽어서 실행하게 된다. 이렇게 실행 중인 상태의 프로그램을 우리는 프로세스(Process) 또는 Task라고 부른다. 예를 들면 윈도에서 작업 관리자를 켜보면 지금 실행하고 있는 프로그램(프로세스)를 확인할 수가 있다. 2. Process Memory Structure 프로세스는 실행중인 프로그램으로서 역할을 수행하기 위해서 프로세서를 점유해야한다. 그리고 프로세스는 할당시간과 메모리, 파일, 입출력장치와 같은 자원을 필요로 한다. 그래서 이러한 자원이 할당이 되어야한다. 아래 그림은 프로세스의 ..
2023.11.24 -
서블릿 컨테이너 초기화1
WAS를 실행하는 시점에 초기화를 해야하는 작업이 있다. 스프링 부트 강의를 듣다가 서블릿 컨테이너를 초기화 할 수 있다는 것을 처음 알게 되었다. 과거에는 web.xml으로 초기화하였지만 요즘에는 자바 코드를 사용한 초기화도 지원하고 있어서 자바를 통해 알아보겠다. [초기화가 필요한 이유] 1) 서비스에 필요한 필터와 서블릿 등록 2) 스프링 사용하면 스프링컨테이너를 만들고 서블릿과 스프링을 연결하는 Dispatcher Servlet도 등록해야한다. 서블릿에는 초기화 인터페이스를 제공한다. 이름은 ServletContainerInitializer이다. https://tomcat.apache.org/tomcat-10.1-doc/servletapi/jakarta/servlet/ServletContainer..
2023.11.16