기본키(Primary Key) 값 중복을 허용하지 않는다. 식별키이다. NULL값을 허용하지 않는다. 테이블에서 한 개만 생성 가능하다. 유니크키(Unique Key) 값 중복을 허용하지 않는다. NULL값을 허용한다. 테이블에서 여러 개 생성 가능하다.
전체 글
블로그 이전 중입니다..!정의 프로세스들이 서로가 가진 자원을 기다리며 무한정 기다리고 있는 상태 발생 조건 다음의 4가지 조건 모두 만족해야한다. Mutual exclusin(상호배제) 매 순간 하나의 프로세스만이 자원을 사용할 수 있다. No preemption(비선점) 프로세스는 자원을 스스로 내려놓을 수 있지만 강제로 빼앗기지 않는다. Hold and wait(점유 대기) 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유 자원을 놓지 않고 계속 가지고 있는다. Circular wait(순환 대기) 자원을 기다리는 프로세스간에 사이클이 형성되어야 한다. 해결 방법 예방 교착 상태 발생 조건 중 하나를 제거하면서 해결한다 (자원 낭비 엄청 심함) 상호배제 부정 동시에 여러 프로세스가 자원을 접근할 수 있게 한다. 다만 공유..
정의 Semaphore S에서(S는 정수) P(S) -> 자원이 있으면 하나 가져가고 없으면 while문을 돌며 기다린다. V(S) -> 자원을 다 사용하고 반납하는 과정이다. 세마포어의 종류는 두 가지가 존재한다. 종류 counting semaphore 세마포어의 S가 범위가 0 이상인 임의의 정수 값이다. 자원의 숫자를 세는 데에 사용한다. binery semaphore(mutex) 세마포어의 S가 0 또는 1의 값만 가질 수 있는 세마포어로 주로 Lock/Unlock에 사용한다. 뮤텍스라고도 한다. 차이점 정리 둘 다 공유 자원에 접근할 수 있는 프로세스를 제한합니다. S라는 정수 값을 통해 접근할 수 있는 프로세스를 제한하는데, 세마포어는 S가 범위가 0 이상인 임의의 정수 값을 사용하므로, 최대..
race condition 두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황 race condition이 발생하는 경우 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 해결법 : 커널이 작업을 수행중이면 인터럽트가 발생하더라도 먼저 하던 작업을 먼저 다 끝낸 뒤 인터럽트 처리 루틴을 실행하면 해결할 수 있다. 프로세스가 'System Call'을 하여 커널 모드로 진입하여 작업을 수행하는 도중 문맥 교환이 발생할 때 문제점 : 프로세스1이 커널모드에서..

CPU 스케줄링 CPU를 사용하기 위해 프로세스를 배정하는 작업 스케줄링 알고리즘 성능 척도 시스템 입장에서 성능 척도 Cpu Utilization(이용률) : 전체 시간중에서 cpu가 놀지 않고 일하는 시간의 비율 Throughput(처리량) : 단위 시간당 cpu가 프로세스를 얼마나 처리하는가 프로세스 입장에서 성능 척도 Turnaround Time(소요시간, 반환시간) : 프로세스가 cpu를 쓰러 들어와서 다시 반납하고 나갈 때 까지의 시간 Waiting Time(대기시간) : ready queue에서 대기하면서 소요된 모든 시간 Response time(응답시간) : ready queue에서 최초로 cpu를 얻기 전까지 시간 CPU 스케줄러 프로세스들은 queue라는 곳에서 관리가 되는데, 스케줄..

프로세스 프로세스 개념 컴퓨터에서 실행중인 프로그램을 말하고 OS로부터 시스템 자원을 할당 받는 작업의 단위입니다. 시스템 자원 CPU 시간 독립된 메모리 영역 code data heap stack 프로세스 상태 Running cpu를 잡고 instruction을 수행중인 상태 Ready cpu를 기다리는 상태(메모리 등 다른 조건을 모두 만족하고 언제든 cpu를 받으면 Running 할 수 있는 상태) Blocked cpu를 주어도 당장 instruction을 수행할 수 없는 상태 프로세스 자신이 요청한 이벤트(예: I/O)가 즉시 만족되지 않아 이를 기다리는 상태 ex) 디스크에서 file을 읽어와야 하는 경우 (추가) New 프로세스가 수행중인 상태 Terminated 수행이 끝난 상태(종료중인 상..
운영체제 = 커널 + 시스템 프로그램 커널 운영체제의 핵심부로 컴퓨터 자원(cpu, 메모리, 파일, 입출력 장치 등등)을 관리하는 역할을 수행 시스템 프로그램 사용자가 컴퓨터 자원에 접근하기 위해 사용하는 프로그램. 대표적으로 쉘(shell)이 있다. 사용자가 컴퓨터에게 전달하는 명령을 해석하는 프로그램. 즉, 커널과 사용자간의 다리 역할을 수행한다. 시스템 콜 응용 프로그램은 OS가 제공하는 인터페이스를 통해서만 자원을 사용할 수 있다. 이 때 이 인터페이스를 시스템 콜이라고 한다. 운영체제는 커널이 제공하는 서비스를 시스템콜을 이용해 제한함으로써 컴퓨터 자원을 보호합니다. 예시로는 프로세스 생성/종료나 I/O작업 등이 있습니다. (fork, exec, exit, wait)
VO value object의 약자로, 값 자체를 표현하기 위한 객체이다. 변하지 않는 그 자체로 고유한 불변 객체라고 말할 수 있다. Entity 도메인에서 개별성이 있는 개념으로, 식별자를 가지고, 변화할 수 있는 객체이다. DTO Data Transfer Object의 약자로 데이터의 전달을 위해 사용되는 객체이다. DAO Data Access Object의 약자로 DB에 접근하는 역할을 하는 객체이다.

IoC 객체가 자신이 사용할 객체를 직접 생성 및 조작하는 작업을 하지 않고, 객체의 생성을 ‘특별한 관리 주체’에게 위임 즉, 사용자가 객체를 직접 생성하지 않고, 다른 주체가 객체의 생명주기를 컨트롤한다는 개념이다. 라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어하지만, 프레임워크는 애플리케이션 코드가 프레임워크에 의해 사용된다. ApplicationContext 일종의 IoC 컨테이너이다. 객체에 대한 생성과 조합을 가능하게 하는 프레임워크이다. ApplicationContext는 BeanFactory를 상속한다. BeanFactory는 객체에 대한 생성, 조합, 의존관계설정 등을 제어하는 IoC 기본 기능을 담당한다. Configuration Metadata Applicat..

Spring MVC 해야할 관심사를 기준으로 컴포넌트들을 분리시킨 구조 Model: 자바 객체 또는 Pojo로 데이터를 담고 있음 View: 모델이 담고 있는 데이터를 시각적으로 보여주는 역할 Controller: 모델과 뷰를 연결하기 위한 매개체. 사용자의 요청을 받아 모델의 상태를 변경해주고 그에 따른 뷰를 업데이트 해줌 spring boot 쓰는 이유 자주 사용되는 라이브러리들의 버전 관리 자동화 AutoConfig로 복잡한 설정 자동화 내장 웹서버 제공 실행 가능한 JAR로 개발 가능 spring의 여러 프로젝트 중 하나의 프로젝트로서 다음과 같은 주요 기능을 제공함. SpringApplication을 통한 손쉬운 실행 Auto Configuration 쉬운 외부 환경 설정 - Properties..