hanghae99/TIL
[항해 취업코스] 취준 기록 4일차
욘아리
2024. 3. 8. 16:35
📌 기술면접 예상 질문
1. Java Map의 내부 구현은 어떻게 이루어져 있을지 추측해보실 수 있을까요?
- Map은 key-value 구조로 구성되어 데이터를 저장합니다. Map의 특성상 같은 키에 대한 값이 중복으로 들어갈 수 없고, 새로운 값을 넣으면 기존 값은 덮어쓰게 됩니다.
Java에서 Map 인터페이스는 여러 가지 방식으로 이루어질 수 있습니다. - 가장 일반적으로 사용되는 방식으로 HashMap이 있습니다. 해시 테이블을 이용하여 구현되며, 내부적으로는 배열을 사용합니다. 키의 해시코드를 계산해 이를 배열의 인덱스로 사용함으로써, 키와 값을 매핑합니다. 빠른 검색 속도를 제공하지만, 키의 순서가 보장되지 않는 단점이 있습니다.
- 다음으로, TreeMap이 있습니다. 이진 검색 트리를 기반으로 구현되고, 모든 키는 정렬된 상태로 유지됩니다. 키의 순서에 따라 값을 검색하게 되므로 순서가 중요한 경우에는 유용하지만, 검색 속도가 느릴 수 있습니다.
- 마지막으로, LiknedHashMap이 있습니다. HashMap과 LiknedList가 결합한 형태로, 입력 순서대로 데이터를 유지합니다. 이는 입력 순서에 따른 값을 검색할 때 유용할 수 있습니다.
- 이처럼, 각각의 방식들은 장단점이 있고, 사용되는 상황에 따라 적절한 방식을 선택할 수 있습니다.
2. DI와 IoC에 대해 아는 만큼 설명해주실 수 있을까요?
- DI란 의존성 주입이라고 부르며, 객체를 직접 생성하는 것이 아닌 외부에서 생성한 후 주입시켜 주는 방식입니다. 객체의 결합도를 줄이고, 유연하고 재사용 가능한 코드를 작성할 수 있게 해 줍니다. 의존성 주입 방식에는 3가지 방법이 존재하는데, 스프링에서 권장하는 것은 생성자 주입입니다. 생성자를 통해 의존관계를 주입하는 방법으로, 생성자를 호출 시에 딱 한 번만 호출되는 것을 보장합니다.
- IoC란 제어의 역전이라는 의미로, 메서드나 객체의 호출 작업을 개발자가 아닌 프레임워크에 제어권을 넘기는 것을 말합니다. 스프링 프레임워크는 IoC 구현의 좋은 예입니다. 스프링 컨테이너가 객체의 생명주기와 의존성 관리를 해줍니다.
3. MVC 모델이란 무엇인지 설명해주실 수 있을까요?
- Model - View - Controller의 약자로 소프트웨어 엔지니어링에서 사용되는 소프트웨어 디자인 패턴입니다.
- Model은 어떠한 동작을 수행할지 정의하는 부분으로 비즈니스 로직을 처리하는 역할을 합니다.
- View는 사용자에게 보여지는 화면으로 컨트롤러로부터 모델을 받아와 사용자에게 보여줍니다.
- Controller는 사용자의 입력을 처리하고, Model과 View 사이를 이어주는 인터페이스 역할을 합니다.
- MVC 패턴을 사용하면 사용자 인터페이스로부터 비즈니스 로직을 분리하여, 애플리케이션의 유지 보수성과 재사용성을 높일 수 있습니다.
항해 개발자 취업 리부트 코스를 수강하고 작성한 콘텐츠 입니다.
https://hanghae99.spartacodingclub.kr/reboot
IT 커리어 성장 코스 항해99, 첫 취업부터 현직자 코스까지
항해99는 실무에 집중합니다. 최단기간에 개발자/PM으로 취업하고, 현직자 코스로 폭발 성장을 이어가세요. 실전 프로젝트, 포트폴리오 멘토링, 모의 면접까지.
hanghae99.spartacodingclub.kr
참고 자료