[Spring] @Controller와 @RestController의 차이점
·
기술 지식 쌓아가기 📚/Backend 🍔
스프링 프레임워크는 웹 애플리케이션을 개발할 때 매우 유용한 다양한 어노테이션을 제공합니다.그중에서도 @Controller와 @RestController는 웹 요청을 처리하는 데 사용되는 핵심 어노테이션입니다.이 두 어노테이션의 차이를 이해하는 것은 스프링 MVC를 효과적으로 활용하는 데 필수적입니다. ⭐ 기본 개념 @Controller: 이 어노테이션은 스프링 MVC에서 일반적으로 사용하는 컨트롤러를 정의합니다. 주로 HTML 페이지를 반환하거나 뷰 템플릿과 함께 사용할 때 사용됩니다.@RestController: 이 어노테이션은 @Controller와 @ResponseBody를 결합한 것입니다. 주로 RESTful 웹 서비스를 구축할 때 사용되며, JSON이나 XML 형태의 데이터를 반환합니다. ⭐ ..
[Cloud] MSA vs 모놀리: 당신의 프로젝트에 적합한 아키텍처는?
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ 모놀리 아키텍처란?모놀리 아키텍처는 모든 기능이 하나의 코드베이스에 포함되어 있는 소프트웨어 구조입니다.이는 전통적인 방식으로, 애플리케이션의 모든 부분이 단일 유닛으로 배포되고 운영됩니다.모놀리 아키텍처에서는 다음과 같은 특징이 있습니다.장점단순한 배포: 전체 애플리케이션을 한 번에 배포할 수 있어 관리가 용이합니다.일관성: 모든 기능이 하나의 코드베이스에 포함되어 있어 데이터 일관성을 유지하기 쉽습니다.빠른 초기 개발: 간단한 구조 덕분에 초기 개발이 빠르게 진행될 수 있습니다.단점확장성 문제: 애플리케이션이 커질수록 성능 저하 및 유지보수 어려움이 발생할 수 있습니다.변경의 어려움: 특정 기능을 변경할 때 전체 시스템에 영향을 줄 수 있어 개발 및 배포 과정이 복잡해질 수 있습니다.기술 제약: ..
[Spring] 웹 소켓, R 소켓, STOMP: 실시간 통신의 모든 것 🍃
·
기술 지식 쌓아가기 📚/Backend 🍔
현대 웹 애플리케이션에서는 사용자 경험을 향상시키기 위해 실시간 데이터 통신이 필수적입니다. 웹 소켓, R 소켓, STOMP는 이러한 실시간 통신을 구현하는 데 널리 사용되는 프로토콜입니다. 이번 글에서는 이 세 가지 기술의 특징, 사용 사례, 그리고 스프링부트 환경에서의 적용 방법에 대해 알아보겠습니다.⭐ 웹 소켓 (WebSocket)✅ 왜 쓰는가?웹 소켓은 클라이언트와 서버 간의 양방향 통신을 지원하는 프로토콜입니다.HTTP 프로토콜은 요청-응답 방식으로 동작하지만, 웹 소켓은 한 번 연결이 이루어진 후에는 지속적인 연결을 유지할 수 있어 효율적인 데이터 전송이 가능합니다.✅ 언제 쓰는가?- 실시간 채팅 애플리케이션- 실시간 게임- 주식 거래 애플리케이션- IoT 기기와의 통신✅ 어떻게 쓰는가?1. ..
[Spring] 웹 애플리케이션 테스트를 위한 Spring의 두 가지 도구: MockMvc와 WebTestClient 🍃
·
기술 지식 쌓아가기 📚/Backend 🍔
Spring 프레임워크는 강력한 웹 애플리케이션 개발을 지원하며, 테스트를 통해 코드의 품질을 높이는 데 큰 도움이 됩니다.이 글에서는 웹 애플리케이션을 테스트하기 위한 두 가지 주요 도구인 MockMvc와 WebTestClient에 대해 소개하겠습니다. ⭐ MockMvc란?MockMvc는 Spring MVC의 웹 애플리케이션을 테스트하기 위한 강력한 도구입니다.실제 서버를 실행하지 않고도 HTTP 요청을 테스트할 수 있습니다.이를 통해 컨트롤러의 동작을 쉽게 검증할 수 있습니다.✅ MockMvc 사용 예시 코드@RunWith(SpringRunner.class)@WebMvcTest(MyController.class)public class MyControllerTest { @Autowired p..
[Spring] WebFlux: 비동기와 반응형 프로그래밍의 새로운 장 🍃
·
기술 지식 쌓아가기 📚/Backend 🍔
오늘은 Spring WebFlux에 대해 알아보려고 합니다.최근에는 비동기 및 반응형 프로그래밍이 많이 주목받고 있는데, WebFlux는 이러한 흐름을 지원하는 Spring의 프레임워크입니다.그럼 WebFlux의 기본 개념과 특징을 살펴보겠습니다.⭐ WebFlux란 무엇인가?Spring WebFlux는 비동기 및 반응형 애플리케이션을 구축하기 위해 설계된 모듈입니다.전통적인 Spring MVC가 서블릿 API를 기반으로 동작하는 반면, WebFlux는 비동기 스트림을 처리할 수 있는 Reactive Streams API를 사용합니다.이를 통해 높은 성능과 확장성을 제공할 수 있습니다. ⭐ 비동기 프로그래밍의 필요성전통적인 웹 애플리케이션에서는 요청이 들어오면 해당 요청을 처리하는 동안 서버가 다른 요청을..
[Spring] 안전한 웹 개발의 시작: 스프링의 Validation, Data Binding, Type Conversion 🍃
·
기술 지식 쌓아가기 📚/Backend 🍔
오늘은 스프링 프레임워크에서 매우 중요한 세 가지 개념인 Validation, Data Binding, 그리고 Type Conversion에 대해 알아보려고 합니다!이 개념들은 웹 애플리케이션에서 사용자 입력을 처리할 때 필수적입니다. 각각의 개념을 쉽게 이해할 수 있도록 설명해 드릴게요!⭐ Validation (검증)Validation은 사용자가 입력한 데이터가 기대하는 형식과 규칙에 맞는지를 확인하는 과정입니다.예를 들어, 사용자가 이메일 주소를 입력할 때 유효한 형식인지, 비밀번호가 일정 길이를 초과하는지 등을 검사합니다.스프링에서는 @Valid 또는 @Validated 어노테이션을 사용해 검증 규칙을 쉽게 적용할 수 있습니다.@Valid: JSR-303(자바 Bean Validation) 표준에 ..
[Spring] 스프링 MVC: 웹 개발의 기본, 쉽게 이해하기 🍃
·
기술 지식 쌓아가기 📚/Backend 🍔
🚩 소개웹 개발을 하다 보면 MVC라는 용어를 한번쯤은 접해보셨을텐데요! 오늘은 이게 무엇인지 설명할 수 있을 정도로 확실히 알아가려고 합니다!MVC는 현대 웹 개발에서 필수적인 도구 중 하나입니다. 하지만 그 필요성을 이해하려면 MVC 구조가 왜 중요한지, 그리고 MVC 없이 웹 애플리케이션을 개발할 때 발생하는 문제점을 비교해보는 것이 유용합니다. 스프링(SPRING)은 이러한 MVC 구조를 기본적으로 지원하는 대표적인 자바 프레임워크입니다.이번 글에서는 MVC란 무엇인지, 그리고 스프링의 MVC 구조와 작동 방식 등에 대해 아주 쉽게 설명해 드릴게요! 😉 ⭐ MVC란 무엇인가요?먼저 MVC는 Model, View, Controller의 약자입니다.이 세 가지 요소는 웹 애플리케이션을 구조화하는 ..
[Spring] 서블릿(Servlet)에 대해 알려드리겠송! 😼🍃
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ 서블릿(Servlet)이란?서블릿(Servlet)은 자바 기반의 웹 애플리케이션에서 서버에서 클라이언트의 요청을 받아 그에 맞는 응답을 생성해주는 자바 프로그램으로, 웹 애플리케이션을 개발할 때 사용하는 자바 클래스입니다.예를 들어, 어떤 사용자가 로그인 요청을 보내면, 서블릿은 그 요청을 받아서, 그 사람이 맞는지 확인하고, 성공하면 "로그인 성공!"이라는 메시지를 돌려줍니다.즉, 클라이언트의 요청을 받아서 그에 대한 응답을 생성하는 역할을 합니다. 주로 HTTP 요청을 처리하며, 동적인 웹 페이지를 생성하거나 데이터를 처리하는 데 사용됩니다.서블릿은 자바의 서블릿 API를 구현한 클래스로, 웹 서버나 애플리케이션 서버에서 실행됩니다. 이는 정적인 HTML 파일과는 다르게 사용자의 요청에 따라 동적..
[Spring] SpEL(Spring Expression Language)이란? Spring에서 표현식을 다루는 쉬운 방법 알아가기 🍃
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ SpEL(Spring Expression Language)이란?Spring Expression Language(SpEL)은 Spring 프레임워크에서 제공하는 강력한 표현식 언어로, 객체의 값을 동적으로 평가하거나 조작할 수 있는 기능을 제공합니다.즉, 코드 실행 중에 객체 내부의 값이나 속성에 접근하거나, 그 값을 변경할 수 있습니다.이 기능은 프로그램이 실행되는 동안에 필요한 값을 실시간으로 계산하거나, 조건에 맞게 값을 업데이트할 수 있게 해줍니다. 이를 통해 코드에서 미리 정해진 값을 사용하는 것이 아니라, 상황에 맞게 값을 유연하게 조작할 수 있는 것입니다.사실 SpEL이 없더라도 자바 코드만으로도 동적인 값 계산이나 조작이 가능하지만, SpEL의 장점은 표현식을 문자열로 작성해 동적인 평가..
[Spring] 스프링 컨테이너란? 의존성 주입의 마법 🍃
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ 스프링 컨테이너란?스프링 컨테이너(Spring Container)는 빈(Bean)이라 불리는 자바 객체의 생명 주기(빈의 생성, 관리, 제거 등의 주기)를 관리하며, 생성된 빈에게 추가적인 기능을 제공합니다.빈이란, 그냥 스프링 컨테이너가 관리하는 객체를 뜻하는데, 이 빈에 대해 더 알고 싶다면 바로 이전글을 보고 오시면 될 거 같습니다! [Spring] 스프링 빈(Bean)이란? 초보 개발자를 위한 쉬운 설명 🍃Bean은 콩입니다.   ⭐ 빈(Bean)의 유래빈이라고 작명한 이유를 알려면, 자바로 작명한 이유부터 알아야 합니다.자바로 작명한 이유는, 자주 마시는 커피가 인도네시아 자바 섬 커피였기 때문입blu-blu.tistory.com아무튼, 스프링 컨테이너가 빈이라는 객체를 생성하고, 그 객체..
코양이🤍
'기술 지식 쌓아가기 📚/Backend 🍔' 카테고리의 글 목록 (3 Page)