목록분류 전체보기 (51)
GiYeong

TCP/IP (Transmission Control Protocol / Internet Protocol) 수많은 프로그램들이 인터넷으로 통신하는데 있어 가장 기반이 되는 프로토콜이다. 대부분의 데이터 통신이 TCP와 IP 기반으로 이루어져있기에 인터넷 프로토콜을 대표하는 용어로 사용된다. 이를 이용해서 컴퓨터를 연결하는 체계를 Ethernet(이더넷)이라고 부른다. 계층 역할 데이터 단위 전송 주소 예시 장비 응용 계층 어플리케이션 간의 데이터 송수신 Data/Message - 파일 전송, 이메일, FTP, HTTP, SSH 등 - 전송 계층 호스트 간의 자료 송수신 Segment Port TCP, UDP, RTP, RTCP 등 게이트웨이 인터넷 계층 데이터 전송을 위한 논리적 주소 지정 및 경로 지정 ..

OSI 7 계층이란, 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것이다. 개방형 시스템 상호 연결 모델의 표준으로서, 흐름을 알아보기 쉽고, 사람들이 이해하기 쉬우며, 7 단계 중 특정한 곳에 이상이 생이면 다른 단계의 장비 및 SW를 건들이지 않고 이상이 생긴 단계만 고칠 수 있다는 장점이 있다. 작동 원리 OSI 7 계층은 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리 계층으로 나뉜다. 전송 시, 7 계층에서 1 계층으로 각각의 층마다 인식할 수 있어야 하는 헤더를 붙인다. (캡슐화) 수신 시, 1 계층에서 7 계층으로 헤더를 떼어낸다. (디캡슐화) 출발지에서 데이터가 전송될 때 헤더가 추가되는데, 2 계층에서만 오류 제어를 위해 꼬리 부분에 추가된다. 물리 계층에서 1, 0의 신호..

REST(Representational State Transfer) 소프트웨어 프로그램 아키텍처의 한 형식으로, 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. 여기서 자원이란 해당 소프트웨어가 관리하는 모든 것(문서, 그림, 데이터, 해당 소프트웨어 자체 등), 자원의 표현이란 해당 자원을 표현하기 위한 이름을 의미한다. 월드 와이트 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍서의 한 형식으로, 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한으로 활용할 수 있는 아키텍처 스타일이다. REST의 구체적인 개념 HTTP URL을 통해 자원(Resource)를 명시하고, HTTP 메서드(POST,..

HTTP 메서드 HTTP 요청에 포함되어 서버가 요청을 수행하기 위해 해야할 행동을 표시하는 용도로 사용한다. (ex. GET, POST, PUT, DELETE ...) GET 서버로부터 정보를 조회하기 위해 설계된 HTTP 메서드이다. 요청을 전송할 때, 필요한 데이터를 쿼리스트링을 통해 전송한다. 쿼리스트링(Query String) URL의 뒤에 입력 데이터를 함께 제공하는 가장 단순한 데이터 전달 방법. URL주소 뒤에 물음표(?)를 붙이고 'key1=value1&key2=value2...' 와 같은 방식으로 데이터를 요청한다. 특징 GET 요청은 캐시가 가능하다. -> js, css, image같은 정적 컨텐츠는 데이터 양이 크고, 변경되는 일이 적기때문에 반복해서 동일한 요청을 보낼 필요가 없다..

HTTP(Hyper Text Transfer Protocol) HTTP란 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜이다. HTTP는 어플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜로서 Method, Path, Version, Headers, Body 등으로 구성된다. HTTP는 암호화가 되지 않은 데이터를 전송하는 프로토콜이라 네트워크 상에서 중간에 타인이 데이터를 훔칠 수 있다. 해당 문제를 해결하기 위해 HTTPS가 등장했다. HTTPS(Hyper Text Transfer Protocol Secure) HTTP 프로토콜에 SSL(Secure Sockets Layer, 보안 소켓 계층)을 사용함으..

TCP(Transmission Control Protocol) TCP는 전송을 제어하는 프로토콜이라는 뜻으로, 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. IP가 데이터의 전달을 처리한다면, TCP는 패킷을 추적 및 관리한다. 패킷(Packet) 인터넷 내에서 데이터를 보내기 위한 라우팅(경로 배정)을 효율적으로 하기 위해 데이터를 여러 조각으로 나누어 전송을 하는데, 이 조각을 패킷이라고 한다. TCP는 연결형 서비스를 지원하는 프로토콜로서 인터넷 환경에서 기본으로 사용한다. TCP의 특징 연결형 서비스로서 가상 회선 방식을 제공한다. 3-way handshaking 과정을 통해 연결을 설정하고 4-way handshaking을 통해 연결을 해제한다. 흐름 제..

RDBMS RDBMS는 DBMS 앞에 Relational(관계적)이라는 단어가 붙은 것으로 관계형 데이터베이스 관리 시스템이라는 뜻이다. DBMS(DataBase Management System) 사용자와 DB 사이에서 사용자의 요청을 해석하여 DB에 저장된 데이터를 관리해주는 SW 즉, 테이블이 다른 테이블들과 관계를 가지며 모여있는 집합체로 이해할 수 있으며, 이러한 관계를 나타내기 위해 FK(Foreign Key, 외래키)를 사용한다. 테이블 간의 관계에서 FK 또는 PK를 이용해 JOIN이 가능한 것이 RDBMS의 가장 큰 특징이다. 장점 데이터의 분류, 정렬, 탐색 속도가 비교적 빠르다. SQL을 통해 데이터를 다룰 수 있다. 작업의 완전성을 보장한다. 데이터의 UPDATE가 빠르다. 단점 반드..

JOIN이란 2개 이상의 테이블을 결합하여 데이터를 검색(SELECT)하는 방법이다. 검색하고 싶은 데이터가 1개의 테이블이 아니라 여러 테이블에 나누어져 있으면, 각 테이블의 컬럼을 1개씩 가져와서 해당 컬럼을 접점으로 이용하여 여러 테이블에 나누어져 있는 데이터를 검색한다. 접점으로 이용하는 컬럼은 PK(Primary Key) 또는 FK(Foreign Key)를 주로 사용한다. 기본적으로 어떤 JOIN인지 명시하지 않으면 INNER JOIN이 사용된다. JOIN 문법 SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_name = table2.column_name; 1. FROM, JOIN JOIN은 2개의 테이블을 대상으로 합치는 기능이기..

정규화(Normalization)의 목표는 테이블 간의 중복된 데이터를 허용하지 않는 것이다. 이를 통해 데이터의 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량을 줄일 수 있다. 테이블을 어떻게 분해하는지에 따라 정규화의 단계가 달라진다. 데이터의 무결성 데이터의 정확성, 일관성, 유효성이 유지되는 것 정확성이란 중복이나 누락이 없는 상태를 뜻하고, 일관성은 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태 제1 정규화 테이블의 컬럼이 원자값(Atomic Value, 하나의 값)을 가지도록 테이블을 분해하는 것이다. 학생 이름 나이 수강 과목 A 13 수학, 국어 B 14 수학 C 12 과학 위 테이블에서 경기도는 여러 개의 시를 가지고 있기 때문에 제1 정규형을 만족하지 못..

트랜잭션(Transaction)은 DB의 상태를 변환시키기 위해 수행하는 작업 단위이다. 상태를 변환시킨다는 것은 SQL 질의어를 통해 DB에 접근하는 것이다. 특징(ACID) 1. 원자성(Atomicity) 트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 한다. 즉, 트랜잭션 내의 모든 명령을 반드시 완벽하게 수행되어야 하며, 어느 하나라도 오류가 발생되면 트랜잭션 전부가 취소되어야 한다. 2. 일관성(Consistency) 트랜잭션의 작업 처리 결과는 항상 일관성이 있어야 한다. 즉, 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 후의 상태가 같아야 한다. 3. 독립성(Isolation) 둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션의 연산에 ..