본문 바로가기

라이브러리9

[주니어 개발자의 두 번째 라이브러리 개발기] 도메인 특화 언어(DSL)을 만들어 보자! DDL-DSL 개발기 -3. ALTER 및 DROP 구현- 안녕하세요 오랜만입니다 ㅎㅎ1년차 포트폴리오를 채우자마자 바로 블로그 관리에 너무 소홀해져 버렸네요. 앞선 두 편의 글에서 DDL-DSL 라이브러리의 개발 배경과 CREATE TABLE 구현에 대해 다루었는데요.이번에 제가 만든 DDL-DSL 라이브러리가 적용된 타 팀의 프로젝트가 첫 프로덕션 출시를 앞두고 있습니다.때문에, 프로덕션에 나가기전 부랴부랴 마이그레이션 기능을 개발중에 있습니다.해서 먼저, 이번 편에서는 마이그레이션시 꼭 필요한 '테이블 구조(칼럼 포함)를 변경하고 삭제하는 기능의 구현'에 대해 다루어보겠습니다.1. ALTER TABLE 구현1.1 기본 설계데이터베이스의 테이블 구조를 변경하는 작업은 매우 신중하게 이루어져야 합니다.특히 여러 데이터베이스를 지원해야 하는 상황에서는 각 데이터.. 2025. 2. 13.
PRIMARY KEY, 칼럼의 속성일까 테이블의 속성일까? 최근 제가 개발한 DDL-DSL 라이브러리에 ALTER 문 지원을 추가하는 작업을 진행하면서, 어찌보면 당연히 알아야할 지식이지만, 부끄럽게도 PRIMARY KEY 제약조건에 이제야 좀 더 명확히 알게 된 부분이 있어 기록해봅니다.자칫 오해할 수 있는 PRIMARY KEY의 성격대부분 테이블을 생성할 때 다음과 같이 PRIMARY KEY를 지정합니다.CREATE TABLE users ( id INTEGER PRIMARY KEY, name VARCHAR(100), email VARCHAR(200));또는 복합키를 사용할 때는 이렇게 합니다.CREATE TABLE orders ( order_year INT, order_sequence INT, customer_id INT, .. 2025. 1. 17.
[신입 개발자의 세 번째 라이브러리]실제 프로젝트 적용과 회고 : persistence-code-generator 개발기(fin) 들어가며이번 글은 어느덧 persistence-code-generator 개발기의 마지막 편입니다.지금까지 라이브러리의 설계와 구현을 살펴보았는데요.이번 편에서는 실제 프로젝트 적용을 통해 달성한 정량적인 생산성 향상과 그 과정에서 느낀 것들을 공유하고자 합니다.생산성 향상 효과보일러 플레이트 코드 감소(feat. 정량적 분석)persistence-code-generator의 가장 큰 성과는 영속성 계층의 보일러플레이트 코드를 94% 감소시킨 것입니다.실제 수치로 살펴보겠습니다:도메인 엔티티 1개당 (칼럼 다섯개의 가벼운 엔티티 예시):어노테이션 포함 개발자가 작성하는 코드: 20줄 (전체의 6.25%)자동 생성되는 코드: 300줄 (전체의 93.75%)전체 필요한 코드: 320줄예시를 통해 살펴보겠습니.. 2024. 12. 14.
[신입 개발자의 세 번째 라이브러리] 타입 안전한 Enum 변환과 확장성 - persistence-code-generator 개발기(3) 들어가며이번 편에서는 persistence-code-generator를 작성하며, 기본 기능 외에도 디테일한 표현이 가능하도록 신경을 쓴 부분인 ValuedEnum 처리와 컨버터 등록 어노테이션인 @WithConverter에 대해 다루어 보겠습니다.ValuedEnum: 값을 가진 열거형먼저 ValuedEnum의 개념과 그 필요성부터 이해해보겠습니다.ValuedEnum은 실제 데이터베이스에 저장될 값을 가지는 형태의 enum입니다.저는 키오스크나 포스와 같은 클라이언트 솔루션을 개발하는 개발자로서, 결제 데이터를 취합하고, 통계 데이터를 보여주는 서버(이하 '집계 서버')와의 API 통신 코드를 짤 때가 많았는데요.이 때 ValuedEnum의 유용함을 느꼈습니다.왜냐하면, 집계 서버는 단일 문자열 값으로 .. 2024. 12. 6.
728x90