CS 7

REST API

🔍 REST API?HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미함 REST(Representational State Transfer)는 웹 아키텍처 스타일 중 하나로, HTTP 프로토콜을 기반으로 한 시스템 간 데이터 전송 방식을 정의함REST는 상태 전이가 아닌, 리소스를 중심으로 데이터를 전송하는 방식을 강조하며, RESTful API는 이 REST 원칙을 따르는 API를 의미함 ⚙️ 주요 특징클라이언트-서버 (Client-Server Architecture)클라이언트와 서버의 역할을 분리하여 ..

CS/네트워크 2025.04.01

트랜잭션 (Transaction)

🔍 트랜잭션(Transaction)이란?트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위= 여러 개의 쿼리들을 하나로 묶는 단위 (데이터베이스에 접근하는 방법은 쿼리이므로) 🧬 트랜잭션의 4가지 특성: ACID1️⃣ Atomicity (원자성)트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징("all or nothing") 트랜잭션 내의 모든 작업은 하나의 단위로 실행되어야 함중간에 오류가 발생하면 전체 작업이 ROLLBACK됨 ex) 은행에서 A 계좌 -> B 계좌, 10만원 이체 시 A 계좌 잔액 조회A 계좌에서 10만원 출금 B 계좌에 10만원 입금이 세 작업 중 하나라도 실패하면, 전체 트랜잭션은 실패로 간주되어 ..

HTTP

🔍 HTTP란?HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트(웹 브라우저, 모바일 앱 등)와 서버 간 데이터를 주고받기 위한 통신 규약HTML 문서, 이미지, JSON, XML 등 다양한 리소스를 전송할 수 있음 ⚙️ HTTP의 특징무상태(Stateless)HTTP는 기본적으로 Stateless한 프로토콜서버는 이전 요청의 정보를 저장하지 않고, 각 요청은 독립적으로 처리됨 로그인 유지 등은 쿠키, 세션, 토큰 등을 활용함 비연결(Connectionless)HTTP/1.0에서는 요청-응답 이후 연결 종료 HTTP/1.1부터는 Keep-Alive를 통해 연결 유지 가능텍스트 기반 메시지사람이 읽을 수 있는 텍스트 기반 구조 구조: [시작줄] [헤더] (빈 ..

CS/네트워크 2025.03.25

트리 순회

➡️ 트리 순회 순회: 자료 구조에 저장된 모든 데이터를 도는 것 트리 순회에는 주로 재귀 함수를 사용함 순회 기본 동작 3가지 재귀적으로 왼쪽 부분 트리 순회 재귀적으로 오른쪽 부분 트리 순회 현재 노드 데이터를 출력 ☁ Preorder 순회 (전위 순회) pre: ~ 전에 => 부분 트리 순회 "전"에 현재 노드 출력 현재 노드 데이터 출력 -> 재귀적으로 왼쪽 부분 트리 순회 -> 재귀적으로 오른쪽 부분 트리 순회 출력: F, B, A, D, C, E, G, I, H ☁ Postorder 순회 (후위 순회) post: ~ 후에 => 부분 트리 순회 "후"에 현재 노드 출력 재귀적으로 왼쪽 부분 트리 순회 -> 재귀적으로 오른쪽 부분 트리 순회 -> 현재 노드 데이터 출력 출력: A, C, E, D,..

트리

🌲 트리 데이터의 상-하 관계를 저장하는 자료 구조 => 계층적 관계 root 노드(뿌리 노드): 트리의 시작 노드 부모 노드: 특정 노드의 직속 상위 노드 자식 노드: 특정 노드의 직속 하위 노드, 부모 노드와 반대 개념 형제 노드: 같은 부모를 같는 노드 leaf 노드(잎/말단 노드): 자식 노드를 갖고 있지 않은, 가장 말단에 있는 노드 깊이: 특정 노드가 root 노드에서 떨어져 있는 거리 레벨: 깊이 + 1 높이: 트리에서 가장 깊이 있는 노드의 깊이 부분트리(sub-tree): 현 트리의 일부분을 이루고 있는 더 작은 트리 ✌ 이진 트리 각 노드가 최대 2개의 자식 노드를 갖을 수 있는 트리 💻 이진 트리 구현 class Node: """이진 트리 노드 클래스""" def __init__(se..

그리디

🔎 그리디 탐욕법, 욕심쟁이 알고리즘 => 단순 무식하게, 탐욕적으로 문제를 푸는 알고리즘 탐욕적: '현재 상황에서 지금 당장 좋은 것만 고르는 방법' 매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려 X ✅ 그리디 알고리즘의 정당성 대부분의 문제는 그리디 알고리즘을 이용했을 때 '최적의 해' 찾을 수 없을 가능성 높음 But, 탐욕적으로 문제에 접근했을 때 정확한 답을 찾을 수 있다는 보장 있다면 매우 효과적이고 직관적! 그리디 알고리즘으로 문제의 해법을 찾았을 때는 그 해법이 정당한지 검토해야 함 그리디 알고리즘 문제에서는 이처럼 문제 풀이를 위한 최소한의 아이디어를 떠올리고 이것이 정당한지 검토할 수 있어야 답을 도출할 수 있음 ..

DFS, BFS

🔖 자료구조 기초 탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 자료구조란 '데이터를 표현하고 관리하고 처리하기 위한 구조' 특히 스택과 큐는 자료구조의 기초 개념이며 다음의 두 핵심적인 함수로 구성됨 - 삽입(Push): 데이터를 삽입함 - 삭제(Pop): 데이터를 삭제함 이 외에 오버플로와 언더플로도 고민해야 함 ☁ 스택 스택은 박스 쌓기에 비유할 수 있음 아래에서부터 위로 차곡차곡 쌓고, 아래의 박스를 치우기 위해선 위의 박스를 먼저 내려야 함 선입후출 구조, 후입선출 구조라고 함 파이썬에서 스택을 이용할 때에는 별도의 라이브러리를 사용할 필요 없음 기본 리스트에서 append()와 pop() 메서드를 이용하면 됨 append() 메서드는 리스트의 가장 뒤쪽에 데이터 삽..