본문 바로가기

CS

(27)
로그인에서 토큰을 어떻게 넘기는게 가장 안전할까? 내가 알고 있는 로그인 키워드는 다음과 같다. Oauth2, JWT, SpringSecurity, 자체로그인여기서 나는Oauth2 + JWT + SpringSecurity 로그인 방식을 구현했다 (구글, 네이버, 카카오)로그인을 구현하는 중 난관에 봉착했다.로그인을 하는 방법은 크게 두가지로 나눌 수 있는데 1. 프론트가 애플리케이션으로부터 인가코드를 받아 서버에 전송하는 경우(애플리케이션 리다이렉트 URL을 프론트로 설정하는 경우)2. 애플리케이션과 서버가 직접 통신하는 경우(애플리케이션 리다이렉트 URL을 서버로 설정하는 경우) 보통 로그인 흐름도에 맞게 1번을 사용하여 구현을 해왔으나, 스프링 시큐리티를 도입하면애플리케이션으로부터 인가코드를 받고 자동으로 요청을 보내 액세스 토큰을 얻을 수 있을 수..
[CI/CD] Github Action, AWS로 자동 빌드 및 배포하기 https://kang-james.tistory.com/entry/CICD-Github-Action-AWS로-Java-자동-빌드배포하기 해당 사이트를 따라 실행하면서 학습했습니다 CI/CD란? CI - Continuous Integration지속적인 통합을 의미한다(Code - Build - Test)개발자를 위한 자동화 프로세스 애플리케이션에 대한 코드 변경사항이 정기적으로 빌드 및 테스트 되어 공유 리포지토리에 통합된다 CD - Continuous Delivery / Continuous Deployment지속적인 서비스 제공, 지속적인 배포를 의미한다(Release - Deploy - Operate)Release : 배포 가능한 소프트웨어 패키지를 작성Deploy : 프로비저닝을 실행하고 서비스를 사..
@PathVariable과 RequestParam 차이점 두 애노테이션 모두 요청 매개변수를 받는 것이다 @RequestParam은 ?매개변수={매개변수값} 형태ex) item?number=1@PathVariable을 사용했을 때는 @GetMapping("/{매개변수}") 형태인 URI의 경로 ex) item/1 소스코드가 같을 때 결과는 같다 @RequestParamURI 쿼리 파라미터의 값을 메서드의 매개변수에 바인딩할 수 있다 (여러개를 받아올 수 있다) @PathVariableREST API로 전송되는 템플릿 변수({매개변수})를 메서드의 파라미터에 바인딩할 수 있다 (여러개를 받아올 수 없다)   출처: https://code-lab1.tistory.com/405 [코드 연구소:티스토리]출처: https://2minmin2.tistory.com/71 ..
[Spring] MVC 구조 이해 - 함수와 람다식 request.getParameterNames().asIterator().forEachRemaining(paramName -> System.out.println(paramName + ": " + request.getParameter(paramName))); getParameterNames() 태그의 파라미터 name 속성값만 따로 가져온다(모두) asIterator()iterator 인터페이스형으로 바꿔서 반환한다 forEachRemaining()Iterator를 ArrayList로 변환한다 람다식 https://hstory0208.tistory.com/entry/Java자바-람다식Lambda이란-그리고-사용법 [Java/자바] 람다식(Lambda)이란? 그리고 사용법람다식이란 ? 람다식이란 쉽게 말해 ..
[Spring] 스프링 MVC 구조이해 - 서블릿이란 서블릿이란클라이언트 "동적인 웹페이지 요청"을 처리하고 그 결과를 반환하는 기술 ex) 클라이언트의 아이디와 비밀번호 확인 [간단한 등장 배경]사용자가 많아지면서 정적인 자료의 제공을 넘어서 자기 필요에 맞는 자료를 제공받고 싶어했다사용자 요구에 맞춰 동적으로 반응하는 페이지를 만들기 위해 만들어진 것이 서블릿이다 서블릿과 서버 동적인 페이지를 제공하기 위해 SERVER가 WEB 서버와 WAS로 나눠졌다WAS는 연산결과를 웹서버로 제공하고, 웹서버는 정적 페이지를 만들어 사용자에게 제공한다WEB 서버사용자의 요청에 따라 정적인 페이지 제공WAS 서버클라이언트 요청 중 연산이 필요한 부분을 연산이때 WAS에서 연산을 담당하는 것이 서블릿이다 서블릿은 WAS 안에 있는 서블릿 컨테이너(웹 컨테이너) 공간에서..
[점프 투 스프링] 질문 및 요약정리 (2) Dependency Injection ㄴ 스프링이 객체를 대신 생성하여 주입하는 기법을 말한다 @Autouired : 의존성 주입 스프링이 객체를 대신 생성하고 주입한다 Q. 객체 주입 방식이 정확히 무엇을 말하는 것일까? https://mangkyu.tistory.com/125 [Spring] 다양한 의존성 주입 방법과 생성자 주입을 사용해야 하는 이유 - (2/2) Spring 프레임워크의 핵심 기술 중 하나가 바로 DI(Dependency Injection, 의존성 주입)이다. Spring 프레임워크와 같은 DI 프레임워크를 이용하면 다양한 의존성 주입을 이용하는 방법이 있는데, 각각의 방 mangkyu.tistory.com Q. fidbyId의 리턴 타입이 Optional이다. 이 자료형의 특징은..
[Lecture] IP & routing algorithm ICMP : internet control message protocol [대표적인 상황] 1. Router의 dest port가 도달하지 못했을 때 2. TTL로 인해 유효화가 끝났을 때 네트워크에 일어나는 상황을 알려주기 위함; control message를 운반하기 위한 프로토콜이다 패킷을 생성해 drop했다는 정보(data안에 들어간다)를 보낸다 traceroute(유틸리티) : 네트워크를 진단하는데 아주 유용하다 Traceroute(또는 tracert) 유틸리티는 목적지 호스트까지의 네트워크 경로를 추적하고, 각 라우터의 응답 시간을 측정하여 네트워크 문제를 진단하는 데 사용된다. 이 유틸리티는 ICMP 패킷을 이용하여 작동하며, 목적지 호스트까지의 경로를 파악하기 위해 TTL(Time to L..
long long과 int 차이점 정수 자료형 int는 32/64비트 환경에 상관없이 4바이트의 정보를 기록할 수 있는 자료형이다. signed int(부호가 있는 정수)를 기준으로 기록할 수 있는 양의 정수 범위는 0 ~ 2,147,483,647(16진수로 7FFFFFFF) int로 계산할 수 있는 범위를 넘어서는 문제가 있을 수 있다. (산술 넘침 혹은 Overflow) 4바이트의 저장 공간만으로는 좀 더 큰 정수를 계산할 수 없게 되었고, 점점 커져가는 메모리 공간, 계산량에 어느 정도 대비할 필요가 있게 되었다. long long은 8바이트의 공간을 가지는 자료형이기에 signed long long을 기준으로 하면 최대 계산할 수 있는 양의 정수 범위는 0 ~ 9,223,372,036,854,775,807(16진수로 7FFFFFF..