profile
<- 개발 공부하는 나
post-thumbnail

HTTP(HyperText Transfer Protocol)

HTTP란? 웹 브라우저에서 주소를 입력하면 페이지가 뜬다. 이 과정에서 브라우저와 서버가 주고받는 약속이 있다. 그게 바로 HTTP다. HTTP란 HTTP(HyperText Transfer Protocol)는 클라이언트와 서버가 데이터를 주고받기 위한 통신 규약

2026년 4월 22일
·
0개의 댓글
·
post-thumbnail

Map

지금까지 본 List와 Set은 값 하나씩을 담는다. 그런데 "이름 → 전화번호", "학번 → 이름"처럼 쌍으로 묶인 데이터를 다뤄야 할 때가 있다. 이를 위한 컬렉션이 Map이다.Map은 키(Key)와 값(Value)의 쌍으로 데이터를 저장하는 컬렉션이다. 사전처럼,

2026년 4월 21일
·
0개의 댓글
·
post-thumbnail

Set

리스트는 같은 값을 여러 번 담을 수 있다. 그런데 때로는 "중복 없이" 데이터를 모아야 할 때가 있다. 예를 들어 설문 응답자 목록, 태그 목록처럼 같은 항목이 두 번 들어가면 안 되는 경우다. 이럴 때 쓰는 게 Set이다.Set은 List와 달리 두 가지 특징이 있

2026년 4월 21일
·
0개의 댓글
·
post-thumbnail

List

ArrayList도 있고 Vector도 있고, 비슷하게 동작하는 클래스가 여럿이다. 그런데 코드를 보다 보면 변수 타입으로 ArrayList 대신 List를 쓴 경우를 자주 마주친다. List는 뭘까?List는 클래스가 아니라 인터페이스다. "순서가 있고, 중복을 허용

2026년 4월 21일
·
0개의 댓글
·
post-thumbnail

Vector

ArrayList와 거의 똑같이 생긴 클래스가 하나 더 있다. Vector다. 사용법도 비슷하고, 크기가 자동으로 늘어나는 것도 같다. 그런데 왜 굳이 둘로 나뉘어 있을까?Vector는 ArrayList보다 먼저 나온 클래스다. Java 1.0 시절부터 있었고, Arr

2026년 4월 21일
·
0개의 댓글
·
post-thumbnail

ArrayList

배열은 분명 편리한데, 한 가지 불편한 점이 있다. 크기를 처음에 정해야 한다는 것이다. 10칸짜리 배열을 만들었는데 11번째 데이터가 들어오면? 방법이 없다. 이 문제를 해결하기 위해 ArrayList가 등장했다.ArrayList는 크기가 자동으로 늘어나는 배열이다.

2026년 4월 21일
·
0개의 댓글
·
post-thumbnail

Socket(소켓)

Socket 코드로 두 컴퓨터가 대화할 수 있을까? 소켓(Socket)이 그 창구다. 자바에서는 java.net 패키지로 네트워크 통신을 구현할 수 있다. 소켓이란? 소켓은 네트워크 상에서

2026년 4월 21일
·
0개의 댓글
·
post-thumbnail

제네릭 (Generic)

List를 처음 쓰다 보면 이런 코드를 만나게 된다.&lt;String>이 뭔지 모르고 그냥 따라 쓰다가, 어느 순간 "이게 왜 있는 거지?"라는 의문이 생긴다. 이게 바로 제네릭(Generics)이다.제네릭이 생기기 전에는 컬렉션에 뭘 담든 Object 타입으로 처리

2026년 4월 18일
·
0개의 댓글
·
post-thumbnail

SQL 쿼리 실행 순서

SQL을 처음 배울 때 한 번쯤 이런 의문이 생긴다. SELECT가 제일 앞에 있는데 왜 WHERE에서는 SELECT에서 정한 별칭을 못 쓰지? HAVING은 WHERE랑 뭐가 다른 거지? 이 의문들은 SQL이 작성 순서대로 실행되지 않는다는 걸 알면 한 번에 풀린다.

2026년 4월 18일
·
0개의 댓글
·
post-thumbnail

DISTINCT

같은 회원이 여러 번 주문하면 member_id가 중복으로 나온다. 여기서 "몇 명이 주문했는지"가 궁금한 거라면 중복을 없애야 한다. DISTINCT는 조회 결과에서 중복된 행을 제거한다.SELECT 바로 뒤에 DISTINCT를 붙이면 된다. 중복된 값은 한 번만 나

2026년 4월 18일
·
0개의 댓글
·
post-thumbnail

GROUP BY, HAVING

COUNT, SUM, AVG 같은 집계 함수는 전체 데이터를 하나로 요약한다. 그런데 "전체 주문 수"가 아니라 "회원별 주문 수"가 필요하다면? 데이터를 특정 기준으로 묶어서 각 그룹마다 집계해야 한다. 이때 쓰는 게 GROUP BY다.GROUP BY member_i

2026년 4월 18일
·
0개의 댓글
·
post-thumbnail

자주 쓰는 MySQL 함수

SQL을 쓰다 보면 단순히 데이터를 꺼내는 것 이상이 필요해진다. 이름을 대문자로 바꾸거나, 날짜 차이를 계산하거나, 소수점을 정리하거나. 이런 처리를 쿼리 안에서 바로 할 수 있게 해주는 것이 내장 함수다.자주 쓰는 것들만 추렸다.여러 문자열을 이어 붙인다.문자열의

2026년 4월 18일
·
0개의 댓글
·
post-thumbnail

트랜잭션 (Transaction)

계좌 이체를 생각해보자. A가 B에게 10만 원을 보내는 과정은 두 단계다.A 계좌에서 10만 원 차감B 계좌에 10만 원 추가그런데 1번은 성공했는데 2번 도중에 서버가 꺼지면 어떻게 될까. A의 돈은 빠져나갔는데 B에게는 입금이 안 된다. 이런 상황을 막기 위해 존

2026년 4월 18일
·
0개의 댓글
·
post-thumbnail

alias (별칭)

JOIN을 쓰다 보면 자연스럽게 테이블 이름 뒤에 짧은 글자를 붙이게 된다. 위 코드에서 members m, orders o가 바로 별칭(Alias)이다. 컬럼과 테이블 모두에 붙일 수 있고, 쿼리를 훨씬 읽기 쉽게 만들어준다.조회 결과에서 컬럼 이름을 바꿔서 보여준다

2026년 4월 17일
·
0개의 댓글
·
post-thumbnail

JOIN

테이블을 잘 나눠뒀는데, 막상 데이터를 꺼내려고 하면 문제가 생긴다. 주문 목록을 보고 싶은데 주문 테이블엔 member_id만 있고 이름은 없다. 회원 이름까지 같이 보려면 두 테이블을 합쳐서 조회해야 한다. 이때 쓰는 게 JOIN이다.설명에 사용할 테이블과 데이터를

2026년 4월 17일
·
0개의 댓글
·
post-thumbnail

ERD 다이어그램

테이블이 세 개, 네 개 넘어가면 말로 설명하기가 힘들어진다. "회원 테이블이 주문 테이블과 연결되고, 주문 테이블은 상품 테이블과 중간 테이블을 통해 연결되고..." — 듣는 사람도, 말하는 사람도 금방 헷갈린다. ERD(Entity-Relationship Diagr

2026년 4월 17일
·
0개의 댓글
·
post-thumbnail

관계 차수

테이블을 나눴으면 이제 나눈 테이블들이 서로 어떻게 연결되는지를 따져야 한다. "한 회원이 주문을 몇 개나 할 수 있나?", "한 주문에 상품이 몇 개 들어갈 수 있나?" — 이런 질문이 바로 관계 차수(Cardinality)다. 테이블 간의 관계를 수량 관점에서 정의

2026년 4월 17일
·
0개의 댓글
·
post-thumbnail

인덱스(Index)

행이 수십만 건 쌓인 테이블에서 특정 이메일을 조회한다고 생각해보자. DB는 기본적으로 첫 번째 행부터 마지막 행까지 전부 훑어본다. 데이터가 많을수록 느려지는 건 당연하다. 인덱스(Index)는 이 문제를 해결하기 위해 존재한다.책 뒤에 붙어 있는 색인을 떠올리면 쉽

2026년 4월 17일
·
0개의 댓글
·
post-thumbnail

Primary key, Unique, Foreign key

테이블을 처음 설계할 때 가장 자주 마주치는 세 가지 제약 조건이 있다. PRIMARY KEY, UNIQUE, FOREIGN KEY. 셋 다 "중복을 막는다"는 인상을 주는데, 역할이 미묘하게 다르다. 각각이 왜 존재하는지, 어떤 상황에서 쓰이는지를 구분해두면 테이블

2026년 4월 17일
·
0개의 댓글
·
post-thumbnail

SELECT 와 WHERE

데이터를 넣었으면 꺼내야 한다. SQL에서 데이터를 조회할 때 쓰는 게 SELECT다. 단순히 전체를 가져오는 것부터 조건을 걸고 정렬하고 개수를 제한하는 것까지 — SELECT 하나에 옵션이 꽤 많다.\*는 모든 컬럼을 뜻한다. 컬럼이 많을 때는 필요한 것만 명시하는

2026년 4월 7일
·
0개의 댓글
·