📌 기술면접 예상 질문
1. TCP와 UDP를 비교하여 설명해 주실 수 있을까요?
- TCP(Transmission Control Protocol)는 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 연결 지향적 프로토콜입니다.
- 연결 설정에는 TCP 3-way handshake가 사용되며, 통신이 완료되면 연결을 해제합니다.
- 데이터의 손실이나 손상이 발생할 경우 재전송을 통해 보완합니다. 또한, 흐름 제어 및 혼잡 제어 기능을 제공하여 데이터 전송의 안정성을 유지하고 순서가 보장됩니다.
- 파일 전송, 이메일, 웹 브라우징 등과 같은 데이터의 정확성이 중요한 응용 프로그램에서 사용됩니다.
- 전송 시에 추가적인 오버헤드가 발생할 수 있지만, 데이터의 신뢰성관 안정성을 보장하기 위한 것입니다.
- UDP(User Datagram Protocol)는 데이터를 데이터그램 단위로 처리하는 비연결성 프로토콜입니다.
- 연결 설정 및 해제 과정이 없으며, 데이터가 손실되거나 순서가 바뀔 수 있습니다.
- TCP보다 적은 오버헤드를 가지며, 흐름 제어나 혼잡 제어 기능이 없어 빠른 전송이 가능합니다.
- 실시간 응용 프로그램(온라인 게임, 음성 및 비디오 스트리밍)과 같은 빠른 전송이 필요한 경우에 유용합니다.
- 손실된 데이터에 대한 신속한 전송이 중요한 경우 적합하며, 빠른 전송과 낮은 지연 시간이 필요한 경우에도 유용합니다.
2. @Transactional 애너테이션에서 readOnly 사용할 때의 장점에 대해 설명해 주세요.
- 데이터의 변경 내용을 확인하지 않아도 되므로 영속성 컨텍스트를 사용하지 않아 메모리 사용량이 줄어듭니다.
3. 트랜잭션의 동작원리에 대해 설명해 주세요.
- 스프링에서 트랜잭션 관리를 위한 어드바이스가 미리 정의됩니다. 이 어드바이스는 트랜잭션의 시작, 커밋 또는 롤백과 같은 기능을 제공합니다.
- @Transactional 어노테이션을 명시하면, 해당 메서드에 어드바이저가 적용될 포인트컷이 정의됩니다.
- 어드바이스와 포인트컷이 결합되어 어드바이저가 생성되고, 스프링 빈으로 등록됩니다.
- 스프링 컨테이너가 빈을 생성한 후 필요한 경우 프록시 객체를 생성합니다.
- 클라이언트가 빈을 주입받을 때, 실제로는 프록시 객체가 주입됩니다. 이 프록시 객체는 타깃 빈을 감싸고 있으며, 클라이언트가 메서드를 호출할 때 트랜잭션 관리 기능을 추가하여 호출합니다.
'hanghae99 > TIL' 카테고리의 다른 글
[항해 취업코스] 취준 기록 20일차 (0) | 2024.03.29 |
---|---|
[항해 취업코스] 취준 기록 19일차 (0) | 2024.03.28 |
[항해 취업코스] 취준 기록 17일차 (0) | 2024.03.26 |
[항해 취업코스] 취준 기록 16일차 (0) | 2024.03.25 |
[항해 취업코스] 취준 기록 15일차 (0) | 2024.03.22 |