1. Redis 분산락 사용 시 Transection 생명주기에 따른 Race Condition을 고려해보신적이 있으신가요?
2. AOP를 활용한 중첩 호출 상황에서 A 서비스에서 실행한 컨텍스트를 B 서비스에서 해제하여 A 서비스의 남은 로직에서 컨텍스트 누락 오류가 발생했습니다.
이러한 중첩 호출 상황에서 컨텍스트를 안정적으로 유지하여 최상위 메서드가 종료될 때 해제되도록 개선할 수 있는 방법은 어떤 것이 있을까요?
3. MQ 기반 처리 시 재시도 전략을 수립할 때 비즈니스 Latency와 시스템 자원 점유율 사이의 Trade Off를 고려하셨나요?
고려하셨다면 최적이라고 판단한 근거를 설명해주세요.
4. Master-Slave 구조에서 발생하는 Replication Lag 문제를 DB 설정 튜닝이 아닌 애플리케이션 레벨에서 우회하거나 정합성을 보장하는 방법을 고민해 보신 적이 있으신가요?
5. Facade 패턴을 도입했다고 하셨는데, 말씀하신 구조라면 동료 개발자가 Facade를 거치지 않고 Controller에서 Service를 직접 Autowired 해서 사용해도 막을 방법이 없습니다.
오히려 호출 계층이 깊어지고 관리가 안될 리스크가 있는데 그럼에도 불구하고 도입해야했던 근거와 이를 팀 차원에서 강제할 수 있는 수단이 있나요?
6. InnoDB와 PostgreSQL은 MVCC를 구현하는 방식이 근본적으로 다른데
이로 인해 빈번한 업데이트가 발생하는 서비스와 빈번한 조회가 발생하는 서비스에서 어떤 DB의 MVCC 구현 방식이 시스템 리소스 관리 측면에서 더 유리할지 본인의 견해을 밝혀주세요.
7. Nginx와 로드밸런서 구성을 보면 ALB를 주축으로 사용하신 것으로 보입니다.
고성능/저지연 처리가 강조되는 환경이라면 NLB를 전면에 두거나 병행하는 구조를 고려했을 텐데 ALB만으로 구성을 마무리하신 기술적 판단 근거가 있으신가요?
8. 하위 호환성을 위해 서버에서 TLS 1.0/1.1 프로토콜을 지원하던 중 신형 단말 사용자들로부터 접속 불가 장애가 보고되었습니다.
이는 신형 단말에서 구버전 프로토콜 지원만으로 핸드셰이크를 실패하도록 한 보안 패치 때문인데
핸드셰이크 과정 중 어느 단계에서 실패를 유발할지 예측하고 근거와 해결책을 설명해주세요.
9. 하나의 트랜잭션 내에서 DML 후 DDL 실행 시 발생하는 암시적 커밋에 의한 원자성 파괴와 DDL 후 장시간 DML 실행 시 MDL(Metadata Lock) 큐잉으로 인한 전사적 서비스 중단 리스크의 기술적 원인을 설명해 주세요.
10. Blue/Green 배포 사용 시 LB를 사용하고 있을 경우 TG 구성은 어떻게 하셨나요?
또한 Rolling 배포에 비해 Blue/Green 배포가 가지는 이점이 어떤것이 있나요?
애들 좀 그만 갈궈 - dc App
신입 수준에서 가혹한건 맞는데 키워드로 검색해보면 좋을거같아서 ...
내가 실무에서 겪었던 문제들을 약간 각색한 내용이야
면접문제가 친절한듯 이미 문제상황을 알려주는거부터
양질의 질문이네
1번은 어떤 상황 말하는거임? 보통 락이 트랜잭션 메서드를 감싸지 않나? aop를 쓸 때 말하는거임?
두 가지 상황인데 AOP 사용 시에는 AOP 순서 미보장이 답변이 될 수 있겠고 내가 원하는 상황은 횡단 관심사 도메인 사용 시점으로 예를들어 포인트 적립의 경우 트랜젝션 매서드 내부에서 호출될 수 있으니까 포인트 적립 매서드 내부에 락 적용 시 외부 트랜젝션보다 락이 빨리 반환되어 Race Condition이 발생하는 상황이야 후자의 경우 Controller 단계에서 락을 잡거나, Queue를 사용하거나, PostgreSQL을 사용한다면 Advisory Lock 등의 방법을 사용할 수 있겠고 각각 유지보수성, 오버엔지니어링, 벤더 종속성 등의 문제가 있다는 답변 정도면 베스트라고 생각해
@글쓴 백갤러(61.82) 굿 정리 잘했네 근데 컨트롤러에서 제어하는것보다 차라리 상위 서비스 레이어에서 잡거나 파사드 쓰는게 좋지 않을까?
@백갤러4(211.234) 상위 서비스 레이어나 파사드로 락을 끌어올리면 상위 계층에서 락의 존재를 관리해야하는 강한 결합이 생겨서 유지보수성이나 휴먼 에러가 발생할 가능성이 높아서 별로인듯 예를들어 포인트 적립 시 락이 필요하면 회원가입이나 게시글 작성 등 시점에 포인트 락이 필요하다는걸 알아야하니까 유지보수 관점에서도 별로고 Solid 하지도 않지
@글쓴 백갤러(61.82) 물론 이게 컨트롤러에서 제어하는거랑 별 차이는 없고 파사드 사용 시 재사용성이 높아지는 것은 맞아 난 결과적으로는 Queue나 Advisory Lock, 어쩔 수 없는 경우에 Facade가 답이라고 생각하긴해
@글쓴 백갤러(61.82) 다만 Advisory Lock 사용 시 주의해야할 게 있는데 FK Shared Lock이랑 충돌해서 데드락이 생길 위험이 있긴해 물론 이건 Advisory Lock 때문이라기 보다는 논리적 락 사용 시 발생할 수 있는 문제라서 이 부분까지 답변하면 최상이긴 하지
@글쓴 백갤러(61.82) 굿굿
질문 쉽지 않네
tg가 뭐임?
타겟그룹