JAVA18 비즈니스에 맞는 Collection을 만들자! 일급 컬렉션! 해당 글은 클린 코드의 대한 자유로운 의견을 공유하고 작성된 것으로 다양한 의견이나 잘못된 내용이 있으시면 댓글 남겨주시면 감사하겠습니다.상황Domain 객체의 목록을 이용하여 비즈니스 로직을 구현할 때 마주치게 됩니다. [아래와 같이 User라는 도메인을 이용해서 개발할 때 있을 때 마주칠 수 있는 코드 예시]User.classpublic class User { private final String email; private final String name; private final int age; private final String phone; // true : 여성, false : 남성 private final boolean gender ; public User(String email.. 2025. 5. 19. if-else의 갇혀버린 return 문을 구출하기 위해 Early Return 패턴을 활용하자 해당 글은 클린 코드의 대한 자유로운 의견을 공유하고 작성된 것으로 다양한 의견이나 잘못된 내용이 있으시면 댓글 남겨주시면 감사하겠습니다.What is Early Return Pattern???? Early Return Pattern을 처음 듣게 되면 디자인 패턴처럼 무언가 선뜻 다가오지 않게 느껴졌습니다. ❗️EarlyReturn함수나 메서드 내에서 특정 조건이 충족되면 즉시(early) 결과를 반환(return)하여 불필요한 코드 실행과 중첩된 조건문을 방지하는 프로그래밍 기법이다. private String method1(String input) { if (input == null) { throw new NullPointerException("input is null"); } .. 2025. 5. 7. 부정 연산자도 메서드로 구분하자(NOT, !) 해당 글은 클린 코드의 대한 자유로운 의견을 공유하고 작성된 것으로 다양한 의견이나 잘못된 내용이 있으시면 댓글 남겨주시면 감사하겠습니다.보통 Boolean 타입으로 부정형을 정의할 때 부정 연산자(!)을 사용하게 됩니다 [n이 null이 아닐 때]n != null[n이 10이 아닐 때]n != 10[n이 유효하지 않을 때]validation() : 유효성 확인 Method!n.validation() 이 글의 제목을 읽어보고 나면 1개의 질문이 떠오르실 것 이라고 생각합니다. 위 코드처럼 부정 연산자(!)을 그대로 사용하면 되지 않나요? Method를 굳이 나눠야 할까요? 저의 주관적인 생각으로는 부정 연산자(!)을 생각하는 로직도 Method 형태로 구분하는 것이 유지보수에 도움이 된다고 생각합니다... 2025. 4. 28. 나만의 클린 코드 이야기 - Enum의 description 변수를 사용하자 해당 글은 클린 코드의 대한 자유로운 의견을 공유하고 작성된 것으로 다양한 의견이나 잘못된 내용이 있으시면 댓글 남겨주시면 감사하겠습니다.상수를 정의하는 방법으로 interface, 자체 클래스 상수, 내부 final 상수로 만드는 방법이 많지만 Java에서 상수를 정의하라고 만든 Enum 클래스 타입이 존재합니다. Enum 클래스에서 정의한 상수의 네이밍으로 한 눈에 알아볼 수 있지만, 상세적인 내용을 1개의 네이밍으로 설정하는 것은 쉽지 않은 일입니다. public enum Type{ TYPE_NAME1(...), TYPE_NAME2(...), TYPE_NAME3(...), TYPE_NAME4(...); ...} 해당 Enum 클래스의 유지보수성을 높이기 위해서 description 변수.. 2025. 4. 3. Koltin Gradle, Groovy Gradle 비교 주요 차이점 비교 장단점 장점단점 Groovy DSL - 간결한 문법- 더 나은 빌드 성능- 낮은 학습 곡선- 효율적인 증분 빌드 · 동적 타이핑으로 인한 타입 안전성 부족· IDE 지원이 상대적으로 약함 Kotlin DSL · 강력한 타입 안전성 · 우수한 IDE 지원 (자동완성, 오류 감지)· 리팩토링 용이성 · 상대적으로 장황한 문법 · 학습 곡선이 더 가파름 성능 비교[Gradle 개발자가 남긴 벤치마킹 정보] The Kotlin and Groovy DSLs should have similar performance characteristics · Issue #15886 · gradle/gradleExpected Behavior The Kotlin and Groovy DSLs have as .. 2025. 1. 21. R2DBC-Proxy(DB Connection Proxy) 적용하기 적용 목적. 현재 WebFlux + R2DBC 환경에서 Join이 필요할 때 DatabaseClient을 이용한 Native Query으로 작성해서 DB에서 데이터를 가져오고 있습니다. Query를 작성할 때의 Human Issue가 발생하거나, ParameterBinding이 올바르게 진행되어 DB에 요청이 가는지 확인하기가 어렵습니다. public Flux findTableT1(String id) { return databaseClient.sql(queryStore.queryJoinTable2ByT1Id()) .bind("id", id) .map((row, rowMetadata) -> findTableT1Response.ofFindTableT1.. 2024. 7. 22. 이전 1 2 3 다음