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에 있다고 해..
저번 글에서, ConfigureSource에 대해 알아보았습니다. 그 글에서, 이런 이야기를 했습니다. 객체가 생성되었을 때, 완전한 상태가 되게 할 수는 없을까? 정확히 말하면, 객체가 생성되었을 때, 설정이 되어야 하는 값은 생성이 될 때 setting이 되게 할 수 없을지를 고민해 보자고 하였습니다. 그에 대한 답이 될 수 있는 것은 ConstructorBinding 어노테이션을 쓰는 것입니다. ConfigurationProperties 어노테이션을 보면, 세터를 쓰거나, ConstructorBinding을 쓸 수 있다고 되어 있습니다. binding을 하는 방법에는, 세터 메서드 말고도, 생성자로 할 수 있다는 이야기입니다. 그래서 위에 해당 어노테이션을 적어 주었습니다. 해당 어노테이션에 대한 ..
최근댓글