전체 글38 [ Database ] 인덱스에 넣은 컬럼인데, 왜 조회가 느릴까? 쿼리가 느리면 일단 인덱스부터 생각하게 됩니다.WHERE에 쓰는 컬럼이 두 개라면, 두 개를 같이 묶어서 만들기도 합니다.CREATE INDEX idx_user_createdON orders (user_id, created_at);사용자 번호도 넣었고, 주문 날짜도 넣었습니다.그런데 날짜로만 조회하면 생각처럼 빨라지지 않을 수 있습니다.SELECT *FROM ordersWHERE created_at >= '2026-09-03';“날짜도 인덱스에 넣었는데 왜..?”이번에는 복합 인덱스에서 컬럼 순서가 중요한 이유를 알아보겠습니다.!!!복합 인덱스는 어떻게 정렬될까?먼저 아래와 같은 주문 테이블이 있다고 가정하겠습니다.CREATE TABLE orders ( id BIGINT PRIMARY KEY, .. 2026. 9. 11. [ Java ] LinkedList를 for문으로 돌렸는데 O(n²)이라고? 자바에서 리스트를 순회할 때, 아래처럼 작성하는 경우가 있습니다.for (int i = 0; i 크기만큼 반복하고, 하나씩 꺼냅니다. 딱 봐도 O(n)처럼 생겼습니다. 그런데!!!!!!!!list가 LinkedList라면, 이 코드의 리스트 접근 비용은 O(n²)이 됩니다.“반복문이 하나인데 왜 제곱이지?”(이중 for문만 피하면 되는 줄 알았는데..) 이번에는 LinkedList의 get()이 어떻게 동작하는지부터 알아보겠습니다.※ 시간복잡도는 출력 비용을 제외하고, 리스트의 요소를 찾아가는 비용을 기준으로 설명합니다.LinkedList의 내부 구조 살펴보기ArrayList는 내부 배열에 요소를 저장합니다.반면 LinkedList는 각 요소를 노드에 담고, 노드끼리 연결합니다.자바의 LinkedLis.. 2026. 9. 10. [ Java ] HashMap의 크기는 왜 항상 2의 거듭제곱일까? 자바로 문제를 풀다 보면, HashMap을 정말 자주 사용하게 됩니다...!! ( 코테 미워 ) 키 넣고, 값 꺼내고. 중복 개수 세고.. 그런데 내부 코드를 보면 조금 특이한 부분이 있습니다. 배열 크기가 16, 32, 64, 128처럼 늘어납니다.“그냥 필요한 만큼 늘리면 안 되나? 왜 굳이 2의 거듭제곱이지?”(컴퓨터가 2를 좋아하긴 하는데..) 이게 단순히 숫자를 예쁘게 맞춘 건 아닙니다. 데이터를 저장할 위치를 계산하는 방식과 관련이 있습니다!좀 더 알아보겠습니다.※ 내부 구현은 OpenJDK 21 기준입니다. 여기서 말하는 크기는 size()가 아니라, 내부 배열의 용량입니다.HashMap의 내부 동작 살펴보기HashMap은 내부 배열의 각 칸에 항목을 저장합니다. 이 칸을 버킷이라고 부릅니다.. 2026. 9. 10. [ 정보기 ] 윈도우 인증 윈도우 인증이란?윈도우 인증은 시스템에 접근하기 전에 사용자의 신원을 확인하는 과정이다.이는 시스템의 보안을 강화하고, 잘못된 접근을 방지하는 데 필수적이다.윈도우 인증 구성 요소윈도우 인증은 여러 구성 요소로 이루어져 있는데, 각각의 역할은 아래와 같다!.Winlogon : 이 부분은 로그인 화면을 관리한다. 사용자가 로그인하기 위해 입력한 정보를 LSA에 전달하는 역할을 수행한다. 사용자가 CTRL+ALT+DEL을 눌렀을 때도 이 Winlogon이 로그인 UI를 띄워 주는 것을 확인할 수 있따.이미지 출처Winlogon 과정 설명LSA (Local Security Authority): LSA는 사용자의 인증을 처리한다. NTLM이나 Kerberos 프로토콜을 통해 자격 증명을 확인하고, 사용자가 누구.. 2026. 4. 14. [ Network ] DNS 들어가며인터넷을 사용하면서 웹사이트 주소를 입력하면 해당 웹사이트가 화면에 나타나는 것은 당연하게 느껴진다. 하지만 이 과정 뒤에는 도메인 이름 시스템(DNS)이라는 중요한 기술이 숨어 있다. DNS는 사람이 기억하기 쉬운 웹사이트 주소(예: http://www.example.com)를 컴퓨터가 이해하는 숫자 주소(IP 주소)로 바꿔주는 역할을 한다. 이 보고서는 DNS의 기본 원리와 함께, DNS 작동 방식을 직접 확인하고 문제를 해결하는 데 사용되는 nslookup 명령어와 Wireshark 도구의 활용법을 설명한다. 이 주제는 인터넷이 어떻게 작동하는지 이해하고, 네트워크 문제를 진단하는 데 필수적인 지식을 제공하기 때문에 중요하다. DNS의 기본 원리DNS는 인터넷에서 웹사이트 주소를 컴퓨터가 .. 2026. 4. 13. [ PS ] 백준 1823, 수확 백준 1823번: 벼 선택문제 정보문제 번호: BOJ 1823문제 이름: 벼 선택난이도: Gold문제 링크: https://www.acmicpc.net/problem/1823문제 요약N개의 벼가 주어진다.벼를 왼쪽과 오른쪽에서 하나씩 선택하면서, 그 선택된 벼의 점수는 현재 선택된 벼의 가치 * (현재 턴) 으로 계산된다.매번 왼쪽 끝 벼나 오른쪽 끝 벼를 선택할 수 있다.벼를 모두 선택할 때, 얻을 수 있는 최댓값을 구하는 문제이다.처음 떠올린 아이디어처음에 문제를 봤을 때, 그리디 알고리즘을 사용할 수 있을 것 같았지만, 최적의 선택을 할 때마다 다른 선택이 영향을 미치기 때문에 완전 탐색이나 DP를 고려하게 되었다.벼를 하나씩 선택하면서 점수를 누적하는 방식이므로 DP 방식으로 해결할 수 있을 것 .. 2026. 4. 8. 이전 1 2 3 4 ··· 7 다음