분류 전체보기

단계별로 성장하자!
1. 문제 상황 클라우드 플랫폼을 사용할 수 없고 학교 서버실 물리 컴퓨터(Ubuntu 20.04)에 배포해야 하는 상황이다. 물리 컴퓨터도 단 1대만 사용할 수 있어서 모든 처리를 한 곳에서 해야한다. 이러한 상황에서 Nginx 설정하는 방법을 알아보자. 2. 문제 해결 우선 현재 Nginx는 Docker 컨테이너상에서 동작하고 있으므로 Nginx 컨테이너상의 /usr/share/html/html 경로와 내 물리서버에 React App을 Build한 결과물 폴더의 경로를 볼륨 매핑하는 과정이 먼저 필요하다. 또한 Nginx 컨테이너와 같은 네트워크 상의 kiosek-backend 이름의 실행되고 있는 컨테이너가 있다고 가정한다. 1. 사용자가 브라우저에서 http://test.kr 을 입력하여 나의 N..
1. 문제 상황 Spring boot 프로젝트를 docker image로 build 하여 Ubuntu 서버의 도커 컨테이너로 실행을 시켰더니 아래와 같은 에러가 나타났다. The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested ........ 2. 문제 해결 알고 보니 Docker Image를 build 했던 pc가 Apple M1 기반 맥북이었고 기본으로 Image build시에 Arm64 기반의 이미지가 만들어졌다. 하지만 배포할 서버는 Ubuntu 20.04로 Amd64 기반의 프로세서를 사용하기..
1. 분산락을 적용하게 된 상황 만약 여러 사용자가 동시에 같은 시간대이거나 겹치는 시간대에 예약 진행 시 어떻게 중복 예약을 막을 수 있을지 문제였다. 해당 예약 테이블은 아래와 같이 생성 되어있다. 하나의 회의 테이블은 이미 예약된 데이터와 시간이 겹치지 않아야만 예약이 가능하다. 동시에 100명의 사용자가 똑같은 (시간 + 장소)를 예약했을 때 8개의 중복 데이터가 발생하였다. 2. MySQL을 이용한 분산락을 구현한 이유 분산락을 구현하는 방법에 대해 검색해보면 Redis를 이용한 방법이 많이 보인다. 하지만 Redis를 이용하게 되면 추가적인 인프라 구축비용이나 유지보수 비용이 발생한다. 따라서, 나는 기존에 사용하고 있던 MySQL에서 제공하는 NAMED LOCK을 이용하여 Lock에 이름을 ..
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..
DevPoong
'분류 전체보기' 카테고리의 글 목록 (9 Page)