스프링에 대해서 설명해보세요
자바 오픈소스 어플리케이션 프레임워크 중에 하나로. 스프링의 기본 철학은 특정 기술에 의존 하지 않고 객체를 관리할 수 있는 프레임워크를 제공하는 것입니다. 그래서 컨테이너로 자바 객체를 관리하면서, 의존성 주입과 제어의 역전을 통해 결합도를 낮추게 됩니다.
DI에 대해서 설명해보세요
DI는 Dependency Injection의 약자로 의존성 주입을 의미 합니다. 객체간의 의존 관계를 미리 설정해두면 스프링 컨테이너가 의존 관계를 자동으로 연결해줍니다. 이렇게 되면 직접 의존하는 객체를 생성하지 않아도 되고, 검색해서 가져올 필요가 없어 결합도가 낮아지는 장점이 있습니다.
IOC에 대해서 설명해보세요
IOC는 Inversion Of Control의 약자로 제어의 역전을 의미 합니다. 제어권이 사용자에게 있지 않고 프레임워크에 있기 때문에 필요에 따라서 사용자의 코드를 호출하게 됩니다. 스프링에서는 인스턴스의 생성부터 소멸까지 개발자가 아닌 컨테이너에서 대신 관리하게 됩니다.
ORM에 대해서 설명해보세요
ORM은 Object Relation Mapping의 약자로 RDBMS를 객체지향언어로 변환해주는 기술입니다. 그래서 비즈니스 코드가 데이터 베이스에 직접 접근할 수 있게 도와줍니다.
JPA에 대해서 설명해보세요
자바에서 ORM 기능을 사용할 수 있게 해주는 API입니다. JPA에 의해 자바 객체와 데이터 베이스는 매핑이 되고, JPA를 구현한 구현체로는 Hibernate가 있습니다.
ORM, JPA, Hibernate 장단점에 대해서 설명해보세요
비즈니스 로직에 집중할수있고, 객체지향 중심의 개발이 가능해집니다. 메소드 호출만으로 쿼리문을 실행시킬 수 있기 때문에, 개발 생산성이 향상되며 유지보수 비용이 줄어들게 됩니다. 그리고 특정 DB에 의존하지 않게 됩니다. 하지만 DB에서 직접 쿼리를 짜는 것보다는 성능이 떨어지고, 복잡한 쿼리 작성은 힘들다는 단점이 있습니다.
'기술면접' 카테고리의 다른 글
[신입 개발자 기술면접 질문] 데이터 베이스 (0) | 2024.01.13 |
---|---|
[신입 개발자 기술면접 질문] 네트워크 (0) | 2024.01.11 |
[신입 개발자 기술면접 질문] 운영체제 (0) | 2024.01.06 |
[신입 개발자 기술면접 질문] JAVA (2) | 2024.01.04 |