분류 전체보기 30

[네트워크] 쿠키, 세션, 토큰 외

쿠키와 세션? 쿠키와 세션은 사용자의 상태를 유지하고 정보를 저장하는 데 활용된다. 쿠키 클라이언트의 로컬 브라우저에 저장되는 데이터. 주로 사용자가 웹사이트를 방문할 때 서버에서 클라이언트로 전송되어 클라이언트의 로컬에 저장된다. 쿠키는 이름-값 쌍으로 이루어져 있고, 유효 기간을 설정할 수 있다. 목적 세션 관리: 로그인 정보 등을 저장하여 사용자의 세션을 유지한다. 개인화: 사용자의 선호도나 설정 등을 저장하여 개인화된 경험을 제공한다. 트래킹: 사용자의 행동을 기록하고 분석하기 위해 사용될 수 있다. 쿠키는 클라이언트 측에 저장되기 때문에 보안에 취약하다. 따라서 민감한 정보는 서버 측에 저장하거나 보안 조치를 취해야 한다. 세션 세션은 서버 측에서 사용자의 상태를 관리하는 메커니즘이다. 각 세션..

CS 2023.12.06

[네트워크] IP 프로토콜

IP주소? IP주소(Internet Protocol Address)란 컴퓨터 네트워크에서 각 장치를 식별하는 데 사용되는 고유한 숫자. IP주소는 인터넷이나 로컬 네트워크에서 데이터를 주고 받는 데 필요한 기본 주소 체계이며, IPv4와 IPv6이 현재 가장 널리 사용됨 IP주소의 역할 고유 식별자 각 장치는 고유한 IP주소를 가지며, 이를 통해 네트워크 상에서 서로를 식별할 수 있다. 라우팅 IP 주소는 데이터가 네트워크를 통해 목적지로 전송되는 경로를 결정하는 데 사용된다. 인터넷 통신 IP주소는 인터넷에서 데이터를 주고받는 데 사용되며, 통신 프로토콜은 IP주소를 통해 패킷을 라우팅하고 전송한다. IPV4와 IPV6? IPv4 주소 형식: 32비트 숫자로 구성. 네트워크와 호스트 부분으로 나눠짐 예..

CS 2023.11.29

[네트워크] TCP

TCP? TCP(Transmission Control Protocol)는 네트워크에서 데이터를 안정적으로 전송하기 위한 프로토콜 중 하나 TCP의 특징? 연결 지향적 (Connection-Oriented) TCP는 통신 시작 전에 먼저 연결을 설정하고(3-way handshake), 통신이 끝나면 명시적으로 연결을 해제한다(4-way handshake) 이를 통해 데이터를 안정적으로 전송할 수 있다. 신뢰성 있는 전송 데이터를 전송하는 동안 손실된 패킷이나 오류가 발생하면, 이를 감지하고 재전송을 수행하여 안정적인 통신을 제공한다. 흐름 제어(Flow Control) 수신자가 송신자로부터 받을 수 있는 속도보다 빠르게 데이터가 전송되지 않도록 조절하여 혼잡을 방지하고, 안정적인 통신을 유지한다. 흐름 제..

CS 2023.11.22

[네트워크] DNS, UDP

DNS? DNS(Domain Name System)은 인터넷에서 사용되는 주소 체계 DNS의 역할 인터넷 리소스에 대한 사람이 이해하기 위한 도메인 이름을 컴퓨터가 이해할 수 있는 IP주소로 변환하는 역할 DNS를 통해 사용자가 웹 브라우징 및 네트워크 통신을 더 간편하게 할 수 있도록 함 도메인 이름 해석 사용자가 입력한 도메인(ex: www.naver.com) 을 해당 도메인에 연결된 IP주소로 해석. IP주소는 컴퓨터 및 서버를 식별하는 데 사용 DNS 작동 방식? 사용자가 웹 브라우저에 도메인 이름을 입력 => DNS가 해당 도메인 이름을 IP 주소로 변환하여 해당 웹 서버를 찾아갈 수 있게 함 => 이를 통해 사용자는 복잡한 IP주소를 외우지 않고 웹 사이트 및 네트워크 서비스에 접근 가능 DN..

CS 2023.11.15

[네트워크] HTTPS

HTTPS? 기존 HTTP 프로토콜에 암호화 프로토콜(SSL, TLS)을 사용하여 통신을 암호화한다. HTTP는 데이터를 평문으로 전송하기 때문에 스누핑(몰래 보기), 스니핑(데이터 가로채기), 데이터 조작의 위험이 있다. HTTPS를 통해 데이터의 기밀성, 무결성, 신뢰성을 보장할 수 있다. HTTPS를 사용하면 웹 브라우징 시 민감한 정보를 안전하게 전송하고 웹사이트의 신뢰성을 확보할 수 있다. SSL/TLS? SSL과 TLS는 네트워크 통신의 보안을 위해 사용되는 암호화 프로토콜. 현재 사용되는 TLS의 이전 버전이 SSL. SSL(Secure Sockets Layer), TLS(Transport Layer Security) 데이터를 암호화하여 중간에서의 가로챔을 방지하고, 데이터가 중간에 변경되지..

CS 2023.11.13

[네트워크] HTTP 프로토콜

HTTP 통신? 인터넷에서 데이터를 주고받는 프로토콜이다. 웹 브라우저와 서버 간에 통신을 가능하게 해주는 규약을 의미한다. HTTP는 클라이언트-서버 모델을 사용하여 요청-응답 프로세스를 통해 정보를 전송한다. 클라이언트는 HTTP 메시지를 생성하여 서버에 요청을 보내고, 서버는 해당 요청에 대한 응답을 보낸다. 이는 HTML 문서 뿐만 아니라 그림, 비디오, 오디오 파일 등 다양한 미디어 자원에 대한 요청과 응답에 사용된다. 요청(Request): 클라이언트(보통 웹 브라우저)가 서버에 정보를 요청하는 단계. 요청은 HTTP 메서드(GET, POST, PUT, DELETE 등)와 함께 요청 URL, HTTP 버전, 헤더 정보, 그리고 필요한 경우 본문(Body)을 포함한다. 응답(Response): ..

CS 2023.11.08

[네트워크] 컴퓨터 네트워크와 네트워크 레이어

컴퓨터 네트워크? 여러 대의 컴퓨터와 기기가 연결되어 데이터와 리소스를 공유하고 통신하는 인프라 또는 시스템을 의미합니다. 즉, 분산된 컴퓨터를 통신망으로 연결한 것을 의미합니다. 네트워크에서 여러 장치들은 노드(네트워크에 속한 컴퓨터 또는 통신 장비) 간 연결을 사용하여 서로 데이터를 교환합니다. 스위치? 스위치는 로컬 네트워크에서 데이터 흐름을 관리하고 패킷을 전달하는 데 사용됩니다. 메시지의 목적지를 확인해서 전달하는 일을 수행합니다. 스위치의 역할 MAC 주소를 기반으로 데이터 패킷을 정확한 대상 기기로 전달한다. MAC 주소란? 네트워크 인터페이스 카드(NIC)에 할당된 고유 식별자로, 물리적인 주소. 라우터? 라우터는 다른 네트워크 사이에서 데이터를 라우팅하고 연결하는 역할을 합니다. 스위치와..

CS 2023.11.08

UIKit ;; Core Data (1) 정의와 Core Data Stack

Core Data란? 앱 내부에서 모델 계층을 관리하는 데 사용되는 프레임워크이다. 객체를 저장소에 매핑하는 세부 정보를 추상화하여, 데이터베이스를 직접 관리하지 않고도 데이터를 쉽게 저장할 수 있도록 한다. Persistence를 포함하는 객체 생명 주기와 객체 그래프 관리와 관련된 작업에 대한 일반화되고 자동화된 솔루션을 제공한다. Core Data는 일반적으로 모델 계층을 지원하기 위해 작성하는 코드의 양을 50-70% 줄인다. 즉, Core Data는 DB 관리를 위해 Apple이 제공하는 프레임워크이다. (Core Data != DB) 사용자는 Core Data를 이용하여 쉽게 앱 내부에 영구적인 데이터를 저장하고 관리할 수 있다! Core Data Stack : Swift Core Data를 ..

iOS/UIKit 2023.04.07