목록삽질 기록 (4)
개발스토리
API를 만들어 내면서 단 건 조회 시 데이터가 없다면 response를 빈 객체로 내려주기로 했다. 아래와 같은 상황을 예시로 두겠다. 한 명의 유저를 조회하는 GET test.com/users/{userId}라는 API가 있다고 보자. 성공적으로 조회가 완료가 됐다면, 아래와 같이 response를 보내주었다. { "success": true, "response": { "id": 1, "nickname": "king" }, "error": null } 하지만, GET test.com/users/100 즉, 100번의 유저를 조회하려하는 데 100번의 유저가 없다면...?? { "success": true, "response": { "id": null, "nickname": null }, "error"..
JPA를 사용하고 테스트 코드 작성하는 것을 연습하고 있는데 이런 에러가 떴다..! 에러 로그를 살펴보면 적어도 하나의 jpa metamodel이 필요한 데 없어서 그런것 같다. 이게 무슨 뜻인지 천천히 생각해봤다. 우선 JPA에서는 엔티티들의 생성 및 수정 시간을 자동으로 관리해주는 Auditing 기능이 있다. 나도 이기능을 사용하기 위해 아래와 같은 코드를 작성해둔 상태였다. 이렇게 @EnableJpaAuditing 어노테이션을 테스트들의 가장 기본이 되는 Application 클래스에 등록을 해두면 모든 테스트들이 항상 JPA 관련 Bean들을 필요로 하는 상태가 된다. 즉, @EnableJpaAuditing을 사용하기 위해서는 최소 하나의 @Entity 클래스가 필요하다는 뜻이다. 하지만, 테스..
스프링 시큐리티를 써서 소셜 로그인을 적용하다가 만난 에러이다... 우선 에러 로그를 그대로 번역하자면 아래와 같다. "DefaultSerializer에는 직렬화 가능한 페이로드가 필요하지만 [...] 유형의 개체를 수신했습니다" 우선 직렬화 가능한 페이로드가 필요한 것 같다. [...]에 내가 사용한 dto 폴더를 나타내 주는데 그 dto 파일에서 직렬화를 적용시켜주어야 한다는 의미 같다. 그래서 직렬화에 대해서 또 어떻게 적용할 지 알아보았다. 직렬화란? ■ 자바에서 직렬화란 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트 형태로 데이터 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)를 아우른다. ■ 시스템적으로는, J..
스프링부트를 시작하고 얼마 안되고 나서.. 오류에 직면했다..! 컨트롤러에서 서비스를 주입 받아야 하는데 암만 해도 저 빨간색이 사라지지 않는 것.... 디렉토리가 이상한가 해서 살펴봐도 이건 아닌 것 같고... 검색을 해보니 인텔리제이 버그일 수도 있다 하는데 그건 정상 실행 됐을 때고.... 자꾸 삽질을 하고 있는 것 같아서 스트레칭 한 번 하고 에러 로그를 찬찬히 읽어봤다. 아까는 보이지 않던 친절한 로그를 발견....!! 이게 서비스 자체가 bean에 등록이 안되어 있는 것 같아서 서비스 파일을 천천히 읽어보니... 머가 상당히 이질감이........ 서비스 어노테이션이 없다....... 빨간색이 사라졌다... 어노테이션이 아직 익숙치 않고, 에러 로그를 제대로 안읽는 습관이 아직 남아있다...!..