전체 글 35

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

[Java] Deque

🔍 Deque - 스택과 큐를 모두 활용하기코딩 테스트에서 스택(Stack) 과 큐(Queue) 자료구조는 필수적으로 사용됨자바에서는 Stack과 Queue가 각각 존재하지만, Deque(Double-Ended Queue)를 사용하면 스택처럼 사용할 수도, 큐처럼 사용할 수도 있으며 성능까지 우수함 📃 DequeDeque(Double-Ended Queue, 데크)는 양쪽(앞/뒤)에서 요소를 추가하고 제거할 수 있는 자료구조 Queue의 확장 형태 스택과 큐의 기능을 모두 제공 ArrayDeque, LinkedList 클래스로 구현 가능 🛠️ Deque 사용법1️⃣ 요소 추가메서드설명실패 시addFirst(E e)앞에 추가IllegalStateExceptionofferFirst(E e)앞에 ..

[Java] 딕셔너리, Map

🔍 Java의 딕셔너리, Map📃 Map의 정의Map은 키-값 쌍(Key-Value Pair)으로 데이터를 저장하는 컬렉션키는 고유해야 하고, 값은 중복 허용HashMap, TreeMap, LinkedHashMap 등이 대표적인 Map 구현체 import java.util.HashMap;HashMap map = new HashMap();🔧 Map의 주요 기능 및 사용법키와 값 할당map.put("apple", 5); // Key: "apple", Value: 5map.put("banana", 10); // Key: "banana", Value: 10map.put("cherry", 7); // Key: "cherry", Value: 7값 가져오기 (키로 검색)System.out.pr..

[Java] StringTokenizer, String.split()

🔍 StringTokenizer✨ 결론StringTokenizer는 단순하고 빠른 문자열 분리가 필요한 경우에 효과적인 도구구분자가 명확하고 복잡하지 않을 때 BufferedReader와 함께 사용하면 코드가 간결해지고 속도도 빠름 ⚠️ 복잡한 구분자 처리나 정규식 활용이 필요하다면 String.split()이 더 적합할 수 있음!📃 StringTokenizerStringTokenizer는 Java에서 문자열을 구분자를 기준으로 분리할 때 사용하는 클래스기존의 문자열을 구분자(예: 공백, 콤마 등)를 기준으로 나누고, 나뉜 각 토큰을 반복적으로 가져올 수 있음 import java.io.*;import java.util.StringTokenizer;public class Main { publ..

[Java] 데이터 타입 변환 (형 변환)

🔍 데이터 타입 변환 (형 변환, Type Casting)형 변환은 데이터를 다른 타입으로 변경하는 작업자바에서는 기본 타입(Primitive Type)과 참조 타입(Reference Type)을 변환하는 다양한 방법이 제공됨✨ 결론자동 형 변환과 명시적 형 변환 자동 형 변환은 JVM이 안전하다고 판단되면 스스로 수행함 명시적 형 변환는 직접 형 변환을 지정해주는 것이며, 데이터 손실 가능성을 주의해야 함 기본 타입 ↔ String 변환 시, String.valueOf와 parseInt/parseDouble 등의 메서드를 활용할 것 형 변환은 유연성을 제공하지만, 적절히 사용하지 않으면 오류와 데이터 손실이 발생할 수 있으니 주의하여 사용할 것 🔄 기본 타입 간 형 변환자바의 기본 타입..

[Java] BufferedReader, Scanner

🔍 BufferedReader, Scanner✨ 결론빠른 입력 속도와 대용량 데이터 처리 => BufferedReader입력 데이터를 간편하게 파싱 => Scanner입력 속도와 파싱 편의성 중 무엇이 중요한지에 따라 선택하자.📃 BufferedReaderBuffer: 임시 저장 공간 문자 기반 입력 스트림을 효율적으로 처리하기 위한 클래스데이터를 한 번에 읽어와 버퍼에 보관 후, 버퍼에서 데이터를 읽어오는 방식 입력 스트림에서 8KB의 버퍼에 데이터를 읽어옴 이후 필요한 만큼 데이터를 버퍼에서 읽어 반환함 I/O 횟수를 줄여 성능을 향상시킴 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));String ..