스플릿
리소스
- 서비스의 어떤 부분을 개발하시면서 서버가 비즈니스 로직의 리소스를 담당하는 것이 좋을 것 같다는 생각을 하셨나요?
협업
- 프로젝트를 하다보면 어쩔 수 없이 협업을 할 수 밖에 없는 상황이 생길텐데, 어떻게 리소스를 줄일 수 있을까요?
모니터링
- 서비스 모니터링에서는 어떤 지표를 모니터링해야 할까요?
- or 모니터링할 지표를 선택한 기준이 있을까요?
로깅
- 로그를 남기기 위해
println()
을 사용하지 않고, logback 라이브러리를 사용하신 이유가 있을까요?
- (println 은 I/O operation 이기 때문에 synchronized 가 붙어 있어 상당한 성능 저하가 발생할 수 있다.)
- 로깅되는 정보는 어떤 것들이 있나요?
- 로깅하시는 각 레벨들이 어떤 의미를 가지고 있는지 알고 계신가요?
- 커스텀 예외들은 개발자가 의도한 예외이기 때문에, INFO 레벨이 좋을까요, 아니면 WARN 레벨이 좋을까요?
- S-HOOK 의 로그 전략에 대해 알려주세요.
- 현재 Request 에 대한 로깅도 진행하고 계신가요?
- Request 에 대한 로깅이 필요할까요? 왜 필요할까요?
- 실패한 Request 도 로깅하는 것이 좋을까요?
CI & CD
- jenkins 로 넘어가야 할 것 같다고 느끼신 적이 있다면, 이유가 무엇이었을까요? 없다면 어떤 부분에서 github action 이 jenkins 보다 나은 점은 무엇이 있을까요?
- CI & CD 에 대해 설명해주세요
- CI / CD 를 하는 이유는 무엇이라고 생각하시나요?
- CD 과정에서 어려우셨던 점은 없으셨나요? 어떻게 해결하셨나요?
- github runner 를 사용했을 때의 단점은 무엇이라고 생각하시나요?
로건
Transactional
Lock
- 어떤 부분에서 데드락 및 동시성 문제가 있었나요?
- 낙관적 락과 비관적 락에 대해 설명해주세요.
- 기존의 낙관적 락을 적용했을 때는 어떤 문제가 발생할 수 있나요?
- 비관적 락을 적용했을 때의 성능상 문제는 없을까요?
- 낙관적 락과 비관적 락이 스프링에서 어떻게 구현되어 있나요?
- 반정규화?
세션
- 펀잇 팀에서 세션을 사용하셨는데, 세션을 채택하신 이유가 궁금합니다.
달리
- CI / CD 란?
- apache 도 있고, nginx 도 있는데 nginx 를 사용하신 이유가 있으실까요?
- 어떤 지표를 모니터링하고 계신가요?
- prometheus 와 grafana 가 어떤 서버에 올라가 있나요?
- 분리했다면 왜 분리하셨나요? 어떤 부분에서 취약점이 있을까요?
- 서버 부하는 어느 정도 측정되고 있나요?
- prometheus 와 cloudwatch 를 비교했을 때 어떤 부분이 좋을까요?
- 도커를 사용하셨는데, 도커를 사용하셨을 때의 이점은 무엇인가요?
- nginx 를 도커로 띄우신 이유는 무엇인가요?
서기 - 루쿠
- 서비스에 대해 간단하게 설명해주세요
- 팀에서 어떤 역할을 하셨나요?
- 치명적인 버그를 찾고 해결했던 경험이 있으셨나요?
- batch 메서드를 사용하지 않고 deleteByIds 를 사용하여 해결했다.
- 삭제할 때 영속성 전이는 사용하지 않았나요?
- HTTPS 에 대해 적어주셨는데, 서비스에 어떻게 적용하셨나요?
- 인증서는 어떻게 발급하셨나요?
- certbot 을 사용했다. let's encrypt 라는 인증 기관에서 인증서를 발급 받았다.
- handshake 과정에서 대칭키를 만들어 암호화를 한다고 했는데, 그 부분을 좀 더 자세히 설명해주세요
- CORS 정책을 적용하신 배경이 무엇인가요?
- 코드 상에서 어떻게 CORS 정책을 적용하셨나요?
- nginx preflight 설정을 어떻게 하셨는지 좀 더 자세히 알려주세요.
- OAuth 를 사용하셨는데, 왜 카카오의 OAuth 를 사용하셨나요?
- 나이대와 성별을 투표 통계를 통해 알려주고 싶었다. 좀 더 정확한 정보를 받고 싶어 카카오톡을 선택했다.
- 구글 같은 경우 연령대, 성별을 마음대로 입력해도 가입 가능하지만, 카카오의 정보는 좀 더 신뢰성이 있다고 생각했다.
- OAuth 를 구현할 때 어려웠던 점은 무엇이었나요?
- OAuth 통신 과정에 대해 설명해주세요.
- Votogether 라는 프로젝트를 보았을 때, 투표를 해야 해서 동시성 문제가 발생할 수 있을 것 같아요. 어떤 부분을 고려했는지, 어떤 부분이 어려웠는지 듣고 싶습니다.
- 기능 개발에 초점을 맞춰서 동시성 문제는 아직 해결하지 못했다. 프론트 쪽에서 낙관적 업데이트를 통해 처리하고 있다.
- 현재는 다른 사용자들이 동시에 투표하는 것에 대해서는 대응이 되어 있지 않은 상태인가요?
- JPA 를 사용하면서 엔티티 연관관계 매핑을 어떤 기준으로 하셨는지 궁금합니다.
- 그 과정에서 객체지향적인 설계와 DB 패러다임과 충돌되는 경우는 없었나요?
- 이 프로젝트를 진행하며 겪었던 가장 인상깊었던 에피소드가 있을까요?
- 회의를 한 뒤에 일을 하는 방식의 변화가 있었나요?
- 기술적인 부분의 트러블 슈팅을 말해주세요.
- 팀적으로 협업할 때 누구는 기술적으로 많이 아는 사람이 있고, 베이스가 부족한 사람이 있는데, 루쿠는 어디에 포함되어 있다고 생각하셨나요?
- 기술적으로 뛰어난 크루들과 함께 협업했을 때 아쉬웠던 점이 무엇이었나요?
- 팀 프로젝트에서 해결해야 하는 과제들이 있는데 고루 분배해서 성장하는 것도 중요합니다. 루쿠가 주도적으로 해결하거나 학습적으로 맡은 부분이 있는지, 그런 부분이 잘 분배되지 않았다면 팀적으로 어떤 노력을 했는지 궁금합니다.
옵저버
체인저
레벨 학습
- 발생하는 문제를 여러 가지 형태로 해결했던 경험을 하나하나 말해주는 부분이 좋았다.
- 질문에서 인정할 부분은 인정하고, 자신만의 의견을 피력하는 모습이 인상 깊었다.
- 첫 번째, 두 번째와 같이 답변의 순서를 말해주고 답변하는 모습이 좋았다.
인터뷰 / 말하기
- 시선 처리, 제스처 모두 적당했다. 잘 생각나지 않는 내용은 말의 속도를 늦춰가면서 끊기지 않게 말하는 게 굉장했다.
모디
레벨학습
- 서비스에서 해당 기술을 사용하게 된 배경과 기술을 통해 어떤 것을 수행했는지 답변 내부에서 명확하게 분리되어 있어서 전달력이 좋았다.
- 마치 앞에 써져 있는 기술블로그를 읽는 듯한 답변이어서 대단하다고 생각했습니다. 그만큼 문제 상황과 근거가 확실하게 제시되어 있는 답변이라 좋았습니다.
인터뷰 / 말하기
- 프로젝트에 있었던 경험과 예시를 기반으로 답변하는 방식이 좋았다.
- 답변에 대한 예시가 조금 길어지는 부분이 있었다. 사람마다 차이가 있을 수 있지만, 개인적으로는 예시를 좀 더 간략하게 제시하면 더 좋을 것 같다.