728x90
반응형

Java Spring 25

HTTP 란? , Stateful, Stateless, 비연결성

HTTP ( HyperText Transfer Protocol )  * TCP를 직접 연결해서 쓰는 경우는 드물다 ( ex.  게임서버 등 - 심지어 모바일 게임에서도 Http로 통신하는 경우도 있다. )* 대부분 버전은 Http/1.1 버전을 주로 사용  ( TCP: HTTP/1.1 , HTTP/2 ,     UDP : HTTP/3  )      * 클라이언트와 서버를 분리해서 보는 것이 중요( 비지니스 로직, 데이터는 서버 ,  UI 사용성은 클라이언트가 담당 )=> 각각 독립적으로 진화를 할 수 있다.  무상태 프로토콜 ( Stateless ) 예시 )  이제 무상태의 예시를 보자    비연결성 ( connectionless ) TCP /IP 는 기본적으로 연결유지를 기본으로 한다. 클라언트 1,2..

Java Spring 2025.02.04

HTTP) TCP / UDP?

IP를 가지고 통신을 하면서,  패킷이 꼬이는 순간,  먼저 도착해야할 것이 나중에 도착하거나, 유실되는 경우가 있다.=> 이 부분을 해결하고자 TCP / UDP 가 있다.  먼저 프로토콜 계층을 보자 Hello 라는 메세지를 전송하는 과정     연결지향 -> 연결을 한 이후 연결을 확인한 후 데이터 전송3. Ack 로 연결을 확인함. ( 요즘은 Ack 할때 데이터를 함께 보낸다 ) 데이터 전송시 서버에서 응답을 준다.   * 그래서 TCP를 신뢰할수 있는 통신 프로토콜이라고 한다       * 대부분 90 퍼센트이상 TCP가 사용되지만,  Http3 가 나온이후로 직접 구현해서 사용할수 있는 UDP도 각광을 받고 있다.

Java Spring 2025.02.04

템플릿 엔진이란 ?

✏️ 템플릿 엔진(Template Engine) 이란? 웹 개발 관점에서 템플릿 엔진이란, 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어를 이야기 합니다.동적인 웹페이지를 구성함에 있어 요청과 관련된 다양한 데이터가 필요합니다. 이때, 데이터를 끼워넣을 틀을 만들어 놓으면 페이지 구성을 효율적으로 할 수 있겠죠? 🤔 웹 템플릿 엔진은 View Code(HTML) 과 Data Logic Code(DB) 를 분리시킵니다. 마치 MVC 패턴과 비슷하게 각각의 역할을 나누어 View 에서는 Controller 에서 넘어온 데이터를 틀에 끼워 넣어클라이언트에게 알맞은 웹 페이지를 제공합니다 🎁 웹 템플릿 엔진은 '서버 사이드 템플릿 엔진'과 '클라이언트 사이드 템플릿 엔진'으로 나눌..

Java Spring 2025.01.10

Spring Servlet이란? ( 서블릿 ) , Servlet Container

서블릿 이란?클라이언트의 요청을 처리하고 그 결과를 반환하는 기술 동적 웹페이지 서버에서 수행되는 소형 프로그램 입니다. 각 사용자의 요청이 서버의 하나의 스레드로 수행됩니다. '자바 서블릿'은 자바를 사용해 웹 페이지를 동적으로 생성하는 서버내 프로그램이라고 합니다  https://velog.io/@oyoungsun/Spring-%EC%84%9C%EB%B8%94%EB%A6%BFServlet-%EC%9D%B4%EB%9E%80 [Spring] 서블릿(Servlet) 이란?: 클라이언트의 요청을 처리하고 그 결과를 반환하는 기술동적 웹페이지 서버에서 수행되는 소형 프로그램 입니다.각 사용자의 요청이 서버의 하나의 스레드로 수행됩니다. '자바 서블릿'은 자velog.io  서블릿의 특징  1.MVC 패턴 중 ..

Java Spring 2025.01.03

Spring MVC 모델 2

Spring MVC 핵심 1) DispacherServlet 서블릿 등록 부모 클래스에서 HttpServlet 을 상속 받아서 사용 스프링 부트는 DispacherServlet 을 서블릿으로 자동으로 등록하면서 모든 경로( urlPatterns="/" )에 대해서 매핑한다. 2) 서블릿이 호출되면 HttpServlet 이 제공하는 serivce() 가 호출된다. 스프링 MVC는 DispatcherServlet 의 부모인 FrameworkServlet 에서 service() 를 오버라이드 해두었다. FrameworkServlet.service() 를 시작으로 여러 메서드가 호출되면서 DispacherServlet.doDispatch() 가 호출된다. 3) DispacherServlet.doDispatch(..

Java Spring 2025.01.02

AOP (Aspect Oriented Programming, 관심 지향 프로그래밍)

AOP (Aspect Oriented Programming, 관심 지향 프로그래밍)애플리케이션을 개발할 때에 구현해야 하는 기능들은 크게 공통 관심 사항과 핵심 관심 사항으로 분류할 수 있습니다.먼저, 핵심 관심 사항은 애플리케이션의 핵심 기능과 관련된 관심 사항으로,커피 주문 애플리케이션을 예로 든다면 메뉴 등록하기, 주문하기, 주문 변경하기 등이 있을 것입니다. 반면, 공통 관심 사항은 모든 핵심 관심 사항에 공통적으로 적용되는 관심 사항들을 의미합니다. 예를 들어, 메뉴 등록하기, 주문하기, 주문 변경하기 등 모든 핵심 관심 사항에는로깅이나 보안 등과 관련된 기능들이 공통적으로 적용되어야만 합니다. 이 때, 핵심 관심 사항과 공통 관심 사항이 코드에 아래와 같이 함께 모여 있으면필연적으로 공통 관심..

Java Spring 2024.12.26

IoC / DI (Inversion of Control / Dependency Injection, 제어의 역전 / 의존성 주입)

IoC / DI (Inversion of Control / Dependency Injection, 제어의 역전 / 의존성 주입)Java 애플리케이션의 동작 흐름에서 중요한 것은 무엇일까요?아무래도 Java는 객체지향 언어이므로, 객체들 간의 관계를 적절히 맺어주는 것이 중요한 요소일 것입니다.객체들 간에 관계를 맺어준다는 것은 거창한 것이 아닙니다. A 인스턴스가 B 인스턴스의 메서드를 호출하고 있다면 A는 B와 의존 관계를 맺은 것이 되며,이 둘의 관계를 “A가 B에 의존하는 관계”라고 표현할 수 있습니다. A가 B의 기능을 가져다가 사용하고 있으니까요.   위의 A와 B의 의존 관계는 개발자에 의해 만들어집니다.개발자가 직접 new 키워드를 사용하여 인스턴스를 생성하는 코드를 작성했기 때문입니다.그런..

Java Spring 2024.12.26

DAO, DTO 란?

DTO(Data Transfer Object)와 DAO(Data Access Object)는 소프트웨어 개발에서 자주 사용되는 디자인 패턴 또는 개념으로, 주로 데이터 처리와 관련된 구조를 명확히 하고 코드의 재사용성을 높이기 위해 사용됩니다.DTO (Data Transfer Object)DTO는 계층 간 데이터 교환을 위한 객체입니다. 주로 데이터베이스, 비즈니스 로직, 또는 클라이언트와 서버 사이에서 데이터를 전송하기 위해 사용됩니다.DTO는 순수한 데이터 구조로, 데이터의 필드와 이를 가져오거나 설정하기 위한 getter/setter만 포함하며, 비즈니스 로직을 포함하지 않습니다.주요 특징데이터 전달 목적: 주로 컨트롤러와 서비스 계층 간, 또는 API 응답으로 사용.비즈니스 로직 없음: 데이터를 ..

Java Spring 2024.12.24

Server-Sent Events vs WebSockets

Server-Sent Events (SSE)와 WebSockets는 실시간 통신을 위해 사용되는 두 가지 기술입니다. 각 기술의 특징, 장점, 단점, 그리고 사용 사례를 비교해보겠습니다. ### Server-Sent Events (SSE) **특징:** - HTTP 기반의 단방향 통신. - 클라이언트가 서버에 연결을 시작하고, 서버는 지속적으로 데이터를 클라이언트로 전송. - 텍스트 기반의 데이터 전송. - HTML5 표준의 일부. **장점:** - 구현이 비교적 간단하고, 기존 HTTP 인프라와 잘 통합됨. - 브라우저에서 기본 지원 (추가 라이브러리 필요 없음). - 자동 재연결 및 연결 손실시 이벤트 제공. - 헤더 설정을 통해 캐시 및 프록시와 호환 가능. **단점:** - 단방향 통신만 가능 (..

Java Spring 2024.07.02
728x90
반응형