인턴지원했는데 난 좀 어렵다 느꼈고 내 수준이 어느정돈지 궁금하네

1. 메시지큐 써보셨어요? - 네 로컬캐시 정합성 맞추는데 사용해봤습니다

2. 카프카 아니면 뭐 rabbit? 어떤거 쓰셨고 이유가 뭐에요? - 카프카가 레퍼런스가 많다는게 선택이유 1순위였구요 다른 mq들은 push 구조인데 카프카는 pull 구조라 어플리케이션측에서 수용량이 넘치는 상황에 있어서 제가 따로 로직을 구현해줄 필요가 없다 생각이 들어 카프카를 선택했습니다

3. 카프카 구조가 어떻죠? - 키워드로 말씀드려보자면 토픽 파티션 브로커 컨슈머 이렇게 있습니다. 한 토픽이 여러 파티션으로 나뉘고 이 파티션과 매칭된 컨슈머가 이벤트를 pull해갑니다. 한 브로커는 보통 리더파티션 레플리카 파티션을 가지는데
리더 파티션이 r/w 작업을 주로 담당하고 레플리카는 안정성을 위해 복제만 해둡니다

4. 방금 리더 리플리카 언급하셨는데 만드신 프로젝트에서 설정값은 어떻게 가져갔어요? - 실제 배포는 안해봐서 큰 고민 안하고 리더 1 레플리카 1로 두었습니다

5. 카프카에서 메시지 순서가 보장이 되나요? - 기본적으로 같은 파티선이 아니면면 안되는 걸로 알고있습니다. 만약 꼭 보장받고 싶다먼 메시지키를 지정해서 발행해야합니다.

6. 이벤트 발행 혹은 pull 과정에서 장애가나면 어떻게 해결할건가요? - at least once를 보장하기위한 설정값을 사용할거 같습니다. 안정성이 매우중요하다면 ack를 레플리카에서 까지 받게 설정해서 장애대응을 하거나 카프카 서버를 늘려서 싱글포인트 문제를 방지하겠습니다.
Pull해가는 과정은 컨슈머가 자체적으로 오프셋을 관리하니 서버만 여러개라면 문제 없을 것 같습니다

카프카 관련만 이정도고 자바, 스프링 관련도 비슷한 느낌으로 물어봤음..
@Transactional 이나 @Cache의 작동원리
블로킹 논블로킹 동기 비동기 차이
스프링 AOP
등은 전혀 대답못하고 털려버림

+) 참고로 3학년 학교연계 인턴면접으로 간거고 중소 중에서도 큰 곳임 트래픽 엄청 많더라