본문 바로가기

CS16

[Network] 브라우저는 어떻게 웹 서버로 요청을 보내는걸까? 0. 이 글을 쓰게 된 이유 아주 예전부터 기술 부채에 "요청 버튼을 누르면 구체적으로 어떤 방식으로 요청이 서버에 닿을까"가 있었다. 만약 면접에서 이 질문이 들어오면 대답할 자신이 없었기 때문에 언젠간 해야지 하다가 드디어 브라우저부터 찔끔 정리해보려고 한다. 1%의 네트워크 원리를 토대로 정리를 하는 것이라서 거의 비슷한 순서로 글을 작성한다. 브라우저는 여러 개의 클라이언트 기능을 제공하는 복합적인 클라이언트 소프트웨어이다. 브라우저가 어떤 기능을 제공하고, 어떤 과정을 통해 웹서버로 요청을 보내는지 알아보자. 1. HTTP Request 메시지 작성 일단 요청을 보내려면 요청 메시지를 작성해야한다. HTTP 말고도 다양한 프로토콜이 있지만 주제가 웹 서버로 요청을 하는 것이니 HTTP를 기준으로.. 2023. 5. 17.
[CS] Web Server와 WAS 0. 이 글을 쓰게 된 이유 Web Server와 WAS에 대한 개념은 서버 개발에 있어서 기초적인 개념이다. 팀 프로젝트에 들어가기 앞서 정확하게 정리하고 싶어서 이 글을 쓰게 되었다. 1. 정적 페이지와 동적 페이지 1.1 정적 페이지(Static Contents) 정적 페이지는 말 그대로 변화가 없는 정적인 컨텐츠 말한다. image, html, css, javsscript등이 이에 속하며 즉시 웹 브라우저에서 사용할 수 있는 컨텐츠이다. 1.2 동적 페이지(Dynamic Contents) 동적 페이지는 정적 컨텐츠와는 반대 개념으로, 인자의 내용에 맞게 바뀌는 동적인 컨텐츠이다. 보통 DB 서버와 연결되어 같이 수행이 되며 업무를 처리하는 비즈니스 로직이 수행된 결과물이다. 2. Web Serve.. 2022. 12. 5.
[디자인 패턴] 프록시(Proxy) 패턴 0. 이 글을 쓰게 된 이유 Spring을 공부하던 중 프록시 패턴을 만나게 되었다. 원래 알고 있던 패턴이긴 하지만 이 참에 정리하고 가는게 좋을 것 같아서 이 글을 쓰게 되었다. 1. 프록시 패턴이란? 토비의 스프링에서는 이 프록시를 두가지로 분류한다. 클라이언트가 타깃에 접근하는 방법을 제어하기 위한 프록시(GoF의 디자인 패턴의 프록시 패턴과 같음.) 타깃에 부가적인 기능을 부여하기 위한 프록시(데코레이터 패턴이라고 한다. 여기서는 위의 1번에 해당하는 전형적인 프록시 패턴에 대해서 얘기할 것이다. 데코레이터 패턴도 거의 비슷한 구조이긴하다. 프록시 구조를 객체 다이어그램으로 나타내면 위와 같다. 간단하게 얘기하면 클라이언트가 실제 객체인 RealSubject에 접근하려면 Proxy 객체를 통해서.. 2022. 10. 5.
[디자인 패턴] 템플릿/콜백(Template/Callback) 패턴 0. 이 글을 쓰게 된 이유 토비의 스프링을 공부하면서 템플릿/콜백 패턴에 대해서 접하게 되었다. 스프링에서 제공하는 코드를 보니 굉장히 많이 활용되고 있었고 활용하기 좋은 패턴이어서 정리하게 되었다. 참고로 이 패턴은 GoF의 디자인 패턴에서는 나오지 않는 패턴이다. 1. 템플릿/콜백 패턴이란? 템플릿/콜백 패턴은 전략 패턴의 일종이다. 전략 패턴의 기본적인 구조에 변화되는 부분을 매번 클래스로 만들지 않고, 익명 내부 클래스를 이용해 바로 생성하여 이용하는 식이다. 1.1 용어 정리 템플릿 템플릿은 어떤 목적을 위해 미리 만들어둔 모양이 있는 틀이다. 프로그래밍에서는 고저오딘 틀 안에 바꿀 수 있는 부분을 넣어서 사용하는 경우에 템플릿이라고 부른다. JSP는 HTML이라는 고정된 틀에 EL과 스크립릿.. 2022. 9. 30.
[디자인 패턴] 전략(Strategy) 패턴 0. 이 글을 쓰게 된 이유 전략 패턴은 평소에 많이 사용하고 기본적인 패턴 중 하나이다. 이 전에도 정리한 적이 있었는데 부족한 내용이 있었기도 하고, 템플릿/콜백 패턴을 공부 하는데에 일단 전략 패턴부터 다시 정리하고 넘어가면 좋겠다 생각이 들어 정리한다. 1. 전략 패턴이란? 전략 패턴이란 행동 패턴 중 하나로, 동일 계열의 알고리즘 군을 정의하고, 각 알고리즘을 캡슐화하며(인터페이스를 통해), 이들을 상호교환이 가능하도록 만든다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있다. Context 클래스는 Strategy 인터페이스 타입의 클래스를 필요하도록 설계 되었다고 하자. Strategy 인터페이스를 구현하는 클래스인 ConcreteStrategyA, C.. 2022. 9. 29.
[디자인 패턴] 팩토리 메소드(Factory Method) 패턴 0. 이 글을 쓰게된 이유 토비의 스프링을 공부하던 중 팩토리 메소드 패턴에 대한 이야기가 나왔다. 경험해본 패턴이라 알고는 있었지만 정리가 되지 않은거 같아 이 글을 쓰게 되었다. 1. 팩토리 메소드 패턴이란? 팩토리 메소드 패턴은 생성 패턴 중 하나로, 객체를 생성할 때 어떤 클래스의 인스턴스를 만들지 서브 클래스에서 결정하게 되는 패턴이다. 추상 클래스인 Creator는 factoryMethod를 통해 Product 인터페이스 타입의 인스턴스를 생성하도록 설계되어있다고 하자. 추상 클래스인 Creator를 상속 받은 서브 클래스 Creator1이 factoryMethod를 오버라이딩해서 Product 인터페이스 타입의 클래스 중 어떤 구체 클래스를 사용하여 인스턴스를 만들지 결정하는 구조이다. 2... 2022. 9. 28.