현재 프로젝트에서는 아무것도 응답할 게 없는 경우에 EmptyResponse를 사용한다.
(Unit 을 응답하는게 가장 좋지만, 프론트의 요청사항으로 json 형식으로 응답하기 위함)
Service에서 return EmptyResponse
이렇게 응답하는데 여기서 문제가 발생한 것 같다.
object EmptyResponse
로 둔 상황. 근데 intellij에서 gradle build할때는 문제가 없었는데, github에서 pr하려고 build를 돌릴때 실패한다.
file:///home/....... Expression 'EmptyResponse' of type 'EmptyResponse' cannot be invoked as a function. The function 'invoke()' is not found
gpt에 질문하니까
이 에러 메시지는 EmptyResponse라는 객체를 함수처럼 호출하려고 했을 때 발생합니다. 즉, EmptyResponse()와 같은 형태로 사용했지만, EmptyResponse는 함수가 아니기 때문에 호출할 수 없다는 의미입니다.
라고 하는데, 나는 return 할 때 EmptyResponse()
가 아닌 EmptyResponse
로 했는데, 좀 다르긴 했다.
혹시나 해서 decompile도 비교해봤다.
invoke() 없을 때 decompile
invoke() 있을 때 decompile
decompile을 했을 때도 새로 추가한 invoke()만 추가되고 다른 변경된게 없어서 더 모르겠다.
아무튼 invoke()를 추가했을 때 build는 성공적으로 됐다.
그래서 혹시나 객체 내에 선언한게 아무것도 없어서 그런가해서 밑에 처럼 변수를 추가해서 build 테스트를 다시 해봤는데, 동일한 invoke() not found 에러가 발생했다. 변수나 메소드가 없는게 문제는 아닌 것 같고, object 자체를 응답으로 사용하기 위해서는 invoke를 오버로딩 해야하는 것 같다.