Tiny Finger Point Hand With Heart
본문 바로가기
728x90
반응형

1일1CS53

34. TCP 프로토콜 연결 / 종료 과정 TCP란 네트워크 계층 중 전송계층에서 사용하는 프로토콜로서, 장치들 사이에 논리적인 접속을 설입하기 위해 연결을 설정하여 신뢰성을 보장하는 연결형 서비스 TCP Handshake 란? OSI 7계층 중 Network layer에 해당하는 프로토콜인 TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 3-way handshake를 사용하고 세션을 종료를 성립하기 위해 4-way handshake를 사용한다. 즉, TCP Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. 3-way handshake 접속 과정 1. 클라이언트는 접속을 요청하는 .. 2023. 1. 10.
34. SOLID 란? 객체지향 설계과정 요구사항 (제공해야 할 기능) 을 찾고 세분화 한다. 그리고 그 기능을 알맞은 객체로 할당한다. 기능을 구현하는 데에 필요한 데이터를 객체에 추가한다. 해당 데이터를 이용하는 기능을 구현한다. (기능은 최대한 캡슐화) 객체 간에 어떻게 메소드 호출을 주고받을 지 결정한다. >SRP (Single Responsibility) 단일 책임 원칙 클래스는 단 한개의 책임을 가져야 함 클래스를 변경하는 이유는 단 하나여야 함 이를 지키지 않으면, 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향을 미칠 수 있음 → 이렇게 되면 유지보수가 매우 비효율적 SRP 에서 이야기하는 책임이란, '기능' 정도로 생각하면 된다. 만약 한 클래스가 수행할 수 있는 기능 (책임) 이 여러 개라면, 클래스 .. 2023. 1. 10.
33. 웹브라우저에 www.google.com을 치면 일어나는 일 1. 브라우저는 www.google.com의 해당 IP 주소를 찾기 위해 DNS 캐시를 탐색. DNS 기록을 찾기 위해 브라우저는 다음과 같은 과정을 거친다. 1) 브라우저 캐시를 확인합니다. 브라우저는 이전에 방문한 웹사이트에 대해 일정기간 동안의 DNS 정보들을 저장해놓는다. 2)브라우저 캐시에 없으면 브라우저는 OS에 systemcall을 통해 DNS 기록을 가져옵니다. OS도 DNS 기록들을 캐시에 기록하기 때문. 3) 라우터 캐시를 확인합니다. 컴퓨터에 없는 경우 브라우저는 자체 DNS 레코드 캐시를 유지 관리하는 라우터와 통신한다. 4) 모든 단계에 실패하면 브라우저는 ISP로 이동합니다. ISP는 DNS 캐시를 포함하는 자체 DNS 서버를 유지 관리한다. 2. 캐시에 없으면 ISP의 DNS .. 2023. 1. 9.
32. 디자인패턴이란? 디자인 패턴(Design Pattern)이란? 사람들은 같은 실수를 반복하지 않기 위해 자신들의 시행착오를 바탕으로 특정 상황에서 발생하는 문제 패턴을 발견하고 해결방안을 기록으로 남겼다. 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션 같은 것입니다. 이를 ‘디자인 패턴’이라고 부른다. 디자인 패턴 계의 교과서로 불리는 [GoF의 디자인패턴]에서는 객체지향적 디자인 패턴의 카테고리를 "생성 패턴(CreationalPattern)", "구조 패턴(Structural Pattern)", "행동 패턴(Behavioral Pattern)" 3가지로 구분하고 있다. 생성(Creational) 패턴 구조(Structural) 패턴 행동(Behavioral) 패턴 Sing.. 2023. 1. 9.
31. 컴파일러란? 컴파일러, compiler 명사컴퓨터 인간의 언어에 가까운 고급 언어로 작성된 원시 프로그램을 입력으로 받아 기계어(機械語)로 된 목적 프로그램을 출력하기 위해 사용되는 언어 번역 프로그램 출처-Oxford Languages > 컴파일러 실행 단계 구문분석 : 소스 코드 파일을 읽어 추상 구문 트리 생성, 문법에 맞지 않는 소스 코드는 사용자에게 알림 최적화 : 추상 구문 트리 분석 및 퇴적화. 코드 생성 : 목적 코드 생성(기계어 번역의 경우 레지스터 할당, 연산 순서 바꾸기 등) 링킹 : 기계어 번역의 경우, 여러 라이브러리의 목적 코드를 묶어 하나의 실행파일 생성. -일부는 이과정을 컴파일 과정에서 제외함. > 컴파일 과정 전처리기(Preprocessor) : #이 붙은 전처리기 구문을 처리. 컴파.. 2023. 1. 6.
30. 세션 기반 인증과 토큰(JWT) 기반 인증의 차이 둘의 차이를 알기 위해서는 인증과 인가가 무엇인지 알아야한다. >인증 , Authentication은 쉽게 말해서 로그인이라고 생각하면된다. 특정 서비스에 일정 권한이 주어진 사용자임을 아이디랑 패스워드 등을 통해서 말 그대로 인증을 받는것. (잠깐,어센티케이션!) >인가, Authorization은 로그인으로 인증을 하고 나서 본인계정으로 만 사용가능한 여러 서비스를 사용할때 내가 로그인 되어있음을 알아보고 허가해 주는 것. 즉, 로그인이 유지된 상태에서 일어나는 일. (응~어서와이제이션) 세션과 토큰이 도입된 HTTP의 큰 문제 HTTP는 stateless한 특성을 가지기 때문에 각 통신의 상태는 저장되지 않는다. 하지만 우리가 웹 서비스를 사용할 때를 생각해보면, 매번 새 페이지를 요청할때마다 로그.. 2023. 1. 6.
29. JWT(JSON Web Token) JWT(JSON Web Token)란 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미한다. 그리고 JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다. JWT는 JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것이며, 토큰 내부에는 위변조 방지를 위해 개인키를 통한 전자서명도 들어있다. 따라서 사용자가 JWT 를 서버로 전송하면 서버는 서명을 검증하는 과정을 거치게 되며 검증이 완료되면 요청한 응답을 돌려준다. JWT 구조 JWT는 dot(.)을 구분자로 3파트로 구분되어 있으며 각각의 파트를 Header, Payload, Signature를 의미한다. Header : 토큰의 타입과 해시 암호.. 2023. 1. 6.
28. GPU란 GPU(graphics processing unit)는 컴퓨터 시스템에서, 그래픽 연산을 빠르게 처리하여 결과값을 모니터에 출력하는 연산 장치이다. VPU( visual processing unit)라고도 한다. 그래픽 카드를 구성하는 가장 중요한 핵심 요소이다. 1990년대 중반까지만해도 3D 그래픽은 주로 CPU로 구현하였으나, 게임 등의 수요가 높아짐에 따라 더 빠르고 실시간 그래픽 처리가 필요해 탄생하였다. CPU와 GPU 비교 CPU와 GPU는 아키텍처가 다르며 만들어진 용도가 다르다. 둘의 차이는 쉽게말하면 CPU는 일을 시키는 사장님 GPU는 일받아서 하는 직원 CPU는 다양한 워크로드, 특히 대기 시간이나 코어당 성능이 중요한 워크로드에 적합하다. CPU는 강력한 실행 엔진으로서 코어 수가.. 2023. 1. 5.
27. IPv4 와 IPv6 IPv4 IPv4는 인터넷 프로토콜의 4번째 판이며, 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이다. 과거에 인터넷에서 사용되는 유일한 프로토콜이였으나 오늘날에는 IPv6이 대중화되었다. IETF RFC 791(1981년 9월)에 기술되어 있다. IPv4는 패킷 교환 네트워크 상에서 데이터를 교환하기 위한 프로토콜이다. 데이터가 정확하게 전달될 것을 보장하지 않고, 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다. 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서(그리고 UDP에서도 일부) 보장한다. IPv4의 주소체계는 총 12자리이며 네 부분으로 나뉜다. 각 부분은 0~255까지 3자리의 수로 표현된다. IPv4 주소는 32비트로 구성되어 있으며, 현재 인터넷 .. 2023. 1. 5.
728x90
반응형