OS
운영체제란 운영체제는 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램입니다. 여기서 자원은, 프로그램 실행에 마땅히 필요한 요소들을 뜻합니다. 즉, CPU, 메모리, 입/출력 장치 등과 같은 컴퓨터 부품들을 말하는 겁니다. 운영체제는 인터넷 브라우저, 게임과 같은 프로그램입니다. 즉, 여느 프로그...
운영체제란 운영체제는 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램입니다. 여기서 자원은, 프로그램 실행에 마땅히 필요한 요소들을 뜻합니다. 즉, CPU, 메모리, 입/출력 장치 등과 같은 컴퓨터 부품들을 말하는 겁니다. 운영체제는 인터넷 브라우저, 게임과 같은 프로그램입니다. 즉, 여느 프로그...
@Transactional Transactional은 DB나 다른 리소스에 대한 작업을 수행할 때, 이러한 작업들을 여러 단계로 나누어 실행하고 관리하는 프로그래밍 개념입니다. 예를 들어서, 은행에서 돈을 이체할 때, 돈을 보내는 쪽에서 자신의 계좌에서 돈을 빼고, 돈을 받는 쪽에서는 돈을 받는 곳에 넣는 것처럼, 두개 이상의 작업을 하나의 트랜잭션...
영속성 컨텍스트 이벤트 리스너 영속성 컨텍스트에 대해 잘 모르신다면 영속성 컨텍스트를 참조하시면 됩니다. 프로젝트를 진행하던 중, DB에 데이터가 새로 추가가 될 때, 특정 기능이 작동해야하는 기능을 개발하고 있었습니다. 이때 어떤 기술을 활용해야 할지 고민하던 중에, 영속성 컨텍스트의 변경감지를 이용해 보자는 생각이 떠올라 이를 활용하기로 하였습...
DMA 입출력 DMA는 기존에 입출력 기반이나 인터럽트 기반에서 메모리 간의 데이터 이동은 CPU가 주도하고, 데이터도 반드시 CPU를 거친다는 단점을 해소한 방법입니다. 여기서 데이터가 반드시 CPU를 거치는게 왜 단점인지 알아보겠습니다. CPU는 평소에도 바쁘게 움직이는 하드웨어입니다. 하지만, 입/출력 장치와 메모리 사이에 전송되는 모든...
인터럽트 기반 입출력 CPU는 장치 컨트롤러에 입/출력 작업을 명령하고, 장치 컨트롤러가 입/출력 장치를 제어하며 입/출력을 수행하는 동안 CPU는 다른 일을 할 수 있습니다. 장치 컨트롤러가 입/출력 작업을 끝낸 뒤 CPU에게 인터럽트 요청 신호를 보내면 CPU는 하던 일을 잠시 백업하고 인터럽트 서비스 루틴을 실행합니다. 이렇게 인터럽트를 기...
프로그램 입출력 프로그램 입출력은 기본적으로 프로그램 속 명령어로 입/출력 장치를 제어하는 방법입니다. 한마디로 CPU가 프로그램 속 명령어를 실행하는 과정에서 입/출력 명령어를 만나면 CPU는 입출력 장치에 연결된 장치 컨트롤러와 상호 작용하여 입/출력 작업을 수행합니다. 프로그램 입출력 과정을 알아보겠습니다. 과정 1. 먼저 입/출력 ...
장치 컨트롤러,장치 드라이버 장치 컨트롤러는 입출력 장치를 컨트롤해주는 하드웨어라고 생각하시면 됩니다. 근데, 입/출력 장치에는 왜 장치 컨트롤러가 달려 있냐고 생각하면, 크게 2가지 이유 때문에 장치 컨트롤러라는 하드웨어가 부착 되어있습니다. 문제점 1. 입출력 장치에는 종류가 다양하고 매우 많습니다. 흔히 입출력 장치에는 모니터, 키보드,...
Mock MVC Mock MVC는 주로 Spring MVC에서 C에 해당하는 컨트롤러를 테스트할 때 사용됩니다. 이를 통해 서버를 실행시키지 않고 로컬에서 HTTP 요청 및 응답을 모의하여 컨트롤러 동작을 테스트 할 수 있습니다. 서버를 실행시키지 않고 로컬에서 테스트를 하게 되면 테스트를 더 빠르고 격리된 환경에서 실행이 가능하며, 외부 의존성...
JUnit5 JUnit은 자바에서 사용되는 단위 테스트 프레임워크 입니다. Spring boot 2.2.0 이전에는 JUnit4가 기본으로 설정이 되어 있었지만, Spring boot 2.2.0버전 이후부터는 JUnit5가 기본으로 설정이 됩니다. JUnit5는 JUnit Platform + JUnit Jupiter + JUnit Vintage로...
우선순위 큐를 이용한 알고리즘 먼저 앞서 우선순위 큐에 대해 간단하게 알아보고 가겠습니다. 우선순위 큐는 일반적인 큐와 달리 데이터를 우선순위에 따라 저장하고, 가장 높은 우선순위를 가진 데이터를 먼저 꺼내는 자료 구조입니다. 우선순위 큐는 저장된 데이터가 순서대로 나오는 것이 아니라, 우선순위가 높은 데이터가 먼저 나오는 특징을 가지고 있습니다....