FrameWork (총 119개) 썸네일형 리스트형 Spring Security - Spring MVC Test하기(@WithMockUser, form login 리다이렉션 해결) Sprint security MVC Test Spring MVC를 이용해 웹을 개발하면, 인증 및 허가를 편리하게 다루기 위해 Spring Security를 사용합니다. 또한 어플리케이션을 개발하다보면 필수적으로 테스트코드를 작성하게 됩니다. 하지만, 이때 Security Form Login이 적용되어 있다면, 자동으로 유저를 로그인 페이지로 리다이렉션 시키키 때문에, 우리가 원하는 테스트를 진행하기 어렵습니다. Spring Security 사용시 MVC Test하기 1. Test Project 생성 완성된 프로젝트 구조입니다. 아래에서 각각의 파일들을 자세히 알려드리겠습니다. build.gradle dependencies { implementation 'org.springframework.boot:sp.. Spring Boot - REST API 인증 - 2 (Refresh Token이란?) jwttoken 이번 포스팅에서는, JWT Token을 이용한 REST API 인증 후, Token이 만료된 경우의 처리 방법에 대해 알아보겠습니다. REST API 인증 1 - https://galid1.tistory.com/638위의 링크를 통해 REST API 인증 과정을 숙지하고 오시면 더욱 이해가 쉽습니다. 1. Refresh Token을 사용하지 않는 경우우선 인증 과정은 위와 같습니다. 토큰이 만료되었다면?토큰이 만료되었다면, 사용자의 로그인 세션이 만료된것과 마찬가지이므로, 로그인을 재차 시도해야합니다. 위의 방법은 잘못 되었다why ?이 방법은 토큰이 만료될때마다 사용자가 다시 로그인을 해야합니다. 그러나, 사용자가 로그인을 할때에는 사용자의 아이디 비밀번호가 이용되는데, 이정보는 네트워.. Spring Boot - 개발자를 기억하게하지 말자 (파일리스트와 데이터리스트 요청을 하나의 객체로 바인딩하기 : @ModelAttribute) file과 data를 객체로 바인딩하기 Spring을 이용해 Rest API 개발중, file과 data를 같이 업로드해야 하는 상황이 있었습니다. file과 data는 논리적으로 연관관계가 있었으며, 이를 List형태로 전송하는 경우, 각각의 인덱스 요소가 논리적으로 같은 데이터임을 기억해야하는 상황이었습니다.이때 이들을 하나의 객체로 맵핑하여 이 조건을 개발자가 기억하지 않아도 되도록 변경하였습니다. 1. 시나리오예를들어, 어떤 팀에 멤버를 추가하는 상황에서 멤버의 프로필 정보와, 사진을 같이 받아야 한다고 할때. 클라이언트는, 서버에게 사용자의 프로필정보(data)와 사진(file)을 함께 전송해야 합니다. 1.1 중요 사항이때, 멤버의 사진과 프로필 정보는, 논리적으로 연.. Spring - AOP를 이용해 도메인과 Mobile Push 알림 기능을 분리하자 push aop 이번 포스팅에서는, App Server에서 도메인 기능과 완전히 분리하여, Push 알림 요청 기능을 확장한 과정을 기술하려고 합니다. 도메인과 Push 알림을 분리하자Push 알림은 도메인과 완전히 상관이 없는 개념입니다. 따라서, Push 알림이 도메인 로직에 의존해서도, 도메인 로직이 Push 알림에 의존해서도 안됩니다. 1. 기존의 아키텍쳐기존의 아키텍쳐는 DDD의 Layered Architecture를 이용해 설계가 되어있었습니다.각 계층은 아래로의 의존만을 가지며, infra(저수준 모듈의 구현) 계층의 필요한 구현은 DIP를 이용해 Application, Domain이 infra(저수준 모듈)에 의존하는 것이 아니라, infra가 고수준 모듈에 의존하도록 했습니다. 2. 문제.. Spring Boot - Mockito를 이용해 외부라이브러리를 이용하는 서비스 테스트하기 Third Party Lib 외부 라이브러리에에 의존하는 서비스를 통합테스트 하고 있었습니다. 이때 발생했던 문제를 Mockito를 이용해 처리하는 과정을 정리해보도록 하겠습니다. 시나리오해외에서 여행을 온 관광객이 물건을 구매하고, 환급을 요청합니다.요청된 환급을 관리자가 검증합니다.검증이 완료되면, 사용자의 MobileApp에 Push알림이 전송됩니다.테스트를 진행할 도메인은 위와 같습니다. 테스트할 메소드xxxxxxxxxx@Service@Transactional@RequiredArgsConstructorpublic class AdminRefundEstimateService { // ... private final FirebasePushService pushService; public void es.. Spring Boot - FCM Push 서버 구축하기 test 이번 포스팅에서는, Spring boot와 firebase의 FCM을 이용해, PushNotifiaction Server 구축을 해보도록 하겠습니다. Front는 구현이 되어있다고 가정하고, backend만을 구축하겠습니다. Push Notification을 위한 개념1. Push Notification이란푸시 알림은 Server에서 유저의 device로 정보를 보내는 기술을 일컫는 말입니다. 예를 들어 위와같이 사용중이지 않은 app에서 오는 알림을 일컫습니다. 2. Push Notification 동작유저의 device에 push 알림을 보내기 위한 상세 구현은, 모바일 os 마다 다르겠지만 큰틀은 비슷합니다. 우선 PushNotification 과정을 알아보기 이전에, 이 포스팅에서 설명드.. Spring MVC - form 요청을 핸들러의 매개변수로 맵핑(map form data to handler argument) spring mvc form request를 @ModelAttribute로 Mapping하기 이번 포스팅에서는, form request의 data를 controller handler의 매개변수로 mapping하는 방법에대해 알아보도록 하겠습니다. https://developer.mozilla.org/en-US/docs/Learn/Forms/Sending_and_retrieving_form_datahttp프로토콜과, form request에 대한 개념을 숙지하고 진행하시는것이, 외우는것이 아닌 공부를 하도록 도와줍니다! 1. HTML 클라이언트와 서버는 http프로토콜을 통해 상호간 통신을 하게됩니다. 은 클라이언트가 서버를 향해 데이터를 보낼 수 있도록 도와주는 것입니다. 하는일조금 더 하는일을 자세히 .. Spring Boot - rest docs 사용방법과 자동 목차생성(spring boot restdocs 설정) Spring Boot에서 Restdocs 설정하기 (자동 목차) Spring boot IntegrationTest - https://galid1.tistory.com/735이번 포스팅에서는 지난 포스팅에서 작성한 Integeration Test에서 Spring Restdocs 설정을 통해 API 문서를 만들어 보도록 하겠습니다. code (gitlab) - https://gitlab.com/galid1/spring-boot-integration-test완성된 코드는 위의 주소에서 확인 가능합니다. 1. Spring RestDocs 설정build.gradle의존성 설정x... dependencies { testImplementation 'org.springframework.res.. 이전 1 2 3 4 5 6 ··· 15 다음