면접 질문 리스트

9 분 소요

시간이 지나면서 축적되고 있어 중복된 질문이 있을 수 있습니다. 제보주시면 수정하겠습니다.

기업 면접 질문 리스트

Java Backend 개발자 면접 때 나온 질문 리스트 정리입니다. 계속해서 추가합니다. 질문에는 정답이 있는 질문도 있지만, 정답이 없는(본인의 생각을 물어보는) 질문들도 있습니다. 본인의 생각을 확실하게 이야기 할 수 있으면 좋을 것 같습니다.

인성 질문

  1. 왜 전 회사 그만두고 개발하러 오셨나요?
  2. 퇴사한 것을 후회하지 않으시나요?
  3. 지원한 이유는 무엇인지?
  4. 개발이 왜 좋은지?
  5. 개발을 왜 시작했는지?
  6. 어떤 점에서 개발자가 되고 싶은지?
  7. 미래에 어떤 개발자가 되고 싶은지?
  8. 전공 과목중에 좋아하는 과목이랑 싫어하는 과목 각각
  9. 어떤 서비스를 하고 싶은지?
  10. 만약 떨어진다면 어떤 기업에 또 지원할 것인지?
  11. 5년, 10년 뒤에는 어떤 엔지니어가 되어있을지?
  12. 주변 친구들 중 한명 칭찬해주세요
    1. 칭찬 한개만 더 해주세요
  13. 지원하는 회사의 장점은?
  14. 회사에 궁금하신점 있으신가요?
  15. 본인의 강점, 단점은?
  16. 기술적인 이슈를 해결했던 경험을 이야기 해주세요.
  17. 입사한 팀이 코드리뷰, 클린코드, 테스트 아무것도 안하면 어떻게 하실 건가요?
  18. 열심히 하지만 본인이 원하는 만큼 따라오지 못하는 팀 동료들이 있을 수 있는데, 이럴 때는 어떻게 하는지?
  19. 본인이 팀 프로젝트에서 협업 측면에서 맡았던 역할을 이야기 해주세요.
  20. 팀 프로젝트에서 아쉬웠던 점 이야기 해주세요.
  21. 전공을 하셨는데, 전공 관련해서 최근에 부족하다고 느껴서 공부하고 있는 분야가 있는지?
  22. 최근에 재미있어 하는 일은?
  23. 시간 남을 때 하는 일은? (개발 말고..)
  24. 토이프로젝트 하고 있다고 하신 거 어떤 거 하시는 지 말씀해주세요.
  25. 입사해서 원하는 선배의 모습이 무엇인가요?
  26. 본인이 속한 그룹에서 몇 등 정도 하는 것 같은지?
    1. 그러면 본인보다 잘하는 동료들은 어떤 점에서 더 잘하는 것 같은지?
    2. 더 못한다고 한 사람들은 어떤 점에서 더 못하는지?
  27. 사내 스터디에서 어떤 것을 공부하고 싶은지?
  28. 지금 제일 가고 싶은 회사는?
  29. 특별히 가고 싶은 회사는? 특정 도메인인지? 회사의 분위기인지? 어떤 점을 중점적으로 보는지?
  30. 좋아하는 앱이 있는지?
  31. 그 앱에 추가하고 싶은 기능이 있는지?
  32. 본인이 생각하기에 좋은 개발 문화라는 것은 어떤 것인지?
  33. 팀 프로젝트에서 힘들었던 팀원이 있다면? 어떤 점에서 힘들었는지?
    1. 어떻게 해결했는지?
  34. 페어 프로그래밍은 어떤 식으로 진행했는지?
  35. 사람들과 협업하면서 가장 어려웠던 점이 있다면?
  36. 전에 했던 프로젝트가 어떤 프로젝트였고, 초기에 어떤 계획을 했고 어느정도 달성했는지, 맡은 역할은 무엇이었는지?
  37. 프로젝트에서 기간이 얼마 남지 않았을 때 무엇에 집중하는지?
  38. 스터디 하고 계시는 것 있는지?
  39. 문서화는 왜 해야한다고 생각하시나요?
  40. 다른 사람이 생각하기에 본인의 장, 단점은?
    1. 그 단점을 극복하기 위해 노력했던 것은?
  41. 지금 읽고 계신 책은 무엇인가요?
  42. 지금 공부하고 계신 분야는 무엇인가요?
  43. 좋은 개발문화는 무엇인가요?
  44. 그러면 좋은 사람, 좋은 개발자는 어떤 사람인가요?
  45. 좋은 개발자의 요소를 세 가지 정도만 말씀 해주세요.
  46. 회사는 교육기관이 아닙니다. 당신이 회사에서 실력을 키우고 배울 수 있고 함께 성장할 동료를 얻을 수 있다면, 당신이 회사에 기여할 수 있는 것은 어떤 것이 있죠?
  47. 페어 프로그래밍의 장점은?
  48. 회사의 입장에서 페어 프로그래밍의 장점은?
  49. 못하는 개발자 두명이 페어 프로그래밍을 한다면 오히려 능률이 떨어지는 것이 아닌지?
  50. 협업을 하면서 가장 중요하게 생각하는 것은?
  51. 소통 능력을 키우기 위해서 어떤 일을 할 수 있을까?
  52. 실무에서 개발자 외의 사람들과 소통할 경우에는 어떻게 해야할까?
  53. 새로운 언어를 배울 때 어느정도 시간이 걸리시나요?
  54. 개인적으로 공부를 어떻게 하시는지 말씀해주세요. (강의, 책 등)
  55. 리팩토링에 관한 책 읽어보셨나요?
  56. 회사와 본인을 어떻게 연관짓나요?
  57. 우리 회사에 기대하고 있는 것이 있나요?
  58. 그러면 우리가 지원자분께 기대할 수 있는 것은 무엇이 있나요?
  59. 활동하고 있는 IT 커뮤니티 있나요?
  60. 최근 관심을 가지고 있는 IT 분야는?
  61. 본인은 팀장 성향인지, 팀원 성향인지?
    1. 그럼 예를 들어 친구들끼리 여행가자!해서 각자 의견을 물을 때 꼭 필요하지 않다면 굳이 의견을 내지 않는 스타일 이신가요?
  62. 팀원과 갈등이 발생했을 때 어떻게 해결하는지?
    1. 설득을 하려고 해도 끝까지 일치하지 않을 수 있는데 이럴 땐 어떻게 하는지?
    2. 프로젝트의 기한도 길지 않아서 두 방식을 모두 해볼 수 없다고 가정하면 어떻게 해야할 지?
  63. Frontend Framework를 사용하지 않고 바닐라 자바스크립트를 사용한 이유는 무엇인가요?
  64. (어떤 프로젝트에 대한 설명을 하고 나서) 그렇게 하기로 결정한 이유는 무엇인가요?
  65. (스프링 시큐리티에 관심이 있다고 하고 난 후) 스프링 시큐리티에 가장 최근에 올라온 이슈는 무엇인지?
  66. 전 직장에서도 업무가 맞지 않아서 퇴사하셨다고 하셨는데, 그러면 여기서도 업무가 맞지 않으면 동일하게 하실 것인지?
  67. 전 직장에서 퇴사하신 것을 후회하지 않으십니까?
  68. OAuth에 대해서는 왜 공부하셨나요? (XX 에 대해서는 왜 공부하셨나요?)
  69. 입사 후 쉬운 일, 어려운 일이 있을 때 이 일에 대한 분배를 어떻게 하실 건가요?
  70. 만약 떨어진다면 어떤 점이 부족해서 떨어졌다고 생각할지?
  71. 공백기간동안 뭘 하면서 보내셨나요?
  72. 인생을 살면서 무엇인가 하나에 푹 빠져본 적이 있으신가요?
  73. 인생에서 가장 후회되는 것이 있다면 어떤 것인가요?
  74. 가장 자신있는 기술 분야는 어떤 분야입니까?
  75. 퇴사 후에 친구들을 만나거나 하는 것이 부담스러워졌는지?
  76. 협업하는 과제, 혼자하는 과제 중 어떤 것을 더 선호하는지? 그 이유는?
  77. 본인의 의견을 주장할 때 강하게 주장하는 편인가요?
    1. 만약 본인의 주장이 본인과 협업하는 사람(예를 들어 프론트 개발자, 기획자 등)이 받아들이지 못한다면 어떻게 해결하실 건가요?
  78. 입사 후에 저희 회사에서 어떤 일을 하고 싶으신가요? (무엇을 기대하고 계신가요?)
  79. 저희 회사 서비스 중 어떤 서비스가 추가되었는데, 여기에 또 다른 기능을 추가한다면 어떤 기능이 있을까요?

일반 기술 질문

  1. REST
  2. 동등성과 동일성의 차이를 아는지?
  3. 세션이 뭔가요? 서버 여러 대일 때 세션을 어떻게 처리하죠?
  4. 서블릿이 뭔가요?
  5. 데이터베이스 인덱스 동작 과정
  6. 캐시가 무엇인가요? redis 같은 걸 캐싱 서버로 사용해보신적 있으신가요?
  7. Call by value와 Call by reference 차이
  8. TDD에 대해 어떻게 생각하시나요?
  9. TDD가 무엇인가요?
  10. TDD의 장, 단점?
  11. PreparedStatment와 Statement의 차이는 무엇인가요?
  12. 전 프로젝트에서 배포 구조 설명해주세요.
    1. 그 방법으로 하면 완전한 무중단 배포가 구현이 될까요?
  13. nginx가 어떤 방식으로 로드밸런싱을 할 지 설명해주세요.
    1. 잘 모르시면, 어떻게 구현 되어있을 지 추측해서 설명해주세요.
  14. 클린코드
    1. 클린코드의 정의가 무엇인가요?
    2. 클린코드가 뭐라고 생각하는지?
  15. Docker 왜 썼는지?
  16. 본인이 생각하기에 Database의 부하와 Application의 부하를 어떤 기준으로 나눌 것 같은지?
  17. 만약에 일을 하게 됐을 때 그 팀이 코드 리뷰에 대해 보수적이고 페어를 완강하게 거부하는 곳이라면 어떻게 대처할 건지
  18. Deep Copy와 Shallow Copy에 대해 설명해주세요.
  19. OAuth 의 흐름에 대해 설명해주세요.
  20. 객체를 나누는 기준이 무엇인가?
  21. 커밋 컨벤션에서 feat, chore, refactor 등. 각각 어떤 기준으로 나누어 사용했는지?
  22. OOP가 무엇인가요?
  23. OOP를 썼을 때 어떤 점이 좋았고 안좋았는지?
  24. OOP를 잘하기 위해 어떤 노력을 했는지?
  25. 객체를 나누다 보면 오히려 코드가 보기 힘들지 않나?
  26. 클린 코드는 무엇인가요?
  27. 왜 코드는 클린해야 하죠?
  28. Test코드는 왜 짜야 합니까?
  29. Mock을 사용한 이유는?
    1. 기능이 정상 동작하려면 데이터베이스(외부)를 의존해야 하는데 왜 이 의존을 끊으려고 하는지?
  30. 사전에서 검색을 제공하는 Application을 만들건데 어떤 자료구조를 쓰실 건가요?
  31. 기억에 남는 프로젝트와 어떤 점에서 기억에 남는 지 설명해주세요.
    1. 여기서 아쉬웠던 점을 설명해주시고, 어떻게 개선했는지? 아니면 개선 방안을 설명해주세요.
  32. 트리 구조에 대해 설명 해주세요.
  33. 이진 트리에 대해 설명 해주세요.
  34. Binary Search Tree에 대해 설명해주세요.
  35. 브라우저에서 서버 응답까지의 흐름
  36. CI/CD 에 대해 각각 설명해주세요.
  37. 최근에 하신 프로젝트가 어떤 구조로 되어있는지 그림으로 그리면서 설명해주세요.
  38. 프로젝트에서 Git flow 적용 하셨다고 하셨는데, 어떤 식으로 하셨는지 설명해주세요.
    1. 어떤 장점, 단점이 있는지?
  39. DTO가 무엇이죠?
  40. Presentation - Application - Domain Layer를 나눈 기준은?
    1. 각 Layer가 하는 역할은?
  41. DB Optimizer
  42. 아는 정렬 알고리즘 설명해주세요
    1. 그 정렬 알고리즘의 시간복잡도는 어떻게 되나요
  43. 프로세스와 쓰레드의 차이점은?
  44. PCB에 저장되는 정보는 어떤 것들이 있나요?
  45. Context Switching에 대해 설명해 주세요.
  46. TCP 와 UDP의 차이점에 대해 설명해 주세요.
  47. 프로젝트에서 단위 테스트 어떻게 하셨나요? 통합 테스트는 어떻게 하셨나요?
  48. 알고 계신 테스트의 종류를 말씀해주세요. (유닛 테스트, 통합 테스트 등…)
    1. 각 테스트들에 대해 설명해주세요.
  49. 로컬 개발 환경에서도 도커를 활용해서 개발하셨는지?
  50. OOP를 지향하기 위해 어떤 노력을 할 수 있는지?
  51. Layered Architecture에서 Presentation, Application, Domain, InfraStructure layer의 역할에 대해 설명해 주세요.
  52. DDD에 대해 알거나 공부해봤는지?
  53. DDD에서 Domain이 무엇인지?
  54. CQRS, 이벤트 소싱에 대해 아는지?
  55. 최근 했던 프로젝트의 패키지 구조에 대해 설명해주세요. (선호하는 패키지 구조)
  56. Connection Pool을 쓰는 이유는? 단순히 커넥션을 새로 만드는 것과 차이는?
  57. 그러면 Connection을 만드는 시간을 제외하고는 다른 장점은 없나요?
  58. Connection Pool의 최대치가 1000개, WAS가 5개라고 해보자. 각 WAS는 200개씩의 Connection을 가지는지? 그렇다면 6번째 WAS가 추가된다면 6번째에는 아무런 Connection도 할당되지 않는지?
  59. SOLID중 한가지 설명해주세요.
  60. 재귀의 장점, 단점?
  61. Sync vs. Async 차이
  62. MyISAM과 InnoDB의 차이점
  63. 단방향 암호화의 장점이 뭐냐
  64. GET/POST의 차이는?
  65. HTTP vs. HTTPS의 차이는?
  66. XSS 에 대해 설명해주세요
  67. XSS 를 막기 위해서는 어떤 방법이 있는지?
  68. 인증 토큰 방식과 세션을 통한 인증 방식은 어떤 점에서 다른지?
  69. 백엔드 단에서 성능을 올릴 수 있는 방법은?
  70. 데이터베이스에서 왜 여러 테이블을 두는지?
  71. 최근에 했던 프로젝트 구조를 화이트보드 이용해서 설명해주세요.
  72. Inner Join과 Outer Join에 대해 설명해주세요.
  73. 보통 면접에선 이런거 물어보던데~ 했는데 혹시 저희가 물어보지 않아서 아쉬웠던 질문이 있나요? 있으시면 질문과 함께 답변 해주세요.
  74. 마지막으로, 준비 많이 해왔는데~ 또는 이건 꼭 답하고 가고 싶다 하는 내용 있으신가요?
  75. Github의 장점은?
  76. Git에서 써본 명령어들은 어떤게 있나요?
    1. 그 명령어들에 대해서 설명해주세요.
  77. 코드 스멜을 느끼게 되는 기준은 어떻게 되시나요?
  78. 코드 스멜을 느끼게 되는 것을 경험 기반으로 설명해주세요.
  79. Blue-Green 배포에 대해 설명해주세요.
    1. 구현 하신 부분에서 개선할 점이 있다면 어떤 것이 있는지?
  80. 그 외에 무중단 배포 방법 아시는 것 설명해주세요.
  81. 쿠키에 대해서 설명해주세요.
  82. 로컬 스토리지에 대해 설명해주세요.
  83. 프론트와 API 서버간에 어떻게 통신을 하는지, 구현을 어떻게 했는지 설명해주세요
  84. HTTP Method에 대해서 각각 설명해주세요.
    1. PUT은 update만 되나요?
  85. CLOSE_WAIT, TIME_WAIT에 대해 설명해주세요.
  86. 이벤트 같은 것을 할 때(순간적으로 트래픽이 높아질 수 있는 순간) 아키텍처적으로 어떻게 설계할 것인지?
  87. 쿼리 잘 짜세요?
  88. Web Server와 WAS의 차이점, 각각 설명해주세요.
  89. 사용할 수 있는, 사용해본 프로그래밍 언어는 어떤 것들이 있는지? 각각 어느정도의 수준인지?
  90. 정규표현식에서 =?를 부르는 이름은? 그 외 정규표현식 질문들 (어떤 정규표현식이 뜻하는 의미 해석이라던가)
  91. WebSocket 사용할 때 기본 프로토콜을 사용했는지? 아니면 직접 구현한 프로토콜을 사용했는지? (어떤 의미인지 모르겠음)
  92. Reactive programming과 Observable에 관해 설명해주세요.
  93. Reactive programming과 함수형 프로그래밍은 어떤 차이가 있는지 각각 어떤 특징이 있는지 설명해주세요.
  94. 정적타이핑 언어와 동적타이핑 언어의 장, 단점을 설명해주세요.
  95. Http 제외하고 다른 프로토콜에 대해 아시는 거 설명해주세요.
  96. Non Blocking I/O와 Blocking I/O에 대해서 설명해주시고, 각각 어떤 곳에 사용되는지 예시를 들어주세요.
  97. List의 장점을 Array와 비교하여 설명해주세요.
  98. 테스트가 무엇인가요?
  99. 테스트를 왜 작성하셨나요?
  100. 본인만의 리팩토링에 대한 정의?
  101. 리팩토링은 어느 시점에 해야할까요?
  102. 유연한 코드는 무엇인가요?
  103. 응집도 vs. 결합도
  104. 테스트하기 쉬운 코드는 어떤 코드인가요?

Spring 질문

  1. Spring에서 DI나 IOC 개념을 설명해주세요.
  2. Spring에서 Service, Controller, Repository annotation의 차이점
  3. Controller, RestController는 뭐가 다른가요? 응답이 어떻게 다른가요?
  4. Spring에서 서비스와 컴포넌트의 차이
  5. 다른 프레임워크들도 많이 있는데, 특별히 Spring boot를 사용한 이유가 있는지?
  6. IoC Container 직접 만든다면 어떻게 구현하실 생각인가요?
  7. 스프링에서 빈 등록 방법
  8. Spring MVC 설명
  9. Spring MVC 에서 요청이 들어왔을 때부터 응답이 나갈 때까지의 흐름을 설명해주세요.
  10. ControllerAdvice가 무엇인가요?
  11. Interceptor와 Filter 차이
  12. Field 주입과 생성자 주입, Setter 주입
  13. Spring Web MVC에서 요청이 들어와서 Database까지의 흐름
  14. AOP에 대해 설명해주세요
  15. SpringBoot 왜 쓰셨나요?
  16. SpringBoot의 장점은 무엇인가요?

JPA 질문

  1. ManyToOne 쓴 이유는? 반대쪽에서 OneToMany 쓸수도 있지 않나요?
  2. JPA를 왜 쓰나요?(ORM이 나오게 된 이유) 어떤 장점이 있죠?
    1. 쓰면서 불편한 점 없었는지?
  3. Hibernate는 뭘까요?
  4. Open Session In View
  5. JPA 사용할때랑 직접 SQL 사용할때랑 어떤 차이?
  6. @transactional 동작 과정
    1. readOnly 붙인 이유
  7. JPA FetchType
    1. LAZY와 EAGER 각각 어떤 기준으로 사용하시는지?
  8. N+1 문제
  9. 엔티티 매핑을 할 때 ManyToOne을 lazy로 설정해주지 않았던 이유
  10. JPA 사용하면서 맞닥뜨린 문제 있는지?
  11. 본인이 생각하기에 칼럼이 많고 적고의 기준은 어떻게 되는지?
  12. JPA에서 PK는 어떻게 설정하는지?

Java 관련 질문

  1. 객체가 JVM 메모리에 저장될 때 어디에 저장되는지?
  2. Stream이 무엇인가요?
  3. 롬복이 생성하는 메서드가 어느 시점에서 생성되는 지 아는지?
  4. 메서드를 분리하는 자신만의 기준이 있는지?
  5. REST Docs 왜 썼는지?
  6. StringBuilder와 StringBuffer
  7. HashMap의 시간 복잡도 말해주세요.
  8. 해당 사전에서 단어의 일부분으로 검색할 수 있는 일종의 자동완성 기능을 추가하려고 한다. 예를 들어 a를 찾으면 a로 시작하는 단어 5개, ap로 찾으면 ap로 시작하는 단어 상위 5개, 이걸 어떤 식으로 구현할 것인지?
  9. Enum, 추상 클래스 어떤 식으로 사용했는지 설명해주세요.
  10. domain package에 repository, entity 들어있는데 그렇게 한 이유?
    1. 그러면 domain은 무엇인가요?
  11. Integer 하나만 있는 Vo 객체를 만든 이유는 무엇인가요?
  12. 자바 디자인패턴 아는 것 중 하나 설명해주세요.
  13. Checked Exception은 언제 사용하나요?
  14. Unchecked, Checked Exception 차이가 뭔가요?
  15. Custom Exception은 다 RuntimeException 상속 했는데, 특별한 이유가 있는지?
  16. equals and hashcode 재구현한 이유?
  17. JVM과 GC에 대해 설명해주세요.
    1. GC가 언제 동작하는지 설명해주세요.
  18. JUnit의 생명주기에 대해 아는지?
  19. Java의 세 가지 변수에 대해 JVM 메모리와 연관지어 설명해주세요.
  20. Generic을 쓰는 이유는?
  21. Java에서 동일한 String을 새로 만들 때마다 객체가 생성되는지?
    1. 예를 들어 String a = Apple; 해놓고, String b = Apple;하면 String b를 위한 공간이 새로 할당 되는지?
  22. Java에서 람다가 무엇인지 말씀해주세요.
  23. JVM 기반 언어의 특징을 설명해주세요.
  24. Java 8 에서 나온 Date, Time API에 대해 아는대로 말씀해주세요.
  25. Overloading, Overriding을 각각 설명해주세요.
  26. String을 ==로 비교하면 안되는 이유를 설명해주세요.
  27. Integer.MIN_VALUE에는 어떤 값이 들어가있나요? 어떤 컴퓨터에서 찍어도 동일한 값인가요?
  28. JUnit 4 와 JUnit 5의 차이를 설명해주세요.

Kotlin 관련 질문

  1. Kotlin과 Java의 차이점과 kotlin은 어떤 장점이 있는지?
  2. Kotlin의 coroutine?

Javascript 관련 질문

  1. ES6 랑 ES5 차이를 설명해주세요.
  2. const 가 뭔가요?
  3. function() 이랑 arrow function이랑 차이가 뭔가요? 어떤 기준에서 각각 사용하셨나요?

손코딩 테스트

  1. 입력 문자열을 거꾸로 출력하는 코드를 짜주세요.
  2. Stack에서 계속해서 push/pop 되는 상황에서 O(1)로 최소값을 찾는 스택 구현
  3. Array에서 index와 값이 일치하는 index 찾기(정렬된 배열)
    1. 예시로 -10, -4, -3, -1, 0, 1, 4, 7, 10, 13, 15 이런식이면 7이 답

태그:

카테고리:

업데이트:

댓글남기기