저번에 bcrypt을 해서, 패스워드를 hashing 하는 것을 썼습니다. 이전 글에서 올려놨던 것과 비교하면 달라진 것이 딱 하나 있습니다. 인자가 하나 추가되었다는 점입니다. String pw 말고도, len을 받는 것이 하나 추가되었는데요. 이것은 strength를 받기 위해 쓰였습니다. 예를 들어, 이 값이 15라면 32768 round, 32768번 반복을 의미합니다. 17이라면 2^17인 131072번 반복을 의미합니다. 당연하게도, len에 지수 비례합니다. 이것은 어렵지 않게 postman 등으로 테스트 했을 때 나옵니다. 이렇게, strength를 정해 준 다음에는, 암호화된 패스워드와, 넘겨준 패스워드를 비교해서 match가 되면 accept를 떨어트려 주고, 그렇지 않으면 wrong을..
웹/스프링부트 검색 결과
Bcrypt를 써먹기 위해서, 스프링 시큐리티 dependencies를 추가하였습니다. 이렇게 추가하고, 프로젝트 껍데기 zip 파일을 다운로드를 받아 봅시다. controller하고 application.properties만 조금 바꿔 보겠습니다. server.port는 7780으로 바꿉니다. 그리고, GET /를 받는 test 메소드를 작성했습니다. 별 다른 것은 없고요. 9번째 줄에서, "abcde"를 BCryptPasswordEncoder로 암호화 시킵니다. 다음에, 10번째 줄에서, encoder.matches로 get 파라미터로 날라온 pw와 encrypted_pw가 같은지 비교하게 됩니다. 만약에, 이 두 결과가 같다면 accept를 리턴하고, 아니라면 wrong을 리턴합니다. API는 매우..
프로그램을 만들다 보니, 로그를 잘 남기는 것이 중요하다는 것을 알게 되었습니다. 그래서 로깅도 몇 편 정도 쓸 듯 싶습니다. 이번 시간에는 logging.level에 대해서 알아보겠습니다. 문서를 보시면, 로그 레벨은 총 6단계임을 알 수 있어요. TRACE, DEBUG, INFO, WARN, ERROR, FATAL. 제가 낸 문제 중에 lv의 최댓값이 6까지 나올 수 있다는 조건은 이것을 바탕으로 해서 만들어 졌습니다. 프로젝트 구조를 보겠습니다. controller, 그리고 application.properties만 건드렸습니다. testController를 보시면, test를 호출하면 Exception을 throw 하게 만들었습니다. /test는 GET 메서드로만 받고요. application.p..
이번 시간에는 RestController에서 Request를 받을 때 마다 그것을 처리하는 쓰레드가 같은지, 다른지. 다르다면 어떤 식으로 쓰레드 들이 request를 처리하는지 실험해 보도록 하겠습니다. 이 글에서는 내장 톰캣을 이용하였습니다. 먼저, 프로젝트 구조는 위와 같습니다. 컨트롤러 역할을 하는 testController가 있습니다. 그리고 설정 값을 저장해 놓은 properties 파일이 하나 있습니다. 포트는 7780으로 설정해 놓았습니다. testController에는, /test로 get 요청을 받으면, 처리할 메소드인 test가 있습니다. 현재 쓰레드의 이름만 리턴하게 됩니다. 예를 들자면, Main과 같은 이름을 말합니다. Thread.currentThread()는 현재 실행중인 쓰..
spring boot에서 파일에 설정 정보가 있는 경우에는 어떻게 읽어와야 할까요? 요구 사항은 아래와 같습니다. 어떻게 하면 좋을까요? 요구 사항을 먼저 간단하게 분석해 봅시다. 요구 사항에서 중요한 것은 크게 3가지입니다. 프로그램은 properties 설정 파일 하나를 읽어서, db 접속 정보를 읽어내야 합니다. 그 외에 셋팅값 정보는 없다는 것이 중요합니다. 보통 host와 password, db를 읽어야 합니다. 이 3개가 있어야 접속을 할 수 있기 때문입니다. 단지, 접속 정보를 외부 파일로부터 읽어내는 것이 중요한데요. 외부 파일은 아래 위치에 있다고 해 봅시다. jo_test/spring/external_configure의 conf 폴더 밑에 app-prod.properties에 있다고 해..
최근댓글