본문 바로가기

IT

스프링부트에서 자주 쓰이는 용어 설명

728x90
반응형
728x170

스프링 부트(Spring Boot)는 자바 기반의 프레임워크인 스프링(Spring)을 간편하게 사용할 수 있도록 도와주는 도구입니다. 스프링 부트에서 자주 사용되는 용어와 간단한 예시를 설명해 드리겠습니다.

1. 스프링 부트 프로젝트(Spring Boot Project): 스프링 부트로 개발되는 애플리케이션 또는 서비스를 말합니다. 스프링 부트 프로젝트는 독립적으로 실행 가능한 JAR 파일 형태로 패키징되고, 내장된 서버를 통해 실행될 수 있습니다.

2. 의존성 관리(Dependency Management): 스프링 부트는 의존성 관리를 위해 Maven이나 Gradle과 같은 빌드 도구를 사용합니다. 의존성 관리를 통해 필요한 라이브러리와 프레임워크를 간편하게 추가하고 관리할 수 있습니다.

3. 자동 구성(Auto-configuration): 스프링 부트는 클래스 경로(classpath)에 존재하는 라이브러리와 설정을 분석하여 자동으로 애플리케이션의 동작 환경을 구성합니다. 예를 들어, 데이터베이스 연결을 위한 설정, 웹 애플리케이션을 위한 설정 등을 자동으로 처리합니다.

4. 스타터(Starter): 스프링 부트는 스타터라는 모듈을 제공하여 특정 기능이나 라이브러리를 사용하기 위한 의존성을 쉽게 추가할 수 있습니다. 예를 들어, 'spring-boot-starter-web' 스타터를 추가하면 웹 애플리케이션을 개발하기 위해 필요한 의존성들이 자동으로 추가됩니다.

5. 스프링 부트 액추에이터(Spring Boot Actuator): 애플리케이션의 상태 및 모니터링 정보를 제공하는 스프링 부트의 기능입니다. 액추에이터를 통해 애플리케이션의 헬스 체크(Health Check), 메모리 사용량(Memory Usage), 요청 로그(Request Logs) 등을 확인할 수 있습니다.

6. 프로파일(Profile): 스프링 부트는 여러 개의 환경을 구분하여 관리할 수 있도록 프로파일 기능을 제공합니다. 각각의 프로파일에는 환경별로 다른 설정 정보를 사용할 수 있습니다. 예를 들어, 개발 환경과 운영 환경에 대해 각각 다른 데이터베이스 연결 설정을 지정할 수 있습니다.

7. 스프링 부트 테스트(Spring Boot Test): 스프링 부트는 애플리케이션의 단위 테스트, 통합 테스트 등을 위한 다양한 테스트 지원 기능을 제공합니다. 테스트 관련 어노테이션과 유틸리티 클래스를 활용하여 간편하게 테스트 코드를 작성하고 실행할 수 있습니다.

 


1. DAO (Data Access Object):
DAO는 데이터베이스와의 상호 작용을 담당하는 객체입니다. 주로 데이터베이스에 접근하여 데이터를 검색, 저장, 수정, 삭제하는 역할을 수행합니다. DAO는 데이터베이스에 대한 접근을 추상화하고, 비즈니스 로직과 데이터베이스 로직을 분리하기 위해 사용됩니다.

2. Service:
Service는 비즈니스 로직을 구현하는 컴포넌트입니다. 주로 비즈니스 요구사항을 처리하고, DAO나 다른 서비스와 협력하여 작업을 수행합니다. Service는 보통 트랜잭션 관리, 데이터 유효성 검사 등과 같은 비즈니스 규칙을 적용합니다.

3. Controller:
Controller는 클라이언트 요청을 처리하고, 적절한 응답을 생성해주는 역할을 합니다. 클라이언트의 요청을 받아 비즈니스 로직을 호출하고, 그 결과를 HTTP 응답으로 반환합니다. 스프링 MVC에서는 @Controller 어노테이션을 사용하여 컨트롤러를 정의할 수 있습니다.

4. Mapper:
Mapper는 데이터베이스와 객체 간의 매핑을 담당하는 역할을 합니다. 주로 ORM(Object-Relational Mapping) 프레임워크에서 사용되며, 데이터베이스의 테이블과 객체의 필드 간에 매핑 규칙을 정의하여 데이터를 변환하고 저장합니다. 스프링 부트에서는 MyBatis나 Hibernate와 같은 ORM 도구를 사용하여 Mapper를 작성할 수 있습니다.

5. DTO (Data Transfer Object):
DTO는 데이터를 전달하는 객체입니다. 주로 비즈니스 계층과 프레젠테이션 계층(Controller) 간에 데이터 전달을 위해 사용됩니다. DTO는 데이터를 담는 용도로 사용되며, 주로 읽기 전용으로 설계됩니다. 데이터 전송 과정에서 객체 간의 변환에 사용될 수도 있습니다.

6. Repository:
Repository는 데이터 저장소에 접근하는 인터페이스를 정의합니다. 주로 데이터베이스와의 상호 작용을 위한 CRUD(Create, Read, Update, Delete) 작업을 선언하고, 해당 작업을 구체적으로 구현하는 클래스를 포함합니다. 스프링 데이터 JPA와 같은 기술을 사용하여 Repository를 자동으로 생성할 수 있습니다.

7. Dependency Injection (의존성 주입):
의존성 주입은 객체 간의 의존 관계를 느슨하게 만드는 디자인 패턴입니다. 스프링 부트는 IoC(Inversion of Control) 컨테이너를 제공하여 의존성 주입을 쉽게 구현할 수 있습니다. 객체 생성과 의존 객체의 주입을 컨테이너가 담당하므로, 개발자는 객체 간의 의존성을 직접 관리하지 않아도 됩니다.

 

 

1. Entity (엔티티):
Entity는 데이터베이스에서 영속적으로 저장되는 객체를 나타냅니다. 주로 데이터베이스 테이블과 매핑되며, 테이블의 열(Column)과 객체의 속성(Property) 간에 매핑 규칙을 정의합니다. 스프링 부트에서는 JPA(Java Persistence API)와 함께 사용되는 엔티티를 정의할 수 있습니다.

2. ORM (Object-Relational Mapping):
ORM은 객체와 관계형 데이터베이스 간의 매핑을 자동화하는 기술입니다. 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 개념적인 불일치를 해결하기 위해 사용됩니다. ORM은 객체와 테이블 간의 매핑 규칙을 정의하고, 객체의 상태를 데이터베이스에 자동으로 동기화합니다. 스프링 부트에서는 Hibernate, Spring Data JPA 등과 함께 ORM을 사용할 수 있습니다.

3. Transaction (트랜잭션):
트랜잭션은 일련의 작업을 논리적인 단위로 묶은 것을 말합니다. 데이터베이스의 상태를 변화시키는 작업은 일관성을 유지하기 위해 트랜잭션 내에서 실행되어야 합니다. 스프링 부트에서는 @Transactional 어노테이션을 사용하여 트랜잭션을 정의하고, 선언적인 방식으로 트랜잭션을 관리할 수 있습니다.

4. AOP (Aspect-Oriented Programming):
AOP는 관점 지향 프로그래밍의 약자로, 공통적인 관심사(로깅, 트랜잭션 처리 등)를 모듈화하여 재사용성과 유지 보수성을 향상시키는 프로그래밍 패러다임입니다. 스프링 부트는 AOP를 지원하고, @Aspect 어노테이션과 같은 기능을 제공하여 메소드 실행 전후 등 특정 시점에 코드를 삽입할 수 있습니다.

5. Security (보안):
스프링 부트는 웹 애플리케이션의 보안을 관리하기 위한 기능을 제공합니다. Spring Security 프레임워크를 사용하여 인증(Authentication)과 권한 부여(Authorization) 등을 처리할 수 있습니다. 스프링 부트 보안 기능을 사용하면 사용자 인증, 접근 제어 등을 간편하게 구현할 수 있습니다.

6. Dependency Injection (의존성 주입):
이전에 설명한 것과 동일한 개념입니다. 의존성 주입은 객체 간의 의존 관계를 느슨하게 만드는 디자인 패턴입니다. 스프링 부트는 IoC(Inversion of Control) 컨테이너를 제공하여 의존성 주입을 쉽게 구현할 수 있습니다. 객체 생성과 의존 객체

의 주입을 컨테이너가 담당하므로, 개발자는 객체 간의 의존성을 직접 관리하지 않아도 됩니다.

 

1. REST (Representational State Transfer):
REST는 웹 서비스 설계의 아키텍처 스타일 중 하나입니다. 리소스(자원)를 고유한 URI로 표현하고, HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 리소스에 대한 CRUD 작업을 수행하는 것을 강조합니다. 스프링 부트에서는 RESTful 웹 서비스를 구축할 수 있도록 다양한 기능과 어노테이션을 제공합니다.

2. JSON (JavaScript Object Notation):
JSON은 경량의 데이터 교환 형식으로, 사람과 기계 모두 이해하기 쉽고 효율적으로 데이터를 표현할 수 있습니다. 스프링 부트에서는 JSON을 사용하여 데이터를 주고받는 RESTful 웹 서비스를 구축하는 데 널리 사용됩니다. Jackson이나 Gson과 같은 라이브러리를 통해 JSON 데이터를 처리할 수 있습니다.

3. API (Application Programming Interface):
API는 응용 프로그램 간에 상호 작용하기 위한 규칙과 프로토콜의 집합을 말합니다. 스프링 부트에서는 RESTful API를 구축할 수 있도록 다양한 기능을 제공합니다. 이를 통해 다른 응용 프로그램이나 클라이언트가 스프링 부트 애플리케이션과 상호 작용할 수 있습니다.

4. Microservices (마이크로서비스):
마이크로서비스는 애플리케이션을 작은, 독립적인 서비스로 나누는 아키텍처 패턴입니다. 각 서비스는 특정 비즈니스 기능을 담당하고, 독립적으로 배포하고 확장할 수 있습니다. 스프링 부트는 마이크로서비스 아키텍처를 구축하기 위한 도구와 기능을 제공합니다.

5. JWT (JSON Web Token):
JWT는 웹 애플리케이션에서 사용자 인증을 위한 토큰 기반 인증 방식입니다. JWT는 JSON 형식으로 구성되어 있으며, 서버와 클라이언트 간에 안전하게 전달되어 인증 및 권한 부여에 사용됩니다. 스프링 부트에서는 JWT를 사용하여 보안 기능을 구현할 수 있습니다.

6. CI/CD (Continuous Integration/Continuous Deployment):
CI/CD는 소프트웨어 개발과 배포를 지속적으로 수행하는 개발 방법론입니다.
CI는 코드 변경 사항을 지속적으로 통합하고 테스트하여 품질을 유지하는 것을 의미하며, CD는 변경된 코드를 자동으로 배포하는 것을 의미합니다. 스프링 부트는 CI/CD 파이프라인을 구축하기 위한 도구와 통합을 지원합니다.

 

이것들은 스프링 부트에서 자주 사용되는 용어 중 일부입니다. 스프링 부트는 다양한 기능과 설정 옵션을 제공하므로, 실제 개발 과정에서 더 많은 용어와 개념을 접하게 될 수 있습니다. 스프링 부트 공식(https://spring.io/projects/spring-boot) 문서를 참조하면 더 많은 정보를 얻을 수 있습니다.

728x90
반응형
그리드형