[카테고리:] 개발자 기술 면접
[기술 면접] 15. JPA를 사용하는 이유가 무엇인가요?
저번 시간에 이어, 이번엔 JPA를 사용하는 이유가 무엇인지에 대한 질문들을 알아보겠습니다. 이번에 등장하는 문제들은 서비스 플랫폼 회사 L사에서 등장한 문제들입니다. 필자의 개인적인 해석이 포함되어 있으며 본인만의 답변을 만들어보시길 권해드립니다. Q: JPA를 사용하는 이유가 무엇인가요? 기존에는 테이블이 하나 생기면, 그 테이블에 대한 CRUD SQL을 모두 생성해야 했고 SQL 중심적인 개발이 진행될 수 밖에 없었다는 단점도 있었으며,…
[기술 면접] 14. System.out.println()메서드를 지양하는 이유를 아시나요?
저번 시간에 이어, 이번엔 애플리케이션 개발 시 System.out.println()메서드를 지양하는 이유에 대해 다루어 보겠습니다. 학부생 교육 과정에서 특별하게 언급되지 않는 이상 모르고 지나칠 수도 있는 내용입니다. 이번 기회에 숙지하실 수 있길 바랍니다. Q: System.out.println()메서드를 지양하는 이유를 아시나요? 대표적으로 세 가지가 있습니다. Q: 로그를 사용하는 이유가 무엇인가요? 쓰레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수…
[기술 면접] 13. Reflection이란 무엇인가요?
저번 시간에 이어, 이번에는 Reflection이란 무엇인지에 대한 면접 질문을 알아보겠습니다. 이 문제같은 경우, 서비스 플랫폼 회사 L사에서 등장한 적이 있는 면접 질문입니다. 상대적으로 등장 빈도가 높진 않으며, 상위 개념이라고 생각합니다. Q: Reflection이란 무엇인가요? 클래스의 타입을 알지 못해도 해당 클래스의 메소드, 타입, 변수에 접근할 수 있도록 해주는 Java API입니다. Q: Reflection 사용 시 주의사항에 대해 아시나요?…
[기술 면접] 12. volatile 키워드가 무엇인가요?
저번 시간에 이어, 이번엔 volatile 키워드가 무엇인지에 대한 질문을 알아보겠습니다. 이 질문은 상대적으로 자주 나오는 질문은 아닙니다. 하지만, Java에 대해 깊게 탐구해본 경험이 있는지 확인할 수 있는 질문이기 때문에, 실전에서 대답할 수 있게 된다면, 충분한 강점으로 어필될 수 있을 것으로 생각합니다. Q: volatile 키워드가 무엇인가요? Java 변수를 Main Memory에 저장한다는 것을 명시합니다. 변수의 값을 Read할 때,…
[기술 면접] 11. int와 Integer는 무엇이 다르나요?
저번 시간에 이어, 이번엔 int와 Integer의 차이에 대한 면접 질문을 간단하게 알아보겠습니다. Q: int와 Integer는 무엇이 다르나요? int는 변수의 타입이고, Integer는 기본 타입의 데이터를 객체로 다루기 위해 사용하는 래퍼 클래스(Wrapper class)입니다. int Integer 마치며 이번 시간엔, int와 Integer의 차이에 대해서 알아보았습니다. 다음 시간엔, volatile 키워드가 무엇인지에 대한 면접 질문을 알아보겠습니다.
[기술 면접] 9. Java에서 직렬화란 무엇인가요?
저번 시간에 이어, 이번엔 Java의 직렬화에 대한 질문들에 대해 알아보겠습니다. Java를 공부했을지라도 생소한 내용일 수 있습니다. 저도 면접 질문을 정리하고 대비하며 마주한 질문들이기 때문에 처음에 많이 어색했는데요, 공부하시다가 써본적이 있는 개념일 수도 있으실 겁니다. Q: Java에서 직렬화란 무엇인가요? 객체의 상태를 영속화 하는 메커니즘으로, 객체를 다른 환경에 저장했다가 저장한 상태 그대로 재사용할 수 있게 만드는 과정입니다.…
[기술 면접] 8. GC(Garbage Collection)가 무엇인가요?
저번 시간에 이어, 이번엔 GC(Garbage Collector)가 무엇인지와 그에 대한 질문들을 알아보겠습니다. GC는 면접 단골질문이며 기초 개념으로 정말 중요하다고 할 수 있습니다. 서비스 플랫폼 회사인 K사와 L사, 그리고 게임 회사인 C사에서 마주했던 기억이 납니다. Q: GC(Garbage Collection)가 무엇인가요? Garbage Collection으로 JVM의 Heap 영역에서 사용하지 않는 객체를 삭제하는 프로세스를 말합니다. GC Root로 부터 참조할 수 있는 Reachable…
[기술 면접] 9. Sync, Async, Blocking, Non-blocking을 설명해보세요.
저번 시간에 이어, 이번엔 Sync, Async, Blocking, Non-blocking에 대한 면접 질문들을 알아보겠습니다. 출제 빈도가 조금 있는 편이라고 생각합니다. 많이 헷갈리는 부분이지만, 꼼꼼히 학습하여 대비하시길 바랍니다. Q: Sync와 Async를 설명해보세요 Q: Blocking과 Non-blocking은 무엇인가요? Q: 그렇다면 동기(Sync)와 비동기(Async)를 각각 어떤 상황에서 사용해야 하나요? 동기(Sync)는 서비스의 순서가 중요하거나, 이전 작업의 결과물이 영향을 끼칠 때 사용합니다. 비동기(Async)는 작업끼리의…
[기술 면접] 11. 정렬 알고리즘에서 안정성(Stability)에 대해 아시나요?
저번 시간에 이어, 이번엔 정렬 알고리즘의 안정성(Stability)에 대한 질문을 간단하게 준비했습니다. 이번 질문은 자주 등장하는 편은 아니지만, 기초 개념이라고 생각하고 준비하시길 권해드립니다. Q: 정렬 알고리즘에서 안정성(Stability)에 대해 아시나요? 같은 키를 가진 객체들의 상대적인 순서가, 정렬 이후에도 유지되는 것을 말합니다. 안정 정렬과 불안정 정렬로 구분 되는데, 마치며 이번 시간에는 정렬 알고리즘의 안정성(Stability)에 대한 질문을 짧게 알아보는…
[기술 면접] 10. 트라이(Trie) 자료구조에 대해서 알고 계신가요?
저번 시간에 이어, 이번엔 트라이(Trie) 자료구조에 대한 질문을 알아보도록 하겠습니다. 트라이(Trie) 자료구조는 문자열과 관련된 문제를 해결할 수 있는지, 해당 자료구조에 대한 이해를 확인하는 질문입니다. 출제 빈도가 높진 않지만, 중요한 자료구조이니 숙지하고 가시길 권해드립니다. Q: 트라이(Trie) 자료구조에 대해서 알고 계신가요? 트리 자료구조 중 하나로 문자열을 저장하고 탐색하는 데 유용한 자료구조입니다. 각 노드는 Key와 Value로 구성 되는…