본문 바로가기

일상

[멋쟁이 사자처럼] 4주차 코드리뷰

4주차부터는 web 페이지가 아닌 API를 구현을 했다.

 

 

 

 

1. API 요청

 

 

API를 호출을 할때 평소에는 RestTemplate를 이용하여 많이 사용해봤다.

스프링에서 기본적으로 제공하는 것이고 방법도 쉽고 익숙한것이기 때문이다.

 

하지만, Header 부터해서 httpEntity 까지 소스 코드가 너무 많이 들어간다는 단점이 있다.

더 좋은 방법으로 FeignClient 을 사용하였다.

 

 

gradle에 openfeign을 추가하여 사용하였으며, 구현했던 방식은 밑에와 같았다.

 

 

inerface 위에 url 및 configuration을 넣어주고 파라미터는 @RequestHeader나 @SpringQueryMap 등으로 데이터를 넣을 수 있다.

 

하지만 여기서도 리뷰로 알려주신 부분이 있다.

@SpringQueryMap으로 파라미터를 줄 경우 어떤 것을 넣었는지 코드를 보고 판단하기 힘들다.

그렇기 때문에 @RequestParam으로 일일이 주는 것이 더 좋은 방법이라고 알려주었다.

 

 

2. Authorization 필터링

 

 

"Bearer key값" 형식으로 오는것을 key값만 받고 싶을 때 나는 replace 와 trim을 사용했다.

여기서 문제가 Bearer 말고도 Bearerey 값은 키가 들어오면 ery 값이 남아 키를 사용하면 에러가 나오게 된다.

 

여기서 저는 Split(" ")을 이용하여 공백 구분으로 배열을 만들어 체크하는 방식으로 수정 하였다.

 

 

3. 객체 감지

 

 

JPA에서는 트랜잭션이 끝날 시점에서 detch 되지 않았을 떄 상태가 변경된것을 update 치는 것이 있어 setter를 대도록 쓰지 말라고 하는 것이 이 이유에 있다는 것을 아게 되었다.

 

 

 

마무리

 

4주차는 전부 구현을 하였으나, 10분 지각을 하고 말았다.

인텔리제이로 커밋을 시도하는데 커밋이 계속 돌기만 하고 노트북이 불난듯 팬쿨러가 엄청 돌아가 터미널에 명령어로 git add, git commit 으로 하여서 아쉬운점이 있다.

알고 보니 3주차때부터 인테리제이에 소나린트 라는 플러그인을 설치를 했는데, 인텔리제이가 너무 무거워 내 맥북에어에서는 무겁게 느껴진것같았다.

어쨌든 내 실수로 이루어진 것이기때문에 후회는 없다. 노트북 바꿀 변명만 생긴 날이였던것같았다.