현실을 넘어
close
프로필 배경
프로필 로고

현실을 넘어

  • 분류 전체보기
    • 자바
      • 일반
      • 알고리즘
      • 객사오
      • 스프링입문객체지향
      • 리팩토링
      • 스프링부트3
      • JPA
      • QueryDsl
      • Spring Security
    • 코틀린
      • 코틀린인액션
      • 알고리즘
    • 일 관련 삽질
    • JIRA
    • 도메인주도개발
    • DB
      • Mysql
    • MQ
      • Apache Kafka
    • Docker-Kubernetes
    • GITHUB
    • REST API
    • 리눅스
  • 홈
  • 태그
  • 방명록

리스트의 요소가 단일값인 경우 Collections.singletonList 를 사용해야하는 이유

개요인터넷을 돌아다니던 도중.. 리스트에 단일한 객체만 들어가는 경우 Collection.singletonList() 를 사용하는 것이 좋다는 글을 보았다.테스트 코드인 경우 유용함 - 실 비즈니스 로직엔 싱글톤보단 단순 리스트 사용하는 게 확장에 유리하기에.. 실제로 GPT 도 싱글톤 리스트를 추천하는 것을 보았다.왜 싱글톤 리스트를 단일값인 경우 사용하는 거지?일단 장점이 몇가지 있다.불변성Collections.singletonList 는 불변 리스트를 생성한다.해당 리스트는 단 하나의 요소만 포함되고, 생성 후에는 해당 요소를 추가하거나 제거할 수 없다!메모리 효율사실 정말 미미한 정도라 의미가 있나 싶지만…테스트 코드는 최대한 가벼워야한다고 생각한다!내부적으로 단일 요소만을 저장하기에, 메모리 사..

  • format_list_bulleted 자바/리팩토링
  • · 2024. 2. 19.
  • textsms

[팁] compareTo 기준점

compareTo 기준 어느 쪽을 기준으로 정렬되는 건지 알기 어려울때..두 사람의 키 를 비교하는 것과 비슷하다.1. 첫번 째 사람의 키가 더 크다면compareTo 의 결과 양수키 큰놈이 더 뒤로 간다.2. 두 사람의 키가 동일comapreTo 결과 03. 첫 번째 사람의 키가 더 작다면compareTo 결과 음수 키 작은 놈이 앞으로 온다. Uploaded by N2T

  • format_list_bulleted 자바/일반
  • · 2024. 2. 19.
  • textsms
[프로젝트] 모킹 클래스의 private 필드에 테스트 데이터 삽입 방법 - `ReflectionTestUtils`

[프로젝트] 모킹 클래스의 private 필드에 테스트 데이터 삽입 방법 - `ReflectionTestUtils`

ReflectionTestUtils는 Spring Framework 에서 제공하는 유틸리티 클래스이다.테스트 시나리오에서 리플렉션(reflection)을 사용하여 객체의 private 필드에 접근private 메서드를 호출할 때 사용한다.일반적으로 이러한 작업은 Java의 접근 제어 규칙 때문에 직접적으로는 할 수 없지만, 리플렉션을 사용하면 가능해진다.일반적으로 모킹된 객체의 경우 별도의 Mockito#when 등을 통하여는 실제 도메인 데이터의 흐름을 테스트 할 수 없기에,즉, 엔티티의 경우 access level 이 PROTECTED 로 보통 설계되어있기에, 엔티티안의 값을 전부 채워넣는 건 시간 낭비이기에 해당 리플렉션을 사용함.해당 테스트용 리플렉션을 사용해야한다.예제import org.spri..

  • format_list_bulleted 자바/리팩토링
  • · 2024. 2. 4.
  • textsms
[프로젝트] 시큐리티 권한 체크 `@PreAuthorize 또는 @Secured`

[프로젝트] 시큐리티 권한 체크 `@PreAuthorize 또는 @Secured`

Spring Security 5.7.11 기준이다.스프링 시큐리티에는 컨트롤러에 역할(Role) 기반 접근 제한을 설정하는 방법에 여러 가지가 있는데,가장 일반적인 방법으로는 @PreAuthorize 또는 @Secured 어노테이션을 사용하는 것이다.해당 어노테이션은 메서드 수준의 보안이 가능하다.@PreAuthorize특정 역할을 가진 사용 역할을 가진 사용자만 메서드를 호출할 수 있도록 제한할 수 있다.@Controller public class SomeController { @PreAuthorize("hasRole('ROLE_ADMIN')") @RequestMapping("/adminOnly") public String adminOnly() { // 관리자만 접근 가능한 로직 return "admi..

  • format_list_bulleted 자바/리팩토링
  • · 2024. 2. 2.
  • textsms
[DDD] 도메인 서비스

[DDD] 도메인 서비스

계산 로직과 도메인 서비스할인 금액 계산과 같이 애그리거트에 포함시키기 애매한 도메인 개념을 구현할 때도메인 서비스를 사용해서 해당 개념을 명시적으로 표현할 수 있음.서비스 응용 영역이 어떤 서비스에 대한 로직을 다루는 반면에 도메인 서비스에서는 도메인 로직과 관련되어 있지만 도메인 안에서 처리하기 더 범위가 넓은 개념의 로직을 해당 도메인 서비스 로 옮긴다.할인 금액 로직을 위한 DiscountCalculationServicepublic class DiscountCalculationService { public Money calculateDiscountAmounts( List orderLines, List coupons, MemberGrade grade) { Money couponDiscount = c..

  • format_list_bulleted 도메인주도개발
  • · 2024. 1. 25.
  • textsms
[DDD] 외부 시스템 연동과 도메인 서비스

[DDD] 외부 시스템 연동과 도메인 서비스

개요외부 시스템이나 타 도메인과의 연동 기능도 도메인 서비스가 될 수 있음.도메인 서비스는 도메인의 로직 관점에서 인터페이스를 작성, 인프라스트럭처 영역에서 구현예시도메인 서비스 인터페이스public interface SurveyPermissionChecker { boolean hasUserCreationPermission(String userId); }응용 서비스public class CreateSurveyService { private SurveyPermissionChecker permissionChecker; public Long createSurvey(CreateSurveyRequest req) { validate(req); // 도메인 서비스를 이용해서 외부 시스템 연동을 표현 if (!perm..

  • format_list_bulleted 도메인주도개발
  • · 2024. 1. 25.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
  • ㅇ
전체 카테고리
  • 분류 전체보기
    • 자바
      • 일반
      • 알고리즘
      • 객사오
      • 스프링입문객체지향
      • 리팩토링
      • 스프링부트3
      • JPA
      • QueryDsl
      • Spring Security
    • 코틀린
      • 코틀린인액션
      • 알고리즘
    • 일 관련 삽질
    • JIRA
    • 도메인주도개발
    • DB
      • Mysql
    • MQ
      • Apache Kafka
    • Docker-Kubernetes
    • GITHUB
    • REST API
    • 리눅스
최근 글
인기 글
최근 댓글
태그
  • #JPA
  • #ddd
  • #알고리즘
  • #자바
  • #객사오
  • #객체지향
  • #QueryDSL
  • #Kotlin
  • #리팩토링
  • #도메인주도개발
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바