본문 바로가기

전체 글42

[이상청] OAuth2를 활용한 로그인, 세션 유지 방식의 실패 원인과 해결방안 개관 쉽게 요약하면, OAuth2는 외부 기업에 로그인 및 회원가입을 위탁하는 서비스다. 스프링에서는 Oauth2 Client와 Spring-Security 두 하위 프레임워크를 통해 OAuth2 로그인을 쉽게 구현할 수 있다. 결론적으로 아래 방식은 실제 서비스에 사용되지는 못했다. 로그인에는 크게 두 가지 방식이 있다. 첫번째는 세션을 사용하는 방법, 두번째는 jwt 토큰을 사용하는 방법이다. 각각 장단점이 있지만, 나는 첫번째 방식을 사용했다. 이전에 구현해 본 경험이 있고 백엔드에서 거의 모든 로직을 처리해주기 때문이었는데 밑에 나올 여러가지 문제가 발생하여 jwt 토큰을 사용한 방식으로 로그인 방식을 바꾸게 되었다. 또한 코드는 전반적인 로직이 어떻게 돌아가는지 이해하고 복습하기 위해 가공하여 .. 2022. 8. 7.
[백준 14425] 문자열 집합 C++ C++의 Map을 활용하면 쉽게 풀 수 있는 문제 Map이란? 키와 값(Key-Value)의 쌍으로 이루어진 데이터의 집합 Key의 중복은 허용하지 않고, Value의 중복은 허용한다 map s; for (int i = 0; i > tmp; s.insert({ tmp, true }); } 주어진 n개의 문자열을 이렇게 저장한다고 하면, (문자열(Key) - true(Value)) 이런 식으로 저장된다. 다음 m개의 문자열에서 집합 s에 속한 문자열이 몇 개인지를 세는 문제이므로, (1)문자열을 하나 입력 받고 (2)해당 문자열을 key로 두었을 때 Value가 true인지 확인한 다음 (3)true일 경우 결과값에 +1 이런식으로 검증하면 된다. 처음에.. 2022. 8. 3.
[백준 18870] 좌표 압축 풀이 1. 벡터 입력 받고 원본 벡터(x)를 복사한 다른 벡터(solve)를 만든다 2. 복사한 벡터를 오름차순으로 정렬하고, erase, unique 함수를 사용하여 중복값을 제거한다 3. lower_bound 함수를 사용하여 2번 처리한 벡터에서 x[i] 값들이 몇번째에 위치하는지 확인한다 4. lower_bound 함수는 주소값을 반환하므로, 2번 처리한 벡터 solve의 시작 주소값을 빼서 출력 C++ erase, unique, lower_bound 1. erase: 말 그대로 벡터의 값을 지움 2. unique: 중복되지 않는 원소들을 앞에서부터 채워나가는 역할. 따라서 남은 뒷부분은 그대로 vector 원소값이 존재한다. => 두 함수를 함께 사용하면 중복값을 지울 수 있다. 3. lower_.. 2022. 7. 28.
[Spring] application.properties 파일을 git tracking에서 제외하기 구글링하면 나오는 걸 왜 굳이 쓰냐고 묻는다면, 이 작업을 할 때마다 구글링을 하기 귀찮아서 나중에 내가 보려고 정리한다. 1. .gitignore 파일에 application.properties 파일의 경로를 추가한다 2. Git bash를 열고 git rm --cached {파일 경로}를 커맨드창에 친다. 이 때 파일경로는 절대경로다. 예시) git rm --cached D:spring-practice/webservice/src/main/resources/application.properties add - commit - push하면 성공적으로 트래킹에서 지워낸 걸 확인할 수 있다. 2022. 7. 5.