전체 글119 [Spring Test] private로 선언된 메소드를 어떻게 테스트 할 수 있을까 Today’s Study Topic private로 선언된 메소드를 어떻게 테스트 할 수 있을까. 업무를 하다가 private으로 되어있는 필드에 직접 접근해야하는 상황이 있었다. 당시에는 어쩔 수 없이 바로 public으로 변경했지만,, 찝찝했다. private로 선언된 메소드 또는 필드를 테스트하기 위해 public 으로 변경하는 것이 과연 맞을까? 일반적으로 테스트를 위해서 production 코드의 접근 범위를 넓히는 것이 허용되는 걸까? 클래스의 노출 범위가 커지게 되는 건데,, 그럼 private로 선언된 메소드나 필드를 어떻게 테스트 하지? 그로부터 한달이 지났나. 잊을 듯 말 듯한 시기에 관련 팁을 하나 얻었다. Spring Test Reference를 읽다가 private 필드, 메소드에.. 2022. 1. 23. 스프링 HTTP Message Body 와 Message Converter 2 - RequestMappingHandlerAdapter 📌 RequestMappingHandlerAdapter 동작 방식 ArgumentResolver 애노테이션 기반의 컨트롤러는 엄청나게 다양한 파라미터를 사용할 수 있었다. HttpServletRequest , Model 은 물론이고 @RequestBody HttpEntity 같은 HTTP 메세지를 처리하는 부분까지 큰 유연함을 보장한다. 이렇게 파라미터를 유연하게 처리할 수 있는 이유가 바로 ArgumentResolver 덕분이다. 애노테이션 기반 컨트롤러를 처리하는 RequestMappingHandlerAdapter 가 ArgumentResolver를 호출해서 컨트롤러(핸들러)가 필요로 하는 다양한 파라미터의 값(객체)을 생성한다. 파라미터 값이 모두 준비되면 컨트롤러를 호출하면서 값을 넘겨준다. 스프.. 2021. 12. 18. 스프링 HTTP Message Body 와 Message Converter 1 @Controller에서 String return 하면 ViewResolver로 인해 view로 가고 @RestController에서는 String return 하면 HttpMessageConverter로 인해 body 내용이 전달된다. 기본 문자 처리는 String HttpMessageConverter 기본 객체처리는 MappingJackson2HttpMessageConverter이 기여한다. 이렇게 똑똑하게 움직일 수 있는 이유가 뭘까. 📌 Message Converter 우선, 스프링 MVC는 다음의 경우에 HTTP 메시지 컨버터를 적용한다. HTTP 요청 @RequestBody , HttpEntity(RequestEntity) HTTP 응답 @ResponseBody , HttpEntity(Resp.. 2021. 11. 20. [AWS] API Gateway 📌 API Gateway API gateway는 api 가 지나다니는 통로다. 이게 왜 필요할까? 오늘은 API gateway 가 왜 필요한지에 대해서 공부해보았다. 📍 AWS API Gateway 란 ? API Gateway 는 개발자가 API 를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있는 서비스다. AWS에서 제공하고 있으며, EventBridge, Lambda와 함께 사용할 수 있다. 나는 API Gateway를 이해하기 위해 로튼 토마토(미국 영화 평점 사이트)가 마이크로 서비스 아키텍처로 구현되어있다고 상상했다. 여러 개로 흩어져 있는 서비스 가운데 service 2(토마토TV 서비스의 도메인) 의 모든 기능을 service 1 (토마토 뮤비 서비스의 .. 2021. 11. 15. [AWS] CloudWatch Log Insights Query 벌써 이주 전의 일이지만, 처음 클라우드 워치 로그 인사이트를 이용해보았다. 많은 로그 중에 찾고자 하는 error log 를 필터링해 검색하니 빠른 원인 파악에 도움이 되었다. aws 사이트에 나온 쿼리 사용설명서를 정독해보니 집계 함수도 있었고 우선 내가 잘 써먹어봄직한 몇 가지만 골라 공부해본다. 우선, CloudWatch Log Insights Query 구문은 | (파이프 문자) 로 구분지어 명령을 한 개 이상 포함할 수 있다. 기본적인 명령어는 다음과 같다. fields – 하나 이상의 로그 필드를 검색. (abs, sqrt, strlen, trim 등의 기능도 활용할 수 있다.) display – 쿼리 결과에 표시할 필드를 지정. filter – Boolean 연산자, 비교 연산자 및 정규 .. 2021. 11. 14. [DevOps] Curl / Curl 명령어 CURL 이란? URL 기반으로 데이터를 웹(서버)로 전송하기 위한 명령줄 유틸리티다. 별도의 view나 툴없이 직접 서버에 http request을 날리고 response를 확인할 수 있다. curl 을 사용하면 HTTP, HTTPS, SCP, SFTP 및 FTP 등 다양한 프로토콜과 Proxy, Header, Cookie 등 세부 옵션까지 쉽게 설정할 수 있다. 서버 API test 도구 중 postman 과 같은 역할을 할 수 있다. CURL 설치 현재 대부분의 리눅스 배포 환경에는 curl 패키지가 미리 설치되어 있다. 시스템에 curl 패키지가 설치되어 있는지 확인하려면 콘솔을 열고 curl 을 입력하면 된다. curl이 설치된 경우 시스템에서 컬을 인쇄한다. "자세한 내용을 보려면 'curl .. 2021. 10. 31. 이전 1 ··· 3 4 5 6 7 8 9 ··· 20 다음