프로그래밍 6

쿠키(Cookie)와 세션(Session)의 차이점

1. 쿠키와 세션 개요 웹 애플리케이션에서 사용자의 로그인 상태 유지, 개인화된 정보 제공 등을 위해 **쿠키(Cookie)와 세션(Session)**이 사용된다. 두 개념은 비슷해 보이지만, 저장 위치, 보안성, 유지 방식에서 차이가 있다. ✅ 쿠키(Cookie)클라이언트(사용자 브라우저)에 저장되는 데이터사용자가 다시 방문할 때 해당 정보를 활용로그인 유지, 장바구니 기능 등에 사용✅ 세션(Session)서버에 저장되는 데이터사용자가 웹사이트를 떠나면 일정 시간이 지나 자동 삭제보안이 중요한 정보 저장에 사용2. 쿠키(Cookie)란?2-1. 쿠키의 개념 쿠키는 웹 브라우저가 저장하는 작은 데이터 파일로, 사용자의 정보를 저장하여 재방문 시 동일한 환경을 제공할 수 있도록 한다.예제: 로그인 유지, ..

컴퓨터공학 2025.03.18

JWT(JSON Web Token) 인증 방식 개념

1. JWT란? JWT(JSON Web Token)는 웹 애플리케이션에서 사용자 인증 및 권한 부여를 위해 사용되는 토큰 기반 인증 방식이다. JWT는 서버에서 발급한 토큰을 클라이언트가 저장하고, 이후 요청 시 해당 토큰을 이용해 인증을 수행하는 방식으로 동작한다. 📌 JWT의 특징토큰 기반 인증 방식 → 서버가 세션을 저장할 필요 없음 (무상태성)JSON 형식 사용 → 가볍고, 웹에서 쉽게 활용 가능디지털 서명 포함 → 토큰이 변조되지 않도록 보안 강화다양한 환경에서 사용 가능 → 웹, 모바일, 마이크로서비스 등📌 JWT 인증 방식이 필요한 이유세션 기반 인증의 문제점 해결확장성 높은 인증 시스템 구축 가능REST API와 잘 어울리는 인증 방식2. JWT의 구조JWT는 **세 부분(헤더, 페이로..

컴퓨터공학 2025.03.18

REST API란? RESTful한 설계 원칙

1. REST API란? REST API(Representational State Transfer API)는 HTTP 프로토콜을 기반으로 클라이언트와 서버가 데이터를 주고받는 방식을 의미한다. REST는 웹의 아키텍처 스타일 중 하나로, 리소스(Resource) 중심으로 설계되어 있으며 간결하고 직관적인 URL과 HTTP 메서드를 활용하는 것이 특징이다. 📌 REST API의 주요 개념리소스(Resource) → URI(Uniform Resource Identifier)로 표현됨 (/users, /posts/1 등)행동(Method) → HTTP 메서드(GET, POST, PUT, DELETE 등) 사용표현(Representation) → JSON, XML 등의 형식으로 데이터를 주고받음📌 REST ..

컴퓨터공학 2025.03.17

동적 프로그래밍(Dynamic Programming)의 개념과 예제

1. 동적 프로그래밍(Dynamic Programming)이란? 동적 프로그래밍(DP, Dynamic Programming)은 복잡한 문제를 작은 하위 문제로 나누어 해결한 결과를 저장하여 동일한 계산을 반복하지 않도록 최적화하는 알고리즘 기법이다. 특히, 부분 문제의 결과를 재사용할 수 있는 경우(Overlapping Subproblems)와 최적 부분 구조(Optimal Substructure)를 만족하는 경우에 효과적이다. 📌 핵심 개념:동일한 연산을 반복하지 않도록 결과를 저장(Memoization)작은 문제를 해결한 후 이를 조합하여 큰 문제를 해결하는 방식재귀(Top-Down) 방식과 반복(Bottom-Up) 방식이 존재2. 동적 프로그래밍이 필요한 이유 일반적인 완전 탐색(Brute For..

컴퓨터공학 2025.03.17

TCP vs UDP: 차이점과 사용 사례

1. TCP와 UDP란?TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 네트워크에서 데이터를 전송하는 대표적인 전송 계층(Transport Layer) 프로토콜이다. 각 프로토콜은 데이터 전송 방식과 신뢰성, 속도 등에서 차이가 있으며, 인터넷과 네트워크 통신에서 핵심적인 역할을 수행한다. ✅ TCP: 신뢰성이 중요한 데이터 전송을 위한 연결 지향(Connected) 프로토콜✅ UDP: 빠른 속도가 중요한 데이터 전송을 위한 비연결(Connectionless) 프로토콜 📌 TCP vs UDP의 차이점 한눈에 비교 특징TCP (연결 지향)UDP (비연결 지향)연결 방식3-Way Handshake 방식으로 연결 설정 후 데이터 전송연결 없..

컴퓨터공학 2025.03.12

컴퓨터 공학이란? 개념과 주요 연구 분야

1. 컴퓨터 공학의 정의와 역할컴퓨터 공학(Computer Engineering)은 컴퓨터 시스템의 설계, 개발, 최적화를 연구하는 학문이다. 단순히 프로그래밍만 배우는 것이 아니라, 하드웨어와 소프트웨어를 융합하여 효율적인 시스템을 구축하는 것이 핵심이다.이 학문은 IT 산업의 근간이 되며, 인공지능(AI), 빅데이터(Big Data), 클라우드 컴퓨팅(Cloud Computing), 사물인터넷(IoT) 등 다양한 기술과 밀접한 연관이 있다. 컴퓨터 공학 전공자는 하드웨어부터 소프트웨어까지 다양한 분야에서 활동할 수 있으며, 소프트웨어 개발자, 시스템 엔지니어, 데이터 과학자, 보안 전문가 등 다양한 직업으로 진출할 수 있다.2. 컴퓨터 공학의 주요 연구 분야컴퓨터 공학은 여러 세부 분야로 나뉘며, 각..

컴퓨터공학 2025.03.05