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

현실을 넘어

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

[리팩토링] DTO 가 너무 분화될 것 같은 경우 어떻게 해야할까?

공통 API 와 특수 API 분리기본적인 공통 API 인 경우 가장 많이 사용되는 필드만 포함시키고,특수한 경우 별도의 API 와 DTO 를 제공하는 것이 좋다고 한다.// 공통 API용 DTO public class UserCommonDTO { private final String username; private final int age; // 생성자, getter 등 }// 특수한 경우를 위한 별도의 API용 DTO public class UserSpecialDTO extends UserCommonDTO { private final String additionalInfo; // 생성자, getter 등 } Uploaded by N2T

  • format_list_bulleted 자바/리팩토링
  • · 2023. 9. 21.
  • textsms
[리팩토링] DTO 에서 VO 간의 전환 메서드를 편하게 사용하려면? - MapStruct

[리팩토링] DTO 에서 VO 간의 전환 메서드를 편하게 사용하려면? - MapStruct

MapStruct 사용라이브러리에서 별도 mapStruct 를 사용도전빈 정의 관련 오류 발생Consider defining a bean of type in your configuration.해결@Mapper(componentModel = "spring") public interface BoardConfigConverter { // 매핑 메서드 }componentModel 추가하여 Spring 의 빈으로 등록되게 해야한다.잘 적용된 이후 gradle 에서 classes 명령어를 돌려보면이 생성되며, = boardConfigConverter.toEntity(boardConfigDto);DTO를 정상적으로 VO 로 변환할 수 있다. (향후 Jpa 도입까지 생각하여 toEntity 로 정의함) Uploaded..

  • format_list_bulleted 자바/리팩토링
  • · 2023. 9. 21.
  • textsms

[리팩토링] FM 메서드 → private 생성자 전략

리팩토링 진행시 별도 생성자를 만들어야하는 경우가 발생함.생성자는 최대한 작을 수록 좋은 건 사실이다.최대한 입구가 좁아야 유효성 검사 등의 로직을 한 곳에서 집중할 수 있기 때문이다.하지만!자바 + 스프링에서는 하이버네이트나 javax 에서 제공하는 필드에 대한 유효성 검사 어노테이션이 존재한다.이를 통해 생성자라는 입구가 많아 져도 제어가 가능하지 않을까 싶다.그래서 별도의 private 생성자를 만들고 FM 메서드로 해당 생성자로 이어지도록 설정하려고했다.private 상품설정(@NotNull String 종류아이디) { this.종류아이디= 종류아이디; } public static 상품설정 from(@NotNull String 종류아이디) { return new BoardConfig(종류아이디);..

  • format_list_bulleted 자바/리팩토링
  • · 2023. 9. 21.
  • textsms
[6단원]디자인 패턴 - 싱글턴 패턴 (Singleton Pattern)

[6단원]디자인 패턴 - 싱글턴 패턴 (Singleton Pattern)

싱글톤 패턴객체의 인스턴스를 하나만 생성하도록 하는 설계 패턴특정 클래스의 인스턴스가 프로젝트 전반에 걸쳐 하나만 존재 + 이를 여러 곳에서 공유하여 사용하고 싶은 경우 사용자원의 중복을 피하기 위해 사용사용처DB 커넥션 풀스레드 풀시스템 설정 객체필요성시스템의 설정 정보를 저장하는 객체가 여러 개 생성 시, 각 설정 정보 간의 불일치 발생가능성자원의 낭비 방지구현법생성자의 private 접근 제어외부에서 인스턴스를 임의로 생성할 수 없어야 함.정적 참조 변수해당 클래스 인스턴스 참조가능한 private 정적 참조 변수가 필요함.해당 변수로 생성된 유일한 인스턴스 참조함정적 메서드외부에서 해당 클래스의 인스턴스를 얻을 수 있는 정적 메서드가 필요함인스턴스가 생성 X → 해당 메서드 내에서 인스턴스 생성 ..

  • format_list_bulleted 자바/스프링입문객체지향
  • · 2023. 9. 21.
  • textsms

[6단원]디자인 패턴 - 템플릿 메서드 패턴 ( Template Method Pattern)

템플릿 메서드 패턴알고리즘 구조를 메서드에 정의하고, 그 일부 단계를 서브 클래스에서 구현할 수 있도록 하는 디자인 패턴코드예시적용전 package org.example.templateMethodPattern; public class Dog { public void playWithOwner() { System.out.println("귀염둥이 이리온..."); System.out.println("멍!멍!"); System.out.println("꼬리 살랑 살랑~"); System.out.println("잘했어"); } }package org.example.templateMethodPattern; public class Cat { public void playWithOwner() { System.out.pr..

  • format_list_bulleted 자바/스프링입문객체지향
  • · 2023. 9. 21.
  • textsms

[6단원]디자인 패턴 - 개요

요리와 OOP요리프로그래밍요리도구객체 지향의 4대 원칙(캡! 상추다)요리도구 사용법설계 원칙 ( SOLID )레시피디자인 패턴디자인 패턴의 중요성프로그래밍에서 반복적으로 나타나는 문제를 해결하기 위한 베스트 프랙티스객체 지향의 특성과 설계 원칙 기반 → 다양한 개발 문제 효과적으로 해결가능스프링과 디자인 패턴객체 지향의 원칙 극대화한 프레임워크스프링에도 디자인패턴이 녹아들어가 있음.디자인 패턴 구현 방식3가지 특성을 주로 이용함상속 ( extends )인터페이스 ( interface / implements )합성 ( 객체를 속성으로 사용 ) Uploaded by N2T

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

티스토리툴바