분류 전체보기 78

[Spring] Layered Architecture

Layered Architecture📌 애플리케이션을 세 가지 주요 계층으로 나누어 구조화하는 방법으로 각 계층은 특정한 책임을 갖고 있으며, 계층 간에는 명확한 역할 분담이 이루어져 코드의 재사용성, 유지보수성, 확장성을 높이는 데 도움을 준다.  주요 특징계층 분리:시스템을 기능별로 분리하여 모듈화.책임 분리:각 계층은 고유한 책임과 역할을 가짐.상호 의존성:상위 계층은 하위 계층에만 의존하며, 계층 간의 의존성을 제한.유지보수 용이:특정 계층의 변경이 다른 계층에 최소한의 영향을 미침. Layerd Architecture 개요  기존의 MVC 패턴에서 Controller는 역할이 무수히 많다.요청에 대한 처리예외처리View Template 응답 or Data 응답비지니스 로직 처리DB 상호작용문제..

[Spring] Server에서 Client로 Data를 전달하는 방법

정적 리소스📌 웹 애플리케이션에서 변하지 않는 파일들을 의미한다. 예를 들어, HTML, CSS, JavaScript, 이미지 파일들(JPG, PNG, GIF) 등이 정적 리소스에 해당한다. 정적인 HTML, CSS, JS, Image 등을 변경 없이 그대로 반환한다.  정적 리소스의 특징고정된 내용:요청이 올 때마다 동일한 콘텐츠를 제공합니다.실행되거나 동적으로 변환되지 않습니다.캐싱 가능:정적 리소스는 자주 요청되므로 브라우저에서 캐싱하여 성능을 최적화할 수 있습니다.서버 부담 감소:서버는 정적 리소스를 변환하거나 처리하지 않으므로, 부하가 적습니다.브라우저에서 직접 렌더링:클라이언트(브라우저)가 직접 처리할 수 있는 파일 형식으로 제공됩니다.  Spring Boot에서 정적 리소스 제공Spring..

일정표를 만들어 보자! 업데이트!

트러블 슈팅1. 배경웹 개발 숙련에 입문하였다.사용 기술은 jpa와 쿠키,세션이 추가되었다.웹 개발의 기초에서 진행하였던 일정표 프로젝트를 개량하는 것이 발제였다. 2. 발단처음은 아니였던 만큼 머리속에 웹 개발의 전재라인이 떠올랐던 점이 크게 작용했다.확실히 저번보다는 편하게 진행이 가능했다는 점이 조금은 성장했다는 것을 느낄 수 있었다.하지만 문제가 없지는 않았다.프론트와 함께 쓰는것을 목표로 했다보니, 자연스럽게 프로젝트도 프론트를 구성했었는데, 튜터님의 조언이 백엔드에 치중해서 코드를 작성해보라는 내용이 있다는 것을 너무 늦게 파악했다..코드적인 문제로는, 중간에 프론트에서 데이터를 한번에 2가지 servlet으로 전송하려했는데 그게 좀처람 잘 되지 않았다.그 외에도 세션을 사용하려다가 생기는 오..

Project/Spring 2024.12.19

[Spring] HTTP Message Body & TEXT

JSON📌 데이터를 표현하기 위한 가볍고 간단한 텍스트 기반의 데이터 교환 형식입니다. 키-값 쌍으로 데이터를 구조화하며, 사람과 기계가 읽고 쓰기 쉽도록 설계되었습니다. 웹 애플리케이션과 서버 간의 데이터 교환에서 널리 사용됩니다. Json은 @RestController 에서 가장 많이 사용되는 데이터 형식이다. 현재 대부분의 API는 Request, Response 모두 JSON 형태로 통신한다.Json 형태로 Data를 전송할 때는 Request Header의 content-type이 꼭 application/json 이여야 한다. JSON의 특징가독성:간단한 문법으로 사람이 읽기 쉽습니다.경량성:XML에 비해 데이터 표현이 간결하여 네트워크 트래픽이 적습니다.언어 독립성:대부분의 프로그래밍 언어..

[Spring] @RequestParam & @ModelAttribute

쿼리 파라미터(Query Parameter)📌 HTTP 요청 URL의 일부로, Key-Value 형태로 데이터를 전달하는 방법 쿼리 파라미터는 URL 경로 끝에 **?**로 시작하며, 여러 개의 파라미터는 **&**로 구분됩니다.구조?=&= 특징클라이언트가 서버로 데이터를 전달할 때 사용.GET 요청에서 주로 사용되며, 요청 URL에 데이터를 포함.데이터가 URL에 노출되므로 민감한 정보를 보내는 데 적합하지 않음.여러 파라미터를 전달할 수 있음.  HTML 폼 데이터(Form Data)📌 HTML 폼(Form)을 통해 서버로 전달되는 Key-Value 형태의 데이터입니다. 폼 데이터는 주로 POST 요청의 HTTP 요청 본문(body)에 포함됩니다. 구조HTML 폼을 통해 데이터를 보낼 때, Key..

[Spring] Request Mapping

@RequestMapping📌클라이언트의 요청 URL과 이를 처리할 컨트롤러의 클래스나 메서드를 매핑하는 데 사용됩니다.특정 URL로 Request를 보내면 들어온 요청을 Controller 내부의 특정 Method와 Mapping 하기 위해 사용한다.Client로부터 요청이 왔을 때 어떤 Controller가 호출될지 Mapping하는것은 단순히 URL로 Mapping 하는것이 아니라 여러가지 요소(URL, Method 등)를 조합하여 Mapping한다. @RequestMapping과 Handler Adapter의 차이@RequestMappingHandler AdapterHTTP 요청과 컨트롤러 메서드를 연결하는 어노테이션DispatcherServlet과 핸들러(컨트롤러) 사이를 연결하는 구현체메타데..

[Spring] Spring Annotation

Lombok📌 Java의 보일러플레이트 코드(반복적이고 지루한 코드)를 줄여주는 라이브러리입니다.간단한 어노테이션으로 getter, setter, equals, hashCode, toString, logger 생성 등을 자동으로 생성하여 코드의 간결성을 높이고 가독성을 향상시킵니다.import lombok.ToString;@ToStringpublic class Example { private String name; private int age;}=@Overridepublic String toString() { return "Example(name=" + name + ", age=" + age + ")";} Lombok의 장점코드 간소화:getter, setter, equals, toSt..

[Spring] Spring MVC 패턴

Spring MVC 구조📌 Spring은 MVC 패턴에 프론트 컨트롤러 패턴, 어댑터 패턴이 적용된 구조를 가지고 있다.MVC는 소프트웨어 설계 패턴으로 구축 개념에 가깝다. 당연히 구축 방식은 때에 따라 달라왔고 이를 Spring에서는 통합하여 하나의 템플릿으로 제공한다. 요청이 오면 Controller에서 파라미터 정보 확인하여 비지니스 로직을 실행한다.비지니스 로직의 결과 Data 를 Model에 담아서 View에 전달해준다.View는 모델의 Data를 참조하여 화면을 그려준다.DispatcherServlet : Spring의 프론트(프론트엔드 아님, HTTP 요청의 최전선을 프론트라인이라 함) 컨트롤러View : 인터페이스로 구성되어 있다, 확장성을 가지고 있다. 실행순서Client로 부터 HT..

[Net] MVC 패턴

Template Engine📌 동적인 웹 페이지를 생성하기 위해 사용되는 도구이며 템플릿을 기반으로 정적인 부분과 동적인 데이터를 결합하여 HTML, XML 등 의 문서를 생성하는 역할을 수행한다.  우리가 흔히 말하는 UI(User Interface)를 만들며, SSR(Server Side Rendering)에 사용된다.정적 출력은 [안내 메시지]와 같은 모든 사용자에게 동일하게 보이는 데이터를 말하고 동적 데이터는 [사용자 이름]과 같은 사용자, 상황마다 다른 결과를 표현하는 데이터다.아래와 같이 서버에서 보내는 데이터를 html쪽에서 정의하는 방식으로 접근이 편리하게 만들어준다. 안녕하세요, 방문해주셔서 감사합니다! 안녕하세요, 이름님! [실제 출력] 안녕하세..

[JAVA] JAVA 웹 기술의 역사

📚 Java 웹 기술은 서블릿과 JSP로 시작해 MVC 패턴을 거쳐 MVC 프레임워크의 도입으로 구조화되었으며, 이후 어노테이션 기반의 Spring MVC와 비동기 처리에 최적화된 Spring WebFlux로 발전해왔다. Servlet의 등장 (1997)개요Java를 사용한 웹 개발의 시초로, 서버에서 동적으로 콘텐츠를 생성하기 위해 사용되었다. 클라이언트의 요청을 받고, 그에 대한 응답을 생성하는 기본적인 구조를 제공했다.단점코드의 복잡성이 증가하고 유지보수가 어려워졌다.JSP (JavaServer Pages) 도입 (1999)개요JSP는 HTML 내에 Java 코드를 삽입할 수 있는 기술로, 웹 페이지를 더 쉽게 동적으로 생성할 수 있도록 도와주었다.단점JSP 내에 비즈니스 로직을 분리할 수 없다...

Back-End (Web)/JAVA 2024.12.12