본문 바로가기

전체 글50

HTTP 프로토콜 - 무상태, 비연결성 1. HTTP 프로토콜2. 서버/클라이언트 모델3. 상태 유지(Stateful), 무상태(Stateless) 4. 비연결성(Connectless)   HTTP 프로토콜HTTP(Hyper Text Transfer Protocol)는 웹 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 기반으로 동작하는 프로토콜이다. 즉, 클라이언트가 서버에 요청(Request)을 보내면 서버는 응답(Response)을 보내는 형태로 동작한다. 팀 버너스 리에의해 만들어 졌으며, 이를 통해 최초의 웹 브라우저와 웹 서버가 만들어 졌다.이로 인해 월드 와이드 웹의 기초가 세워졌고, HTTP는 웹 상에서 데이터를 주고받기 위한 표준 프로토콜이 되었다.  서버/클라이언트 모델서비스 요청자인 `클라이언트`와 서비스 자원의 제.. 2024. 11. 19.
OSI 7계층 - 세션 , 표현 , 응용 계층 1. 세션 계층2. 표현 계층3. 응용 계층 세션 계층세션 계층은 네트워크 통신에서 두 장치 간의 연결(세션)을 설정, 유지, 종료하는 역할을 한다. 또한, 데이터가 올바르게 전송될 수 있도록 통신 세션을 관리하고, 동기화를 담당한다. 응용 프로세스가 통신을 관리하기 위한 방법을 정의한다.이 계층은 TCP/IP 세션을 만들고 없애는 역할을 한다.세션을 만든다...?세션이 뭐지...?세션에 대해서 이해를 못하니 세션 계층이 뭘 하는지 도저히 이해할 수 없었다. 세션애플리케이션(또는 장치) 간의 특정 대화나 작업을 하나의 논리적인 연결 단위로 묶은 것.역시 이해가 잘 되지 않는다. 언어적인 측면에서 접근해보자 세션 Session은 기본적으로 영어이다. 영어 Session의 뜻은 뭘까? 영어에서 세션은 일반적.. 2024. 11. 19.
OSI 7계층 - 전송 계층 1. 전송 계층2. TCP3. 식별성4. UDP5. 결론 전송 계층신뢰할 수 있는 데이터를 순타적으로 전달하는 역할을 한다. 상위 계층들이 데이터 전달의 유효성이나 효율성을 신경쓰지 않도록 만든다. 데이터가 중복되거나 누락되지 않고 오류없이 순서에 맞게 전송되도록 관리한다.전송 계층은 2가지 역할을 수행한다.1. 신뢰성네트워크 계층이 데이터를 전달할 때 데이터가 제대로 도착했는지에 대한 확인을 한다.2. 식별성데이터가 최종적으로 도착할 애플리케이션이 무엇인지 식별한다. 연결형 통신, 비연결형 통신연결형 통신- 신뢰성/ 정확성을 강조한 통신이다.- TCP 통신이 연결형 통신에 속한다.- 확인 절차가 필요하다. 비연결형 통신- 효율성을 강조한 통신이다.- UDP 통신이 비연결형 통신에 속한다.- 확인 절차 .. 2024. 11. 15.
OSI 7계층 - 네트워크 계층 1. 네트워크 계층2. 라우터3. IP 주소4. 서브넷5. 결론 네트워크 계층하나의 스위치에 연결되어 있는 컴퓨터들의 모음을 `네트워크`라고 하자. 그렇다면 서로 다른 네트워크에 있는 컴퓨터들은 서로 어떻게 데이터를 주고 받을까?이때 등장하는게 바로 네트워크 계층이다. 네트워크 계층은 서로 다른 네트워크 간의 통신을 가능하게 해준다. 2계층에서 스위치라는 장비를 사용했다면 3계층에서는 라우터를 사용한다. 2계층에서는 데이터의 전송을 위해 MAC 주소가 필요했다면 3계층인 네트워크 계층에서는 IP 주소를 알아야 데이터 전송을 할 수 있다. 라우터다른 스위치(네트워크)에 있는 컴퓨터에 데이터를 보내기 위해서는 라우터라는 장비가 필요하다.라우터는 네트워크간 통신이 일어날 때, 해당 목적지 까지 가는 경로레 대.. 2024. 11. 14.
OSI 7계층 - 데이터 링크 계층 1. 데이터 링크 계층2. 이더넷3. 스위치4. 결론 데이터 링크 계층OSI 7계층 중 2계층으로, 네트워크 기기 간 데이터 전송, 요류 검출 및 제어, 흐름 제어 등을 담당하는 계층이다. 물리 계층에 허브라는 장치가 있다고 했는데, 이 허브는 더미허브라고도 불리며 내가 보낸 신호를 특정한 컴퓨터에만 전달하는게 아닌, 연결되어 있는 모든 컴퓨터에 전송하는 특징이 있다.이러한 통신은 엄청난 비효율이 야기되며, 연결된 컴퓨터가 많으면 많을수록 극대화된다. 이러한 문제를 해결하기 위해 여러개의 상위 계층들이 존재하며, 데이터 링크 계층은 신호를 올바른 목적지로 전달하고, 전송중 발생할 수 있는 요류의 검출 및 수정, 흐름 제어를 하는 역할을 한다. 이더넷이더넷이란 컴퓨터 네트워크 기술의 하나로, LAN, MA.. 2024. 11. 14.
OSI 7계층 - 물리 계층 1. OSI 7계층이란?2. 물리 계층3. 물리 계층의 기술4. 결론5. 갑자기 생긴 궁금증 OSI 7계층이란?OSI는 The open systems interconnection(개방형 상호 연결 시스템)의 약어로, 국제 표준화기구 ISO에서 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 모델이다. 왜 필요했을까?표준화가 이루어지기 전에는 다양한 네트워크의 장비와 시스템이 서로 호환되지 않는 문제가 많았다.여러 기업과 기관이 서로 다른 방식과 프로토콜로 네트워크 장비를 설계하고 운영했기 때문에 여러 문제가 발생했다.(호환성 문제, 비효율적인 네트워크 설계, 복잡한 문제 해결, 기술 발전의 어려움, 네트워크 비용 증가 등...) 이러한 문제를 해결하고자 나온 것이 OSI 7계층 모델이었으.. 2024. 11. 14.
디자인 패턴 - IOC, DI, DIP 목차1. IOC (Inversion of Control) 2. DI (Dependency Injection)3. DIP (Dependency Inversion Principle) 1. IOC (제어의 역전)Inversion of Control의 약어로 제어의 역전을 말한다. 객체의 생성과 관리의 책임을 개발자가 아닌 프레임워크 또는 애플리케이션에 위임하는 디자인 원칙을 말한다. 프로그램의 기존 제어 흐름 class Mom { constructor() { this.garlic = new Garlic(); this.mugwort = new Mugwort(); } cook () { // receipe }}const mom = new Mom();mom.cook(); // 실행 이 경우 A.. 2024. 9. 2.
Node.js - ORM, sequelize 1. ORM이란?2. sequelize  1. ORM이란? Object Relational Mapping, 객체-관계 매핑데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다.객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.따라서, 객체 모델과 관계형 모델 간에 불일치가 존재하게 된다.이러한 불일치를 ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 2. sequelize자바스크립트를 사용하는 ORM 시퀄라이즈는 데이터베이스의 테이블과 객체 지향 프로그램의 객체를 매핑시켜 주는 ORM 중 하나다.   사용법1. 시퀄라이즈 다운로드시퀄라이즈는 외부 라이브러리로 패키지 매니저를 통해 설치 후 .. 2024. 8. 20.
Node.js - jwt(Json Web Token) 1. jwt란?2. 토큰의 유형3. 어떻게 생겼을까?4. 토큰 만들기5. 쿠키 사용?  1. jwt란?  Json Web Token 권한 인증을 위해 유저의 정보를 SHA-256 해시알고리즘으로 암호화한 값으로 권한인증을 하는 토큰 기반 인증 방식기존의 권한인증은 세션 정보를 서버에 저장하여 사용자가 요청할 때 헤더에 포함된 세션을 비교하여 인증을 하는 방식이었다. 하지만 이는 세션 정보가 많아짐에 따라 서버에 부담을 줄 수 있다. 하지만 토큰은 서버가 아닌 클라이언트가 토큰을 가지고 있도록 하여 서버에 부담을 줄여줄 수 있다.   2. 토큰의 유형토큰은 사용 목적에 따라 2가지가 있다. Access Token 서버에 통신할 때 권한 인증을 위해 사용되는 토큰으로 짧은 유효시간을 갖는다. 유효시간이 짧다.. 2024. 8. 19.