데이터베이스 Key 종류 총정리, 기본키·외래키·후보키·슈퍼키 쉽게 이해하기데이터베이스를 공부하다 보면 기본키(PK), 외래키(FK), 후보키, 슈퍼키, 대체키 같은 용어가 한 번에 쏟아집니다. 이름도 비슷하고 전부 Key라서 처음에는 “다 중요한 것 같은데 뭐가 뭔지 모르겠다”는 느낌이 들기 쉽습니다.그런데 Key는 결국 복잡한 암기 주제가 아니라, 데이터를 구분하고 연결하기 위한 규칙이라고 보면 훨씬 쉬워집니다.먼저 핵심부터Key는 테이블에서 데이터를 식별하거나 연결하기 위한 기준입니다.기본키(PK)는 한 행을 대표하는 키이고, 외래키(FK)는 다른 테이블과 연결하는 키입니다.후보키 / 슈퍼키 / 대체키는 PK를 이해하기 위한 상위 개념이라고 보면 됩니다.이번 글에서는 Key 종류를 쉬운 정의부터 정..
SQL JOIN 완벽 정리, INNER JOIN·LEFT JOIN·RIGHT JOIN 차이 한 번에 이해하기SQL을 공부할 때 많은 분들이 처음 크게 헷갈리는 지점이 바로 JOIN입니다. 특히 INNER JOIN, LEFT JOIN, RIGHT JOIN은 이름은 비슷한데 실제 결과는 다르게 나오기 때문에, 문법만 외우면 금방 섞이기 쉽습니다.그런데 JOIN은 생각보다 어렵게 볼 필요가 없습니다. 핵심은 단 하나입니다.먼저 핵심부터INNER JOIN은 양쪽에 모두 있는 데이터만 가져옵니다.LEFT JOIN은 왼쪽 테이블은 전부 유지하고, 오른쪽은 맞는 것만 붙입니다.RIGHT JOIN은 오른쪽 테이블은 전부 유지하고, 왼쪽은 맞는 것만 붙입니다.이번 글에서는 JOIN이 왜 필요한지부터 시작해서, INNER..
ORM이란 무엇인가? JPA 포함 개념 정리와 SQL과의 차이Java나 Spring Boot를 공부하다 보면 JPA, Hibernate, Entity, 영속성 컨텍스트 같은 용어를 자주 보게 됩니다. 그런데 이 용어들을 제대로 이해하려면 가장 먼저 ORM부터 정확히 잡아야 합니다.많은 분들이 JPA = ORM 정도로 이해하지만, 정확히는 다릅니다.먼저 핵심부터ORM은 객체와 관계형 데이터베이스를 매핑하는 방식입니다.JPA는 자바에서 ORM을 사용하기 위한 표준 명세입니다.Hibernate는 JPA를 실제로 동작하게 만드는 대표 구현체입니다.이번 글에서는 ORM이 무엇인지, 왜 필요한지, SQL과 어떤 차이가 있는지, 그리고 JPA와 Hibernate는 어떤 관계인지까지 흐름대로 정리해보겠습니다.ORM은 ..
GET/POST/PUT/PATCH/DELETE를 어떻게 구현할까?REST API를 공부하다 보면 GET, POST, PUT, PATCH, DELETE는 자주 보는데, 막상 Spring Boot에서 실제 CRUD 코드로 옮기려고 하면 헷갈리는 경우가 많습니다.특히 초보 단계에서는 아래 질문이 자주 나옵니다.GET과 POST는 알겠는데 PUT과 PATCH는 정확히 뭐가 다를까?CRUD API를 만들 때 메서드를 어떻게 나눠야 할까?컨트롤러, 서비스, DTO는 어떤 식으로 연결해야 할까?이번 글에서는 회원(User) 관리 예제를 기준으로, Spring Boot에서 GET/POST/PUT/PATCH/DELETE를 실제 CRUD로 어떻게 구현하는지 쉽게 정리해보겠습니다.1. 먼저 CRUD와 HTTP 메서드를 연결..
REST API란 무엇일까?백엔드나 Java 웹 개발을 공부하다 보면 REST API, RESTful API라는 표현을 정말 자주 보게 됩니다. 특히 Spring Boot로 프로젝트를 시작하면 거의 기본처럼 등장하죠.그런데 처음 접하면 이런 생각이 듭니다.API는 알겠는데 REST는 뭐지?URL만 예쁘게 만들면 RESTful한 걸까?GET, POST만 잘 쓰면 되는 걸까?이번 글에서는 Java 기준으로 REST API가 무엇인지, 왜 쓰는지, 그리고 RESTful하게 설계할 때 어떤 원칙을 봐야 하는지를 쉽게 정리해보겠습니다.1. API와 REST를 먼저 구분해보자API란?API(Application Programming Interface)는 프로그램끼리 대화하는 창구라고 보면 됩니다.예를 들어,프론트엔..
