도커

VM vs 컨테이너 VM 하드웨어 인프라스트러처 위에 VMWare나 VirtualBox와 같은 HyperVisor 소프트웨어를 이용해서 각각의 가상의 머신을 만들 수 있다. 한 운영체제 위에서 동일한 어플리케이션을 각각의 고립된 다른 환경에서 구동하기 위해서는 가상 머신을 이용해서 어플리케이션을 구동해야 했다. 이 가상 머신은 각각의운영체제를 포함하고 있기 때문에 맥이라는 OS 위에서 가상머신을 이용하면 윈도와 리눅스를 동시에 구동할 수 있다. 고립된 환경에서 애플리케이션을 구동하기 위해서 VM을 사용하면 운영 체제를 포함하고 있기 때문에 굉장히 무겁고 그리고 시작하는 데도 오래 걸리고 또 컴퓨터 운영체제 인프라스트럭처 리소스를 많이 잡아먹는 범인이 될 수도 있다.

네트워크 장비

랜카드 랜카드는 네트워크를 구성하기 위한 가장 기본적인 장비이다. 랜카드는 유저의 데이터를 케이블에 실어서 허브나 스위치, 혹은 라우터 등으로 전달해주고 자신에게 온 데이터를 CPU에게 전달해주는 역할을 한다. 랜카드라고 하면 ‘랜에 접속하기 위한 카드처럼 생긴 것이다’라고 생각하면 딱 맞다. 랜카드는 데스크톱, 노트북, 프린터 등 네트워크 연결이 필요한 장비에 꽂아서 사용한다. 요즘은 랜카드를 직접 보기 힘든데, 왜냐하면 랜카드는 대부분 컴퓨터 안에 설치되어 제작되기 때문이다. 허브 허브(Hub)는 직사각형의 상자에 구멍이 뚫려 있는 모양으로 되어 있다.

정적 링킹, 동적 링킹

Static Linking (정적 링킹) 정적 링킹이란 실행 가능한 목적 파일을 만들 때 프로그램에서 사용하는 모든 라이브러리 모듈을 복사하는 방식을 말한다. 5개의 프로그램에서 A라는 외부 함수를 이용하는데 이때 정적 링킹 방식을 사용하면 5개의 프로그램의 실행 가능한 목적파일 각각에 A의 정보가 담긴다. 즉, 중복이 발생한다. 따라서 정적 링킹으로 만들어진 프로그램은 크기가 크고 메모리 효율이 좋지 않다. 정적 링킹을 이용하면, 동적 링킹 라이브러리를 사용하는 프로그램보다 빠르다. 또한 정적 링킹 프로그램에서 모든 코드는 하나의 실행 모듈에 담기기 때문에 compatibility issues 즉, 불일치에 대한 걱정을 하지 않아도 된다.

트랜잭션

트랜잭션은 데이터베이스 상태를 변환시키는 하나의 논리적 기능 수행 단위이다. 즉, 한 번에 처리되어야 할 일련의 작업을 말한다. 트랜잭션으로 원하는 작업의 단위를 정하게 되면 작업을 수행하는 도중 문제가 발생하였을 때 이전에 진행되었던 작업이 롤백된다. 모든 작업을 안정적으로 끝마친 후에 실제 데이터베이스에 반영할 수 있다. 트랜잭션의 범위는 커넥션 기준이다. 스프링 프레임워크의 트랜잭션 처리는 메소드 간에 커넥션 객체를 전달하지 않아도 한 트랜잭션으로 묶어서 실행하도록 돕는다. 트랜잭션의 성질 Atomicity(원자성) 하나의 트랜잭션이 더 작게 나눌 수 없는 최소의 단위라는 뜻이다.

데드락 (DeadLock)

데드락이란 서로 요청한 자원이 이미 상대방에게 점유되어 다음 명령을 처리 못하는 상태(교착상태)이다. 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 발생 조건 데드락은 4가지 조건을 모두 만족해야 발생하게 되는데, 하나라도 조건을 만족하지 않으면 문제를 해결할 수 있는 상황이다. 그 조건들은 아래와 같다. 상호 배제 (Mutual Exclusion) 자원은 한 번에 한 프로세스만 사용할 수 있음. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때까지 기다려야 함. 점유 대기 (Hold and wait)

HDD vs SSD

HDD(Hard Disk Drive) HDD는 자성을 띠는 원형 디스크인 플래터(Platter)와 이 플래터 위를 쉴새 없이 움직이는 헤드(Head)로 구성된다. 돌아가는 LP판의 홈을 바늘이 읽는 것처럼, HDD의 헤드는 회전하는 플래터의 데이터를 읽고 쓴다. 물리적으로 돌아가는 모터 방식이기에 소음이 발생한다. 때문에 소비 전력도 높고 발열 문제가 수반된다는 특징이 있다. HDD는 데이터 처리 속도도 상대적으로 느리며, 충격에 의해 헤드 같은 내부 장치가 손상될 수 있어 내구성도 약하다. SSD(Solid State Drive) SSD는 데이터 저장 장치로 메모리 반도체(낸드플래시)를 채택하며 HDD의 한계를 넘어선다.