본문으로 건너뛰기

stack — 최근 글

최근
FundamentalTILOperating System

Process synchronization

협동 프로세스는 시스탬 내에서 실행중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스다. 협동 프로세스에서 데이터 공유는 동시접근에 의한 데이터의 비 일관성을 낳을 수 있다. 협동 프로세스의 질서있는 실행을 보장하며, 이를 통해 데이터의 일관성을 유지하는 기법을 알아보자. 프로세스는 동시 또는 병렬로 실행될 수 있다. CPU 스케줄러가 프로세스 사이에서 빠르게 오가며 각 프로세스를 실행해 모든 프로세스를 동시실행 한다. 프로세스는 다른 프로세스가 스케줄 되기 전에 일부분만 진행 할 수 있다. 다른 프로세스에 속한 두개의
Java EcoTILJava programming

Java; Class

java.lang.*은 컴파일 할때 자동으로 추가된다. Object클래스는 모든 자바 클래스의 최상위 클래스다. 모든 클래스는 Object 클래스로부터 상속을 받는다. 클래스를 만들때 extends Object를 하지 않지만, 컴파일 과정에서 자동으로 들어간다. 모든 클래스가 Object 클래스를 상속 받았으므로 Object의 메소드를 사용할 수 있고 재정의 할 수도 있다 String toString() : 객채를 문자열로 표현하여 반환한다. 재정의하여 객체에 대한 설명이나 특정 맴버변수 값을 반환한다. boolean equals(
Java EcoTILJava programming

Java; Other I/O stream

클래스의 상태를 저장해 전송하거나 저장할 일이 있다. 그럴때 인스턴스의 어느 순간을 저장하는것을 직렬화라고 한다. (Serialization) 인스턴스의 저장된 상태를 다시 복원하는 것을 역직렬화라고 한다. (Deserialization) 직렬화란 간단하게 인스턴스의 내용을 연속 스트림으로 만드는 것이다. 스트림으로 만들어야 파일에 쓸 수도 있고 네트워크로 전송할 수도 있다. 직렬화를 위한 보조 스트림 ObjectInputStream(InputStream in) ObjectOutputStream(OutputStream out) 직렬
FundamentalTILOperating System

Thread

스레드는 CPU이용의 기본 단위다. 스레드는 다음으로 구성된다 스레드ID 프로그램 카운터 레지스터 집합 스택 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션 그리고 열린 파일이나 시그널과 같은 운영체제 자원들을 공유한다. 어플리케이션은 멀티 코어를 사용하여 다수의 CPU집중 작업을 병렬로 처리할 수 있다 프로세스와 스레드가 하나인 시스템에서는 여러개의 동시 요청에 하나씩 처리할 수 밖에 없다. 서버가 요청을 받아들이는 하나의 프로세스로 동작하게 하면 해결되지만, 프로세스를 생성하는 작업은 매우 많은 시간과 자원을 소
Java EcoTILJava programming

Java; I/O Stream

자바에서 모든 입출력은 Stream을 통해 이루어진다. 파일 디스크 키보드 모니터 메모리 네트워크 등등 모두 포함. Stream이란 용어는 네트워크에서 유래됐다. 입출력장치가 다양하기 때문에 자바는 입출력 장치와 무관하고 일관성 있게 프로그램을 구현할 수 있도록 일종의 가상 통로인 Stream을 제송한다. Source와 target에 따라 각각 다른 Stream 클래스를 제공한다. 입력 스트림 : 어떤 대상으로부터 자료를 읽어들일때 사용하는 스트림을 입력 스트림이라고 한다. 출력 스트림 : 파일에 저장할 때는 출력 스트림을 사용한다
FundamentalTILOperating System

Process

초기의 컴퓨터 시스템은 한번의 하나의 프로그램만 실행하도록 허용했다. 오늘날 컴퓨터는 메모리에 다수의 프로그램들이 적재되어 병행 실행되는 것을 허용한다. 제어와 구획화의 필요성에 따라 프로세스의 개념이 생겼다. 프로세스란 실행중인 프로그램이다. CPU활동을 지칭하는 이름 일괄처리 시스템 : Job 시분할 시스템 : 사용자 프로그램, Task 이러한 명칭들이 있지만 모두 프로세스라고 부른다. 프로세스는 텍스트 섹션으로 알려진 프로그램 코드 이상의 어떤것이다. 프로세스는 다음을 포함한다 프로그램 카운터 함수의 매개변수 프로세스 지역변수
Java EcoTILJava programming

Servlet; DataSource 연동

서블릿 비즈니스 처리 작업이란 서블릿이 클라이언트로부터 요청을 받으면 그 요청에 대해 작업을 수행하는 것을 의미 합니다. 대부분의 비즈니스로직 처리는 DB연동 작업이 동반된다. DAO와 VO를 사용한 회원정보 연동을 해보자 H2 데이터베이스를 미리 준비한다 쿼리를 밀어넣고 maven.xml에 다음 내용을 추가한다. MemberDAO, MemberVO MemberServlet 데이터베이스 연동 과정은 웹 어플리케이션이 필요할 때마다 DB에 연결해 작업하는 방식이다. 이런식으로 필요할때마다 연동해서 작업한다면 DB연결에 걸리는 시간이
FundamentalTILDesign pattern

Composite pattern

컴포짓 패턴은 part-whole의 관계를 갖는 객체들을 정의할때 유용하다. 여러 객체가 한 클래스 전체 객체의 일부분으로 정의될때 사용한다. 부분 객체의 추가나 삭제가 있어도 전체 클래스의 코드를 변경하지 않으면 컴포짓 패턴은 유용하다. 그리고 클라이언트는 whole과 part를 구분하지 않고 동일한 인터페이스를 가질 수 있다. 컴퓨터를 모델링해보자. 컴퓨터에는 Keyboard, Monitor, RAM, SSD, CPU등이 있다. 각각의 클래스를 정의하고 Computer 클래스는 이들 구성 장치를 포함하는것으로 구성할 수 있다.