서론 springboot로 프로젝트를 진행하면서 jwt를 사용하였고, 이 과정에서 refresh 토큰도 구현하였다. access token은 탈취 당해도 만료기간이 지나면 사용할 수 없지만, refresh 토큰은 access 토큰에 비해 만료기간이 길기 때문에 탈취당하면 위험하다. 그래서 이를 보완하기 위한 방법으로 refresh token 재발급 요청이 왔을 때 refresh 토큰 디비에 저장된 ip값과 요청 ip값을 비교하여 다른 경우에는 발급하지 않거나, 원래 사용자에게 알림을 보내는 방식이 사용될 수 있다고 한다. (refresh 토큰을 만들 때 참고한 블로그) 그 외에도 로그 찍기, ip whitelist등 사용자의 ip는 쓸 곳이 많다. HttpServletRequest Spring MVC 기..
Spring
REST API를 개발하면서 버전이 올라가도 기존 버전의 API는 사용할 수 있도록 하고싶어 이 포스팅을 작성한다. 클라이언트는 API 버전이 변경될 때마다 애플리케이션을 업데이트하고 싶지 않을 수 있다. API버전을 관리한다면 새로운 버전을 만들되, 이전 버전을 계속 유지할 수 있을 것이다. 이전에 진행했던 프로젝트에서는 버전을 관리하려고 했지만 디렉토리 구조도 제대로 잡지 않았고, 결국 하나의 버전에 바로바로 수정사항을 추가하는 식으로 개발하였다. 이번 프로젝트에서는 디렉토리 구조도 잘 짜고 네이밍도 제대로 하여 API 버전을 관리하고싶어 공부해보려고 한다. 참고사항: 백엔드는 springboot로 api를 작성하고 프론트에서 이를 받는 식으로 개발 Version 관리할 때 중요한 점 URI가 지저분..
보호되어 있는 글입니다.
시설 관련하여 수정하는 백엔드 api를 만듦 @Getter public class EditFacilityDTO { @NotNull private Long facility_id; private String name; private String address; private String tel; private String fm_name; } @PatchMapping("/facilities") public ResponseEntity modifyFacility(@RequestBody EditFacilityDTO dto) { ... } 시설을 수정해야하니까 facility_id는 필수! null로 받으면 안된다. dto에 @NotNull을 지정해줬는데 null이 들어오는 문제 발생! 분명 @NotNull을 지정해..
Failed to fetch, CORS, spring, https, http 문제상황 http로 잘 동작하던 api를 https로 배포하였더니 swagger에서 cors에러가 발생 https로 api요청을 보내면 잘 되는 것을 확인하였음 @RestController @RequiredArgsConstructor @CrossOrigin(origins = "*", allowedHeaders = "*") public class FacilityController { } @CrossOrigin 어노테이션도 잘 설정해둔 상태인데.. 왜? 문제원인 swagger는 기본적으로 http로 요청을 보내도록 설정되어있음 https로 배포했기 때문에 차이가 생겨 CORS에러가 발생 문제해결 @OpenAPIDefinition 어..
현재 학교 프로젝트로 플러터와 스프링부트를 이용하여 개발을 진행하고 있다. 지금은 백엔드 api를 미리 완성하여 서버를 띄워놓은 상태로 http통신을 하면서 flutter 개발을 하는 중이다! 플러터로 REST통신을 하는 건 처음이여서 챗지피티와 구글링을 열심히 사용하여 코드를 짰다. 플러터로 restapi통신을 하는 방법은 크게 3가지였다. 1. FutureBuilder로 값을 받아서 위젯을 빌드해주기 2. initState()에서 restapi통신을 하여 값을 받아오는 함수를 호출하고 class변수에 담아 화면에 뿌리기 3. api통신을 하여 받을 데이터를 class로 정의하여 json파싱해주기(Factory를 사용하였다) 변수를 사용하기도 조금 귀찮고, 위젯을 띄울 때 http통신을 하여 값을 받지..
보호되어 있는 글입니다.
Spring/ JPA 에러/ JSON/ REST/ LAZY 로딩 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer 상황 Springboot로 Restapi를 테스트하는 과정에서 해당 에러가 발생 엔티티의 배열을 return 했는데 해당 엔티티가 포함하고 있는 다른 엔티티를 받아오지 못함(LAZY로 설정) 원인 API에서 Jackson 라이브러리를 사용하여 Serialize할 때 LAZY로딩으로 설..
보호되어 있는 글입니다.
보호되어 있는 글입니다.