본문 바로가기

Programming/삽질일지12

[1/24 TIS] OAuth 2.0 적용에 따른 테스트 코드 수정 OAuth를 적용하면서 Spring Secuirty의 filter chain에 OAuth와 관련한 친구들이 추가되었다. 문제는 이게 테스트 코드에도 영향을 준다는 점이었다. 기존의 API계층에 대한 테스트 코드에는 SecurityAutoConfig 파일을 제외하는 설정이 되어있었다. Spring Security를 테스트하고 싶으면 아예 Integration test를 진행하고, API계층에서는 들어온 DTO가 출력 결과와 같게 출력되는지만 확인하고 싶었기 때문이다. 그런데 OAuth가 추가되면서, 잘 돌아가던 테스트가 돌아가지 않게 되었다. 아래는 에러 코드인데, 너무 길어서 첫 줄만 따왔다. Consider defining a bean of type 'org.springframework.security.. 2024. 1. 25.
[1/19 TIS] 바뀐 Shell, 몰랐던 나, 환경변수 설정에 애먹기 Mac OS Catalina 버전 이후로 기본 Shell이 bash -> zsh로 바뀌었다. 내 맥북은 아마 그 전에 만들어졌나보다. 기본 shell로 bash를 사용하고있었다. 프로젝트에 OAuth 로그인을 구현하려고 하면서, 드디어 환경변수들을 적용할 일이 생겼다. bashrc파일을 마구마구 수정하고 프로젝트를 빌드하는데, 아무리해도 인텔리제이에서 시스템 환경변수를 읽어오지를 못했다. 그러던 중, 아래 문구에서 힌트를 얻었다. The default interactive shell is now zsh. To update your account to use zsh, please run `chsh -s /bin/zsh`. For more details, please visit https://support... 2024. 1. 19.
[12/26 TIS] 혹시 이 글을 보고 계신다면 제발 도와주세요. 문제는 댓글의 API DTO에서 발생했다. 댓글을 등록하는 API DTO는 아래와 같은 구조로 생겼었다. public final class CommentApiDto { @Getter @Builder public final static class Post { private final String content; } } 이 구조는 자유 게시글 등록 API DTO를 고대로 가져온 것이다. 해당 클래스도 살펴보자. public final class FreeBoardApiDto { @Getter @Builder public final static class Post { private final String title; private final String content; } } 필드가 한 개냐, 두 개냐의 차이일.. 2023. 12. 27.
[12/6 TIS] @AuthenticationPrincipal 사용기 - null 해결법 사실 저 애너테이션을 너무너무 써보고 싶었다. 부트캠프에서 프로젝트를 진행할 때부터, 저 애너테이션으로 사용자 정보를 한 번에 가져올 수 있다면 얼마나 좋을까 생각했다. 왜? 나는 안되니까... 정말 많은 글들에서 Spring Security를 적용하면 해당 애너테이션을 통해 사용자 정보를 가져올 수 있다고 한다. 그런데 내가 하면 안됐다. 정확히는 넘어와야 할 객체가 항상 null이었다. 오늘은 이 문제를 해결하고 직접 사용해보자. @PostMapping public ResponseEntity postFreeBoard(@AuthenticationPrincipal Member writer, @RequestBody FreeBoardDto.Post dto) { FreeBoardDto.Response resp.. 2023. 12. 6.
[11/21 TIS] 아니 그니까 그게 왜 비어있는데요; - 메소드 mocking 시 객체를 넘겨주려면 equals()와 hashCode()를 구현하라 컨트롤러 계층의 테스트를 만들면서, 내가 생각한대로 테스트가 작동하지 않았다. 이게 분명히 테스트가 통과되어야 할 것 같이 구현했는데, 자꾸 통과하지 못하는 것이다. 뭐가 문제인지 콘솔을 살펴보니 Response Body가 통째로 비어있었다. 이게 뭔 일인가 싶어 Postman을 켜서 같은 동작을 수행해보았다. 이러면 기능 구현에는 문제가 없어보였다. 테스트 코드에 뭐가 문제인지를 알아야했다. 이럴 때는 2023년에 살고있는게 참 좋다. 구글은 검색하면 다 알려준다. 관련해서 참고한 두 글의 링크를 남겨놓는다. https://velog.io/@devmizz/Spring-WebMvcTest%EC%97%90%EC%84%9C-Response-Body%EA%B0%80-Empty%EC%9D%BC-%EB%95%8C.. 2023. 11. 21.
반응형