본문 바로가기
728x90

전체 글69

Spring AOP - Advice, Pointcut 이전 포스트에서는 AOP의 개념과 동작 원리에 대해 알아보았습니다. 2023.08.05 - [Spring] - Spring AOP Spring AOP 이번 포스트에서는 Spring의 3대 요소 중 하나인 Spring AOP에 대해서 알아보도록 하겠습니다. AOP(Aspect Oriented Programming) 일단 AOP가 뭔지 알아보기 전에 Asepect가 뭔지에 대해서 간단하게 알아보도록 하 rbsks.tistory.com 이번 포스트에서는 Spring AOP의 Advice와 Pointcut에 대해서 알아보도록 하겠습니다. Advice 어드바이스란 대상 메서드에 제공할 부가 기능 로직을 담은 모듈입니다. Advice의 종류 @Around 대상 메소드(조인 포인트) 호출 전후에 수행되며 예외 전환,.. 2023. 8. 6.
Spring AOP 이번 포스트에서는 Spring의 3대 요소 중 하나인 Spring AOP에 대해서 알아보도록 하겠습니다. AOP(Aspect Oriented Programming) 일단 AOP가 뭔지 알아보기 전에 Asepect가 뭔지에 대해서 간단하게 알아보도록 하겠습니다. Aspect란 애플리케이션의 핵심 기능을 담고 있지는 않지만, 애플리케이션을 구성하는 중요한 한 가지 요소이면서 핵심 기능에 부가되어 의미를 갖는 특별한 모듈을 가르킵니다. Aspect는 부가 기능을 정의한 코드인 어드바이스와 어드바이스를 어디에 적용할지 결정하는 포인트 컷을 함께 갖고 있으며, 이 둘을 합친 개념의 어드바이저는 단순한 형태의 Aspect라고 볼 수 있습니다. Aspect를 간단하게 알아보았으니 이제 AOP에 대해서 알아보도록 하겠.. 2023. 8. 5.
스프링 부트로 메일 발송 기능 구현하기 이번에 작은 쇼핑몰 개발을 하고 있는데 메일 발송 기능을 구현하면서 제가 고민한 부분과 이 고민들을 어떻게 해결하였는지 공유하기 위해 글을 적어봅니다. 요구사항 중 유저가 상품을 결제하게 되면 구매한 유저와 관리자에게 주문 정보를 메일로 보내달라는 요구사항이 있었습니다. 처음에는 메일 서버에 결제 메일 발송에 관한 API를 하나 만들어서 요청 바디에 결제 메일 발송에 관련된 데이터를 받은 후 메일 템플릿을 생성해서 구매한 유저와 관리자에게 메일 발송을 해주면 되겠네!!라고 생각하였지만 다시 한번 곰곰이 생각을 해보니 이렇게 결제 메일에만 종속된 API를 만들 경우 추후에 회원가입시 메일을 발송해달라는 요청이 오면 또 회원가입시 메일 요청을 처리하는 API를 따로 만들어야 하는 상황이 오겠네... 라는 문.. 2023. 6. 24.
필터에서 응답 데이터 가공 이번에 저희 팀이 개발한 기업용 해외송금 서비스에 기능 추가 건이 생기면서 새로운 외부 API와 연동을 하게 되었는데 연동 조건에 서로 요청과 응답에 signature를 추가하고 검증해야 하는 조건이 있었습니다. 저는 요청 헤더의 signature 복호화 및 검증과 응답 시 헤더에 signature 추가를 필터에서 하는 것이 적합하다고 판단하였고 이 역할을 하는 필터의 개발을 맡게 되었습니다. (밑의 코드들은 회사에서 작성한 코드를 공개할 수 없기 때문에 비슷한 역할을 하는 필터를 따로 만든 예제 코드입니다. 또한 이번 포스트에서는 암호화 복호화 방법에 대해서는 다루지 않습니다.) Signature 검증 및 생성을 담당하는 필터 SecurerFilter Code @Slf4j @RequiredArgsCon.. 2023. 4. 15.
컨트롤러 단위 테스트시 모든 요청에 대한 공통 속성 적용하기 이번에 사내에서 Spring REST Doc을 이용하여 API 문서화 작업을 진행 중 컨트롤러 테스트 코드에 공통적으로 적용되는 속성에 대한 코드가 반복적으로 나타나는 부분을 리팩토링 한 내용을 공유할까 합니다. 밑의 코드는 테스트 코드 작성 시 코드마다 반복되는 부분을 나타내는 코드입니다. (회사 api의 상세 주소는 공개할 수 없기 때문에 주소는 간략하게 작성하였습니다.) 코드를 보시면 contextPath, characterEncoding, contentType이 계속 반복되는 것을 볼 수 있습니다. 처음에는 대수롭지 않게 넘어갔는데 테스트 코드가 점점 많아질수록 저 코드를 치는 것조차 조금씩 귀찮아지더라고요... @WebMvcTest( controllers = CommonApiControllerT.. 2023. 4. 10.
예외와 예외 처리 방법 예외란? 컴퓨터 프로그램에서 예외란, 프로그램이 실행 중에 발생한 예기치 않은 오류를 말합니다. 이러한 예외 상황을 처리하지 않으면 프로그램이 비정상적으로 종료될 수 있기 때문에 모든 예외는 적절하게 복구되든지 아니면 작업을 중단시키고 운영자 또는 개발자에게 통보하고 서비스를 이용하는 사용자에게 적절한 안내 메세지를 제공하는 등의 처리를 반드시 해줘야 합니다. 예외의 종류 이번 포스트에서는 Error에 대한 설명은 제외하겠습니다. Exception (Checked Exception) Exception 클래스와 이를 상속하고 Runtime Exception을 상속하지 않은 서브 클래스로 정의되는 예외입니다. 이 예외는 컴파일 시점에 예외 처리를 하는지 검사하기 때문에 개발자가 예외 처리를 강제하는 예외입니.. 2023. 4. 9.
728x90