Swimming/Think11 Spring Security 적용 이후 API 계층 테스트 방법에 대한 생각 Spring Security를 적용하고 API계층을 테스트하기가 한층 어려워졌다. Spring Security 프레임워크를 사용하기 시작하는 시점부터, API 계층은 해당 라이브러리와 아주 강하게 결합된다. Security 설정을 어느 정도 마치고 테스트에 적용하니, 내가 작성한 Configuration 파일이 적용되지 않았다. 예를 들어, 사용자의 인증 정보가 필요하지 않은 메서드에도 @WithAnonymousUser가 적용되지 않거나, disable한 csrf를 요구했다. 내가 생각한데로 진행이 되지 않아 답답했다. 아마 이렇게 된 이유는 @WebMvcTest를 이용하여 단위 테스트 형태로 테스트 코드를 작성한 탓이라 생각되어 @SpringBootTest로 바꾸고 테스트를 진행해보니 내가 생각한 데로.. 2023. 12. 5. 나는 왜 테스트 코드 작성을 어려워 했는가? 테스트 코드를 작성하는 것의 중요도는 여러 자료들에서 찾아볼 수 있다. 나 역시 개인적으로 테스트 코드를 왜 작성해야하는지, TDD를 공부해야 하는 이유는 무엇인지에 대해 생각했던 경험이 있다. 최근에는 테스트 코드 작성에 어려움을 겪어 이동욱님의 블로그 글들을 참고하기도 하고, 인프랩이나 카카오의 기술 블로그 글 들을 읽어보았다. 그리고 여러 글들을 참고하고 영상들을 본 끝에, 내가 왜 테스트 코드를 작성하는데 어려움을 겪고 있었는지를 어렴풋이나마 이해할 수 있게 되었고, 이를 위해 기록하고자 한다. 나의 이해를 가장 크게 도운 자료는 권용근님의 스프링캠프 - 무엇을 테스트 할 것인가? 어떻게 테스트 할 것인가? 발표 영상이었다. 테스트 코드를 작성하면서 내가 겪었던 가장 큰 어려움은 '이렇게 짤거면 .. 2023. 8. 23. 나는 왜 알고리즘 문제를 어려워하는가? 알고리즘 문제를 풀고 생각난 점을 적어보았습니다. 해당 문제에 대한 삽질 및 풀이의 과정은 링크에서 확인하실 수 있습니다. 먼저 해당 방법을 공유해 주신 분에게 큰 감사의 말씀을 드린다. 정말 머리를 망치로 한 대 맞은 것 같았다. 너무 쉽게 해결할 수 있는 문제였다. 다르게 생각해보면, 나는 왜 이렇게 쉬운 방법을 생각하지 못했을까? 라는 생각이 들었다. 두 개의 수를 비교할 때, 왜 여러 가지 경우의 수를 전부 처리하려고 애썼을까 했다. 결국 핵심은 두 수의 우선순위 비교였는데, 그 부분을 계속 놓치고 있었다. 보통 내가 알고리즘 문제 풀이에 실패할 때는 위와 같은 경우다. 문제의 본질을 파악하지 못하고 너무 저차원적으로 문제에 접근한다. 이런 문제는 차후에 어플리케이션을 설계하고 프로그래밍을 진행하.. 2023. 5. 31. 나는 왜 Mapper를 사용하지 않는가? 부트캠프 내에서 Dto를 엔티티 객체로 전환하는 방법 중 하나로 mapper를 사용하는 방식을 배웠다. Dto를 객체로 '변환'하는 역할은 어떤 객체가 해내야만 하는 일이었고, 부트캠프에서는 이 방법 중 하나인 mapper를 가르쳐주며, 상당히 간편하게 사용할 수 있음을 말해주었다. 실제로 그랬다. 애너테이션을 붙이고 JPA를 사용하듯이 메서드 이름만 작성해주는 인터페이스를 사용하면 간단하게 매핑이 가능했다. 문제는 복잡한 매핑에서 일어났다. JPA에서도 복잡한 쿼리는 쿼리 애너테이션을 붙이고 직접 작성하듯이, mapper 에서도 복잡한 매핑은 defualt 메서드를 만들고 내부적으로 매핑의 과정을 거쳐야 했다. 그런데 생각해보니 이게 정말 '매핑'이 맞나? 하는 생각이 들었다. mapping이란 무엇인.. 2023. 5. 31. 죽이되든 밥이되든 사람들은 모르는 것을 처음 접할 때 두려움을 느낀다. 그것이 자신의 삶과 깊이 연관되어있을수록 더욱 그렇다. 그렇기 때문에 그것을 최대한 알고 접하려고 노력한다. 관련된 자료를 찾아보거나 사료를 살펴보며 자신의 이해 정도를 높이고자 한다. 나 역시 스프링을 처음 접하면서 스프링을 최대한 알고 스프링을 사용하려고 생각했다. 그러나 개발은 바다와 같아서. 알면 알수록 새로운 것들이 계속해서 나타나고, 내가 안다고 생각했던 것들 역시 깊은 이해를 수반하지 않은 경우가 많았다. 머리로는 알고 있었다. 우리가 자동차를 탈 때는 운전을 위한 최소한의 정보와 자동차를 타는 이유, 그리고 목적만 알고 탈 뿐이다. 자동차가 어떻게 작동하고 어떻게 만들어졌는지까지 알고 운전을 하는 사람은 없다. 스프링도 마찬가지다. 스프.. 2023. 4. 20. 이전 1 2 3 다음 반응형