목록Computer Engineering (30)
Inor
- 스케줄링 알고리즘 다중 프로그래밍 환경에서 여러 개의 프로세스가 있을때, 어떤 프로세스에게 컴퓨터의 자원을 언제 할당할지 정하는 알고리즘을 스케줄링 알고리즘이라고 합니다. CPU의 응답시간, 처리량, 효율성 등을 증대 시키기 위해서 자원을 효율적으로 할당해야 합니다. 스케줄링 알고리즘은 프로세스가 CPU를 점유하고 있을 때, 다른 프로세스가 CPU를 강탈할 수 있는지 여부에 따라서 비선점, 선점 알고리즘으로 나뉘어집니다. - 비선점 알고리즘 비선점 알고리즘의 특징은 한번 CPU를 사용하면 프로세스가 종료될 때까지 CPU의 사용 권한을 반환하지 않습니다. 일괄 처리 방식에 용이합니다. 하나의 프로세스가 종료될 경우에만 문맥 교환(Context Switch)이 일어납니다. 그래서 문맥 교환(Context..
- 배열을 이용한 연결 리스트 구현 연결 리스트는 보통 메모리를 동적으로 할당 받아서 데이터와 주소값을 갖고 있는 노드를 만들고, 그 노드를 이용해서 연결 리스트를 구성합니다. 그러면 메모리의 동적 할당이 안되는 상황에서 연결 리스트를 구현해야 하는 상황이라면 어떻게 해야 될까요? 저는 2개의 배열을 선언해서 하나는 데이터를 담고 다른 하나는 배열의 인덱스(데이터의 임시 주소값)를 담도록 하겠습니다. 위의 그림은 2차원 배열로 구성한 연결 리스트입니다. 여기서 행(가로 축, Row)은 하나의 노드로 표현됩니다. 노드에는 item과 next가 있습니다..
- 연결 리스트 연결 리스트(Linked List)는 배열과 같이 스택, 큐 등 자료 구조들의 기반이 될 수 있는 자료 구조입니다. 연결 리스트는 정보를 담고 있는 노드와 각 노드들의 논리적인 연결로 구성됩니다. 노드는 정보를 구성하는 데이터와 다음 노드와의 논리적인 연결을 지원하는 변수로 구성됩니다. 변수는 C 언어의 포인터와 같은 개념으로 정의 되고 변수에는 다음 노드의 주소값이 할당됩니다. head는 첫 node의 주소값을 갖고 있는 변수입니다. head는 연결 리스트의 각 노드를 방문하기 위한 첫 시작이라고 할 수 있습니다. head의 값을 잃어버린다면 그 리스트에 다시 접근하는 것은 불가능합니다. 그리고 이 연결 리스트는 메모리 어딘가에 표류하게 됩니다. 각 node는 자료 구조(연결 리스트)를..
JSP 동작 원리 Servlet의 경우에는 java 코드를 이용해서 html 파일이 작성되는 방식으로 동작이 됐습니다. 그러나 JSP의 경우에는 html 파일에 스크립트릿 태그를 이용해서 자바 코드를 작성하는 방식으로 jsp 파일을 생성 합니다. 이렇게 생성된 파일로 클라이언트의 요청이 오면 JSP 컨테이너가 jsp 파일을 Servlet 파일로 변환 합니다. 그리고 Servlet 파일은 컴파일 돼서 class 파일로 변환이 되고 요청이 있었던 웹브라우저에 html 파일 형식으로 응답 합니다. JSP 태그 스크립트릿 : JSP 문서 내부에 자바 코드를 작성할 수 있도록 선언하는 태그 입니다. 로 끝이 납니다.선언 : JSP 문서 내부에서 사용되는 변수나 메서드를 선언할 수 있도록 하는 태그 입니다. 로 끝..
생명주기 대부분의 프로그램이 생명주기를 갖고 있듯이 서블릿도 생명주기를 갖고 있습니다. 서블릿 객체가 생성, 실행, 소멸 되는 과정에서 호출되는 특정 메서드들이 있습니다. 생명주기에 따라서 특정 메서드가 호출이 되고 그 안의 로직을 수행 합니다. Servlet에도 각 과정에서 호출이 되는 몇가지 메서드들이 있습니다. 그것들을 알아보도록 하겠습니다. 초기화(initialization) 사용자의 Servlet 클래스가 상속 받는 HttpServlet 클래스의 init() 메서드를 오버라이드해서 초기화 메서드를 생성할 수 있습니다. 이 메서드는 서블렛 객체가 생성 되면서 호출이 되는 메서드로서 주로 초기화 작업을 수행 합니다. 초기화 전에 특정 작업(전처리)을 수행해야되는 경우가 있다면 @PostConstru..
- 객체지향 개발의 원칙 저와 비슷한 초보 개발자들이 객체지향 프로그래밍을 하는 중간에 겪는 많은 문제들은 클래스들의 구조를 설계할때 너무 복잡한 구조로 설계했기 때문에 발생 합니다. 디자인 패턴들은 이런 구조적 문제 때문에 발생하는 문제점을 줄여주고 사전에 예방 합니다. 그러나 디자인 패턴을 공부하기 전에 디자인 패턴의 근간이 되는 객체지향 개발의 5대 원칙인 SOLID에대해서 알아보도록 하겠습니다. SOLID는 개발자가 객체지향개발을 할 때 기본적으로 갖고 있어야하는 생각들을 5가지로 정리한 것 입니다. 하나씩 알아보도록 하겠습니다. - Single Responsibility Principle (단일 책임 원칙) 단일 책임 원칙이란 하나의 클래스가 한 가지의 기능만 갖고 있으며 클래스가 제공하는 서비..