오늘은 팀스파르타 기술면접을 보고 왔다. 생각보다 원활하게 잘 진행했다. 갔다와서 밀린 기술면접 스터디를 진행했다.
TCP와 UDP는 둘 다 전송 계층에서 데이터를 보내기 위해 사용되는 프로토콜입니다. 둘 다 패킷을 사용해 데이터를 전송합니다.
TCP는 연결 지향 프로토콜로 통신을 시작하기 전에 클라이언트와 서버간의 연결을 설정합니다. 그리고 데이터의 손실이나 중복, 순서변경을 검사하고 복구할 수 있습니다. 신뢰성과 정확성을 보장하기 때문에 연결 설정및 종료에 따른 오버헤드가 발생합니다.
반면 UDP는 비연결성 프로토콜로 클라이언트가 데이터를 보낼 때 마다 독립적으로 패킷을 보냅니다. 데이터의 신뢰성을 보장하지 않고 전송 시 에러검사나 복구를 하지 않습니다.
이러한 특징 때문에 TCP는 데이터의 신뢰성이 중요한 파일 전송, 이메일 전송 같은 곳에 쓰고, UDP는 전송 속도가 중요한 실시간 스트리밍, 온라인 게임같은 곳에 적합합니다.
패킷 : 인터넷 내에서 데이터를 보내기 위한 라우팅(경로 배정)을 효율적으로 하기 위해 데이터를 여러 조각으로 나누어 전송을 하는데 이 조각을 패킷이라 한다.
전송 계층 : OSI 7계층과 TCP/IP 4계층에 있는 계층으로 송신측에서는 데이터를 패킷으로 분할하고, 수신측에서는 패킷을 순서대로 재조립한다.
try-catch문 안에서 발생했다고 가정해보겠습니다. try문 안에서 예외가 발생하면 해당 코드블록에서 예외 객체가 생성됩니다. 이 예외객체는 예외의 유형과 상세 정보를 포함합니다. 이 예외는 가까운 catch 블록부터 순차적으로 탐색해 적합한 catch블록을 찾습니다. 해당 catch 블록에서 구현한 코드가 실행되고 그 이후 코드들이 실행됩니다. finally 블록이 있다면 무조건 실행됩니다.
만약 catch문 안에서 예외가 또 발생하면 일단 해당 예외를 처리할 수 있는 call stack을 따라 상위 catch블록이 있는지 확인한 후, 없으면 프로그램이 예외에 따라 비정상적으로 종료됩니다.