[Spring Boot] Soft Delete 정책을 위한 @SQLRestriction은 좋은 방법일까? (feat. @Where) + 의문점 추가
·
Backend/Spring Boot & JPA
📕 목차1. 개요2. Function Aspect3. Architecture Aspect4. 결론1. 개요 📌 @SQLRestriction@SQLRestriction("deleted_at IS NULL")@SQLDelete(sql = "UPDATE user SET deleted_at = NOW() WHERE id = ?")public class User { ...}  Is there a replacement for the in 6.3 deprecated @Where and @LoaderSince hibernate 6.3 org.hibernate.annotations.Where and Loader are deprecated. We are using these annotations together ..
[Spring Boot] Soft Delete 정책을 위한 @SQLDelete와 영속성 컨텍스트 간의 재밌는 점
·
Backend/Spring Boot & JPA
📕 목차 1. Soft Delete 반영 2. 동일성이 깨진다? 3. 고찰 1. Soft Delete 반영 📌 Annotation @Entity @Getter @Table(name = "user") @NoArgsConstructor(access = AccessLevel.PROTECTED) @DynamicInsert @SQLRestriction("deleted_at IS NULL") @SQLDelete(sql = "UPDATE user SET deleted_at = NOW() WHERE id = ?") public class User extends DateAuditable { ... @ColumnDefault("NULL") private LocalDateTime deletedAt; ... } @SQLDel..
[Clean Architecture] 설계 원칙
·
Reference/Clean Architecture
📕 목차 1. SOLID 원칙 2. SRP: 단일 책임 원칙 3. OCP: 개방-폐쇄 원칙 4. LSP: 리스코프 치환 원칙 5. ISP: 인터페이스 분리 원칙 6. DIP: 의존성 역전 원칙 1. SOLID 원칙 📌 개요 좋은 SW 시스템은 Clean Code로부터 시작한다. 좋은 벽돌로 좋은 아키텍처를 정의하는 원칙이 바로 SOLID 원칙 함수와 데이터 구조를 클래스로 배치하는 방법과 이들 클래스를 서로 결합하는 방법을 설명한다. 클래스는 단순히 함수와 데이터를 결합한 집합일 뿐, '클래스'라는 단어를 사용하는 것이 SOLID 원칙이 객체 지향 SW에만 적용되는 것은 아니다. 📌 목적 SOLID 원칙의 목적은 중간 수준 소프트웨어 구조가 아래와 같도록 만드는 것이다. 변경에 유연하다. 이해가 쉽다. ..
[Clean Architecture] 프로그래밍 패러다임
·
Reference/Clean Architecture
읽어놓고 항상 정리해야지, 정리해야지 하면서 미루던 책.. 이 내용 진짜 진짜 재밌는 파트다. 잠깐 읽으려다가 여기서 충격먹고 날 8시간 동안 의자에 묶어놨던 책. ㅋㅋ 📕 목차 1. 패러다임 개요 2. 구조적 프로그래밍 3. 객체 지향 프로그래밍 4. 함수형 프로그래밍 1. 패러다임 개요 📌 생각할 거리 프로그래밍을 시작하고 이 책을 처음 접하기 전까지 객체 지향이란 그래서 무엇을 이야기하고 싶은 건지를 당췌 알 수가 없었다. 2년 전에 코딩 처음 시작할 때 블로그나 온갖 강의를 봐도, 현실 세계의 객체를 어쩌구 메시징을 어쩌구 그런 추상적인 용어들로 추상적인 개념을 설명하는데 솔직히 "아, 저 인간도 모르는구나"라는 생각밖에 안 들었다. 그나마 함수형 프로그래밍은 이해를 하겠는데, 객체 지향 패러다임..