분류 전체보기(185)
-
내가 보려고 만든 PS 팁 - 1
[ 팁 1 - 들어오는 인풋이 매우 작은 경우 완전 탐색을 고려해보자. ] 코드 테스트를 하다보면 인풋이 매우 작은 경우가 있다. 예를 들어 특정 규칙으로 글자를 만드는데 8자리까지만 되는 경우, 이런 경우는 완전탐색으로 풀어도 시간 제한을 벗어나지 않는다. 문제를 풀 때, 낮은 케이스를 올려놓고 모든 경우의 수를 탐색하는지 출력문으로 확인해보고 제출하는 걸 잊지말자. 프로그래머스: 모음사전 프로그래머스: 피로도 [ 팁 2 - 들어오는 인풋이 억 단위인 경우엔 이분 탐색을 고려해보자. ] 앞의 경우와 다르게 인풋이 20억 같이 엄청난 값들이 들어오는 경우도 있다. 이 때는 이분 탐색을 고려해보는 게 좋다. 이런 건 N이상인 알고리즘으로 풀라는 게 아니기 때문이다. 따라서 특정한 기준을 통해 해당 값보다 ..
2024.03.23 -
JPA에서 조회 값을 Optional로 바꾸어보자 - 1편
스프링 데이터 JPA를 사용하면 자동으로 만들어주는 함수들 중에 Optional 타입으로 반환하는 것들이 있다. 강의에서도 Optional은 그냥 get쓰면 안된다고 말을 하는데, 왜인지 잘 모르겠고 Optional이 더 불편하게 느껴졌었다. Optional을 잘 몰라서 그런 것 같아, Optional을 계속 보고 기존 비 Optional을 Optional로 바꾸어보며 어떻게 변했는지 알아보는 과정을 가져보려고 한다. [ Optional을 통한 null 체크 분기 줄이기와 orElse, orElseGet ] 비 Optional을 사용해서 객체를 내보내는 함수이다. 기존의 코드는 리포지토리와 컨트롤러에 각각 다음과 같이 작성이 되어있었다. 로직이 복잡한 것은 아니라 문제성이 크게 드러나진 않는다. 하지만 ..
2024.03.21 -
Json을 웹 브라우저에서 쉽게 보는 방법
Keycloak이라는 인증서버를 공부하다가 Json을 받았는데 보기에 너무 어지러웠다. 그냥 크롬 브라우저에서 아무런 조치없이 Json 데이터를 보면 아래의 그림 처럼 나온다. 이걸 깔끔하게 보게 해주는 크롬 확장 프로그램이 있다. 우선 크롬창 -> 점 세개 클릭 -> 확장프로그램 -> chrome 웹 스토어 방문하기를 클릭해보자. 그러면 웹 스토어가 나올 것이고 거기서 "json viewer"라고 검색하면 여러 확장 프로그램이 나온다. 그 중 내가 선택한 건 아래의 그림과 같은 확장 프로그램이다. 이 확장 프로그램을 설치하고 다시 Json 데이터를 같은 API에 요청해서 확인해보자. 그러면 다음처럼 알아보기 쉽게 이미지가 나온다.
2024.03.20 -
Java 환경 변수 설정과 KeyCloak windows 실행 오류 해결
이전에 Keycloak 부분만을 제외하고 강의를 다 듣고 복습을 하며 강의 내의 내용과 추가 궁금한 점을 찾아서 정리했었다. Keycloak 부분만 못한 이유는 왜 작동이 안되는 지 이유를 찾지 못해서 였다. 분명히 가이드가 잘 돼있고 여러 영상을 찾아봤지만 이유를 찾을 수 없었다. 예전에 5시간 동안 시도하다가 실패해서 이 부분만 강의를 안 들었는데, 다른 사람도 이 문제를 쉽게 넘어갔으면 한다. 우선 KeyCloak을 Open JDK로 사용을 하려면 2024년 3월 20일 기준으로 KeyCloak 24.0.1 버전은 자바 17을 지원한다. 자바의 17 설정 및 환경 변수 등록은 다음의 글이 정말 잘 작성이 되어있으니 이를 참고하길 바란다. KeyCloak은 상당히 문서가 잘 작성되어 있는 편이라고 생..
2024.03.20 -
스프링 시큐리티 - OAUTH2
[ 용어 사항 ] 엔드 유저 서비스 요청을 하는 실제 어플리케이션 단에서 사용자로 서비스 이용 고객으로 생각하면 된다. 클라이언트 서버 React나 Flutter 등으로 만들어진 UI 어플리케이션으로 직접 엔드 유저와 상호작용하는 어플리케이션 서버라고 생각하면 된다. 인증 서버 OAUTH2 인증 시스템에서 인증 관련 정보만 처리해주는 서버라고 생각하면 된다. 리소스 서버 OAUTH2 인증 시스템에서 사용자에 관한 데이터를 가지고 있는 서버이다. 예를 들면 티스토리라면 사용자의 모든 글을 가지고 있는 서버라고 생각하면 된다. [ OAUTH2가 필요한 이유 ] 같은 기업 내의 서비스에서 OAUTH2의 장점 한 기업 내에 OAUTH2를 사용하면 서비스가 확장될 때마다 사용자가 각각의 서비스 별 인증을 위해 I..
2024.03.20 -
스프링 시큐리티 - 필터와 필터 디버깅
[ 스프링 시큐리티 필터 ] 스프링 시큐리티에는 필터라는 기능을 제공한다. 필터는 HTTP 요청이 올 때 작동하며, 필터에서 원하는 값들을 받아서 추가적인 처리를 해줄 수도 있고 문제가 있다면 컨트롤러까지 요청이 오는게 아니라 필터 선에서 요청을 끊어줄 수도 있다. 원하는 값과 내보내는 값은 HTTP 요청에 따른 서블릿 객체를 통해 사용이 가능한데, 그래서 filter를 살펴보면 다음처럼 doFilter()라는 메서드의 파라미터에 HttpServletRequest와 HttpS ervletResponse가 있다. 또한 filterChain은 다음에 어떤 필터에 해당 요청과 응답을 넘겨줄 지 정하는 역할을 한다. 따라서, 매번 필터를 작성할 때마다 어떤 요청에 있는 값을 사용하고 응답에 어떤 값을 전달할 지..
2024.03.18