Skills/Spring 16

Spring - @RunWIth, @ExtendWith

1. Junit4 @RunWith Junit4에서는 @RunWith(클래스이름.class) 애노테이션으로 Junit Test 클래스를 실행하기 위한 Runner를 명시적으로 지정하여 Test code를 커스터마이징합니다. 여기서 Test Runner는 테스트 클래스 내에 존재하는 각 테스트 메서드 실행을 담당하고 있는 클래스입니다. 이는 테스트 클래스의 구조에 맞게 메서드를 실행하고 결과를 표시하는 역할을 수행합니다. 원래는 Juni4의 기본 테스트 러너는 BlockjUnit4ClassRunner이지만 대신에 @RunWith로 지정된 클래스를 이용해 클래스 내 테스트 메서드를 수행하도록 지정하여 사용합니다. 2. Junit5 그런데 Junit5부터는 @RunWith 애노테이션이 아닌 Extension이라..

Skills/Spring 2022.07.22

Spring - 의존관계 주입

0. 의존성 주입의 개념과 필요성 Spring 프레임워크는 핵심 프로그래밍 모델 중 하나로 의존관계 주입을 지원합니다. 이 의존관계 주입(의존성)은 외부에서 두 객체 간 관계를 결정해주는 디자인 패턴으로 인터페이스를 통해 클래스 레벨에서는 의존관계가 고정되지 않도록 하고, Runtime시에는 관계를 동적으로 주입하여 결합도를 낮추는 역할을 하게됩니다.  이 의존성 주입이 필요한 이유는 코드를 작성하는데 있어 여러개의 인스턴스를 만들지 않고, 최소한의 인스턴스를 구현하여 메모리 측면이나 관리 측면에서도 편해지기 때문에 객체 지향 프로그래밍에서 너무나도 중요한 개념입니다. (코드는 간단 명료할수록 좋다고 하죠?) 크게 3가지 주입방법으로 나뉘게 되는데 한 번 살펴보겠습니다. 1. Dependency I..

Skills/Spring 2022.07.12

Spring - @ResponseBody를 이용한 데이터 반환(API)

보시기 전에, Json과 Http에 대한 글을 작성하였는데 참고하고 이 글을 보시면 도움이 될 것 같습니다. https://refreshment-wg.tistory.com/50 Json & XML 1. Json Json(JavaScript Object Notation)라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 데이터 교환 방식입니다. JS에서 객체를 만들 때 사용하는 표현식을 의미하기도 하며, refreshment-wg.tistory.com https://refreshment-wg.tistory.com/9?category=1005918 HTTP란? 1. HTTP? 저희가 주소창에서 볼 수 있는 HTTP(HyperText Transfer Protocol)는 텍스트 기반의 통신..

Skills/Spring 2022.06.08

Spring에서의 API

1. @ResponseBody http(통신 프로토콜)의 body 부에 return(반환)값을 직접 넣는다는 의미입니다. (HTTP) Template engine과의 차이점? - API를 사용하면 view가 따로 필요가 없습니다. - 따라서 소스코드 보기를 통해 보아도 html 관련 코드는 없고, 출력된 문자만 보입니다. Template engine은 view라는 템플릿이 있는 상황에서 view를 html로 변환하는 것이고, API는 데이터를 그대로 내보내는 것입니다. 1.1. @ResponseBody의 사용 문자열(String)을 전달하는 경우는 거의 없고, 데이터. 즉, 객체를 요청할 때 주로 사용합니다. 1) Hello라는 클래스를 하나 만들고, 변수 name와 해당 변수에 대한 Getter/Set..

Skills/Spring 2022.05.15

Spring 웹 개발 기초

1. 정적 컨텐츠 (Static contents) 정적 컨텐츠는 실시간으로 변경할 필요가 없는 데이터 즉, 변화가 없는(Static : 정적)데이터를 의미합니다. 어느 접속자에게든 동일한 모습을 반환합니다. 서버에서 file을 그대로 웹 브라우저에 내리는 것을 의미하기도 합니다. Spring에서는 이 정적 컨텐츠라는 기능을 자동으로 제공합니다. 대충 번역해보자면, 기본적으로 Spring boot는 클래스 경로의 /static (or /public or /resources)~~ 디렉토리로부터 정적 컨텐츠를 제공한다고 되어있습니다. static이라는 디렉토리 안에 htllo-static.html이라는 file을 추가하고 웹 브라우저에 localhost 주소를 입력하고 접속하게 되면, 그대로 정적 컨텐츠가 반..

Skills/Spring 2022.05.13

Spring 개요

Spring은 Java 기반의 웹 애플리케이션을 만들 수 있는 프레임워크입니다. 초기의 Spring은 개발자들이 라이브러리를 일일이 입력해서 불러와야 했지만, Spring boot가 등장하면서 라이브러리와 실행환경, 의존성 관리 등에 대한 지원을 쉽게 받을 수 있도록 바뀌었습니다. (https://start.spring.io/) 처음 Project란의 Marven, Gradle은 빌드 도구라고 합니다. 빌드 도구는 프로젝트에서 작성한 Java 코드와 프로젝트 내에 필요한 xml, jar 파일들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주는 빌드 자동화 도구입니다. Dependencies는 프로젝트에 필요한 라이브러리를 선택하는 것입니다. 스프링 부트에서 프로젝트를 생성하고, 선택한 라이브러리를 탐..

Skills/Spring 2022.05.11