본문 바로가기

Computer Science17

OSI 7계층, TCP/IP 4계층, TCP/IP updated 5계층 1. OSI 모형(Open Systems Interconnection Reference Model) 네트워크 통신에서 일어나는 과정을 단계 별로 파악하기 쉽게 7단계로 나눈 것 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7 계층이라고 한다. - wikipedia 이 모델은 프로토콜을 기능 별로 나눈 것이다. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다. '프로토콜 스택' 혹은 '스택'은 이러한 계층들로 구성되는 프로토콜 시스템이 구현된 시스템을 가리키는데, 프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현될 수 있다. 일반적으로 하위 계층들(물리, 데이터링크)은 하드웨어로,.. 2021. 11. 9.
TCP와 UDP Must-Know-About-FrontendOSI 7계층에서 전송계층(Transport layer)에 속하는 데이터 전송 프로토콜이다. TCP (Transmission Control Protocol) 데이터가 반드시 전달되는 것을 보장하는 프로토콜로 다음 특징들을 갖는다. 연결지향(Connection-oriented) 으로 2개의 호스트가 통신을 하기 전 연결이 이루어져야 한다. 높은 신뢰성(Reliability) 과 순서대로 전송하는 것(In-order delivery) 을 보장한다. 흐름 제어(Flow control) 를 통해 송신자의 데이터 양을 조절한다. 혼잡 제어(Congestion control) 를 통해 네트워크 상황을 감지하고 송신자의 데이터 양을 조절한다. 에러 감지(Error detec.. 2021. 6. 1.
HTTP와 HTTPS의 차이 개요 HTTP와 HTTPS의 차이에 대한 질문을 받았는데 보안의 이점이 있다는 점 밖에 기억해내지 못했다… 분명 SSL에 대해 알고있었고 Gunicorn으로 HTTPS를 사용해보기도 했는데, 대답하지 못했다는 것은 아직 확실히 체득하지 못했기 때문이라고 판단했다. 좀 더 정확하게 서술된 언어로 공부하고자 정리하여 글로 작성했다. HTTP란? HTTP(HyperText Transfer Protocol), 초본문전송규약, 하이퍼본문전송규약 웹상에서 클라이언트와 웹서버간 통신을 위한 프로토콜 W3 상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. 주로 TCP를 사용하고 HTTP/3 부터는 UDP를 사용하며, 80번 포트를 사용한다. HTTP는 클라이언트와 서버 사이에 .. 2021. 5. 31.
정규화를 하는 이유와 방법 1. 정규화란? 관계형 데이터베이스 설계 시 중복을 최소화하도록 데이터를 구조화 하는 작업 2. 정규화를 하는 이유? 중복된 데이터를 제거해 이상(anormaly)을 제거 하는 것 Anomaly 이상이란? 어노멀리는 데이터 이상현상으로, 중복된 데이터 때문에 발생함. 어떤 처리를 할 때, 중복된 데이터를 동시에 전부 처리하지 못하고 일부만 처리할 경우 어떤 데이터가 맞는지 모르고 결국 데이터는 이상해짐. 정규형 모델에서는 어노멀리가 최소화되며, 중복 데이터를 채택한 모델에는 다음과 같은 아노말리가 발생함. 갱신 이상 : 릴레이션에서 속성의 값을 업데이트할 때 일부만 갱신되고 정보에 모순이 발생하는 현상 삭제 이상 : 릴레이션에서 인스턴스를 삭제할 때 의도와 상관없는 값이 삭제되는 현상 삽입 이상 : 릴레.. 2021. 5. 31.
ACID 속성이란? ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다. 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계를 트랜잭션이라고 한다. 예를 들어, 은행에서의 계좌이체를 트랜잭션이라고 할 수 있는데, 계좌이체 자체의 구현은 내부적으로 여러 단계로 이루어질 수 있지만 전체적으로는 '송신자 계좌의 금액 감소', '수신자 계좌의 금액 증가'가 한 동작으로 이루어져야 하는 것을 의미한다. 원자성(Atomicity) 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. 예를 들어, 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해.. 2021. 5. 31.
인덱스란? 1. 인덱스란? 추가적인 쓰기 작업과 저장 공간을 활용하여 테이블에 대한 동작 속도를 향상시키기 위한 자료구조다. 책의 색인과 같은 역할을 수행(자료의 위치 기억) INDEX를 활용하면 SELECT, UPDATE, DELETE의 성능이 향상된다. 만약 INDEX를 사용하지 않는다면 특정 컬럼을 조회할 때 전체를 탐색하는 FULL SCAN을 수행하게 되어 처리 속도가 떨어진다. 2. 인덱스의 관리 DBMS는 index를 항상 최신의 정렬된 상태로 유지해야 원하는 값을 빠르게 탐색할 수 있다. 그렇기 때문에 인덱스가 적용된 컬럼에 INSERT, UPDATE, DELETE가 수행된다면 각각 다음과 같은 연산을 추가적으로 해주어야 하며 그에 따른 오버헤드가 발생한다. INSERT: 새로운 데이터에 대한 인덱스를.. 2021. 5. 31.