계층형 CTE 한 줄이 주석 처리된 코드 세 줄을 살린다
·
dev.log
개요계층 구조 설계(인접 리스트 + CTE)를 공부하던 중, 문득 이런 생각이 들었습니다. "우리 사내 프로젝트의 부서 엔티티는 어떻게 설계돼 있더라...?" 궁금해서 바로 열어봤고, 공부한 내용을 바탕으로 들여다보니 이렇게 바꾸면 더 좋겠다 싶은 부분들이 눈에 들어왔습니다. 익숙하게 봐왔던 코드인데, 방금 공부한 내용으로 다시 읽으니 새롭게 보이는 것들이 있었습니다. "이 엔티티도 계층 구조로 설계할 수 있지 않을까?" 잘못 만들어진 코드라는 것이 아니라, "이렇게 했으면 더 좋았을 것 같다" 는 회고의 기록입니다.현재 엔티티@Entity@Table(name = "tb_department")public class Department { @Id @GeneratedValue(strategy = ..
PUT vs PATCH, 팩트만 정리합니다
·
dev.log
개요본 글은 RFC(Request for Comments, 의견 요청서) — IETF(국제 인터넷 표준화 기구) 에서 발행하는 인터넷 기술, 프로토콜, 절차 등에 대한 기술 표준 및 정보 문서 내용을 기반으로 작성했습니다."PUT은 전체 수정, PATCH는 일부 수정"흔히 이렇게 알고 계십니다. 틀린 말은 아니지만, 이 한 줄이 수많은 오해를 만듭니다.이 글에서는 RFC 원문을 기반으로 PUT과 PATCH의 정확한 차이를 짚고, 실무에서 자주 헷갈리는 부분들을 정리합니다.RFC 원문 정의PUT (RFC 7231)대상 리소스의 현재 표현을 요청 페이로드로 교체(replace) 한다.PATCH (RFC 5789)리소스에 부분적 수정(partial modification) 을 적용한다.핵심 차이는 교체 vs ..
도메인 모델이 뚱뚱해지고 있다면, Read Model을 도입할 때입니다
·
dev.log
개요Spring Boot + JPA 기반 클린 아키텍처 + DDD 프로젝트를 진행하던 중, 도메인 모델에서 불편한 부분을 발견했습니다.@Getter@Builderpublic class LabOrder { private Long id; private Long patientId; /** 비즈니스 필드들 ... **/ // 목록 조회용 필드 private String patientName; private Long doctorId; private String doctorName;} 목록 화면에 환자 이름과 의사 이름을 보여줘야 했는데, 이 데이터는 lab_order 테이블이 아니라 patient, doctor 테이블에 있습니다. 도메인 모델만으로 이 조회를 해결하려다 보니,..
AI가 코드를 짜는 시대, 개발자로서 느낀 것들
·
dev.log
개요AI가 하루가 다르게 발전하고 있습니다. 개발자로서, 지금 느끼는 것들과 제가 나아갈 방향을 정리해보려 합니다.달라진 개발 환경AI가 발전하면서 개발자들의 작업 방식이 크게 바뀌었습니다. 구글링과 공식 문서 대신 AI를 통해 질의응답을 하며 개발하는 것이 자연스러워졌고, 회사에서도 AI를 적극적으로 활용하는 모습이 눈에 띕니다. 코드 자동완성, 리팩토링 제안, 테스트 코드 생성까지 개발의 거의 모든 단계에 AI가 깊숙이 들어와 있습니다. 불과 3년 전만 해도 "AI가 코드를 짠다"는 말이 반신반의의 대상이었는데, 지금은 AI 없이 개발하는 것이 오히려 비효율적으로 느껴질 정도입니다.개발자 채용 시장의 변화AI가 개발자를 대체할 날이 얼마 남지 않았다는 이야기도 심심치 않게 들립니다. 실제로 채용 시장..