본문 바로가기

전체 글

[프로그래머스] 멀리 뛰기(JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🖊️ 문제 설명 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인.. 더보기
[백준] P.10159 저울(JAVA) https://www.acmicpc.net/problem/10159 10159번: 저울 첫 줄에는 물건의 개수 N 이 주어지고, 둘째 줄에는 미리 측정된 물건 쌍의 개수 M이 주어진다. 단, 5 ≤ N ≤ 100 이고, 0 ≤ M ≤ 2,000이다. 다음 M개의 줄에 미리 측정된 비교 결과가 한 줄에 하나씩 www.acmicpc.net 🖊️ 문제 무게가 서로 다른 N 개의 물건이 있다. 각 물건은 1부터 N 까지 번호가 매겨져 있다. 우리는 일부 물건 쌍에 대해서 양팔 저울로 어떤 것이 무거운 것인지를 측정한 결과표를 가지고 있다. 이 결과표로부터 직접 측정하지 않은 물건 쌍의 비교 결과를 알아낼 수도 있고 알아내지 못할 수도 있다. 예를 들어, 총 6개의 물건이 있고, 다음 5개의 비교 결과가 주어졌다.. 더보기
Spring Security의 인증 과정과 주요 모듈 1. Spring Security 인증 과정 1) 로그인 요청 사용자가 폼에 아이디, 패스워드를 입력하면 HttpServletRequest에 아이디, 비밀번호가 전달된다. AuthenticationFilter가 넘어온 아이디, 비밀번호의 유효성 검사를 실시한다. 2) Authentication 생성 유효성 검사 후 실제 구현체인 UsernamePasswordAuthenticationToken을 만들어 넘겨준다. 3) Authentication 전달 인증용 객체인 UsernamePasswordAuthenticationToken을 AuthenticationManager에 전달한다. 4) UsernamePasswordAuthenticaionToken을 AuthenticationProvider에 전달 5) 유효.. 더보기
Spring Security의 개념과 Spring Security Filter Chain 1. Spring Security api실행 시 마다 사용자를 인증해야 하는데, 이를 구현한 것이 스프링 시큐리티이다. 스프링 기반의 어플리케이션의 보안(인증, 권한, 인가) 등을 담당하는 스프링의 하위 프레임워크이다. 즉, 인증과 인가를 담당하는 프레임워크! 주로 서블릿 필터와 이로 구성된 필터체인으로 구성된 위임 모델을 사용한다. 보안과 관련해 체계적으로 많은 옵션을 제공하기 때문에 보안 관련 로직을 작성하지 않아도 된다는 장점이 있다. 2. 기본 용어 인증(Authentication) 사용자의 신원을 입증하는 과정으로 로그인하는 과정이라고 생각하면 된다. 인가(Authorization) 권한 부여나 허가와 같은 의미로 사용되고 어떤 대상이 특정 목적을 실현하도록 허용하는 것이다. 권한에 따른 상이한.. 더보기
[프로그래머스] 귤 고르기(JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🖊️ 문제 설명 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를.. 더보기
OAuth 2.0의 개념과 동작 방식 1. OAuth 2.0의 개념 웹 및 어플리케이션 인증 및 권한 부여를 위한 개방형 표준 프로토콜이다. 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹 사이트 상의 자신들의 정보에 대해 웹사이트나 어플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는 접근 위임을 위한 개방형 표준이다. third-party 어플리케이션이 사용자의 리소스에 접근하기 위한 절차를 정의하고 서비스 제공자의 api를 사용할 수 있는 권한을 부여하였다 third-party 어플리케이션은 OAuth를 통해 사용자의 소셜 미디어 프로필 정보에 접근할 수 있다, 네이버, 구글, 카카오와 같은 소셜 미디어 간편 로그인이 있다. 2. 구성 역할 리소스 소유자(resource owner) OAuth 2.0프로토콜을 사용.. 더보기
토큰(Token)과 JWT 1. 토큰 인증 클리아언트가 서버에 접속하면 서버에서 해당 클라이언트에게 "인증되었다는 의미"로 토큰을 부여한다. 토큰은 유일하고, 토큰을 발급받은 클라이언트는 또 다시 서버에 요청을 보낼 때 요청 헤더에 토큰을 심어 보낸다. 서버에서는 클라이언트로 받은 토큰을 서버에서 제공한 토큰과의 일치 여부를 체크해 인증 과정을 처리한다. 앱에는 쿠키와 세션이 없기 때문에 앱과 서버가 통신 및 인증할 때 가장 많이 사용한다. 2. 기존 세션 기반의 인증 방식을 개선한 토큰 인증 방식 기존 세션 기반의 인증은 서버가 파일이나 데이터베이스에 세션 정보를 갖고 있어야 하고 이를 조화하는 과정이 필요해 많은 오버헤드가 발생한다. 토큰은 세션과 달리 서버가 아닌 "클라이언트"에 저장되기 때문에 메모리나 스토리지 등을 통해 .. 더보기
쿠키(Cookie)와 세션(Session) 1. HTTP 프로토콜의 특징 Connectionless 프로토콜, 연결 지향 클라이언트가 서버에 요청했을 때, 그 요청(request)에 맞는 응답(response)을 보낸 후 연결을 끊는 처리 방식이다. HTTP 1.1 버전에서 커넥션을 계속 유지하고 요청을 재활용하는 기능이 디폴트 옵션으로 추가되었다. → HTTP header에 keep alive 옵션으로 커넥션을 재활용 하게 된다. HTTP가 연결 지향인 TCP 위에서 구현되었기 때문에 연결 지향적이라고 할 수 있다고 하지만, 아직까지는 네트워크 관점에서 keep alive는 옵션으로 두고, 서버 측에서 비연결 지향적인 특성으로 커넥션 관리에 대한 비용을 줄이는 것을 명확한 장점으로 보기 때문에 비연결 지향으로 본다. Stateless 프로토콜 .. 더보기

728x90