728x90
1. Spring Framework란 무엇이며, 장점은?
- Spring Framework?
- Java언어를 사용하여 어플리케이션을 구축하기 위한 오픈소스 프레임워크이다.
- 간단하고 생산적인 자바 개발을 위해 개발되었다.
- Java언어를 사용하여 어플리케이션을 구축하기 위한 오픈소스 프레임워크이다.
- Spring Framework의 장점?
- 경량성 프레임워크로써 많은 기능을 제공하고 다른 프레임워크보다 가볍고 빠르다.
- IoC컨테이너를 제공하여 객체의 생성, 소멸 등을 개발자 대신 수행한다.
- 의존성 주입(DI)를 통한 개발이 가능하다.
- AOP를 지원해서 공통 로직을 별도의 모듈로 분리하여 코드의 중복을 줄일 수 있다.
- 테스트 프레임워크와 연동하여 테스트 코드의 작성을 쉽게 할 수 있다.
- 경량성 프레임워크로써 많은 기능을 제공하고 다른 프레임워크보다 가볍고 빠르다.
2. IoC / DI란?
- IoC(Inversion of Control)?
- 객체의 생성과 관리를 개발자가 아닌 Spring Framework에 맡기는 것이다. 이 때문에 코드의 테스트 용이성을 높일 수 있다.
- 객체 간의 의존성을 줄이고 결합도를 낮추며, 코드 유지보수성과 확장성을 높일 수 있다.
- 동일한 객체를 여러 곳에서 사용할 수 있으며, 객체 간의 의존성을 분리시킬 수 있어 코드의 재사용성을 높일 수 있다.
- 객체의 생성과 관리를 개발자가 아닌 Spring Framework에 맡기는 것이다. 이 때문에 코드의 테스트 용이성을 높일 수 있다.
- DI(Dependency Injection)
- 객체간의 의존성을 주입하는 것을 말한다.
- 인터페이스를 사용해 객체간의 의존성을 줄이기 때문에 코드를 변경할 때 유연성이 높아진다.
- 객체를 재사용할 수 있도록 만들어준다.
- 유지보수성을 높이는데 도움을 준다.
- 단, 객체간의 의존성이 많아져 디버깅이 힘들 수 도 있다.
- 객체간의 의존성을 주입하는 것을 말한다.
3. OOP / AOP?
- OOP(Object - Oriented Programming)?
- 객체지향 프로그래밍이라고 불리며, 객체를 중심으로 코드를 작성하는 프로그래밍 패러다임이다.
- 객체를 생성하고, 객체간의 상호작용을 통해 프로그램을 작성한다.
- 객체릐 상태와 행위를 묶어서 캡슐화하고, 상속과 다형성 등의 개념을 활용해 유연하고 확장성있는 코드를 작성한다.
- AOP(Aspect Oriented Programming)?
- OOP와 함께 사용하는 프로그래밍 패러다임이다.
- 프로그램의 핵심 기능 이외의 공통적인 부가기능을 모듈화하여 관리하는 기술이다.
- 핵심 기능과 공통 기능을 분리할 수 있어서 코드의 가독성과 유지보수성을 확장시킬 수 있다.
- 다양한 부가가능을 구현할 수 있다.(로깅, 보안, 트랜잭션 관리 등)
- OOP와 함께 사용하는 프로그래밍 패러다임이다.
4. DTO?
- DTO(Date Transfer Object)?
- 비즈니스 로직에서 사용되는 데이터를 프레젠테이션 로직에서 사용될 수 있는 형태로 변환하는 객체이다.
- 클라이언트와 서버 간 데이터를 주고받을 때 DTO를 사용한다.
- 데이터베이스의 테이블과 1 : 1로 매칭된다.
- 클라이언트에서 필요한 데이터를 서버로 전송하거나, 서버에서 클라이언트로 데이터를 전송한다.
5. Spring Boot 기반 어플리케이션 빌드 시, 주로 사용하는 프로파일(Profile)은?
- Spring Boot에서 프로파일은 어플리케이션을 특정 환경에 맞게 설정하고 실행할 수 있도록 해준다.
- application.propertise, application.yml파일에 spring.profiles.active속성을 설정해서 사용한다.
(나는 매번 yml파일을 사용했다.) - Spring Boot에서 여러 개의 프로파일을 사용할 수 있으며, 각각의 프로파일에 대해 별도의 설정 파일을 만들어 사용할 수 있다.
6. Spring MVC에서 REST API 엔드포인트 구현하기 위한 주요 애너테이션은?
- @RestController
: 클래스에 붙이면 해당 클래스의 모든 메서드에서 @ResponseBody를 생략해도 된다. - @RequestMapping
: URI와 특정 HTTP 요청 메서드(GET, POST, PUT, DELETE 등)에 대해 처리할 매서드를 지정하는데 사용된다. - @PathVariable
: URL경로에서 값을 추출하여 매개변수로 전달한다. - @RequestParam
: 요청 파라미터 값을 매개변수로 전달한다. - @RequestBody
: 요청 본문의 데이터를 객체로 변환하여 매개변수로 전달한다. - @ResponseStatus
: HTTP응답 상태 코드를 지정한다.
'JAVA > Spring' 카테고리의 다른 글
[Spring] Spring Batch(1) (0) | 2023.04.26 |
---|---|
[Spring] Spring Boot 3.0 (0) | 2023.03.26 |
[Spring Web Flux] Project Reactor (0) | 2022.11.30 |
[Spring Web Flux] Reactive programming (0) | 2022.11.30 |
[SPRING]Spring Framework (0) | 2022.11.30 |