Spring

· Spring
들어가며프로젝트를 진행하다 보면 로깅의 중요성을 몸소 느끼게 됩니다. 오디 프로젝트 초기만 해도 모니터링 시스템이 구축되지 않아, QA를 진행하는 데 어려움이 있었습니다. 적절한 로깅은 빠른 문제 해결에 큰 도움이 됩니다. 프로젝트에서 모니터링 시스템을 구축한 경험을 바탕으로, 로깅과 모니터링 구축 방법을 공유하고자 합니다. 스프링 부트 기반 애플리케이션의 로깅 시스템을 처음 다뤄보는 분들께 도움이 되길 바랍니다.로그와 로깅우선 정의부터 하겠습니다. 로그(log)란 시스템이나 애플리케이션에서 발생하는 사건이나 상태를 기록한 데이터를 의미합니다. 로깅(logging)은 로그를 수집하는 행위입니다. 개발에서 로깅은 중요합니다. 특히, 에러 상황을 빠르게 인지하고 디버깅하는데 용이합니다. 이 밖에도 성능 분석..
· Spring
스프링 부트로 웹 애플리케이션을 만들다 보니, controller 또한 테스트의 영역이 되었습니다.아래 코드는 예약을 생성하는 api입니다. controller 로직을 어떻게 테스트할 수 있을까요? 웹 애플리케이션에 대해 알지 못했다면아래 코드처럼, 직접 createReservationByLoginMember 메서드를 호출하여 단위테스트로 구현했을 것 같습니다. 그러나, 이런 방식으로 controller를 테스트하진 않겠죠.왜일까요? 웹 애플리케이션에서 controller의 동작의 핵심은 HTTP 요청을 받아, 관련 모듈에게 협력을 요청하고 응답을 생성하여 다시 반환해 주는 것입니다. 즉, 웹 애플리케이션의 요청과 응답 사이의 상호 작용을 담당합니다. 이 부분까지 테스트를 하려면 어떻게 하면 좋을까요? ..
· Spring
레벨 2가 되어 스프링 프레임워크로 미션을 진행하게 되었습니다.DB 사용하는 테스트를 작성해야 했는데요, 이런 리뷰를 받게 되었습니다.@DirtiesContext를 사용하셨군요.프로젝트가 커지면 어떤 문제가 있을 수 있나요? 테스트 격리를 위해 @DirtiestContext를 사용하는 것이 어떤 문제가 있을까요?문제점을 알아보고, 더 좋은 방안은 없는지 알아보겠습니다. @DirtiestContext우선, @DirtiestContext이 어떤 역할을 하는지 알아보겠습니다.Test annotation which indicates that the ApplicationContext associated with a test isdirty and should therefore be closed and removed..
· Spring
빈으로 등록해서 사용하셨군요. @component 와는 어떤 차이가 있나요 방탈출 예약 관리 미션을 하면서 이런 질문을 받았습니다. 왜 repository에는 @Repository 애너테이션을 붙이는 걸까요? @Component를 붙이면 안 될까요? 어떤 차이가 있는 지 알아보겠습니다. @Repository @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Repository { /** * Alias for {@link Component#value}. */ @AliasFor(annotation = Component.class) String value() default ""..
_JoJo
'Spring' 태그의 글 목록