본문 바로가기

전체 글93

bcrypt로 비밀번호 암호화 bcrypt란? //현업에서 많이 사용하고 있는 패스워드 암호화 알고리즘이라고 함! 1999 년 USENIX 에서 발표한 Blowfish 암호를 기반으로 Niels Provos 와 David Mazières가 설계한 암호 해싱 함수 (단방향 해싱 함수임) 데이터베이스에 비밀번호 저장 시 비밀번호가 보이도록 저장하면 보안성이 떨어짐 → 비밀번호 암호화를 통해 보안을 강화해야 함. 이때 bcrypt 암호화 해싱 함수 사용 단방향 해싱 함수 bcrypt 해시 문자열의 형태 $2b$[cost]$[22 character salt][31 character hash] ex) $2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy \__/\/ \___________.. 2021. 11. 23.
Nodejs Webpack으로 빌드하는 과정에서 발생한 에러(ERROR in ./node_modules/@mapbox/node-pre-gyp/lib/util/s3_setup.js) Webpack으로 build 하는 과정에서 발생한 에러 [error#1] bcrypt 모듈 관련 에러 문제 ERROR in ./node_modules/@mapbox/node-pre-gyp/lib/util/s3_setup.js 112:15-30 module not found: error: can't resolve 'nock' in ~ 회원가입 및 로그인 부분에서 bcrypt 모듈을 사용하여 암호화 하는 코드가 있는데 이 과정에서 파일 동작 시에는 문제가 되지 않았지만, webpack으로 압축해서 빌드하는 과정에서 문제 발생 bcrpyt와 관련된 에러가 5개 정도 떴었고, 모듈을 찾지 못하는 문제로 판단하였음 npm 공식 문서에 보면 node-gyp노드의 안정/출시 버전에서만 작동한다고 되어 있고, 노드 버.. 2021. 11. 23.
redis 설치 및 redisson을 이용한 분산락 구현 설치 redis 설치 위 블로그 따라 순조롭게 설치 후 확인 완료 Redis와 분산락 분산락(Distributed Lock) 여러 독립된 프로세스에서 하나의 공유 자원에 접근할 때, 데이터에 결함이 발생하지 않도록 원자성을 보장하기 위해 분산락을 활용 분산락을 구현하기 위해서 redis는 RedLock이라는 알고리즘을 제안하며 3가지의 특성을 보장해야 한다고 말함 오직 한 순간에 하나의 작업자만이 락을 걸 수 있다. 락 이후, 어떠한 문제로 인해 락을 풀지 못하고 종료된 경우라도 다른 작업자가 락을 획득할 수 있어야 한다. 레디스 노드가 작동하는 한 모든 작업자는 락을 걸고, 해체할 수 있어야 한다. RedLock 알고리즘 수행 과정 RedLock 알고리즘은 비동기식 알고리즘 현재 시간(ms)을 가져온다.. 2021. 10. 9.
[내돈내산] 코멘토 직무부트캠프 후기 - SW직무(백엔드) 오늘은 내돈 내산 코멘토 직무부트캠프 SW직무 후기를 적어보려한다. 왜냐 !!!!!!!!!!!!!!!!!!!! 구글링하면 IT학원의 직무부트캠프의 후기는 많지만, 코멘트 후기는 별로 없었기 때문이다! 나의 이 후기가 코멘토에서 직무부트캠프를 할까말까 고민하는 사람에게 도움이 되면 좋을 것 같다! 참여이유 1. 나는 지금 4학년 1학기를 마치고 첫 휴학을 했으며 인턴 경험이 없다. 2. 직무를 백엔드로 정한 이후 완성도 있는 관련 프로젝트 경험이 없어 포폴 작성에 난감하다. 3. 저렴한 가격과 짧은 기간 동안 가벼운 실무 경험을 통해 프로젝트를 완성시키고 싶다. 먼저 코멘토를 알게된 건 학교 제휴 광고를 보고 알게되었다!. (절대 광고가 아니고 나는 광고할 레벨도 안된다.) 자소서 첨삭, 면접 준비 등등을.. 2021. 10. 7.
@RequestParam Date 타입 받기 @RequestParam RequestParam을 포맷하는데 사용할 ISO 패턴 enum 타입으로 정의되어 있다고 한다. pattern iso 형식으로 표시되지 않는 날짜 시간 패턴을 받고자 할 때 사용한다. 데이터 타입 사용자 정의 패턴으로 패턴은 엄격하게 지켜줘야 한다 pattern example yyyy-MM-dd (ex. 2020-06-23) yyyy-MM-dd HH:mm:ss : (ex. 2020-06-23 18:03:32) yyyy-MM-dd HH:mm:ssZ : (ex. 2020-06-23-18:03:32+09:00) 방법 받고자 하는 Date 타입 앞에 @DateTimeFormat(pattern = "yyyy-MM-dd") Date 타입의 포맷을 지정 public ResponseEntity.. 2021. 9. 25.
Spring Data JPA 쿼리메소드 Spring Data JPA ? spring framework에서 JPA를 편리하게 사용할 수 있도록 지원 CRUD 처리를 위한 공통 인터페이스 제공 repository 개발 시 인터페이스만 작성하면, 실행 시점에 spring data JPA가 구현 객체를 동적으로 생성해서 주입 데이터 접근 게청(repository) 구현 시 클래스 없이 인터페이스만 작성하여 개발을 완료하도록 지원 공통메소드는 spring data jpa가 제공하는 의존성 라이브러리에 포함되어 있음 사용하기 위해선 라이브러리를 의존성 추가해줘야 함 (build.gradle) implementation 'org.springframework.boot:spring-boot-starter-data-jpa'JpaRepository.. 2021. 9. 25.