본문 바로가기

Spring

(13)
전반적인 Spring 생태계 이해 (3) - Spring Bean 등록 전반적인 Spring 생태계 이해 (1) - 웹 애플리케이션 계층과 전반적인 Spring 생태계 이해 (2) - 유닛 테스트(Unit Test)에 이어서, 스프링 기반의 웹 애플리케이션에서 각 계층에 해당하는 객체를 생성하고 의존관계를 설정하는 스프링 빈(Spring Bean) 등록 방식에 대해서 작성한 글이다.Spring Bean 등록스프링 기반의 애플리케이션 계층 구조에서 컨트롤러(Controoler)는 서비스(Service)에게 서비스를 제공받아 요청을 처리하고, 서비스는 리포지토리(Repository)로부터 데이터 처리를 통하여 비지니스 로직을 수행을 할수 있다. 그러므로 아래와 같은 객체의 의존 관계가 형성된다.  위와 같이 각 계층 구조를 형성하도록, 각 계층의 객체를 생성하고 의존 관계를 설..
전반적인 Spring 생태계 이해 (2) - 유닛 테스트(Unit Test) 이전의 전반적인 Spring 생태계 이해 (1) - 웹 애플리케이션 계층에서 구현한 Repository와 Service를 구현했던 코드를 검증하기 위한 유닛 테스트 코드를 작성할 것이다.Repository 테스트 코드 구현개발한 코드가 정상적으로 동작하는지 확인이 필요하다. 간단한 방법은 개발한 기능을 실행해서 테스트 할 때 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해 클라이언트의 요청을 처리하여 해당 기능을 실행한다. 하지만 이러한 방법은 준비하고 실행하는데 오래 걸려서 반복 실행이 어렵다. 그리고 여러 테스트를 한번 에 실행하기 어렵다는 단점이 있다. Java에서는 일반적으로 JUnit이라는 프레임워크로 작성한 테스트 코드를 실행해서 이러한 문제를 해결한다. 위에서 Memo..
전반적인 Spring 생태계 이해 (1) - 웹 애플리케이션 계층 구현 전반적인 Spring 기반의 애플리케이션 개발에 대해 이해하기 위해 학습하며 작성한 글이다.비즈니스 요구사항 정리전반적인 Spring 생태계 이해를 위해서 아주 간단한 회원 관리 예제로 진행된다.데이터: 회원ID, 이름기능: 회원 등록, 조회데이터베이스: 아직 데이터베이스가 선정되지 않음 (향후 다른 종류의 DB 교체를 위한 가상 시나리오)웹 애플리케이션 계층 구조다음은 일반적인 웹 애플리케이션 계층 구조(Web Application Hierarchy)이다. 컨트롤러(Controller): 웹 MVC의 Controller 역할이며, 클라이언트의 요청에 대해 Service, Model, View에서 각 작업을 처리하도록 함으로써 애플리케이션의 작업 처리 흐름을 제어한다.모델(Model): 뷰(view)에 ..
[Spring] 스프링 웹 개발 방식 (Static Content, MVC, API) Spring 웹 개발 방식은 크게 3가지 방식으로 나눌수있다. 정적 컨텐츠(Static Content), MVC(Model-View-Controller) 그리고 API(Application Programming Interface)가 있다. 정적 컨텐츠는 HTML(Hyper Text Markup Language)과 같은 텍스트 파일을 그대로 웹브라우저에게 전달한다. 반면, MVC(Model-View-Controller)와 Template Engine은 서버에서 동적으로 텍스트 파일에 데이터를 삽입하여 변형을 하고 렌더링하여 웹브라우저에게 보내주는 방식이다. 그리고 API(Application Programming Interface)는 주로 JSON 데이터 포맷으로 데이터만 클라이언트에게 전송하거나, 서버끼..
[Spring] Spring Boot 프로젝트 생성 및 실행 Spring Boot 프로젝트 생성먼저, Spring Boot 프로젝트를 생성전에 java를 설치해줘야한다. Spring initializr은 spring boot 프로젝트를 생성하는 웹 기반 도구이다. 해당 사이트 주소이다. https://start.spring.io/  옛날에는 spring 프로젝트를 밑바닥부터 만들었지만, 현재는 spring boot로 프로젝트를 생성한다. 그리고 Spring Initiallizer로 프로젝트를 생성하면 해당 프로젝트에 gradle이 자동으로 설치되지만, 원래는 수동으로 해줘야했었다. Spring 프로젝트 생성시 필요한 초기 설정값 저장Project: 어떠한 빌드 시스템으로 프로젝트를 빌드할지 선택Spring Boot: Spring Boot Version(3.3.1)..