문제 상황Oracle Cloud Infrastructure(OCI)의 Ubuntu 22.04 인스턴스에 Nginx를 설치하고 도메인을 연결했으나, 외부에서 접속 시 'Connection Refused' 오류가 발생했습니다.점검 과정문제 해결을 위해 다음 단계를 순차적으로 진행했습니다.1. Nginx 서비스 상태 확인sudo systemctl status nginx: active (running) 상태 확인.sudo netstat -tnlp | grep nginx: 0.0.0.0:80 포트에서 정상 리스닝 확인.결과: Nginx 서비스는 정상 동작 중이었습니다.2. OCI 네트워크 설정 확인보안 목록(Security List): 수신 규칙에 80, 443 포트가 모든 소스(0.0.0.0/0)에 대해 허용됨..
Trouble shooting
문제 상황Docker 실행 시 아래와 같은 오류 메시지가 발생했다.시도한 해결 방법sw_vers 명령 확인터미널에서 sw_vers 명령어가 정상적으로 동작했으며, 관련 경로도 이상 없었다.Docker 공식 트러블슈팅 문서 확인docker의 트러블 슈팅 문서를 참고했으나, 동일한 사례를 찾을 수 없었다.Docker 재설치Docker Desktop을 삭제하고 다시 설치했지만, 문제가 해결되지 않았다.최종 해결 방법터미널에서 다음 명령어를 사용해서 Docker를 실행할 수 있었다.open /Applications/Docker.app/실행되지 않았던 이유는 Docker 데몬이 제대로 시작되지 않았기 때문이라고 생각한다.open 명령으로 데몬이 제대로 초기화되면서 문제가 해결된 것 같다.
개요 NGrinder Controller를 실행할 때, 아래와 같은 오류가 발생했다. local IP address인 '218.38.137.27'에 접근할 수 없다고 한다. 모르는 IP라서 찾아보니 218.38.137.*은 SKB에서 제공하는 IP였다. 현재 ISP로 SKB와 SKB의 DNS 서버를 사용하는데 관련이 있다고 생각했다. Caused by: org.ngrinder.common.exception.NGrinderRuntimeException: Can not check available ports because given local IP address '218.38.137.27' is unreachable. Please check the `/etc/hosts` file..
문제 상황 Board, Column, Card 엔티티가 각각 1:N, 1:N 관계일 때, Board와 관련된 Column, Card를 모두 조회하려고 했다. (단, Column은 Column의 weight 필드를 기준으로 정렬해서 조회하고, Card는 Card의 weight 필드를 기준으로 정렬해서 조회한다.) 이때, 단순히 조회하면 N+1 문제가 발생해서 Board와 연관된 Column N개, Column과 관련된 Card M개를 조회하면서 N*M번 불필요한 쿼리를 수행하게 된다. 생각 처음엔 한 번에 column과 card를 fetch join 하려고 했었는데, MultipleBagFetchException: cannot simultaneously fetch multiple bags 예외를 만났다. ..
문제 상황 Vuex로 클라이언트의 인증 상태를 관리한다. 메인 페이지로 사용하는 컴포넌트에서 로그인 한 사용자와 로그인 하지 않은 사용자에게 보여주는 컴포넌트를 분리했는데, 페이지를 새로고침 하면 인증 상태가 초기화될 때 잠깐 LoginBefore 컴포넌트가 그려지고, 서버에 인증 상태를 확인하는 요청이 완료되고 나면 LoginAfter 컴포넌트가 그려져서 깜박이게 된다. 해결 방법 컴포넌트가 그려지기 전에 인증 상태를 확인해야 한다. 방법1 컴포넌트 로딩 시점보다 빠르게 인증을 받아내기 브라우저가 새로고침되면 컴포넌트보다 먼저 뷰 라우터의 네비게이션 가드가 실행되므로 이때 인증을 받아낸다. 장점 명확한 타이밍에 인증을 받을 수 있다. 단점 모든 라우팅에 대해서 세션을 체크하기 때문에 불필요한 API 호..