* 깃 merge 후에 터미널에서 입력해야 할 명령어
git branch -D 브랜치_이름
git fetch --prune
git branch -D ~ : 브랜치 삭제(깃허브 웹사이트에서도 Delete Branch 해주기!!!)
git fetch : 원격 저장소의 최신 메타데이터 정보 확인
git fetch --prune : 원격 저장소에서 로컬로 데이터를 가져올 때 로컬 저장소에 없는 브랜치 및 태그를 제거
* git prune : 로컬 저장소에서 사용되지 않는 Git 객체(커밋, 트리, 블롭 등)를 제거
* DB 데이터 접근 방법
단순한 쿼리 : JPA 함수
복잡한 쿼리 :
- JPA 반복 호출
- JPQL => QueryDSL(권장)
- @Query(~SQL문~)
PasswordEncoder를 이용한 비밀번호 테스트
❌ 잘못된 방법 ❌
// member 생성 -> id : user1, 비밀번호 : 1234
Member member = memberService.create("user1", "1234");
// member의 비밀번호를 1111로 변경
memberService.modify(member, "1111");
// 1111을 encode한 값인 password와 member.getPassword() 값 비교
String password = passwordEncoder.encode("1111");
assertThat(member.getPassword()).isEqualTo(password);
⭕ 올바른 방법 ⭕
// member 생성 -> id : user1, 비밀번호 : 1234
Member member = memberService.create("user1", "1234");
// member의 비밀번호를 1111로 변경
memberService.modify(member, "1111");
// "1111"과 member.getPassword() 의 값이 같다면 True
assertThat(passwordEncoder.matches("1111", member.getPassword())).isTrue();
PasswordEncoder는 비밀번호를 해시 함수에 전달하여 해시 값을 생성한다. 일반적으로 안전한 암호화를 위해 PBKDF2, Bcrypt, Scrypt, Argon2와 같은 안전한 일방향 해시 함수가 사용되는데, 이러한 함수는 비밀번호를 암호화할 때 솔트(salt)라는 임의의 값을 사용하여 보안성을 높이기도 한다.
===> 즉, 같은 값을 인코딩하더라도 임의의 값인 솔트에 의해 각기 다른 해시 값이 생성된다. 따라서 위와 같이 '잘못된 방법'으로는 같은 비밀번호인지 검증할 수 없다.
===> PasswordEncoder가 제공하는 matches()를 이용하면 암호화가 되지 않은 raw 값과 암호화된 값이 서로 같은지 검증할 수 있다.
'프로젝트 & TIL > 일별 공부 기록 (백엔드 스쿨)' 카테고리의 다른 글
40일차 - 일급 컬렉션, 리플렉션 (0) | 2023.04.18 |
---|---|
39일차 - 자바 문법 심화 개요, hashcode(), List.of() (0) | 2023.04.17 |
37일차 - 도커 vhost (0) | 2023.04.13 |
36일차 - 도커 허브에 내가 만든 이미지 업로드, 다운로드 (0) | 2023.04.12 |
35일차 - 도커 볼륨, 이미지 생성 (0) | 2023.04.11 |