[HTTP] 웹 탄생 배경
·
🌐 Network/📜HTTP
웹 탄생 배경HTTP(HyperText Transfer Protocol)는 "Tim Berners-Lee" 라는 인물이 만들었다.팀 버너스 리는 CERN(유럽입자물리연구소)에서 일을 하면서, 당시 너무 많은 과학자들이 모여있던 연구소에는 엄청난 양의 논문과 지식이 쌓여있었고 사람들은 원하는 정보를 찾기 위해서는 당시에 논문을 책으로 찾아보거나 물리적으로 엄청난 시간이 들여서 정보를 찾는 과정이 필요했었다. 이러한 과정에 대한 불편함 때문에 팀 버너스 리는 컴퓨터를 활용해 소프트웨어를 개발하게 되었고 해당 소프트웨어가 웹의 시작이 되었다. 1989년팀 버너스 리는 CERN(유럽입자물리연구소)에서 일을 하면서, 정보 관리 시스템이라는 아이디어를 제시하게 되었고 해당 아이디어는 문서들이 서로 연결되어 정보를 ..
[HTTP] HTTP란?
·
🌐 Network/📜HTTP
HTTPHTTP는 HyperText Transfer Protocol의 약자이다. HyperText- HyperText 하이퍼링크와 같은 참조를 걸어 다른 문서로 이동을 하게 도와주는 텍스트를 의미한다.Transfer- "옮기다" 라는 뜻을 가지고 있음.Protocol- "규약" 이라는 뜻을 가지고 있음. 즉, HyperText를 옮기게 도와주는 규약을 의미한다.쉽게 말해, 웹에서 클라이언트와 서버간의 HyperText 기능이 들어가있는 문서들을 요청과 응답을 통해 제공을 해주는 방법을 규약을 해놓고 해당 규약 틀안에서 제공을 해주는 것을 의미한다. Protocol(규약)의 존재 이유HTTP와 같이 통신 프로토콜이 없다면, 클라이언트와 서버간 너무 다양한 통신 방법이 만들어질 수 있기 때문에 하나의 방법으..
[HTTP] WebSocket
·
🌐 Network/📜HTTP
WebSocketIETF(국제 인터넷 표준화 기구)- HTTP 프로토콜의 최신화 및 업데이트 작업은 IETF(Internet Engineering Task Force)**가 주도하고 있다.- IETF 산하 HTTP Working Group은 HTTP의 개선과 표준화를 담당하며, 이를 통해 새로운 버전과 관련 기술들이 정의되고 배포되며, 웹 브라우저는 이러한 HTTP 표준을 기반으로 동작하며, 새로운 표준에 맞춰 업데이트가 되게 된다. 이러한, IETF에서 실시간 통신의 필요성을 느껴 WebSocket 프로토콜을 만들었고, HTTP 프로토콜 기반으로 연결을 설정 하고, 이후에 WebSocket 프로토콜로 전환되어 실시간 양방향 통신을 가능하게 해준다. HTTP -> WebSocket 전환 과정1. HTTP..
[알고리즘 문제] 백준(1145번) - 적어도 대부분의 배수
·
🛠️Backend/Algorithm Problem Solving
[문제]문제다섯 개의 자연수가 있다. 이 수의 적어도 대부분의 배수는 위의 수 중 적어도 세 개로 나누어 지는 가장 작은 자연수이다.서로 다른 다섯 개의 자연수가 주어질 때, 적어도 대부분의 배수를 출력하는 프로그램을 작성하시오. 입력첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다. 출력첫째 줄에 적어도 대부분의 배수를 출력한다. 예제 입출력예제 입력예제 출력30 42 70 35 902101 2 3 4 5430 45 23 26 5611703 14 15 92 65195  [문제 해설]일단 다섯개의 자연수를 받기 위한 입력 객체를 만들면 되고, 입력 값 5개의 각각의 배수에 대한 값 중 3개 이상의 값이 같은 경우 또는 가장 작은 경우에 대한 값을 구하는 문제이..
[HTTP] CSR & SSR 이란?
·
🌐 Network/📜HTTP
SSRServer Side Rendering 서버에서 HTML을 만들어서 주는 방식을 의미한다.서버에서 매 요청마다 특정 요청에 맞는 HTML을 만들어서 반환해주는 방식이다.특징으로는 특정 HTML을 보내줌으로써, 매 요청마다 새로고침 되어 렌더링이 된다는 특징이 있다.  CSRClient Side Rendering 클라이언트가 서버에 요청을 보내면 index.html과 javascript 전체를 보내주게 되고, 클라이언트 브라우저 내부에서 받아온 javascript에 기재된 html 코드를 읽어와 동적으로 클라이언트가 직접 화면에 렌더링을 하는 방식을 의미한다.특징으로는 매 요청마다 클라이언트 내부에 있는 html을 동적으로 렌더링하기 때문에 새로고침 없이도 렌더링이 된다. 결론SSR은 서버에서 HTM..
[Spring Framework] IoC 컨테이너 동작 원리
·
🛠️Backend/🌳Spring
(1) IoC 컨테이너의 역할개발자가 정의한 객체들을 Bean으로 IoC 컨테이너에 보관을 해두고, 스프링을 통해 자동으로 의존성 주입을 할 때 Bean을 객체로 만들어 의존성을 주입을 해주는 역할을 한다.( 해당 부분은 스프링 서버가 뜰 때 즉, 초기화 시점에 객체에 대한 의존성 주입이 이뤄진다. )코드적으로 org.springframework.context.ApplicationContext는 Spring IoC 컨테이너를 나타낸다. 핵심객체의 생성과 생명주기를 관리해주는 핵심 컴포넌트이다. (2) IoC 컨테이너의 Bean(객체) 관리 과정IoC컨테이너가 Bean을 관리하는 과정은 크게 7가지가 존재 ( 또한, 빈 생명주기 과정으로도 볼 수 있다. ) ( 해당 과정은 초기화 시점인 스프링 서버가 초기..
[Java Design Pattern] 정적 팩토리 메서드
·
🛠️Backend/☕Java
우선 들어가기에 앞서 정적 팩토리 메서드는 디자인 패턴은 아니지만, 비슷한 결을 가지고 있다. 이러한 디자인 패턴들을 공부할때는 개인적으로 해당 디자인패턴의 장점과 단점을 파악하는 공부 방법이 가장 좋은 것 같다. 이해하기가 더 쉬운듯 (1) 정적 팩토리 메서드란?보통 객체를 생성하는 방법은 "생성자"를 통해 객체를 생성 하는 방법이 있다. 하지만, 이번에 알아 볼 방법은 메서드를 활용해 객체를 생성하는 방법이다. 상황에 따라서 잘 사용하면 유지보수에 매우 좋다. 참고로 정적 팩토리 메서드는 디자인 패턴이 아닌 객체를 생성하는 방법 중 하나이다. 1. 정적- 자바에서 static 키워드를 의미하며, static 키워드는 고정된 메모리 공간을 갖는다.- 클래스가 메모리에 로드될 때 한 번만 생성이 되며, ..
[알고리즘 문제] 백준(1009번) - 분산 처리
·
🛠️Backend/Algorithm Problem Solving
[백준] 분산 처리 문제 ( 브론즈2 )문제재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다.- 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... ,- 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ...총 데이터의 개수는 항상 a^b개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라.입력입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케..
[Java] 변수 초기화에 대한 이해
·
🛠️Backend/☕Java
문득 알고리즘 문제를 풀다 변수 초기화에 대해서 의문을 품게 되었었다. (1) 문제 발생import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int f = scanner.nextInt(); int len = Integer.toString(n).length(); String result = ""; // 의문을 갖게 된 부분 String text = ""; // 의문을 갖게 된 부분 for(int..
[Spring MVC] 요청과 응답에 대한 동작 원리
·
🛠️Backend/🌳Spring
목차 ● 1. 웹 서버 & 웹 애플리케이션 서버 ● 2. 스프링부트 환경 내장 서버 ● 1. 웹 서버란?1. 웹 서버 & 웹 애플리케이션 서버 웹 서버란?1. HTTP 프로토콜을 기반으로 클라이언트의 요청을 받아주고 정적인 리소스를 제공해주는 역할을 한다.2. 정확히는, 정적 리소스를 WAS에서 받아서 해석해서 클라이언트에게 전달해주는 역할을 한다. 웹 애플리케이션 서버란?1. 웹 서버가 존재해야지만 존재할 수 있는 서버이며, 동적인 컨텐츠를 제공해주기 위해 존재하는 서버이다.2. 동적인 컨텐츠로는 DB조회나 다양한 로직 처리 및 계산 등 처리를 해서 웹 서버로 전달을 해주는 역할을 한다.2. 스프링부트 환경 내장 서버 스프링부트는 웹 서버 & 웹 애플리케이션 서버를 합친 서버를 내..