728x90

Programming 281

Spring - API 인증 (http, 고정 인증 로그인 구현)

- Resolver를 사용 할 때 파라미터로 인증 토큰을 받게 되면 값이 중복 될 수 있기 때문에 header를 통해 받는 것이 좋다. ....... @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { String accessToken = webRequest.getHeader("Authorization"); if (accessToken == null || accessToken.equals("")) { throw new Unau..

Programming/Spring 2023.10.04

Spring - API 인증 (ArgumentResolver)

- ArgumentResolver란 Spring MVC에서 사용되는 인터페이스로, 컨트롤러 메서드의 매개변수를 해석하고 해당 매개변수에 값을 제공하는 역할을 한다. 이를 통해 컨트롤러 메서드에서 다양한 매개변수 타입을 처리하고 커스텀한 바인딩 로직을 구현할 수 있다. - HandlerMethodArgumentResolver 인터페에스를 상속 받고 다음과 같은 메서드를 정의한다. 1. supportsParameter(MethodParameter parameter) : Resolver가 특정 매개변수를 지원하는지 여부를 판단하는 데 사용된다. MethodParameter 객체를 인자로 받고, 지원하는 매개변수인 경우 true를 반환하고, 그렇지 않은 경우, false를 반환해야 한다. 2. resolveAr..

Programming/Spring 2023.10.04

자주 헷갈리거나 까먹는 것들 정리

- super - super가 단독으로 사용되면, 자식 클래스에서 부모 클래스의 생성자를 호출한다. - HttpServletRequest 속성에 대해 HttpServletRequest는 Java Servlet에서 HTTP 요청과 관련된 다양한 정보를 제공하는 인터페이스입니다. 이 인터페이스를 사용하여 HTTP 요청의 다양한 속성(attribute) 및 정보를 읽어올 수 있습니다. 주요 HttpServletRequest 메서드와 해당 메서드를 통해 얻을 수 있는 정보는 다음과 같습니다: getHeader(String name): 지정된 이름의 HTTP 헤더 값을 반환합니다. 예를 들어, request.getHeader("User-Agent")는 User-Agent 헤더 값을 반환합니다. getMethod(..

Programming/TMP 2023.10.04

Spring - API 인증 (파라미터, Header, Interceptor)

- API 인증은 요청이 들어올 때 인증된 요청인가 허용된 사용자인가 확인 후 수행하기 위해서 사용한다. - Get Parameter 방식 @PostMapping("/posts") public void post(@RequestBody @Valid PostCreate request, @RequestParam String authorization) { if(authorization.equals("bis")){ request.validate(); postService.write(request); } } 1. RequestParam 방식을 이용하여 쿼리 파라미터로 넘어오는 값을 비교하는 방법이 있다. - test 코드 //when mockMvc.perform(MockMvcRequestBuilders.post("..

Programming/Spring 2023.10.04

AXIOS

- AXIOS는 Javascript 및 Node.js 환경에서 사용할 수 있는 HTTP 클라이언트 라이브러리이다. - Axios를 사용하면 웹 애플리케이션에서 HTTP 요청을 보내고 받는 작업을 간단하게 처리할 수 있다. - 이 라이브러리는 Promise 기반의 API를 제공하여 비동기적으로 HTTP 요청을 수행할 수 있으므로 서버와의 통신이나 API 요청을 쉽게 처리할 수 있다. 1. 간편한 HTTP 요청 : Axios를 사용하면 GET, POST, PUT, DELETE 등의 HTTP 요청을 쉽게 생성하고 보낼 수 있다. 2. Promise 기반 : Axios의 HTTP 요청은 Promise를 반환하므로 비동기적인 코드를 작성할 수 있다. 3. 요청 및 응답 인터셉터 : Axios는 요청을 보내기 전과..

Programming/TMP 2023.10.02

React - ReactDOM 초기 root 렌더링 과정

- index.html - 위의 코드에서 가 React 애플리케이션을 렌더링할 컨테이너 역할을 한다. 1. JavaScript 파일 작성 : React 애플리케이션의 JavaScript 파일을 작성한다. 이 파일은 React 컴포넌트를 정의하고, 이 컴포넌트를 'ReactDOM'을 사용하여 'index.html' 파일의 컨테이너에 렌더링 하는 역할을 한다. 2. 'ReactDOM.render' 또는 'ReactDOM.createRoot' 사용 : 'ReactDOM'은 React 엘리먼트를 'index.html' 파일의 컨테이너에 렌더링하는 메서드를 제공한다. React18부터는 'createRoot' 메서드를 사용하여 렌더링을 시작할 수도 있다. - 임의의 js 파일 import React from 'r..

Programming/React 2023.09.21

2023.09.20.WEB (useState, useRef, useEffect, useMemo, React.memo, useCallback, useReducer, Context)

useState: useState Hook은 함수 컴포넌트에서 상태를 관리하는 데 사용됩니다. 상태 변수와 해당 변수를 업데이트하는 함수를 반환합니다. useRef: useRef Hook은 DOM 요소 또는 다른 값을 참조하는 데 사용됩니다. current 프로퍼티를 통해 참조된 값을 유지합니다. useEffect: useEffect Hook은 부수 효과(side effect)를 수행하는 데 사용됩니다. 컴포넌트가 렌더링될 때마다 특정 작업을 실행하거나 정리할 때 사용합니다. useMemo: useMemo Hook은 계산 비용이 높은 계산 결과를 캐싱하고, 의존성 배열에 변화가 없는 한 결과를 재사용하는 데 사용됩니다. React.memo: React.memo 함수는 컴포넌트를 메모이제이션하여, 컴포넌트..

Programming/TMP 2023.09.20

Git - 이것저것 기억용

1. git clone으로 다른 컴퓨터에서 사용 - 터미널에서 작업 할 디렉토리로 이동하여 git clone으로 해당 repository를 복사해 온다. - 위와 같이 clone된 파일들이 보인다. * 새롭게 git init을 하여 새로운 저장소를 만들게 되면 기존의 저장소의 히스토리가 없기 때문에 관리가 복잡하기 때문에 주의하자 - branch - branch는 기존의 저장소 흐름에서 새로운 흐름을 새롭게 생성하여 독립적으로 개발 및 관리하기 위한 것이다. - 추후에 기존의 저장소 흐름에 합칠 수 있다. git branch "..." -> 새로운 브랜치 생성 git checkout "..." -> 해당 브랜치로 이동 - 위와 같이 새로운 브랜치를 생성하여 해당 브랜치로 이동하게 되면 새로운 흐름이 생성..

Programming/GIT 2023.09.20

React - React.js (JSX, State, Props)

- JSX - JSX는 JavaScript 파일 내에 HTML과 유사한 마크업을 작성할 수 있게 해주는 JavaScript용 구문 확장이다. - JSX의 규칙 1. 단일 루트 요소를 반환한다. Hedy Lamarr's Todos ... - 최상위 태그로 를 사용하였고 를 사용해도 된다. Hedy Lamarr's Todos ... - 빈 태그를 조각이라고 한다. HTML 트리에 흔적을 남기지 않고 항목을 그룹화 할 수 있다. 2. 모든 태그는 닫아야 한다. - 자체 닫는 태그인 같은 경우 와 같이 닫는다. 3. CamelCase를 사용한다. - 이름에는 대시를 포함하거나 class와 같은 예약어를 쓸 수 없다. - class는 예약어이므로 React에서는 해당 DOM 속성의 className 이름을 따서 ..

Programming/React 2023.09.15
728x90