면접질문
// (동기, blocking),(비동기, non-blocking) - 요청흐름
// (동기, blocking),(비동기, non-blocking) - 요청흐름
1번 문제: Spring IoC와 의존성 주입 현재 UserController에는 다음 코드가 있습니다. @RequiredArgsConstructor public class UserController { private final UserService userService; } 그리고 UserService에는 현재 @Service가 없으며, UserServiceConfig의 @Bean 메서드가 객체를 생성합니다. 다음 내용을 본인의 말로 설명해보세요. UserController 객체는 누가 생성하나요? UserService 객체는 누가, 어디에서 생성하나요? userService 필드에는 어떻게 객체가 들어가나요? 이 과정에서 IoC와 DI는 각각 무엇을 의미하나요? @RequiredArgsConstructor가 UserService 객체까지 생성해 주는 것인가요?
낙관적 락은 어떤 방식으로 동시성 제어를 수행하는지 설명해보자
낙관적 락은 데이터에 직접 락을 걸지 않고, 엔터티의 @version 값을 이용하여 동시성을 제어한다. 여러 트랜젝션이 동일한 버전의 데이터를 수정하면 먼저 반영된 트랜젝견만 성공하고 버전이 증가하낟. 이후 트랜젝견은 자신이 조회한 버전과 DB의 현재 버전이 달라 수정에 실패하며 OptimisticLockingFailureException이 발생하고 롤백된다. 실패한 작업을 최신 데이터 기준으로 처리하려면 예외 발생 후 새로운 트랜잭센에서 데이터를 다시 조회하여 재시도 해야한다.
COMMENTS
GitHub 계정으로 로그인하여 댓글을 남길 수 있습니다. 댓글은 GitHub Discussions에 공개 저장되며, 작성 내용과 GitHub 프로필 정보가 다른 방문자에게 보일 수 있습니다.