스프링 프로젝트 기억해야 할 점들

Kim Dong Kyun·2022년 12월 19일
2

Weekly I Learned

목록 보기
6/8

개요

스프링 개인 과제를 하면서 신경써야 할 부분들을 적어놓은 부분입니다.


1. @어노테이션을 신경쓰자!

1-1 @Controller, @RestController

@Controller 부분은 View만 반환합니다(@ResponseBody 어노테이션을 직접 달면, Data를 반환 가능합니다)

@RestController 부분은 View, Data 모두 반환합니다. 거의 대부분 프로젝트에서 @RestController 부분으로 퉁쳐서 사용하는 듯 합니다...

1-2 @NoArgsConstructer, @RequiredArgsConstructer

@NoArgsConstructer 는 기본 생성자를 대신 생성해줍니다.

@RequiredArgsConstructer 는 주로 final이 있는 부분의 생성자를 생성해줍니다. 의존성 주입은 보통 private final~ 의 형식으로 진행되기 때문에, 의존성 주입을 사용 한다면 @Required~ 어노테이션을 사용해줘야 합니다.

1-3 @ManyToOne / @OneToMany

@ManyToOne 은 다대 일 관계 형성에 사용됩니다. 테이블 간의 foreign key를 이용한 연결을 위해 @JoinToColumn 어노테이션을 보통 함께 사용합니다. 보통


위와 같은 형식으로 사용합니다. 부모 클래스의 ID부분을 참조하며, 따로 설정해주지 않으면 부모 엔티티의 "이름_ID" 와 같은 형식으로 기본 설정됩니다.

@OneToMany는 반대 방향에서 연결을 위해 사용합니다. 즉 부모 객체가 자식 객체와 연결됨을 알려주기 위해 사용합니다.

Many이기 때문에 보통 List등과 같은 형식으로 사용합니다.

2. 리턴 타입을 신경쓰자!

여기서 왜 String타입을 리턴 타입으로 했을까요? 왜냐면 이 프로젝트는 연습용이기 때문입니다.

여기서 수정 완료. 수정 실패. 와 같은 형식으로 한 눈에 보기 쉽게 리턴 하기 위해서 이렇게 사용했습니다. 그러나 리턴 타입은 꼼꼼히 살펴야 합니다.

3. JWT 유틸에서 어드민/일반유저 정리, 즉 인가를 일단은 이렇게 했습니다.

조금 비효율적이라고 생각합니다. 앞으로 업데이트 할 때에 어드민용 로직을 새로 만들던지 해야 할 듯 합니다.


과제 리뷰와 한주 정리

너무 클론 코딩에 의존한 것이 아닌가 싶다. 수업 내용대로 배우고, 실습하다 보니 코드리뷰 시간에 조금 비효율적인 부분들이 드러났다. templates를 신경쓰지 않고 postman으로 주는 것을 생각해야 할듯? 더하여 Entity에서 체크해야 하는 부분들을 남겨두고, Service단에서 단순 비교를 피하는 걸 노력해보자.

이번 한 주는 정신없이 개인 과제 하고, 배우고 한 듯 하다. 어렵다 어려워...

2개의 댓글

comment-user-thumbnail
2022년 12월 20일

이렇게 잘 정리해두셨으니 다시 읽어보실 때 더 기억이 잘 날 것 같습니다!
덕분에 저도 배워갑니다 : >

1개의 답글