목록전체 글 (72)
랄라
https://school.programmers.co.kr/learn/courses/30/lessons/12914#qna 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr*답변더보기class Solution { public long solution(int n) { long answer = 0; int mod = 1234567; long[] counter = new long[n+1]; counter[0] = 0; counter[1] = 1; if(n > 1){ counter[2] = 2; }..
테마파크의 놀이기구를 대기할수있는 대기서비스를 구현하기로 했다.대기번호와 남은 대기자 수를 어떻게 구하게할지를 고민을 해본 결과 대기번호를 대기자 수가 바뀔때마다 변경하게하는것은사용자 관점에서 자신의 번호를 확인하는데 있어 혼란을 겪을수도 있고, 남은 대기자 수를 보여주는 컬럼도 존재하기때문에대기번호가 바뀌지 않아도 된다고 생각하게 되었다. 최종적으로 구현하게 된 대기서비스 기능은 대기번호각 테마파크에 마지막으로 대기중인 손님의 대기번호+ 1 대기자가 존재하지않는경우 1번부터 시작하도록 구현 남은 대기자 수본인의 대기정보를 조회할 때 대기번호를 기준으로 앞번호를 지니고있으며대기상태가 '대기중' 인 손님을 기준으로 인원수 조회
테마파크 생성 api를 구현하는 중 테마파크와 그에따른 해시태그를 저장하는 중간테이블에 값이 저장되지않는 오류가 발생했다.에러코드는 나오지않아 디버그 툴을 사용하여 확인을 진행한결과.테마파크id가 생성되지않고 null으로 존재해 중간테이블에 값이저장되지 않는다는것을 발견하였다. 중간테이블에 값을 저장하기위해서는 테마파크가 우선적으로 만들어져야하는데순서를 다르게 작성하여 해당오류가 나온것이라고 추측되었다. 하지만 순서를 바꾸었는데도 계속해서 중간테이블에는 값이 저장되어지지 않아 빌드가 잘못되어진것이 아닐까 생각되었고build.clean 후 재빌드를 진행한 결과 정상적으로 값이 저장되었다.
게이트웨이에서 우선적으로 권한체크하는 인가처리 구현에 성공했다!!!!!여러곳을 구글링하여 얻은정보로는@EnableWebFluxSecurity 를 사용해야하는 Gateway에서는 ReactiveSecurityContextHolder를 사용하여 권한정보를 넣어주어야 하는것이었다! 처음에는 어떻게 써야하는건지 모르겠어서 . 으로 메서드를 찾아보니 withAuthentication()이라는 것이 존재했다.뭔가 authentication을 넣어주는 기능을 할거같아서 한번 작성을해봤다. private void setAuthenticationContext(Claims claims) { String userId = claims.get("user_id", String.class); String ..
인증인가 리팩토링을 시도한 기록api에 접근하기 전 게이트웨이가 우선적으로 접근가능한 권한을 확인하게 하고싶어서본래 user-service에 작성해 둔 SecurityConfig를 게이트웨이에 옮겨 작성하기로 했다. 옮기는 중 여러 사항이 발생했는데, 1. 사용하는 sercurity annotation 문제기존에 작성한 SecurityConfig 의 filterchain은 @EnableWebSecurity 를 작성하여 진행했지만게이트웨이는 기본적으로 WebFlux를 제공하도록 되어있어서 해당 어노테이션을 바꾸면내부 코드를 많이 수정해야해서 고민이 많았다. -> @EnabledWebFluxSecurity를 사용 1-1. 세션을 거부하는 코드가 변동됨 기존에는 하단의 코드를작성하여 세션 거부를 진행했는데 다..
데이터베이스를 각 서브모듈당 실행하는것이 아닌,하나의 데이터베이스를 쓰되 스키마 단위로 나누는 요구사항이 존재하여데이터베이스를 루트모듈에서 docker로 실행을 시도했다. postgres: image: postgres:latest container_name: 컨테이너이름 ports: - "5001:5432" # 외부에서 접속할 수 있는 포트 environment: POSTGRES_USER: 사용자이름 POSTGRES_PASSWORD: 비밀번호 POSTGRES_DB: 데이터베이스 이름 # 생성할 데이터베이스 이름 volumes: - postgres_data:/var/lib/postgresql/data # 데이터가 유지될 경로 ..