분류 전체보기32 [OS] Process vs Thread 프로세스 (Process)란? 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램. 실제 실행 중인 프로그램을 일컫기 때문에 동적이라고 표현하기도 한다. 프로세스는 커널에 의해 직접 관리되는데 커널 메모리 안에는 각 프로세스마다 관리하고 있는 프로세스에 대한 데이터들이 있다. 이 정보는 Process Control Block(PCB)이라고 하는 자료구조 안에 있는 커널 스케줄러가 프로세스를 제어하는데 필요한 정보들이 담겨 있다. 운영체제는 각각의 프로세스를 독립적으로 관리하기 때문에 서로 다른 프로세스가 겹칠 일이 없고, 또 사용 자원 영역 등이 겹치는 일이 발생해서도 안 된다. (예외적으로 같은 프로그램의 프로세스들은 Code 영역은 공유한다.) 프로세스 간 통신은 필요할 경우 최소한의 인터페이스를 제.. 2021. 5. 2. [Spring] IoC 컨테이너란? (IoC: Inversion of Control) IoC (Inversion of Control) 제어권의 역전 (일반적으로 제어권이란 자기가 사용할 의존성은 스스로 만들어서 사용하는 것을 의미) 제어권이 역전되었다는 것은 다른 누군가가 의존성을 외부에서 줌(DI: Dependency Injection 알아보기)을 의미한다. Spring IoC Container Bean을 구성하고 제공하는 컨테이너. 오브젝트에 대한 제어권을 코드 대신 갖고 있다고 해서 IoC라고 부른다. BeanFactory와 ApplicationContext 두 가지가 있다. BeanFactory Bean의 생성과 설정 및 관리를 맡고 있다. Bean을 등록, 생성, 조회, 반환 관리함. 보통은 이를 확장한 ApplicationContext를 사용함. getBean() 메소드가 정의.. 2021. 5. 2. [Spring] Dependency Injection(DI) - 의존성 주입 의존성이란? 아래 코드 상를 보면 Room 클래스에서 turnOnLigh()가 호출되기 위해서는 Light 클래스가 필요하다. 이 때, Room 클래스는 Light 클래스에 의존성을 가진다 라고 한다. class Room { private Light light; public Room() { this.light = new Light(); } public turnOnLignt() { this.light.turnOn(); } } 위와 같이 설계하였을 경우, Light 클래스가 수정되었을 때 Room 클래스도 함께 수정해 줘야 하는 문제가 발생한다. 그럼 어떻게 변경해야 하는 것일까? 의존성 주입(DI)이란? 의존성 주입이란 필요한 객체를 직접 생성하는 것이 아니라 외부로부터 필요한 객체를 받아서 사용하는 것... 2021. 5. 2. [DB] Entity와 DTO (그리고 VO) Entity 실제 DataBase의 테이블과 1:1로 매핑되는 클래스 DB의 테이블 내에 존재하는 컬럼만을 속성(필드)으로 가져야 한다. Entity 클래스는 상속을 받거나 구현체여서는 안 되며, 테이블 내에 존재하지 않는 컬럼을 가져서도 안 된다. Entity Setter 금지 및 생성자, 접근 제어 Entity를 작성할 때 setter를 무분별하게 사용하면 객체의 값을 변경할 수 있어 객체의 일관성을 보장할 수 없다. 일관성을 유지할 수 있어야 유지 보수성이 올라가기 때문에 Setter를 사용하기 보다는 객체의 생성자에 값을 넣어줌으로써 setter 사용을 줄이는 것을 지향한다. DTO (Data Transfer Object) 계층간 데이터 교환을 위한 객체. (DB의 데이터를 Service나 Con.. 2021. 5. 1. 이전 1 ··· 3 4 5 6 7 8 다음