개인 프로젝트/Java Spring 프레임워크

전산 교육 테스트_Spring Test

응_비 2023. 5. 19. 09:37

1. DI(Dependency Injection) 설명하세요 

- 객체간의 의존관계를 설정할 수 있도록 함

- 프로그렘에 필요한 각종 클래스들을 Bean Container에 두고 필요할 때마다 그때 그때 불러와서 사용함

 

2. Maven의 기능3가지로 요약하세요. - 빌드툴, 프로젝트를 규격화해줌

  1) Spring의 의존 라이브러리를 간편하게 추가할 수 있도록 의존성 주입

  2) 대부분의 라이브러리를 자동으로 추가 가능함.

  3) 프로젝트의 구조를 자동으로 구성함

  4) Build를 통해 배포를 위한 파일을 생성함

 

3. 스프링에서 컴포넌트의 의미가 포함된 어노테이션이 아닌 것은? - 없음

@Controller, @Service, @Repository, @Configuration

 

4. MVC 패턴 설명하세요

- (모델-뷰-컨트롤러, MVC) 소프트웨어 공학에서 사용되는 아키텍쳐 패턴,

Business logic과 Presentation logic을 분리하기 위함

 

5. Layrered Architecture(레이어드 아키텍쳐) in Spring

- 효율적인 개발과 유지보수를 위해 계층화하여 개발

 1) 프레젠테이션 영역 : 사용자와 상호작용을 담당, 사용자의 요청을 분석/응답

 2) 비즈니스 영역 : 기능을 수행, 트랜잭션 수행

 3) 데이터 영역 : 데이터의 저장과 조회를 담당, 데이터베이스와 연동하여 작업

Layered Architecture (계층화 아키텍처) 란 무엇인가? (tistory.com)

 

6. Todo 모델 클래스 코드 작성 (간략히)

 

7. Rest API에 대해 설명하시오

- Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처

- 애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의

: API Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말입니다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있습니다. 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의

 

8. Datasource & Connection Pool 설명하세요

DataSource란?

  • DB와 관계된 커넥션 정보를 담고있으며 빈으로 등록하여 인자로 넘겨준다. → 이 과정을 통해 Spring은 DataSource로 DB와의 연결을 획득한다.
    • DB 서버와의 연결을 해준다.
    • DB Connetion pooling기능

DB Connection Pooling이란?

  • 자바 프로그램에서 데이터베이스 연결(커넥션 객체를 얻는것)은 오래걸림
  • 일정량의 Connection객체를 미리 만들어 저장해두었다가 요청시 꺼내쓴다!
  • 속도와 퍼포먼스가 좋아짐
  • 커넥션풀을 관리하고, 커넥션객체를 풀에서 꺼냈다 반납하는 이러한 과정을 DataSource가 하는것!

 

9. 자바에서 데이터베이스 연동 기술 JDBC이다.

JDBC를 wrapping 한 기술 2가지 이상 기술하고 간단히 설명하세요.

1) - MyBatis : 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크(Persistence Framework) 중 하나이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO(Plain Old Java Objects)를 설정해서 매핑하기 위해 XML이나 Annotation을 사용할 수 있다.

2) - JPA : 자바 ORM 기술에 대한 API 표준 명세로, Java에서 제공하는 API이다.
자바 플랫폼 SE와 자바 플랫폼 EE를 사용하는 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 자바 API이다.
즉, JPA는 ORM을 사용하기 위한 표준 인터페이스를 모아둔 것이다.
기존에 EJB에서 제공되던 엔터티 빈(Entity Bean)을 대체하는 기술이다.
-- JPA 구성 요소 (세 가지)
1) javax.persistance 패키지로 정의된 API 그 자체
2) JPQL(Java Persistence Query Language)
3) 객체/관계 메타데이터
https://gmlwjd9405.github.io/2018/12/25/difference-jdbc-jpa-mybatis.html

[JDBC] JDBC, JPA/Hibernate, Mybatis의 차이 - Heee's Development Blog (gmlwjd9405.github.io)

 

 

10. REST API에서 CRUD에 해당되는 HTTP method를 매핑하세요.

CRUD 와 HTTP Method (tistory.com)

 

(핵심 기능에서 부가기능을 분리해서 모듈화하는 프로그래밍 기법 : AOP)