
Java 를 비롯한 현대 프로그래밍 언어는 대부분 객체지향(OOP)을 기반으로 설계됩니다. 개발자는 도메인 모델을 클래스로 정의하고 객체 간의 메시지를 주고받으며 시스템을 구축하게 됩니다.하지만 우리가 데이터를 저장할 때는 여전히 관계형 데이터베이스를 사용합니다. 이는 두 패러다임의 충돌을 야기합니다. 개발자는 데이터를 저장하기 위해 SQL 을 작성하고 객체를 직접 DB 와 연결하는 반복적인 코드를 작성하게 됩니다. 이 과정에서 객체 간의 책임과 협력이라는 객체지향의 핵심이 사라지고 데이터 저장과 조회 중심의 데이터 중심 설계로 바뀌게 됩니다.패러다임 불일치란 무엇일까?객체지향과 관계형 데이터베이스는 전혀 다른 개념과 철학을 기반으로 합니다.이를 흔히 "패러다임 불일치(Paradigm Mismatch)"..

SQL 이란?SQL 은 Structured Query Language 의 약자로 관계형 데이터베이스에서 데이터를 정의, 조작, 제어, 쿼리하기 위한 표준 도메인 특화 프로그래밍 언어입니다. 데이터를 생성, 수정, 삭제, 조회할 수 있는 다양한 명령어를 제공하며 DDL(데이터 정의), DML(데이터 조작), DCL(데이터 제어), TCL(트랜잭션 제어)로 구분됩니다. SQL 은 데이터베이스 스키마를 생성 및 수정하고 데이터베이스 액세스 및 관리 매개변수를 정의하는데 사용됩니다. 또한 SQL 은 표준화되어 있고 직관적인 구문을 사용하며 복잡한 데이터 질의와 대규모 데이터를 효율적으로 처리할 수 있어 데이터 분석, 백엔드 개발, 비즈니스 인텔리전스 등 다양한 분야에서 활용됩니다. 정형 데이터란 무엇일까?정형 ..

DataBase 의 정의Database 는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합입니다.데이터를 체계적으로 저장하고 관리하는 시스템으로 사용자나 애플리케이션이 데이터를 쉽게 입력, 검색, 수정, 삭제할 수 있도록 도와주고 데이터 무결성을 유지하며 동시성을 지원하여 여러 사용자나 다양한 애플리케이션에서 데이터를 효율적으로 활용할 수 있도록 설계되었습니다. DataBase 의 특징실시간 접근성 (Real Time Accessibility)Database 는 사용자가 데이터를 즉시 접근하고 사용할 수 있어야 합니다.예를 들어 온라인 뱅킹 시스템에서 잔액을 조회하는 경우, 전자상거래에서 상품 재고 상태를 실시간으로 확인하는 경우가 있습니다. 지속적인 변화 (Continuou..

Lombok 이란?Lombok 은 자바에서 보일러플레이트 코드를 줄여주는 라이브러리입니다. 자바 개발 시 반복적으로 작성해야 하는 보일러플레이트 코드는 개발자의 생산성을 저하시키는 주요 요인 중 하나입니다. Lombok 은 이러한 문제를 해결하기 위해 등장한 라이브러리로, Annotation을 사용하여 자동으로 코드를 생성해 주는 기능을 제공합니다. 예를 들어 getter/setter, equals, hashCode, toString 메서드와 같은 반복적인 코드를 자동으로 생성할 수 있어 코드가 더 깔끔하고 간결해집니다.Lombok 은 컴파일러에 훅(hook)을 걸어 자바의 컴파일 과정에 개입하기 때문 컴파일 시점에 작동하게 됩니다. 그리고 지정된 Annotation 에 따라 필요한 메서드나 필드를 자동..