자바를 공부하다 보면 생각보다 빨리 마주치는 주제가 바로 컬렉션 프레임워크입니다. 데이터를 여러 개 저장해야 할 때 배열만으로는 불편한 경우가 많고, 그때부터 List, Set, Map 같은 타입이 본격적으로 등장하기 때문입니다.문제는 여기서부터 시작됩니다. List는 순서가 있다고 하고, Set은 중복이 없다고 하고, Map은 key와 value로 저장한다고 하는데, 막상 코드를 짤 때는 언제 무엇을 써야 하는지, ArrayList와 HashSet, HashMap은 어떤 차이인지, 실무에서 어떤 기준으로 선택하는지가 헷갈리기 쉽습니다.그래서 이 글에서는 자바 컬렉션 프레임워크를 처음 보는 사람도 이해할 수 있게 Collection Framework의 전체 구조부터, List, Set, Map 차이, 그..
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)는 프로그램끼리 대화하는 창구라고 보면 됩니다.예를 들어,프론트엔..
SOLID란 무엇일까?Java를 공부하다 보면 객체지향 설계 원칙으로 SOLID라는 단어를 자주 보게 됩니다. 처음에는 영어 약자라서 어렵게 느껴지지만, 사실은 유지보수하기 좋은 코드를 만들기 위한 5가지 기준이라고 이해하면 됩니다.이번 글에서는 Java 기준으로 SOLID가 무엇인지, 왜 중요한지, 그리고 각 원칙을 예시와 함께 쉽게 정리해보겠습니다.1. SOLID란?SOLID는 객체지향 설계의 5가지 핵심 원칙의 앞글자를 모은 말입니다.S: SRP, 단일 책임 원칙O: OCP, 개방-폐쇄 원칙L: LSP, 리스코프 치환 원칙I: ISP, 인터페이스 분리 원칙D: DIP, 의존 역전 원칙이 원칙들은 복잡해 보이지만 결국 한 방향을 가리킵니다.코드를 수정하기 쉽고, 확장하기 쉽고, 덜 깨지게 만들자즉, ..

