전체 글

단계별로 성장하자!
1. 문제 상황 SecurityConfig.class 에서 mvc.ignoring으로 설정한 uri 들이 자꾸 무시되고 그대로 Security Filter를 거치는 버그 발생 2. 문제 해결 ISSUE #1번에서 발생한 문제와 똑같이 JwtTokenFilter에 생각 없이 @Component를 달고 SecurityConfig에서 new로 다시 생성해서 설정한 것이 문제였다. @Component로 인해 어플리케이션 실행 시 필터에 자동 등록되었고 내가 한 번 더 생성해 버려서 꼬여버린 것이다. 결론 JwtTokenFilter에서 @Component를 삭제하면 된다!
1. 문제 상황 application.yml spring: datasource: driver-class-name: org.mariadb.jdbc.Driver url: jdbc:mariadb://test:3306/test?characterEncoding=UTF-8&serverTimezone=UTC username: test password: test datasource의 url의 포트를 3305에서 3306으로 변경하여 jar파일을 빌드하고 실행했더니 여전히 3305포트로 연결을 시도하고 연결을 실패하여 오류가 나는 상황이 반복되었다. intellij를 껐다 켜보고 gradle clean을 해보고 했지만 해결이 안되는 상황이었다. 2. 어떻게 해결했나? 무조건 캐시에 문제가 있을거라 생각했고 Intelli..
Docker Compose가 뭘까? 각각 하나씩 관리하던 컨테이너를 하나로 모아서 관리하기 위한 툴 (현재 내가 진행 중인 프로젝트에서 Spring 백엔드 서버, React 프론트 서버, MariaDB, Redis의 여러 컨테이너를 모아서 관리할 수 있었다.) 어떤 형식인지 간략하게 설명해줘 docker-compose.yml 파일을 작성하여 실행하면 한번에 이미지를 생성하고 실행할 수 있다. yml 형식에 대해서 조금만 말하자면 key-value 형식이며 int, boolean, String 타입을 지원한다. 리스트의 앞에는 들여쓰기들여 쓰기 후 - 를 붙이고, 리스트가 아닌 경우는 들여 쓰기로 구분한다. 이외에 |, |-, ---, > 등 다양한 기호가 있는데 나중에 따로 자세히 알아보자! versio..
Dockerfile이란? 도커에서 사용되는 이미지를 생성하기 위해 스크립트를 작성할 수 있는 텍스트 형식의 파일이다. 주요 명령어 Command Description FROM Base 이미지를 지정 (ex: Node 나 JDK 지정) LABEL Version, Writer와 같은 이미지 메타데이터를 작성 CMD 도커 컨테이너가 시작될 때 실행되는 shell 명령을 설정 RUN 이미지 작성시 실행되는 shell 명령 설정 및 새로운 이미지 layer를 만드는 역할 ENTRYPOINT 도커 컨테이너가 시작될 때 실행되는 shell 명령을 설정 CMD와는 다르게 docker run에서 부여되는 명령에 overrride가 되지 않고 실행됨 EXPOSE 도커 컨테이너 외부에 오픈할 Port 설정 ENV 도커 컨테..
1. docker run 명령 pull, create, start명령을 한번에 처리하며 타겟 이미지를 가져와서 커스텀 설정에 따라 컨테이너를 생성하여 실행하는 명령어 2. 옵션 Option Description -i 컨테이너에서 외부로 표준 입력( ex: STDIN )을 open. 내부 프로그램으로 입력을 전달하기 위해 -t 가상 터미널(tty)을 할당 -d 컨테이너를 백그라운드에서 실행 --name 컨테이너 이름 설정 =rm 컨테이너가 종료되면 자동으로 컨테이너를 삭제 -p Host와 컨테이너 포트를 연결 -v Host와 컨테이너 디렉토리를 연결 3. -it 자주 같이 쓰는 옵션 -i 옵션으로 도커 컨테이너에 외부로의 표준 입력을 open하고 -t 옵션으로 가상(psedo) tty를 만들어 표준 입력을..
1. 문제 상황 사용자가 반납을 직접 정해진 시간 내로 하지 않았을 경우 사용자에게 페널티를 주고 서버에서 자동으로 반납하는 기능을 구현해야 한다. 어떻게 구현해야 할까 고민하다가 "API를 구현해 놓고 cron 명령으로 정해진 시간마다 호출해야 할까?"라고 생각했고, Spring에는 이러한 기능을 제공해주는 것이 없는지 찾아보았다 2. 어떻게 구현할까? 우선 Spring에 스케줄링을 도와주는 기능이 있는지 알아보았다. @Scheduled 어노테이션을 사용하면 일정한 시간 간격 또는 특정 시간에 해당 코드를 실행하도록 설정할 수 있다고 한다. 3. @Scheduled를 적용해보자 (1) 먼저 Main Application class에 @EnableScheduling 어노테이션을 추가한다. @SpringB..
DevPoong
Poong