[Spring] RESTFULL API 에 대한 생각 정리
·
Spring
1. Spring의 HttpEntity란?Spring 프레임워크는 HttpEntity라는 클래스를 제공한다.이 클래스는 HTTP 요청(Request) 또는 응답(Response)의 헤더(Header)와 본문(Body) 를 객체 형태로 다룰 수 있도록 도와준다.이를 기반으로 만들어진 RequestEntity와 ResponseEntity는 각각 요청과 응답을 좀 더 구체적으로 표현하기 위한 클래스로, 웹과의 통신을 처리할 때 자주 사용된다.예를 들어 클라이언트에서 요청을 받아 데이터를 가공하고 응답을 반환할 때, ResponseEntity를 사용하면 상태 코드와 헤더, 바디를 손쉽게 제어할 수 있다.2. JSP 시대: 서버 사이드 렌더링 중심의 개발과거에는 백엔드 개발 시 JSP(Java Server Pag..
Dispatcher Servlet은 무엇이며 어떻게 동작하고, 어떤역할을 할까?
·
Spring
Spring MVC의 핵심, DispatcherServlet이란?Spring MVC에서 웹 요청이 들어왔을 때 가장 먼저 마주치는 존재가 있습니다. 바로 DispatcherServlet입니다. 이 글에서는 DispatcherServlet이 무엇인지, 어떻게 동작하는지, 어떤 역할을 하는지 차근차근 설명해보겠습니다.✅ DispatcherServlet이란?DispatcherServlet은 Spring MVC의 Front Controller 역할을 하는 서블릿입니다.DispatcherServlet은 Spring Boot의 Spring MVC에서 자동으로 등록되는 서블릿입니다.웹 요청이 들어왔을 때 가장 먼저 요청을 받아, 어떤 컨트롤러로 넘길지 판단하고, 결과를 가공해 응답을 보내는 역할을 합니다.즉, Spr..
Spring Bean이란 무엇이며, 어떻게 정의할까?
·
Spring
Spring을 접하다 보면 꼭 등장하는 개념 중 하나가 바로 Spring Bean입니다.하지만 이 개념을 이해하기 위해서는 먼저 Spring IoC 컨테이너에 대한 이해가 필요합니다. 🌱 IoC 컨테이너란? IoC (Inversion of Control)는 객체의 생성과 의존성 주입 등을 개발자가 직접 하지 않고, 프레임워크가 대신 처리하는 개념입니다.Spring에서는 이러한 IoC 개념을 바탕으로 동작하는 IoC 컨테이너를 제공합니다.스프링 IoC 컨테이너는 애플리케이션에서 사용할 객체들을 생성하고, 그 객체들 간의 관계(의존성)를 자동으로 주입해줍니다.이 덕분에 개발자는 객체를 직접 생성하고 연결하는 번거로움을 덜고, 비즈니스 로직에 더 집중할 수 있게 됩니다. Bean 이란? Spring Bea..
MyBatis 란 무엇일까?
·
Spring
자바로 웹개발을 하다보면 MyBatis를 정말 많이 사용한다.보통 개발을 MVC 패턴 기반으로 설계하는데, DB 역할을 하는 Model 쪽에 있는 데이터를 자바에서는 뽑아올려면 JDBC 를 사용하는 수 밖에 없었다. 하지만 JDBC 는 처음부터 끝까지 개발자가 코드를 어렵게 작성해야 하기 때문에, 유지보수와 가독성 측면에서 사용하기 힘들었다. 이를 위해 MyBatis 를 사용한다. MyBatis 의 장점을 알아보자.1. SQL 과 자바 코드의 분리- SQL 문장을 자바에서 XML 파일을 생성해서 자바 파일과 분리해서 관리할 수 있다. (유지보수가 용이해진다.)2. 자동 매핑 지원- 쿼리 결과를 자바 객체(VO, DTO)로 자동으로 매핑해준다.3. 유연한 쿼리 작성- 직접 SQL 쿼리문을 작성할 수 있어 ..
Spring 과 SpringBoot의 차이
·
Spring
오늘은 SpringBoot란 무엇이며 Spring과의 차이에 대해 알아보겠습니다.둘은 언뜻 비슷해 보이지만, 조금만 생각해보면 다른 관계에 있습니다. 먼저 Spring Framework는 자바 언어로 기업용 애플리케이션을 만들 때 사용하는 매우 강력하고 광범위한 프레임워크입니다. 복잡한 비즈니스 로직을 처리하거나, 데이터베이스와 연동하고, 보안 기능을 구현하는 등 다양한 분야에서 필요한 핵심 기능들을 제공합니다. 마치 집을 짓기 위해 재료들을 모아놓은 거대한 창고라고 생각하면 됩니다. 개발자는 이 창고에서 필요한 설계 원칙과 자재들을 직접 선택하고 조립해서 집을 지어야 했습니다. 덕분에 매우 유연하고 확장성이 높지만, 프로젝트를 처음 시작할 때 어떤 자재를 어떻게 조립해야 할지 하나하나 수동으로 설정해야..