전체 글 67

[Spring] JDBC 기반 데이터 액세스 계층 / 25.01.13

JDBC 란? JDBC( Java Database Connectivity ) 는 Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 DB에 저장 및 업데이트하거나 반대로 DB의 데이터를 코드레벨에서 사용할 수 있도록 해주는 Java에서 제공하는 표준 사용( 또는 명세)이다.  JDBC API 를사용하여 데이터베이스에 액세스하는 단순한 구조( Java 애플리케이션에서 JDBC API 를 이용해 적절한 DB 드라이버를 로딩한 후, 데이터베이스와 인터랙션 한다.) JDBC Driver데이터베이스와의 통신을 담당하는 인터페이스인데, Oracle 이나 MS SQL, MySQl같은 다양한 벤더에서는 해당 벤더에 맞는 JDBC 드라이버를 구현해서 제공하게 되고, 구현체를 이용해서 데이터베이스에 액세스 할 수..

공부기록/Spring 2025.01.13

[Spring] DTO /25.01.07

DTO DTO란? - Data Transfer Object의 약자로 엔터프라이즈 애플리케이션 아키텍처 패턴 중 하나이다. - 데이터를 주고받을 때 사용하는 객체 (클라이언트와 주고 받을 때) - 받을 때 사용되는 DTO와 줄 때 사용하는 DTO는 같으면 안된다. ( 원하는 것만 줘야함 ) DTO가 필요한 이유코드의 간결성- 요청 데이터를 하나의 객체로 전달받는 역할을 해준다.유효성 검증의 단순화 - 유효성 검증 로직을 DTO 클래스로 빼내어 핸들러 메서드의 간결함을 유지할 수 있다. DTO의 사용 목적 - 가장 중요한 목적은 비용이 많이 드는 작업인 HTTP 요청의 수를 줄이기 위함 - 도메인 객체와의 분리 GET 메서드에는 DTO 사용할 수 없음 ( Body에 데이터를 못담기 때문에 ) JSON 직렬화..

공부기록/Spring 2025.01.09

[Spring MVC] 서비스 계층 /25.01.08

서비스 계층  - Controller가 전달받은 클라이언트의 요청을 직접적으로 처리하는 계층 - 도메인 업무 영역을 구현하는 비즈니스로직(요구사항)을 처리하는 계층  DI를 통한 서비스 계층과 API 계층 연동  - API 계층과 서비스 계층을 연동한다는 의미는 API계층에서 구현한 Controller 클래스가 서비스 계층의 Service클래스와 메서드 호출을 통해 상호작용한다는 것.  - @Service 와 @RestController 어노테이션에는 @Component 어노테이션이 내장되어 있기 때문에 Spring Bean으로 등록된다.  - 의존성 주입 시 생성자 주입 방식으로 하는경우에 생성자가 하나면 @Autowired 어노테이션을 추가하지 않아도 DI가 적용된다.  Mapper를 이용한 DTO ..

공부기록/Spring 2025.01.09

[Spring] API 계층 Controller(2/2)

ResponseEntity 장점 = HTTP 상태코드를 명시적으로 작성할 수 있음HTTP헤더는 request, body에 다 있음GET 요청일 때는 body에 데이터를 담지 못함 HTTP 헤더 HTTP 헤더(Header)는 HTTP 메시지(Messages)의 구성 요소 중 하나로써 클라이언트의 요청이나 서버의 응답에 포함되어 부가적인 정보를 HTTP 메시지에 포함할 수 있다. Authorization- 인증/인가에 통과한 클라이언트가 맞는지User-Agent- 모바일 에이전트에서 들어오는 요청인지 모바일 이외에 다른 에이전트에서 들어오는 요청인지를 구분해서 처리할 수 있다.Content-Type- 클라이언트와 서버가 주고받는 HTTP 메시지 바디(본문)의 데이터 형식이 무엇인지를 알려주는 역할을 한다.-..

공부기록/Spring 2025.01.07

[Spring] @SpringBootApplication의 역할

@SpringBootApplication 은 스프링 부트 애플리케이션의 시적점을 정의하는 데 사용되는 핵심 어노테이션으로, 여러 기능을 간단하게 설정할 수 있도록 도와준다. 이 어노테이션은 메타 어노테이션으로 다음의 3가지 주요 어노테이션을 포함하고 있다. @SpringBootConfiguration- @Configuration의 특수화된 버전으로, 해당 클래스가 스프링 설정 클래스임을 나타낸다.- 애플리케이션 컨텍스트에 추가적인 빈을 등록하거나 설정 클래스를 가져올 수 있다.- 스프링 부트 테스트 환경(@SpringBootTest)에서 자동으로 검색된다.@EnableAutoConfiguration- 스프링 부트의 자동 구성 메커니즘을 활성화한다.- 프로젝트에 추가된 라이브러리와 클래스패스에 있는 의존성..

공부기록/Spring 2025.01.06

[Spring] (Spring MVC) API 계층

( JSON ) : 문자열 형식의 데이터 *************************************************************************************************** - 직렬화 : JSON형식의 데이터로 바꾸는 것 - 역직렬화 :  직렬화 반대 자바에서 역/직렬화 하기 위해 내장된 것 : JACKSON그 외에 GSON Spring MVC Spring의 모듈 중에는 웹 계층을 담당하는 몇 가지 모듈이 있는데, 서블릿 API를 기반으로 클라이언트의 요청을 처리하는 모듈이 있는데, 이 모듈 이름이 바로 spring-webmvc이다.  Model클라이언트의 요청을 전달받으면 요청 사항을 처리하기 위한 작업을 한다.작업의 결과 데이터를 클라이언트에게 응답으로 ..

공부기록/Spring 2025.01.06

[Spring] Spring DI, AOP / 25.01.06

스프링 컨테이너와 빈 - 빈 : 스프링 컨테이너가 관리하는 객체- 스프링은 실행되는 시점에 빈객체를 전부 만들어놓고 관리한다. 1. 스프링 컨테이너 생성ApplicationContext 인터페이스를 일반적으로 스프링 컨테이너라고 부른다.정확히는 스프링 컨테이너를 말할 때 ApplicationContext가 상속하고 있는 BeanFactory와 구분해서 사용하지만, BeanFactory를 직접 사용하는 경우가 거의 없기 때문에 일반적으로 ApplicationContext를 스프링 컨테이너라 한다.BeanFactory는 스프링 컨테이너의 최상위 인터페이스로 스프링 빈을 관리하고 조회하는 역할을 담당한다.  2. 빈 조회스프링 컨테이너가 관리하는 자바 객체 = 스프링 빈빈은 클래스의 등록 정보, getter/..

공부기록/Spring 2025.01.06

Spring Boot 란?

Spring Boot 란? Spring Framework는 엔터프라이즈 애플리케이션을 개발하기 위한 핵심 기능을 제공하는 Spring Project 중 하나이며, Spring Boot 는 Spring Framework의 편리함에도 불구하고 Spring 설정의 복잡함으로 인해 애플리케이션 개발을 시작하기도 전에 어려움을 겪는 문제점을 해결하기 위해 생겨난 Spring Project 중 하나이다. Spring Boot를 사용해야 하는 이유XML 기반의 복잡한 설계 방식 지양: Spring의 복잡한 설정에 대한 어려움의존 라이브러리의 자동 관리: 필요한 라이브러리를 사용하기 위해서는 이름과 버전을 일일이 추가해 주어야 했고, 이로 인해 라이브러리 간의 버전 불일치로 인한 빌드 및 실행 오류 역시 빈번하게 발생..

공부기록/Spring 2025.01.03

[Spring] Spring Framework 모듈 구성

아키텍처 아키텍처란?조감도요구 사항을 만족하는 건축물을 짓는 데 있어 청사진 같은 역할구조물에 대한 콘셉트를 잡는 것으로부터 시작너무 복잡하면 안된다.최대한 심플함을 유지하기 위해 노력 컴퓨터 시스템에서의 아키텍처 유형  시스템 아키텍처하드웨어와 소프트웨어를 모두 포함하는 어떤 시스템의 전체적인 구성을 큰 그림으로 표현한 것해당 시스템이 어떤 하드웨어로 구성되고, 어떤 소프트웨어를 사용하는지를 대략적으로 알 수 있다.해당 시스템 구성 요소들 간의 상호작용이 어떻게 이루어지는지 등 시스템이 정상적으로 동작하기 위한 동작 원리 등이 시스템 아키텍처 안에 표현이 되면 이해하기 편하다.  소프트웨어 아키텍처 / 애플리케이션 아키텍처하드웨어를 제외한 컴퓨터 내의 모든 프로그램을 포괄하는 의미를 가지고 있으며 이러..

공부기록/Spring 2025.01.03

[Spring] Spring Framework /25.01.03

Framework란?  - 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것.ㄴ> 프로그래밍을 하기 위한 틀 혹은 구조를 제공하는 것. 장점효율적으로 코드를 작성할 수 있다.- Framework가 라이브러리 형태로 다양한 기능을 제공함으로써 개발자가 애플리케이션의 핵심 로직을 개발하는 것에 집중할 수 있도록 해준다.정해진 규약이 있어 애플리케이션을 효율적으로 관리할 수 있다.- 규약에 맞게 코드를 작성하기 때문에, 유지보수가 필요한 경우 더 빠르고 쉽게 문제점을 파악해 수정할 수 있다.- 또한 비슷한 기능을 개발할 때 코드의 재사용이 용이하고 기능의 확장 또한 쉽게 확장 가능하다. 단점사용하고자 하는 Framework에 대한 학습이 필요..

공부기록/Spring 2025.01.03