프로젝트 빌드 도중 오류가 발생하였다.
빌드한 이유는 next.js 빌드하는 방식을 알아보려 한 것이었는데,
예상치 못한 오류가 나서 당황하였다.
프로젝트 빌드에 실패하면서, 느꼈던 점이나 잘못된 방향들에 대해 정리하고자 한다.
내가 만든 함수에 return 타입이 없다는 것이었다.
컴파일 시에 문제를 삼지 않았다.
(설정이 그렇게 되어있나보다.)
그래서 가볍게 생각했었는데 찾아보니 props 타입을 지정해주는 것과 마찬가지로
output도 중요하다고 느꼈다.
그래서 앞으로 리턴 값도 지정해주는 방법에 대해서 추후 공부할 생각이다.
export async function fetchUserData(accessToken: string): Promise<User> {
//생략
} catch (error) {
// 에러 처리
console.log(error);
throw error; // 필요에 따라 예외를 다시 던지거나 특정 값을 반환할 수 있습니다.
}
}
promise를 추가해주었다.
그리고 실패했을 때 리턴값도 지정해줘야 하는 것이 아닌가? 의문이 들었다.
찾아보니 catch가 발생하고 error를 던져주니 알아서 인식한다고 한다.
그리고 response로 리턴할 때는,
Promise<Response>
으로 이와 같이 처리해주었다.
공부할 때, 하면서 익히는 것이 좋다고 생각하고,
빠르게 익히는 장점이 있다고 생각한다.
더 좋은 방법은 하면서 익히고, 전체적인 흐름이나 개념들도 더 깊이 공부해서
큰 그림에 대한 이해가 필요하다고 느꼈다.
그래서 4분기때 ts강의를 보면서 개념을 더 깊게 읽힐 예정이다.
또한 위처럼 api를 관리하는 함수를 작성할 때,
accessToken이 있는 것과 없는 것이 로직의 차이가 있었고,
결과값을 리턴해주는 것과 아닌 것의 차이가 있었는데,
이를 더 명확히 구분해주는 방식으로 코딩하면 더 좋을거 같다.
확인해보니 get_detail의 리턴값을 잘못주었다.
나는 detail이 들어가는 부분이 2군데가 있는데 시간이 지나니 어떤 부분인지 직접 디버깅을 해보아야 알 수 있었다.
시간이 지나도 내가 작성한 함수명의 의미를 유추할 수 있어야하는데,
함수명 잘못쓴게 첫번째 문제라고 생각하고,
주석으로 +a로 해줘도 좋을 것 같았다.
요즘은 예전과 다르게 네이밍을 길더라도 구체적으로 작성하는 것을 선호한다.
그래서 다시 작성한다면 get_editor_info_detail 이런 느낌으로 작성할 것 같다.
next.js에서 yarn build를 통해 내 코드의 문제점을 살펴보았다.
문제가 나오는 것보다, 앞으로 추후 이 문제가 나오는 것을 막는게 더 중요하다고 생각하였고, 그에 대한 대비책을 잘 세워서 오류 없는 개발자에 가까워지고 싶다.
저도 함수명 대충 지었을 때 나중가서 보니까 헷갈리더라구요... 작명 어렵습네다ㅠ ㅋㅋ