분류 전체보기692 [Servlet, JSP] RequestDispatcher와 요청 재지정 RequestDispatcher " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 RequestDispatcher 객체에서 제공하는 메소드를 이용하여 요청 재지정을 할때는 재지정하는 자원이 반드시 현재 자원과 동일한 웹 어플리케이션에 있어야만 합니다. 우성 재지정 메소드를 확인해 봅시다. 1) forward(ServletRequest request, ServletResponse response) : 요청을 다른 자원으로 넘긴다. 2) include(ServeltRequest request, ServletResponse response) : 다른 자원의 처리 결과를 현재 페이지에 포함시킨다. RequestDispatcher 객체 생성 " data-ke-type="html"> .. BackEnd/Servlet, JSP 2022. 1. 13. [Servlet, JSP] Session과 login, logout 구현하기 Session 이란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 HTTP를 이용하여 클라이언트가 서버와 통실할때 서버측에 생성되는 "상태정보"를 세션이라 부릅니다. 세션은 HttpSession 인터페이스로 표현되며, HttpServletRequest의 getSession()을 통해 객체로 생성될 수 있습니다. 세션 객체가 생성될때 요청보내온 클라이언트의 정보, 요청시간, 등을 조합하여 세션ID 가 부여되며, 이 세션ID 는 클라이언트 측에서 쿠키로 저장됩니다. 세션 객체는 서버 측에 저장되며, 이후 사용자가 서버에 접근할때 세션ID를 이용하여 세션 객체에 접근합니다. 로그인/로그아웃 form 작성 " data-ke-type="html"> HTML 삽입 미리보기할 수 .. BackEnd/Servlet, JSP 2022. 1. 13. [Servlet, JSP] Servlet 과 Cookie Cookie 란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 쿠키란 서버가 클라이언트에 저장하는 정보로서 클라이언트 쪽에 필요한 정보를 저장해 놓고, 필요할 때 추출하는 것을 지원하는 기술 입니다. 클라이언트와 연결이 끊어져도 클라이언트 개인마다 상태정보를 유지하고자 할때 사용하는 기술 입니다. (이는 HTTP의 stateless 한 특성 때문에 사용되는 기술 입니다.) 이후 서버 방문시 요청정보의 헤더에 포함되어 전달됩니다. 쿠키는 name 과 value로 구성된 정보이며, 필요에 따라 쿠키 유지시간, 유효 디렉터리, 유효 도메인 등 속성또한 정할 수 있습니다. 다만 사용자 브라우저에 저장되기에 용량에 제한이 있고, 클라이언트에 저장된 쿠키를 직접 접근할수 있기때문.. BackEnd/Servlet, JSP 2022. 1. 13. [Design Patterns] Compound Pattern : 컴파운드 패턴 Compound Pattern 이란? 일련의 패턴을 함께 사용하여 다양한 디자인 문제를 해결하는 것을 컴파운드 패턴 이라고 부릅니다. 다만 패턴 몇개를 결합해서 쓴다고 무조건 컴파운드 패턴이 되는 것은 아닙니다. 컴파운드 패턴이라면 여러가지 문제를 해결하기 위한 용도로 쓰일수 있는 일반적인 해결책이여야 합니다. 패턴 소개 Compound Pattern의 대표적인 예인 MVC 패턴에 대하여 글을 작성하였습니다. 함께 보실까요? iTunes같은 MP3 플레이어를 사용한다고 해봅시다. 소프트웨어 에서 제공해주는 인터페이스를 사용하여 새로운 노래를 추가하거나 재생목록을 관리하거나 트랙 이름을 바꿀 수 있습니다. 다양한 데이터가 들어있는 DB는 그 소프트웨어에서 알아서 관리해 줍니다. 곡을 재생하고, 재생중인 곡.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Proxy Pattern : 프록시 패턴 Proxy Pattern 이란? Proxy Pattern - 어떤 객체에 대한 접근을 제어하기 위한 용도로 대리인이나 대변인에 해당하는 객체를 제공하는 패턴 위의 정의에서 접근을 제어하는 프록시는 어떤 것 일까요? 아래에서 배울 뽑기 기계의 경우 프록시가 원격 객체에 대한 접근을 제어하고 있다고 생각하면 됩니다. 원격 프록시가 접근을 제어해서 네트워크 관련사항들을 챙겨줬다 할 수 이는거죠. 대표적인 접근을 제어하는 방법을 알아봅시다. ▶ 원격 프록시를 써서 원격 객체에 대한 접근을 제어할 수 있습니다. ▶ 가상 프록시를 써서 생성하기 힘든 자원에 대한 접근을 제어할 수 있습니다. ▶ 보호 프록시를 써서 접근 권한이 필요한 자원에 대한 접근을 제어할 수 있습니다. 클래스 다이어그램도 한번 살펴볼까요? Pr.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] State Pattern : 스테이트 패턴 State Pattern 이란? State Pattern - 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있습니다. 마치 객체의 클래스가 바뀌는 것과 같은 결과를 얻을 수 있습니다. 이 패턴에서는 상태를 별도의 클래스로 캡슐화한 다음 현재 상태를 나타내는 객체에게 행동을 위임하기 때문에, 내부 상태가 바뀜에 따라서 행동이 달라지게 된다는 것을 알 수 있습니다. "클래스가 바뀌는 것과 같은" 결과를 얻는다는 것이 어떠한 의미일까요? 클라이언트 입장에서 생각해봅시다! 만약 클라이언트가 사용중이던 객체의 행동이 완전히 달라진다면 마치 다른 클래스로부터 만들어진 객체처럼 느껴지겠죠? 물론 실제로 바뀌는 것은 아니고 여러 상태객체를 바꿔가면서 사용하는 방식입니다. Context라는 클래스에는 여러가지.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Composite Pattern : 컴포지트 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Composite Pattern 이란? Composite Pattern - 객체들을 트리 구조로 구성하여 부분과 전체를 나타내는 계층구조로 만들 수 있습니다. 이 패턴을 이용하면 Client에서 개별 객체와 다른 객체들로 구성된 복합객체(composite)를 똑같은 방법으로 다룰 수 있게됩니다. 패턴 소개 다음과 같이 Iterator 를 활용하여 메뉴를 출력하는 코드가 있다고 해봅시다. 이 코드들은 이전 글인 Iterator 에서 나왔던 코드들 입니다. 기억 하시죠? import java.util.Iterator; public class Waitress { Menu pancakeHou.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Iterator Pattern : 이터레이터 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Iterator Pattern 이란? Iterator Pattern - 컬랙션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있게 해주는 방법을 제공 이 패턴을 사용하면 컬랙션 내부에서 어떤 방식으로 일처리가 되는지 전혀 모르는 상태에서 그 안의 모든 원소들에 접근할 수 있게됩니다. 컬랙션 객체안에 들어있는 모든 원소들에 대한 접근방식이 공통되어있다면 어떤 종류의 컬랙션 에서도 사용할 수 있는 다형적인 코드를 만들 수 있기 때문이죠! 또한 반복자(Iterator)를 활용하면 모든 항목에 접근하는 일을 컬랙션 객체가 아닌 반복자 객체에 책임을 위임한게.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Template Method Pattern : 템플릿 메소드 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Template Method Pattern 이란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 Template Method Pattern - 메소드에서 알고리즘의 골격을 정의합니다. 알고리즘의 여러 단계 중 일부는 서브클래스에서 구현할 수 있습니다. 템플릿 메소드를 이용하면 알고리즘의 구조는 그대로 유지하면서 서브클래스에서 특정 단계를 재정의 할 수 있습니다. 이 패턴은 일련의 단계들(메소드들의 순서) 로 알고리즘을 정의한 메소드 입니다. 메소드들을 어떤 순서로 호출하는지가 알고리즘이라 할 수 있겠습니다! 여러 알고리즘의 단계(메소드) 가운데 하나 .. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Facade Pattern : 퍼사드 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Facade Pattern 이란? Facade Pattern - 어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공합니다. 퍼사드에서 고수준 인터페이스를 정의하기때문에 서브시스템을 더 쉽게 사용할 수 있습니다. 퍼사드 패턴에서는 인터페이스를 단순화 시키기위해 인터페이스를 변경합니다! 하나 이상의 복잡한 인터페이스를 깔끔하게 퍼사드 로 덮어주거든요! 더 나아가 쉽게 사용할수 있도록 도와준답니다. 다음 다이어그램을 함께 확인해 보시죠! 클라이언트가 퍼사드 덕분에 정말 편하게 서브시스템들을 사용하고 있군요! 패턴 소개 다음과 같이 클래스들이 서로 복잡하게 얽혀있고, 사용할려.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Adapter Pattern : 어댑터 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Adapter Pattern 이란? Adapter Pattern - 클래스의 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환한다. 인터페이스가 호환되지 않아 사용하지 못하던 클래스들을 사용할 수 있게 해 줍니다. 어떤 프로그램이 있는데, 새로운 업체에서 제공하는 기능을 사용할려고 한다 해봅시다. 하지만 기존 프로그램의 인터페이스와 새로 제공된 클래스의 인터페이스가 일치하지 않아 사용에 어려움이 있습니다. 이럴때 필요한 것 이 Adapter 입니다! 어댑터를 사용하면 기존시스템에서의 요청이 어댑터를 통해 변환되어 새로 업체에서 제공한 클래스에서 요청을 받아들일 수 있도록 변환.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Command Pattern : 커맨드 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Command Pattern 이란? 커맨드 패턴 - 커맨드 패턴을 이용하면 요구사항을 객체로 캡슐화 할 수 있으며, 매개변수를 사용하여 다양한 요구사항을 전달할 수 있게됩니다. 또한 요청 내용을 큐에 저장하거나 로그로 기록할수도 있으며, 작업되돌리기 또한 가능합니다. 우선 커맨드 패턴의 개념부터 알아봐야 겠죠? 코드보기 전에 간단한 이야기 먼저 들려드리죠~ 식당에서 음식을 주문한다고 해봅시다. 주문과정을 요약하면 다음과 같을 것 입니다! 1) 고객이 종업원에게 주문을 합니다. 2) 종업원이 주문을 받고 주방에 주문을 전달합니다. 3) 주방장이 주문대로 음식을 준비합니다 이 과정을 조금.. BackEnd/Design Patterens 2022. 1. 13. 이전 1 ··· 54 55 56 57 58 다음