분류 전체보기(93)
-
[Spring] Bcrypt로 암호화하기
[Spring] Bcrypt를 이용하여 비밀번호를 암호화하여 저장하는 방법 개요 단순 텍스트에 비밀번호를 저장하는 것은 보안상 매우 취약하다. 이 글에서는 자바를 이용하여 데이터베이스에 해시된 패스워드를 저장하는 방법을 다룬다. 이렇게 한다면 BDA들 조차도 실제 패스워드를 뺴내기 불가능하다. 기존의 MD5, SHA-1, SHA-2로 패스워드를 해싱할 수도 있지만 솔트를 치는것은 추가적인 보안을 만들 수 있다. (여기서 솔트를 친다는 말은 원문에 추가적인 문자열을 넣어서 해시를 강화한다고 이해하면 된다.) 이 글에서는 jBCrypt를 사용할 건데 그것은 패스워드를 인코딩할 때 내부적으로 랜덤 솔트를 생성하여 단순 텍스트를 인코딩하고 DB에 저장한다.( 솔트를 하게 되면 같은 문자열로 부터 다른 해시 값이..
2021.04.11 -
Spring으로 Token 받기
쿠키와 세션 들어가기전에 인증을 먼저 알고가자! 인증은 Front-end 관점에서 봤을 때 사용자의 로그인, 회원가입과 같이 사용자의 도입부분을 가리키곤한다. 반면 Back-end 관점에서 봤을 때는 모든 API 요청에 대해 사용자를 확인하는 작업이다. 사용자A와 사용자 B가 앱을 사용한다고 가정하자. 두 사용자는 기본적을로 정보가 다르고 보유하고 있는 컨텐츠도 다르다. 따라서 서버에서는 A,B가 요청을 보냈을 때 누구의 요청인지를 정확히 알아야한다. 만일 그렇지 않다면 자신의 정보가 타인에게 유출되는 최악의 상황이 발생한다. 그렇기에 앱(Front-end) 에서는 자신이 누구인지를 알만한 단서를 서버에 보내야 하며, 서버(Back-end) 는 그 단서를 파악해 각 요청에 맞는 데이터를 뿌려주게 된다. ..
2021.04.11 -
주니어개발자의 네번째 회고록
주니어 개발자의 네번째 회고록 이번주 일과 이번주는 정말정말 너어어어어어무 힘들었다. 가비아 신입공채에 탈락과.. 팀원들과의 프로젝트 회의 프로그래머스 상반기 신입공채 준비 할 것이 너무나 많았다. 그래서 이번주는 계속해서 새벽에 늦게 자고 아침에 일어나는 반복적인 일상이었다. 그러다 보니 오늘(일요일) 거의 2시까지 자버렸다. 몸이 지칠 때로 지쳐있었다...ㅠㅠㅠ 그러다보니 스트레스도 높아져있었고 신경질적이 었던거 같다.. 오늘하루가 ㅠㅠㅠ 지금은 또 아무 생각없이 있으니깐 조금 나아진거 같다. 탈락의 아픔과 코딩테스트의 못봤던 짜증 + 아쉬움, 프로젝트 준비까지 쉽지 않았다.. 프로그래머스 데브매칭 코딩테스트도 봤지만 어중간한거 같다. 코딩테스트도 계속해서 준비해야하는데 프로젝트를 한다는 핑계로 안하..
2021.04.05 -
백준 15650번 자바
백준 15650(n과m 순열 문제) 링크 문제 풀이 얼마전에 순열의 기본 개념을 공부했던 터라 순열문제를 골라서 풀었다. n과m 문제는 1,2번으로 구성되어있는데 첫 번째 문제는 순열, 두 번째 문제는 조합으로 풀면되는 문제였다. 순열의 개념은 개념정리편에서 정리를 했기 때문에 코드에서 간단한 주석으로 설명하겠다. 코드 private static void dfs(int N, int M, int depth) {//n과m 1번 문제 if (depth == M) { for (int num : arr) { sb.append(num).append(" "); } sb.append("\n"); return;//여기서 이 호출된 함수를 끝내야 depth의 outofInedex에러가 안난다. } for (int i=1; i
2021.04.05 -
순열 구하기(자바)
부분집합 재귀함수 순열 구하기(JAVA) 순열(Permutation) n개의 원소 중 r개의 원소를 꺼내는 경우의 수 순서가 유효하기 때문에 원소의 중복을 허용함(조합은 순서가 유효하지 않아 중복 불허) 경우의 수 :n!/(n-r)!의 갯수를 가진다. 표기법 nPr 순서가 있도록 모든 경우의 수를 뽑아내는 것을 순열이라고 합니다. 부분집합 중{1,2,3}과 {3,2,1}은 엄연히 다른 것으로 인식합니다. 예를 들어 {1,2,3}중 2개를 조합해 만들 수 있는 모든 숫자를 구하라고 한다면 순열을 이용. 두 숫자를 붙이는 것은 순서에 따라 다르니깐요. 전체코드 import java.util.ArrayList; import java.util.List; import java.util.Scanner; class ..
2021.04.05 -
spring jpa localtime between
타임라인 서비스가 불러오는 __ 목록의 시간을, 조회 시간으로부터 24시간 이내로 바꿔보세요. 힌트 spring jpa localtime between 지금은 LocalDateTime.now(), 하루 전은 LocalDateTime.now().minusDays(1) 입니다. LocalDateTime startDatetime = LocalDateTime.of(LocalDate.now().minusDays(1), LocalTime.of(0,0,0));//어제 LocalDateTime endDatetime = LocalDateTime.of(LocalDate.now(), LocalTime.of(23,59,59)); List memos = memoRepository.findAllByModifiedAtBetween..
2021.03.23