1. 주력 언어가 뭔지
  2. 스프링 버전이랑 자바 버전 어떤거 사용하고 있는지
  3. 인증 시스템 쪽 프로젝트 하셨다고 하셨는데 해당 프로젝트에 대한 전체적인 소개
  4. OAuth라는 조금 다른 부분이 있는데, 이 엑세스 토큰을 굳이 JWT토큰으로 제공한 이유가 뭔지
  5. JWT 토큰이 탈취된다면 어떻게 하실건지? 이거를 방지하려면 어떻게?
  6. JWT토큰은 서버가 아닌 클라이언트 쪽에선 어떻게 저장하고 있는지 ?
  7. 서버 구조에 인증 단계는 있는데 인가 단계가 생략되어있는 구조인데 인가 단계가 왜 생략되어 있는지?
  8. 스프링에 factoryBean과 beanFactory의 차이
  9. 스프링의 인터셉터와 필터 설명
  10. 실무에서 써봤는 지?
  11. 컨트롤러 단에서 혹시 "redirect:", "forward: " 써봤는지 앞에 필터와 인터셉터가 앞에 두가지를 썼을때 어떻게 다르게 동작하는 지 설명
  12. 스프링에서 aop도 써봤는지?
  13. 테스트할때 람다와 for문 둘중 뭐가 빠른지확인하려고 써보셨다고 했는데 둘중에 뭐가 더 빨랐는지 그리고 그 이유가 왜 그런거 같은지?
    • 람다는 내부적으로 iterator 객체를 사용한다.
    • Linked List의 경우 for문을 사용하면 속도가 굉장히 느려진다.
    • 그 이유는 for문의 경우 list.get(i)를 통해 해당 인덱스에 접근을 하기 때문이다.
    • forEach가 빠른 이유는 Iterator를 사용하기 때문 (당연한 이야기..)
    • Array List의 경우 for문이 살짝 더 빠르긴 한데 엄청 차이가 나지는 않음.
    • Array는 꽤 차이가 남. 1.4배 가량
    • Array List와 Array에서는 왜 for문이 더 빠를까? → 이터레이터 객체를 순회하는 비용보단 당연히 메모리에 직접 접근하는게 더 빠를테니깐
    • https://siyoon210.tistory.com/99
  14. 회사에서 git 사용하고 있다면 브랜치 정책이랑 배포는 어떻게하고 배포전에 검증은 어떻게 하는지
  15. 개발용 서버를 따로 운용하고 있는 지?
  16. 개발용서버를 둘이 동시에 개발을 할때 여러명이 배포를 하면 먼저 배포된 기능이 사라지거나 이럴 수도 있는데 그런 경우를 어떻게 피하고 있는 지
  17. 프로젝트를 하면서 로그를 어떻게 쌓고 어떻게 시각화 했는 지 설명
  18. 장애감지는 어떻게 하고 있는 지?
  19. 어플리케이션 서버가 있고, 거기에 데이터베이스가 한대 있는데 데이터 베이스에 부하가 많이 걸려있는 상황, 이거를 해결하려면 어떤 방법이 있을 지?
  20. 일반적으로 디비에 부하가 가고있다는 상화을 어떻게 감지할 수 있나요?
    1. aws 클라우드 워치로 모니터링 하고 있다고 말씀드렸고, 그거 말고 정말 서버만 있을때 어떻게 할건지 여쭤보심 아마 show status; 쿼리 같은 걸 말씀드렸으면 좋았을 것 같음.
  21. DI가 뭔지 설명
  22. 실제 스프링 사용하면서 DI로 인해 뭔가 이점을 본적이 있는 지?
  23. 자바 gc 관련된 옵션을 튜닝해보거나 힙덤프를 떠보거나 스택덤프를 떠본적 있으신지?
    1. 상황 말씀드렸고, 아마 그때 jpa query cache padding 문제 였을 것 이라고 말씀해주시면서
    2. jpa query cache에 대해서 아는게 있는 지 여쭤보심
    3. 해당 상황을 쿼리를 나눠서 여러개 보내는 것 말고 다른 방법은 없었을 까?
  24. 힙덤프 뜨는 명령어 아시는 지?
  25. jmap이 맞는데 jmap을 런타임 서버에 직접 실행하셨는지?
  26. 말씀하신건 메모리 릭으로 oom 상황이었는데 그것 외에는 jvm 옵션을 튜닝해보거나 이런 적은 없으신 지?
  27. 사내에서 jvm튜닝 옵션을 넣고 있는 게 어떤게 있는 지?
  28. 도커파일 만들때 도커안에서 빌드를 하고 있는 것인지? 도커 레이어를 활용하기 위해서는 쌩 jar를 복제하는 방법 말고 다른 방법이 있는 데 그 방법을 알고 있는 지?
  29. 개발하시는 서버 어플리케이션에서 서버투서버 통신은 어떻게 하고 있는지
  30. RestTemplate쓸때 에러 핸들링하는 게 좀 불편한 부분이 있는데 소개해주실만한 부분이 있는지 404 낫파운드 같은 걸 잡으려면 어떻게 하시는지
    1. 트라이 캐치로 묶어서 하는 방법 말고 다른 방법 아시는게 있는지 ? 몇가지 더있는데
    @RestControler = @Controller + @ResponseBody
  31. @RestControllerAdvice = @ControllerAdvice + @ResponseBody.
  32. 컨트롤러에서 익셉션 헨들링 어케 하고잇는지
  33. 레스트 컨트롤러어드바이스랑 그냥 컨트롤러어드바이스랑 같이 선언되어있으면 어떤 일이 벌어지는 지 아시는 지?
    • 글로벌 예외를 둘이서 같이 잡아가려고 하겠지.
    • 그렇다면 명시적으로 레스트 컨틀로러어드바이스에다가 @RestControllerAdvice(annotations = RestController.class)로 셋팅해서 RestController에 대한 예외만 받아온다던가 할 수 있겠지.
  34. Optional에서 orElseGet과 orElse가 있는데 둘의 차이와 원리 설명...?
    1. 그러면 orElseget만 스면되는데 orElse는 왜 있을까여.?
    2. orElse는 옵셔널 객체의 상태가 null이든 아니든 항상 수행된다.
    3. orElseGet은 내부 객체가 null 일 때만 내부적으로 실행된다. orElseGet의 경우 Supplier(함수형 인터페이스)를 인자로 받는다.
  35. 프로그래밍 언어가 컴파일 언어랑 인터프리터 언어로 나뉘는데 이 두가지 언어에 대해 설명해주세요.
  36. 디비의 인덱스 를 쓰면 검색이 빨라지는데 모든 컬럼에 인덱스를 걸면 빠르고 좋은데 왜 그렇게 안할까요?
  37. 개발하시면서 디비 트랜잭션 관련 관리했을 때 격리수준, isolation level에 대해서 설명해주세요
  38. 멀티 프로세싱과 멀티 스레딩의 차이 / 우리가 주로 멀티 스레딩으로 구현하는 이유
    • EZ
    • 멀티 프로세스와 멀티 스레딩의 차이 설명
    • 멀티 스레딩의 컨텍스트 스위칭 비용에 대해 설명
LIST

+ Recent posts