728x90
반응형

Programming/Spring 5

[Spring] Spring MVC 와 Spring Webflux의 차이점

Spring Framework에는 대표적인 프로그래밍 모델이 있다. 첫 번째는 가장 널리 알려지고 대중적으로 사용되는 Spring MVC 모델이고, 두 번째는 Spring WebFlux 모델이다. Spring WebFlux란? Spring WebFlux는 Spring 5에서 새롭게 도입된 모듈이며, 비동기 및 리액티브 프로그래밍을 지원한다. Spring MVC와는 다르게 Servlet API를 기반으로 하지 않고, 리액티브 프로그래밍 모델을 채택하여 작동한다. 이전에는 Servlet API를 기반으로 한 Spring MVC를 사용하여 동기적인 처리 방식으로 웹 애플리케이션을 개발했다. 동기적인 처리 방식은 한 번에 하나의 요청을 처리하는데, 이는 높은 트래픽과 데이터 양을 효과적으로 처리하기 어렵다. 최..

Programming/Spring 2024.03.17

[Spring] Spring Initializr로 프로젝트 생성하기

Spring Initializr Spring Initializr 를 사용하면 SpringBoot 기반의 프로젝트를 쉽게 만들 수 있다. https://start.spring.io/ 의 주소로 접근하면 아래와 같은 창이 뜬다. Project SpringBoot를 빌드하고 배포하는 방식을 선택한다. 과거에는 Maven을 많이 사용했지만 최근에는 Gradle을 사용하는 추세이다. Language 프로젝트에 사용할 프로그래밍 언어를 선택한다. SpringBoot SpringBoot 버전을 선택한다. SNAPSHOT은 아직 개발 중인 데모버전이다. M1이나 M2 등은 정식 릴리즈되지 않은 버전이다. 다른 것 없이 버전만 명시되어 있는 것이 정식 릴리즈 된 버전임으로 이들 중에서 선택하면 된다. 높은 버전은 높은 ..

Programming/Spring 2024.03.05

[스프링] MVC, MVP, MVVM 디자인 패턴

MVVM을 이해하기 위해서는 MVC -> MVP -> MVVM 순서대로 아키텍처 패턴에 대한 이해가 필요하다. MVC 패턴 객체지향프로그래밍에서 MVC란 사용자 인터페이스를 성공적이며 효과적으로 데이터 모형에 관련 시키기 위한 방법론 또는 설계 방식중 하나로써, 목적 코드의 재사용에 유용한 것은 물론, 사용자 인터페이스와 응용프로그램 개발에 소요되는 시간을 현저하게 줄여주는 형식이라고 많은 개발자들이 평가하고 있다. Model, View, Controller의 약자로 User – View – Controller – Model – Controller – View User의 구조를 가지고 있다. MVC 패턴은 응용프로그램의 시각적 부분과 가 이면의 동작과 제어를 처리하는 부분(비즈니스 로직이라 한다)을 분리..

Programming/Spring 2023.07.03

[스프링] 디자인 패턴

디자인 패턴의 개요 여러 사람이 협업을 하며 프로그램을 개발 할 때 다른 사람이 작성한 코드나 기존의 코드를 이해하는 것은 어렵다. 이런 코드들은 유지 보수를 함에 있어서 새로운 기능을 추가하거나 최적화를 하기에 힘든 구조적인 결함을 가지고 있다. 이를 최소화하기 위해서 디자인 패턴은 등장했다. 특수한 경우의 프로그래머가 아니라면 프로그래밍을 하면서 만나는 문제가 지구상에서 유일한 문제일 경우는 거의 없기 때문에 앞서 이미 많은 수많은 오류들을 피하는 방법을 패턴화하게 된다면 좀더 버그가 발생하는 폭을 줄이고 수정하는데(발생하는 숫자가 아니라 예외를 찾는데 조금더 덜 시간을 사용하게 됨) 최소한의 시간을 들일 수 있게 된다. 즉, 디자인 패턴은 프로그램 등을 개발하는 중에 발생했던 문제점들을 정리 및 특..

Programming/Spring 2023.07.02

[스프링] 관점 지향 프로그래밍 (AOP)

AOP의 등장 배경 객체 지향 프로그래밍 (OPP, Object-oriented Programming) 공통의 목적이 있는 데이터와 동작을 묶어서 하나의 객체로 정의하는 것이다. 객체를 적극적으로 활용함으로써 기능을 재사용할 수 있는 것이 가장 큰 장점이다. 여기서 말하는 객체를 잘 활용하기 위해서는 관심사 분리(SoC, Seperation of Concerns)의 디자인 원칙을 준수해야 한다. Spring MVC에서는 @Controller, @Service, @Repository와 같이 관심사별로 계층을 나눠 객체를 관리하게 된다. 이 관심사의 분리는 모듈화의 핵심이 된다. 객체 지향 프로그래밍의 한계 점 특정 관심사 업무 코드에 트랜잭션, 로깅, 보안 등은 필수적인 부가기능이기 때문에 업무 기능과는 ..

Programming/Spring 2023.06.29
728x90
반응형