728x90
반응형

전체 글 552

[C/C++] 순열 / 조합 구현하기

c언어 알고리즘 문제를 풀면서 재귀함수 파트를 풀다보면 피할 수 없는 파트이다. 지금까지는 재귀 학습 자체를 안하다가 요즘 하게 되었는데 이제는 피할 수 없는 숙명이라고 받아들이고 이왕 공부하는 거 다시는 찾아보지 않도록 내 블로그에 내가 정리해보려고 한다. 1. 순열이란, - 순열이란 서로 다른 n개 중에서 r개를 택하여 배열하는 경우를 말한다. 기호로는 nPr로 나타낼 수 있다. - 순열의 예) 1) 1, 2, 3, 4, 5가 적혀 있는 숫자 카드가 있다, 이를 이용하여 세자리 수를 만들 수 있는 방법은 몇가지 인가? -> 이 문제를 풀 때 어떻게 할 것인가. 세자리수면 백의 자리, 십의 자리, 일의 자리가 존재하고 각 자리에 올 수 있는 카드의 개수를 곱해줄 것이다. 즉, 백의 자리에는 카드의 개수..

BOJ/재귀 2022.09.05

[SpringBoot] SpringBoot + SpringSecurity + JWT + Redis (회원가입 / 로그인 구현) (2)

https://wonsjung.tistory.com/453 [SpringBoot] SpringBoot + SpringSecurity + JWT (회원가입 / 로그인 구현) 본 프로젝트를 진행할 때 처음에는 SpringSecurity + Oauth2를 이용한 로그인을 구현하려 했으나 방향성이 바뀌어 일반적인 사용자 정보를 입력한 회원가입 + 로그인을 구현하게 되었다. 회원가입 및 wonsjung.tistory.com 위 게시글은 지난 게시글로 Spring Security로 JWT를 발급하는 과정까지만 작성했었다. 오늘 작성하는 현재의 글은 Access Token의 만료 시간이 다 되었을 경우 Refresh Token이 유효한지 검사하고 유효하다면 Access Token을 재발급하는 과정이다. 또한, 전 게..

2022/2022-1 2022.08.18

[C/C++] 백준 - 20951번 : 유아와 곰두리차

https://www.acmicpc.net/problem/20951 20951번: 유아와 곰두리차 유아는 새해를 맞이하여 V.Nets의 자율 주행 자동차를 구매하였다. 유아는 새 차를 타고 바다로 가서 회를 잔뜩 먹고 올 것이다(유아는 감염병 예방을 위한 정부의 방역지침을 준수한다). 고속도 www.acmicpc.net 문제 유아는 새해를 맞이하여 V.Nets의 자율 주행 자동차를 구매하였다. 유아는 새 차를 타고 바다로 가서 회를 잔뜩 먹고 올 것이다(유아는 감염병 예방을 위한 정부의 방역지침을 준수한다). 고속도로를 달리던 유아는 놀라 자빠질 수밖에 없었다. V.Nets의 자율 주행 시스템이 형편없었기 때문이다. V.Nets에 큰 배신감을 느낀 유아는 직접 자율 주행 자동차를 설계하기로 결심하였다. ..

BOJ/DP 2022.08.13

[C/C++] 백준 - 효정과 새 모니터

https://www.acmicpc.net/problem/20949 20949번: 효정과 새 모니터 효정은 새해를 맞이하여 새 모니터를 구매하고자 한다. 효정은 돈이 많기 때문에 77인치 모니터를 구매할 것이다. 모니터를 구경하던 효정은 놀라 자빠질 수밖에 없었다. 모니터가 너무 많아 고 www.acmicpc.net 매우 쉬운 문제이다. 문제에 주어진 조건에 따라 계산을 한 후 정렬만 해주면 된다. 단, 계산식 결과가 정수로 떨어지지 않는 경우가 대부분이므로 실수로 처리해주기만 하면 된다. 매우 간단한 문제라 추가적인 설명이 필요 없을 듯 하다. 정렬 조건만 잘 정의하면 된다. #include #define fastio ios::sync_with_stdio(false), cin.tie(0), cout.t..

BOJ/정렬 2022.08.12

[SpringBoot] SpringBoot + SpringSecurity + JWT (회원가입 / 로그인 구현)

본 프로젝트를 진행할 때 처음에는 SpringSecurity + Oauth2를 이용한 로그인을 구현하려 했으나 방향성이 바뀌어 일반적인 사용자 정보를 입력한 회원가입 + 로그인을 구현하게 되었다. 회원가입 및 로그인 모두 클라이언트로부터 API를 전송받는 방식으로 진행하였다. 1. Spring Security 처리 과정 공부할 때 작성했던 Session 기반 로그인과정과 JWT 기반 로그인과정 글이 있다. 본 게시글과 차이점은 아래 게시글들은 구글링으로 다른 분들의 다양한 블로그 글들을 참고하여 따라해본 예제이고, 현재 게시글은 거기에 더해 실제 프로젝트에 적용하게 된 구현코드이다. 아래 게시글에서는 현재 스프링에서 지원하지 않는 인터페이스도 존재하여 그 부분까지 수정하였다. https://wonsjun..

2022/2022-1 2022.08.10

로그인 처리 - 필터 / 인터셉터 (1) (필터 개념 및 예제 코드)

로그인 기능이 존재하는 웹 사이트 내에서는 인증 뿐만 아니라 인가 기능이 필요하다. 인가 기능이란, 인증이 된 사용자만 특정 웹 페이지에 접근한 기능이다. 예를 들어보자면, 쇼핑몰 웹 사이트 내에서 로그인을 하지 않은 사용자는 상품을 주문할 수 없다. 로그인을 한 사용자만 상품을 주문할 수 있다. 따라서, 등록 / 수정 / 삭제 / 조회 등등 모든 컨트롤러 로직에 공통으로 로그인 여부를 확인해야 한다. 그럼 로그인 여부를 체크하는 로직을 하나 하나 모든 페이지 내에 등록해야하는 것일까? 만약 그렇게 한다면 향후 로그인과 관련된 로직이 변경될 때마다 모든 로직을 수정해야할 수도 있다. 이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는 것을 공통 관심사(cross-cutting-concern)라고 한다..

2022/2022-1 2022.08.07

[C/C++] 백준 - 2479번 : 경로 찾기

https://www.acmicpc.net/problem/2479 2479번: 경로 찾기 길이가 같은 두 개의 이진수 코드 A와 B가 있다고 하자. 이 두 코드 사이의 해밍 거리는 A와 B의 각 비트를 왼쪽부터 오른쪽으로 차례대로 비교할 때 서로 다른 값을 가진 비트의 수이다. 예를 들 www.acmicpc.net 문제 길이가 같은 두 개의 이진수 코드 A와 B가 있다고 하자. 이 두 코드 사이의 해밍 거리는 A와 B의 각 비트를 왼쪽부터 오른쪽으로 차례대로 비교할 때 서로 다른 값을 가진 비트의 수이다. 예를 들어, A=010010, B=011011 이라고 하면, 세 번째 비트와 여섯 번째 비트만 서로 다르므로 이 두 코드 사이의 해밍 거리는 2이다. 우리는 총 N개의 이진 코드를 가지고 있고, 각 코..

BOJ/BFS\DFS 2022.08.01

@RequestParam, @ModelAttribute

@RequestParam과 @ModelAttribute 모두 클라이언트로부터의 전달값을 핸들러의 매개변수로 매핑할 때 사용한다. 각각의 차이가 무엇인지 알아야한다. @RequestParam @RequestParam은 클라이언트에서 전송하는 전달값을 1:1로 매핑한다고 생각하면 된다. 예를 들어, http://localhost:8080/name=kim?age=20 이런 식으로 전달값이 넘어왔다고 가정해보자. 우리는 HTTP Body에서 2개의 전달값을 추출할 수 있다. { "name" : "kim"과 "age" : 20 }이다. 이것들을 하나 하나 추출할 때 @RequestParam을 사용하는 것이다. 사용법을 확인해보면 @Controller public class testController{ @GetMa..

Spring/Lombok 2022.08.01

오브젝트와 의존관계 - 싱글톤 패턴과 스프링에서의 싱글톤

스프링은 기본적으로 별다른 설정을 하지 않으면 내부에서 생성하는 빈 오브젝트를 모두 싱글톤으로 만든다. 여기서 싱글톤이라는 것은 디자인 패턴에서 나오는 싱그톤 패턴과 비슷한 개념이지만 구현 방법은 확연히 다르다. 싱글톤 패턴의 원리는 애플리케이션 안에 제한된 수, 대개 한 개의 오브젝트만 만들어서 사용하는 것이다. 매번 클라이언트에서 요청이 올 때마다 각 로직을 담당하는 오브젝트를 새로 만들어서 사용한다고 가정하면 요청 한 번에 5개의 오브젝트가 새로 만들어지고 초당 500개의 요청이 들어오면 초당 2500개의 새로운 오브젝트가 생성된다. 아무리 환경이 좋아졌다고 한들 이렇게 부하가 걸리면 서버가 감당하기 힘들어진다. 따라서 서버환경엣는 서비스 싱글톤의 사용이 권장된다. 하지만 디자인 패턴에 소개된 싱글..

[Spring] ResponseEntity란?

ResponseEntity가 무엇인지 알기 위해서 사전 지식으로 REST API가 무엇인지 알아야 한다. REST API에 대해 정리한 글이 존재하니 무엇인지 보고 오면 좋을 듯하다. https://wonsjung.tistory.com/418 API란? REST API란? API란 무엇인가? API는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘이다. 예를 들어, 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 wonsjung.tistory.com 1. ResponseEntity란? Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. 이것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는..

Spring/API 2022.07.25
728x90
반응형