본문 바로가기

전체보기101

CS 네트워크 TCP 3-Way Handshake & 4-Way Handshake TCP의 3-way Handshake와 4-way Handshake는 각각 연결 설정과 연결 종료 과정에서 사용하는 절차이다. 이 과정은 신뢰성 있는 데이터 전송을 보장하기 위해 필수적이다.   ㅇ 플래그 정보SYN연결을 초기화할 때 사용시퀀스 번호의 초기화를 의미ACK이전에 수신한 데이터나 연결 요청을 확인하기 위해 사용응답이 도착했음을 확인하는 역할 ACK 번호는 수신한 데이터의 다음 시퀀스 번호를 가리킨다.FIN연결 종료를 요청할 때 사용4-Way Handshake에서 각 측의 데이터 전송이 끝났음을 알리기 위해 사용 ㅇ 3-Way Handshake포트 상태 정보CLOSED : 포트가 닫힌 상태LISTEN : 포트가 열린 상태로 연결 요청 대기중SYN_SENT : SYN 요청을 한 상태SYN_REC.. 2024. 10. 14.
CS 네트워크 OSI 7 계층 & TCP/IP 4 계층 OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 통신이 일어나는 과정을 단계별로 나누어 문제가 발생했을 때 이상이 발생한 단계를 구별하여 독립적으로 그 단계만 수정할 수 있다.   ㅇ OSI 7 계층의 구조 1. 물리 계층주로 전기적, 기계적 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송한다.단지 데이터를 전기적인 신호로 변환해서 주고 받는 기능만 한다. 데이터의 내용 어떤 에러가 있는지 등은 전혀 신경쓰지 않는다.프로토콜 : DSL, ISDN 등데이터 단위 : bit대표 장비 : 통신 케이블, 허브, 리피터2. 데이터 링크 계층물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달 수행을 돕는 역할을 한다.프레임에 물리적인 주소(MAC a.. 2024. 10. 14.
CS Cache(캐시) 캐시는 데이터나 연산 결과를 임시로 저장해 두고, 동일한 데이터를 요청할 대 더 빠르게 제공하는 기술이다. 주로 메모리와 같은 빠른 저장소를 사용하여 데이터를 임시로 저장하므로 비교적 느린 작업을 반복적으로 수행하는 대신 캐시된 데이터를 재사용할 수 있다. ㅇ 캐시의 방식메모리 캐시(In-Memory Cache)메모리에 자주 사용하는 데이터를 저장하여 빠르게 접근할 수 있다. Redis나 Memcached 같은 인메모리 데이터베이스가 사용된다.웹 브라우저 캐시(Browser Cache)웹 브라우저는 방문한 페이지나 자원을 캐시에 저장해두고 같은 페이지를 다시 방문할 때 서버에서 다시 다운로드하지 않고 캐시된 자원을 사용한다.데이터베이스 캐시(Database Cache)쿼리 결과를 캐싱하여 동일한 쿼리가 .. 2024. 10. 10.
[Web] 쿠키와 세션의 차이 쿠키와 세션은 웹 애플리케이션에서 사용자 데이터를 관리하기 위한 두 가지 방법이다. HTTP 프로토콜의 특성이자 약점을 보완하기 위해 사용된다. 클라이언트와 서버 간의 상태 정보를 저장하고 추적하는데 사용하지만 차이점이 존재하기에 차이점을 살펴본다. ㅇ HTTP 프로토콜의 특성connectionless클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버린다.stateless통신이 끝나면 상태를 유지하지 않는다. ㅇ 쿠키쿠키는 웹 브라우저에서 클라이언트 측에 저장되는 작은 데이터 파일이다. 서버가 클라이언트에 정보를 저장하고, 요청이 있을 때마다 이 정보를 다시 전달받아 상태를 유지하거나 추적하는데 사용한다. 주요 특징저장 위치클라이언트의 브라우저에 저장된다. 저장 기간쿠키는 유효 기간을 설정할 수.. 2024. 10. 10.
DB Stored Procedure 저장 프로시저 저장 프로시저는 데이터베이스에 저장되어 있는 미리 컴파일된 SQL 코드의 집합으로 필요할 때 호출하여 반복적으로 사용할 수 있는 프로그램 단위다. 복잡한 SQL 작업을 수행할 때 유용하며, DB 서버에서 직접 실행되기 때문에 성능 상의 이점도 가지고 있다. 쉽게 비유하자면 매크로를 정의해두고 매크로를 실행시키는 것이라고 할 수 있다. ㅇ 저장 프로시저의 특징재사용 가능한번 작성한 SQL 코드 블록을 여러 곳에서 재사용할 수 있어 코드의 중복을 줄일 수 있다.성능 향상미리 컴파일되기 때문에, 복잡한 쿼리나 연산을 효율적으로 수행할 수 있다.보안성저장 프로시저는 DB 객체에 직접 접근할 수 있는 권한을 제어할 수 있어, 사용자가 직접 쿼리를 작성하지 않고 필요한 작업을 수행할 수 있다.비즈니스 로직 캡슐화D.. 2024. 10. 10.
DB Normalization(정규화) DB 정규화는 데이터베이스 설계에서 중복을 최소화하고 데이터의 무결성을 보장하기 위해 데이터베이스 테이블을 체계적으로 구조화하는 과정이다. 데이터를 논리적으로 분할하고, 데이터가 중복되거나 불필요하게 저장되지 않도록 테이블을 구성하는 것을 목표로한다. ㅇ 정규화 단계제 1 정규화모든 컬럼의 값이 원자값(더 이상 나눌 수 없는 값)을 가지도록 테이블을 구성한다. 하나의 칸에 여러 값이 들어가 있는 경우가 없어야한다.   제 2 정규화1 정규화를 만족하면서 기본키의 부분집합에 종속된 컬럼들을 제거한다. 기본키의 일부에만 의존하는 컬럼을 별도의 테이블로 분리한다. 학번강좌명강의실성적101데이터베이스101호A102데이터베이스101호B103자료구조103호A 예를 들어 위와 같은 테이블이 존재한다. 이 테이블의 기.. 2024. 10. 10.
DB 이상현상(Anomaly) 이상 현상은 잘못된 데이터 구조로 인해 발생하는 데이터 불일치 문제를 말한다. 테이블에서 데이터 중복이 존재하거나 비정규화된 구조를 사용할 때 발생하며 이를 방지하기 위해 정규화가 사용된다. ㅇ 이상 현상의 종류삽입 이상(Insertion Anomaly)삭제 이상(Deletion Anomaly)갱신 이상(Update Anomaly)학번이름나이성별강의코드강의명전화번호1001김유신20남AB1데이터베이스010-1234-12341002김태희21여ABC1프로그래밍010-2222-22221003박혁거세20남AC1웹프로그래밍010-3333-33331003박혁거세20남AC2네트워크010-3333-3333 위의 테이블을 예로 들어 설명한다. 삽입 이상삽입할 테이터를 테이블에 추가할 때 불필요한 데이터도 함께 입력해야 하.. 2024. 10. 10.
DB Join(조인) 조인은 관계형 데이터베이스에서 여러 테이블을 연결하여 관련된 데이터를 하나의 결과 집합으로 결합하는 SQL 연산이다. 두 개 이상의 테이블에서 공통된 열(column)을 기준으로 데이터를 결합하여 하나의 결과로 조회할 수 있게한다. ㅇ 조인의 목적여러 테이블에 나뉘어 저장된 데이터를 효율적으로 조회RDBMS의 정규화된 테이블 간의 관계를 활용하여 데이터를 조합 ㅇ 조인의 유형INNER JOINLEFT JOINRIGHT JOINFULL OUTER JOINCROSS JOINSELF JOIN INNER JOIN교집합 개념에 해당하는 조인이다.두 테이블에서 공통된 열의 값이 일치하는 행만 결합하여 결과로 반환한다.일치하지 않는 데이터는 결과에서 제외된다.SELECT A.column1, B.column2FROM .. 2024. 10. 10.
CS 자료구조 B-Tree와 B+Tree B-트리는 균형이진탐색트리에서 파생된 자료구조다. 데이터베이스와 파일 시스템에서 대용량 데이터를 효율적으로 관리하는데 사용된다. B-트리는 2개 이상의 더 많은 자식 노드를 가질 수 있으며, 디스크 I/O를 최소화하도록 설계되었다. ㅇ B-Tree의 특징B-트리는 이진트리와 다르게 하나의 노드에 많은 수의 정보를 가지고 있을 수 있다. 최대 M개의 자식을 가질 수 있는 B트리를 M차 B트리라고 하며 다음과 같은 특징을 갖는다. 규칙노드는 최대 M개부터 M/2개의 자식을 가질 수 있다.노드에는 최대 M - 1부터 M/2 -1개의 키가 포함될 수 있다.노드의 키가 n개라면 자식의 수는 n + 1이다.최소차수는 자식의 하한값을 의미하며 최소차수가 t라면 M = 2t - 1을 만족한다.(최소차수 t가 2라면 3.. 2024. 10. 10.