Computer Science 19

TreeSet 개념 정리

1. 개념TreeSet은 중복을 허용하지 않으면서 자동으로 정렬을 유지하는 자료구조다.내부적으로 이진 탐색 트리(Red-Black Tree) 기반으로 구현되어 있어서, 데이터를 추가하는 순간 정렬된 위치에 들어간다.TreeSet set = new TreeSet();set.add(5);set.add(1);set.add(3);set.add(1); // 중복 → 무시됨// 내부적으로 [1, 3, 5] 순서로 정렬되어 유지됨2. HashSet과의 비교 HashSetTreeSet중복 제거OO순서보장 안 됨자동 오름차순 정렬추가/삭제/조회 속도O(1)O(log n)내부 구조해시 테이블이진 탐색 트리 TreeSet이 HashSet보다 속도는 살짝 느리지만(O(log n) vs O(1)), 정렬까지 자동으로 해결해준..

Computer Science 2026.06.27

투포인터(Two Pointer) 개념 정리

1. 왜 필요한가정렬된 배열에서 "두 원소의 관계(합, 차 등)"를 찾을 때, 이중 for문(O(n²))보다 빠르게 풀기 위해 사용한다.두 개의 포인터가 배열 양 끝(또는 같은 방향)에서 움직이며 탐색 범위를 줄여나간다.2. 어떤 문제에서 사용하는가정렬된 배열에서 특정 합/차를 만족하는 두 수 찾기정렬된 배열에서 특정 구간(부분 배열) 찾기두 개의 정렬된 배열을 병합하거나 비교할 때(변형) 슬라이딩 윈도우 — 연속된 부분 구간 문제 키워드 → 알고리즘 연결키워드떠올려야 할 것"두 값의 합/차가 특정 값"투포인터"정렬된 배열에서 구간 찾기"투포인터"연속된 부분 구간"슬라이딩 윈도우 (투포인터 변형)3. 핵심 아이디어정렬된 배열, left = 0(시작), right = n-1(끝)while (left ta..

Computer Science 2026.06.19

트랜잭션(Transaction) — ACID, 격리 수준, MVCC까지

Java/Spring 백엔드 면접 준비 학습 노트1. 트랜잭션이란?트랜잭션은 더 이상 쪼갤 수 없는 작업의 최소 단위다. 여러 쿼리를 하나의 묶음으로 처리해 데이터 정합성을 보장하는 핵심 개념이다.왜 필요한가? — 계좌이체 예시원이가 민수에게 10만원을 이체할 때 두 쿼리가 필요하다.UPDATE accounts SET balance = balance - 100000 WHERE user = '원'; -- 1단계UPDATE accounts SET balance = balance + 100000 WHERE user = '민수'; -- 2단계1단계 실행 후 서버가 죽으면 원이 통장은 -10만원이지만 민수 통장은 그대로 — 돈이 사라진다.두 쿼리를 하나의 트랜잭션으로 묶어야 둘 다 성공하거나, 둘 다 실패하도..

Computer Science 2026.06.12

정렬 개념 정리

1. 정렬이 필요한 이유예를 들어 [3, 1, 4, 1, 5]에서 중복을 찾는다고 하면,정렬 없이 → 모든 쌍을 다 비교해야 함 → O(n²)정렬 후 → 바로 옆 원소만 비교하면 됨 → O(n log n)데이터를 순서대로 늘어놓으면 탐색, 비교, 중복 제거가 훨씬 쉬워진다.코테에서 정렬은 그 자체가 목적이라기보다 전처리 도구로 쓰이는 경우가 많다. 정렬 문제 키워드 패턴가장 크게 / 가장 작게정렬 후 앞/뒤에서 꺼내기순서대로 처리정렬이 전처리두 값의 합/차가 특정 값정렬 + 투포인터기준이 복잡한 정렬Comparator 커스텀2. Java 정렬 문법 정리기본 배열 정렬int[] arr = {3, 1, 4, 1, 5};Arrays.sort(arr); // [1, 1, 3, 4, 5]내림차순int[]는 Com..

Computer Science 2026.06.04

Stack과 Queue 개념

Stack — 프링글스 통넣을 때도 위에서, 꺼낼 때도 위에서마지막에 넣은 게 먼저 나오는 구조 → LIFO (Last In First Out)push(1) → [ 1 ]push(2) → [ 1 | 2 ]push(3) → [ 1 | 2 | 3 ]pop() → [ 1 | 2 ] 꺼낸 값: 3pop() → [ 1 ] 꺼낸 값: 2실생활 예시로는 브라우저 뒤로가기페이지 이동할 때마다 push, 뒤로가기 누를 때마다 pop가장 최근 페이지부터 차례로 돌아가는 거랑 똑같음Queue — 계산대 줄뒤에서 줄 서고, 앞에서부터 나가는 구조먼저 넣은 게 먼저 나오는 구조 → FIFO (First In First Out)offer(1) → [ 1 ]offer(2) → [ 1 | 2 ]offer(3) ..

Computer Science 2026.05.26

JVM 동작원리| 메모리 구조, GC 원리, 값 전달 방식까지

1. JVM 메모리 구조JVM이란?JVM(Java Virtual Machine) 은 Java 바이트코드를 현재 OS와 CPU에 맞게 번역하고 실행해주는 가상 머신이다.Java 코드를 컴파일하면 .class 파일(바이트코드)이 생성되는데, 이 바이트코드는 특정 OS에 종속되지 않는 중간 언어다. JVM이 이 바이트코드를 읽어 실제 실행 환경에 맞게 처리한다.Java 소스코드 (.java) ↓ javac 컴파일바이트코드 (.class) ↓ JVM 실행OS/CPU에 맞게 번역 후 실행 JVM이 필요한 이유 — Write Once, Run AnywhereC언어는 OS마다 따로 컴파일해야 하지만, Java는 JVM만 설치되어 있으면 어느 OS에서든 동일하게 실행된다. JVM이 OS와 Java..

Computer Science 2026.04.29

OOP 4원칙| 캡슐화·상속·다형성·추상화

객체지향 프로그래밍(OOP)의 4가지 핵심 원칙을 정리한다.Java 기반으로 개념과 예시 코드를 함께 정리한다.1. 캡슐화 (Encapsulation)필드와 메서드를 하나의 클래스로 묶고, 외부에서 내부 데이터에 직접 접근하지 못하도록 숨기는 것이다.private 필드로 외부 접근 차단public getter/setter를 통해서만 필드 접근 허용setter 내부에 유효성 검증 로직을 넣어 잘못된 값 유입 방지 → 데이터 무결성 보장내부 구현이 바뀌어도 외부 코드 수정 불필요 → 유지보수성 향상public class BankAccount { private String owner; private int balance; // 외부에서 직접 접근 불가 public BankAccount(Stri..

Computer Science 2026.04.28

서버 성능의 핵심 지표 2가지: 응답 시간과 처리량

서버 성능을 이야기할 때 가장 기본이 되면서도 중요한 지표는 응답 시간과 처리량이다. 이 두 지표를 정확히 이해해야 성능 문제를 올바르게 진단하고, 효과적인 개선 방향을 설정할 수 있다.1. 응답 시간(Response Time)응답 시간은 사용자가 요청을 보낸 시점부터 응답을 받기까지 걸리는 전체 시간을 의미한다.응답 시간 = 요청 전송 시간 + 서버 처리 시간 + 응답 전송 시간서버 처리 시간(Server Processing Time)서버 개발자가 직접적으로 개선할 수 있는 영역은 서버 처리 시간이다. 서버 처리 시간에는 다음과 같은 작업들이 포함된다.비즈니스 로직 수행DB 연동외부 API 연동응답 데이터 생성 및 직렬화이 중에서도 실제로 가장 많은 시간을 차지하는 경우는 DB 연동과 외부 API 연동..

Computer Science 2026.01.02

[네트워크] OSI 7계층 모델과 TCP/IP 4계층 모델

1. OSI 7계층 모델1) 정의국제표준화기구(ISO)에서 제정한 네트워크 통신의 표준 모델데이터 통신 과정을 7개의 계층으로 분리하여 표준화한 구조로, 각 계층은 특정한 기능을 수행하며 상하 계층과 협력함2) 계층별 주요 기능계층이름주요 역할대표 프로토콜/기술7응용(Application)사용자와 직접 상호작용HTTP, FTP, SMTP, DNS6표현(Presentation)데이터 형식 변환, 암호화JPEG, MPEG, SSL/TLS5세션(Session)통신 세션 관리(연결/종료)Socket, RPC4전송(Transport)신뢰성 있는 데이터 전송TCP, UDP3네트워크(Network)경로 선택, 주소 지정IP, ICMP2데이터링크(Data Link)프레임 전송, MAC 주소 관리Ethernet, PPP..

Computer Science 2025.11.06

[네트워크] TCP와 UDP

TCP란?전송 프로토콜, Transmission Controll Procotol인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나애플리케이션 간에 안전하고 신뢰할 수 있게 데이터를 교환하기 위해 사용데이터를 보낸 순서대로 오류 없이 전달하는 것을 보장웹 브라우징, 이메일 등 안정적인 데이터 전송이 필요한 대부분의 인터넷 서비스에 필수적TCP의 특징연결 지향형: 데이터를 보내기 전에 먼저 상대방과 논리적인 통신 경로(TCP 커넥션) 설정신뢰성 보장: 데이터를 보낸 후, 받은 쪽에서 올바르게 수신되었는지 확인(ACK)하고, 오류가 발생하면 재전송순서 보장: 데이터를 보낼 때 순서 번호를 붙여, 수신 측에서 받은 데이터를 순서대로 재조립하도록 함흐름 제어: 수신 측의 처리 속도에 맞춰 데이터 전송 속도를 조절하여..

Computer Science 2025.11.01
728x90