본문 바로가기
728x90

전체 글199

스프링부트 JWT 인증 과정 프로젝트를 진행하면서 전에 올렸던 'JWT 인증 과정' 포스팅에 별로인 코드가 있는 것을 알았다 로그인 과정에서 불필요하게 디비 접속을 한번 더 하더라..🤔 그래서 문제점과 해결 방법에 대해 적어본다. @PostMapping(value = "/login") public ResponseEntity createAuthenticationToken(@RequestBody UserLoginReq userLoginReq) throws Exception { authenticate(userLoginReq.getEmail(), userLoginReq.getPassword()); System.out.println("controller before loadUserByUsername"); final UserLoginRes u.. 2022. 3. 18.
JWT(Json Web Token) :: JWT 형식, 동작과정 JWT(Json Web Token) :: JWT 형식, 동작과정 1. JWT란? JWT(Json Web Token)는 웹표준 (RFC 7519)으로 JSON 포맷을 이용해 정보를 가볍고 안전하게 전송하기 위한 Claim 기반의 Web Token. * 토큰? 토큰이라는 단어의 뜻은 동전. 버스카드나 교통카드라고 생각하면 된다. 근데 이 동전으론 시장에 가서 물건을 사거나 할 수는 없고, 버스를 탈 때 동전을 넣듯이 토큰은 특정한 목적에만 사용할 수 있다. 돈 보다는 바우처하고 비슷하겠다! 즉, 토큰은 일종에 권리를 주는 것이라 할 수 있다. 버스를 탈 수 있는 권리, 지하철을 탈 수 있는 권리를 부여 해주는것. 이 권리를 받는 방법은.. 토큰의 경우 돈을 냈느냐 안냈느냐다. 돈을 내면 토큰을 받고 이 토큰.. 2022. 3. 18.
Spring Boot + JWT + Security + Security 권한 설정해서 '회원가입/로그인 구현' Spring Boot + JWT + Security + Security 권한 설정해서 회원가입/로그인 구현. 구현하고자 하는 전체 로직은 다음과 같다. 1. ID/PW 로그인 시도 -> new UserLoginRes( rs.getObject("idx", int.class), rs.getString("email"), rs.getString("password"), Arrays.asList(new SimpleGrantedAuthority(Authority.values()[rs.getObject("role", int.class)].toString())) ), email); } public Boolean getUserEmail(String email) { String findEmailQuery = "SELECT .. 2022. 3. 18.
색채사전 色の辞典 (新井美樹) 색 이름과 그에 대한 일러스트가 인상적인 책. 색 이름들 마다 하나씩 달린 짧은 글은 색채공부나 디자인 공부에도 도움이 되고, 조곤조곤 이야기를 들려주는 듯한 문체에 마음이 잔잔해 지기도 한다. 색상별로 챕터가 나눠진다. 사진은 새 챕터인 ‘빨강’을 소개하며 빨간색에 대한 짧은 아야기를 하고있다. 빨강 챕터의 란도셀! 귀엽다.ㅎㅎ 티타임을 가지며 가볍게 하나씩 읽기도 좋다. 내용도 잔잔하니 좋은데.. ‘감색’에 대한 이야기를 한번 번역해 봤다. 내가 에디터로 대충 만들어서 잘 읽히지 않네.🤣ㅠㅠ 3년 전 교토 케이분샤 서점에서 구입했던 좋은 책. 6인이 전부인 작은 출판사에서 펴낸 책이다. 색감에 대한 책을 좋아하시는 분들께 추천합니다:) 📚 정보 : https://bungumonogatari.store.. 2022. 3. 17.
javax.xml.bind.JAXBException 에러 해결 : glassfish gradle 추가 JAVA11 - javax.xml.bind.JAXBException 에러 해결 Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException glassfish gradle 추가해서 해결했다. implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '3.0.2' https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime 2022. 3. 10.
@Controller와 @RestController 차이 Spring @Controller와 @RestController 차이 @controller @controller는 주로 view를 반환하기 위해 사용한다. 아래와 같은 흐름으로 Client의 요청에 맞는 View를 반환한다. 1. 클라이언트가 요청을 보내면 dispatche Servlet으로 요청을 받는다. 2.dispatcher servlet은 요청에 해당하는 Controller로 위임 처리를 하도록 Handler Mapping 에게 위임을 처리한다. 3. view Resolver는 Controller 가 반환한 논리 뷰 이름을 실제 물리뷰 경로로 변경하고 View 객체를 반환환한다. @RestController 그렇다면 View가 아닌 Data를 반환해야하면 어떻게 해야할까? 그럴때 사용하는 것이 @.. 2022. 3. 10.
Spring Controller required 속성 bind.MissingServletRequestParameterException: Required request parameter 위 에러를 해결하며 알아본 스프링 Spring Controller required 속성 정리 ✅ Spring Controller required 속성 [ required=false 예제] public String hello(@RequestParam("name") String name, // required 조건이 없으면 기본값은 true, 필수 파라미터. // 파라미터 pageNo가 존재하지 않으면 Exception 발생. @RequestParam(value="pageNo", required=false) String pageNo){ // 파라미터 pageNo가 존재하지 않으면.. 2022. 3. 10.
리액트 useCallback, useCallback 쓰는 이유 리액트 useCallback, useCallback 쓰는 이유 1. useCallback useCallback은 특정 함수를 새로 만들지 않고 재사용하고 싶을 때 사용한다. React 공식 문서에서는 useCallback을 '메모제이션된 함수를 반한하는 하는 함수' 라고 한다. useMemo와의 차이는, useMemo 는 특정 결과값을 재사용 할 때 사용하는 반면, useCallback 은 특정 함수를 새로 만들지 않고 재사용하고 싶을때 사용한다는 점. 2. 왜 useCallback을 사용해야 할까? 현재 하위 컴포넌트에 전달하는 콜백 함수가 inline 함수로 사용되거나, 컴포넌트 내에서 함수를 생성하고 있다면 새로운 함수가 만들어지게 된다. 예를들어, Counter안에 increament 함수들은 컴.. 2022. 3. 10.
컨트롤러 @RequestParam 기본값 설정하기@RequestParam(required = false) 컨트롤러 @RequestParam 기본값 설정하기 @RequestParam(required = false) @Controller에서 파라미터를 하나 받아보자. @GetMapping("/test/{cnt}") public String methodName(@RequestParam int cnt){ // TODO.. return "test"; } 위와 같이 코드를 작성하면 "localhost:8080/test/3"과 같이 호출했을 때 cnt 값이 3이 된다. 여기서 만약 "localhost:8080/test"와 같이 변수를 넣어주지 않으면 에러가 발생한다. Resolved [org.springframework.web.bind.MissingPathVariableException: Missing URI templ.. 2022. 3. 7.
728x90