본문 바로가기

IT 개발자 취업 면접 자료

IT 회사 면접 시 예상 질문과 답변 정리 [3 - 스프링 프레임워크 편]

by Meteora_ 2021. 6. 30.
728x90

 

1. Framework을 사용하는 이유?

- 개발자는 각자 실력차이의 폭이 큰 직업군이다.

- 개발자의 구성에 따라 Project 결과물의 차이가 크다.

- Framework는 미리 code로 구조를 구성하며, 개발자가 해당 구조에 코드를 짜 맞추는 형식.

- 회사는 Framework를 사용함으로써 일정한 품질을 보장 받을 수 있다.

- 개발자는 정해진 틀에서 부품을 끼워 맞추기에 개발 시간을 단축할 수 있다.

 

2. Spring framework의 특징에 대해서 말해 보세요.

- POJO(Plain Old Java Object) 기반의 Framework. 즉, POJO의 구성만으로 제작이 가능

- 의존성 주입(DI : Dependency injection)을 통한 객체간의 관계구성 (의존성 주입 패턴 3가지 -> 1. 생성자 주입 2. 세터(Setter)를 통한 주입 3. 인터페이스(interface)를 통한 주입

- AOP(Aspect-Oriented-Programming : 관점(관심)지향 프로그래밍) 지원, 즉, AOP는 Application 전체에 걸쳐 사용되는 공통된 기능을 재사용 하도록 지원하는 기법(OOP)돕는 보조적인 기술 (AOP 공용어 : 타겟(Target), 에스펙트(Aspect), 어드바이스(Advice), 포인트컷(PointCut), 조인포인트(JoinPoint), 프록시(Proxy), 인트로덕션(Introduction), 위빙(Weaving)

 

3.CI란 무엇인가?

Continous Integration의 약자로 말 그대로 지속적인 통합을 말한다.

개발이 완료되는 시점에 단위기능들을 통합하는 것이 아닌 개발과 동시에 통합을 진행함으로써 소프트웨어의 품질을 향상시키는 것을 목표로 한다.

 

4, AOP란 무엇인가?

Aspect Oriented Programming을 뜻하며 다양한 곳에서 자주 사용되는 공통 관심요소를 단일 기능으로 뽑아내어 코드의 중복을 줄이고 관리의 효율성을 높이는 것을 목적으로 한다

 

OOP는 객체를 재사용함으로써 반복되는 코드의 양을 굉장히 많이 줄일수가 있었지만 객체의 재사용에도 불구하고 반복되는 코드를 없앨수는 없었다. 예를 들어 로그, 권한 체크, 예외 처리 등 필수적으로 해야하기 때문에 소스에서 반복될 수 밖에 없는 부분이 존재했다. AOP는 이러한 부분을 해결해주었다. 기능을 비즈니스 로직과 공통 모듈로 구분한 후에 개발자의 코드 밖에서 필요한 시점에 비즈니스 로직에 삽입하여 실핼되도록 한다.

 

5. POJO란 무엇인가?

Plain Old Java Object, 간단히 POJO는 말 그대로 해석을 하면 오랜된 방식의 간단한 자바 오브젝트라는 말로서 J2EE등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다. POJO라는 용어는 이후에 주로 특정 자바 모델이나 기능, 프레임워크 등을 따르지 않은 자바 오브젝트를 지칭하는 말로 사용되었다. 스프링 프레임워크는 POJO 방식의 프레임워크이다.

 

6. Maven(메이븐)에 대해 말해보세요.

- JAVA용 프로젝트 관리 툴

- 아파치(Apache) 오픈 소스 빌드 툴

- 빌드

- 문서화

- 리포팅

- 의존 관계

- 소스 코드 관리

- 릴리즈

- 배포

- 프로젝트 관리에 필요한 모든 작업을 추상화하고 표준화해서 반복을 제거

- 메이븐이 접근할 수 있는 저장소를 지원

- 이 저장소를 통해 템플릿 프로젝트인 아키타입, 의존 관계에 있는 라이브러리, 메이븐 플러그인 기능을 지원

- 프로젝트 빌드에 필요한 라이브러리,  플러그인을 저장소에서 개발자 PC로 자동으로 다운로드

 

7. SVN(Subversion)에 대해 말해 보세요.

- SVN은 버전관리 시스템으로 서버기반으로 사용할 수 있는 프로그램이다.

- 로컬과 SVN서버와 커밋 넘버링 방식으로 SVN버전을 체크하여서 동기화를 하는 방식이다.

 

8. Hibernate에 대하여 말해 보세요.

Hibernate는 ORM 프레임 워크의 한 종류이다.

많이 사용하는 IBatis도 같은 부류의 프레임워크이다.

 

9. O/R Mapping에 대하여 말해보세요.

ORM이란 객체와의 관계를 맵핑시킨다는 뜻인데, 객체와 DB 정보의 관계를 맵핑시켜 좀더 효율적으로 데이터를 처리하고자 하는 프레임워크이다.

 

10. IBATIS(Mybatis)역할에 대하여 말해보세요.

iBatis(아이바티스)는 SQL에 기반한 데이터베이스와 JAVA, 닷넷(.NET), 루비(Ruby)등을 연결시켜 주는 역할을 하는 영속성 프레임워크이다. 이러한 연결은 프로그램의 소스코드에서 SQL문장을 분리하여 별도의 XML파일로 저장하고 이 둘을 서로 연결시켜주는 방식으로 작동한다.

또 다른 영속성 프레임워크인 하이버네이트(Hibernate)와 비교하여 하이버네이트는 객체모델을 사용자가 생성을 하면 프레임워크에서 데이터베이스와 연결을 시켜주는 방식인데 반해 iBatis는 사용자가 SQL문장을 만들면 그에 적합한 객체모델을 생성하는 방식으로 작동한다.

댓글