Spring week02-WIL#4

송지은·2021년 9월 23일
0

lombok

shift x2해서 plugins 들어가서 lombok install 먼저 하기
lombok을 통해서 CourseClass와 CourseRepo코드를 줄여보자 !

at CourseClass!
@Getter <-게터도 코드 필요 없음~
@NoArgsConstructor <= 파라미터가 없는 생성자 - 기본 생성자

at CourseService!
생성자를 통해서 Repo를 받았던 부분.

public CourseService(CourseRepository courseRepository) {
 	this.courseRepository = courseRepository;
}

근데 이거 필요 없어졌음 !!

그러자
private final CourseRepository courseRepository; 에서 빨간줄 등장

얘는 외치는 고야..
아니 나 코스리포짓 전달 받아야 하눈데;; 어디갔냐;;

final 저부분은 이 서비스에서 꼭 필요 한 거라고 !
그래서 등장한 롬복 어노테이션 ㅋ

@RequiredArgsConstructor <-필요한 생성자 여기로 보충해줌ㅎㅎ
롬복 쵝오~~

이 부분이 생성자 부분인데 그러면 기본 생성자는 어디로 간고얍?

DTO

Data Transfer Object
데이터를 주고 받을때는 새로 클래스 만들어서 하자!기존의 클래스 쓰지말자

일단 Service에서 Update할때 !

코스 클래스는 저장할때나 클라이언트에게 보여줄때 쓰는 건데..

다른 사람이 잘 못 건들이면 크나 큰 오류를 범하기 쉽다는 점 !
update에서 변경용으로 사용하는것은 좋지 않아요.

domain에다가 CourseRequestDto생성!
코스 정보관련 필요한 부분들은 DTO를 쓰겠다!!
즉 . 얘는 코스에 관한 정보를 물고 다니는 녀석이란 말이다
course class를 직접 쓰지 않겠다는 말이라구욧

course가 가진 녀석 일단

멤버 입력
private String title;
private String tutor;

그 다음에 private이니까 @Getter @Setter설정해준다

그 다음에 final도 각각 넣어준다.
why?private 에 final도 생성하면 필요한 생성자가 만들어진다. (what?)

  • 오류 나면 @RequiredArgsConstructor
@Setter
@Getter
@RequiredArgsConstructor
public class CourseRequestDto {

	private final String title;
    private final String tutor;

}

자 이제 파일을 살짝살짝씩 클래스를 썼던 곳을 바꿔보장

Repo first!

@Transactionl
public Long update(Long id, Course course CourseRequestDto requestDto){

Course course1 = courseRepository.findById(id).onElseThrow(

() -> new IllegalArgumentException("해당 아이디가 존재하지 않습니다.")

);
course1.update(requestDto);
return course1.getId();

그 다음에 CourseClass

update Method 확인 해보자

public void update(Course course CourseRequestDto requestDto){

this.title = requestDto.getTitle();
this.tutor = requestDto.getTutor();

}

자 lombok 과 Dto에 대해서 다시 복습 해보았고
처음에는 Dto에 개념이 많이 안잡혔었는데
다시 들어 보니까 이제 Dto를 어디에다가 넣으면 좋을 지 감이 살짝 온다 ㅎㅎ

profile
꧁⍢⃝꧂ All about codes in my brain ꧁⍢⃝꧂

0개의 댓글