프로세스와 스레드의 차이에 대해 설명해 주세요
프로세스는 프로그램이 CPU로부터 자원을 할당받아 메모리에 적재되어 실행되는 독립적인 실행 단위 입니다. 스레드는 프로세스 내에서 실행되는 작은 실행 단위 입니다. 프로세스는 각각의 데이터 영역을 쉽게 침범 할 수 없지만, 스레드는 code, data, heap 영역을 공유합니다. 프로세스가 중단 되면 다른 프로세스에 영향을 주지 않지만, 스레드가 중단 되면 프로세스 내 모든 스레드에 영향을 주게 됩니다.
TCP와 UDP의 공통점과 차이점을 설명해보세요.
TCP와 UDP는 모두 데이터 송수신을 위한 프로토콜입니다. 둘 모두 TCP/IP 네트워크 위에서 동작하며, 패킷기반의 프로토콜로서, 데이터를 작은 단위로 쪼개어 전달합니다. 차이점은 TCP는 연결지향성이라 상호간 연결이 확인 된 뒤 데이터를 전송하는 특징이 있고, 데이터의 전송순서를 보장하여 신뢰도 높은 데이터 전송이 가능하지만, UDP는 비연결지향성이라 서로의 연결을 확인하지 않고 단방향으로 데이터를 전송합니다. 또한, 데이터의 전송순서를 보장하지 않기 때문에 신뢰도가 매우 떨어지나 데이터 오버헤드가 없어 전송이 매우 빠르다는 특징을 가지고 있습니다. TCP는 주로 HTTP, SMTP, Telnet, FTP 등에 쓰이며, UDP는 실시간 스트리밍, DNS등에 사용된다고 합니다.