기타

    [Linux] 리눅스 Crontab - Could not find or load main class 에러 해결 방법

    # CentOS 7 기준 에러 원인 리눅스 Crontab을 이용하여 shell script를 자동으로 실행하는 작업을 하던 도중 Could not find or load main class 에러가 발생했습니다. (command not found 에러 포함) shell 파일을 직접 실행하면 정상적으로 실행되지만 crontab으로 실행할 때만 에러가 발생해 구글링 해보니 Script in cron cannot find command 이 글을 통해 환경변수 설정 문제라는 것을 알게되었습니다. 직접 shell 파일을 실행할 때는 접속한 유저의 환경 변수를 사용하지만, crontab이 실행할때는 환경 변수를 찾을 수 없기 때문에 shell 파일에 환경 변수를 작성해줘야 합니다. 해결 방법 shell 실행에 필요한..

    [Word] 워드 표 페이지마다 머리글 행 반복 안될때 해결방법

    저처럼 삽질하는 분이 없길 바라며 메모합니다. 1. 머리글 반복 전체 해제 후 다시 체크 표 전체 선택 우클릭 - 표속성 - 행 탭 - 페이지마다 머리글 행 반복 체크 해제 - 확인 반복하려는 행만 선택(헤더) 우클릭 - 표속성 - 행 탭 - 페이지마다 머리글 행 반복 체크 - 확인 2. 텍스트 배치 없음으로 변경 표 선택 - 우클릭 - 표 속성 표 탭 - 텍스트 배치 - "없음"으로 변경 끝!

    [Github] Fork해온 저장소에 잔디 심는 방법(커밋해도 잔디가 안심어질때)

    자바 웹 프로그래밍 Next Step 책에 있는 저장소를 Fork하여 실습중이었는데 Fork한 저장소는 잔디가 심어지지 않는다는 사실을 뒤늦게 깨달았습니다 😂 저장소를 새롭게 clone하여 사용하는 방법도 있겠지만 그동안 심은 잔디가 사라지게 됩니다. 해결 방법 👍 git push --mirror 옵션을 이용하여 Fork해왔던 저장소를 새로운 저장소로 옮기면 됩니다. 1. 새로운 저장소 생성 생성 완료! 비어있는 상태 2. 지금까지 사용했던 저장소를 --bare 옵션 추가하여 clone (Fork해서 사용했던 저장소) git clone --bare old-repo.git 3. 새로운 저장소에 --mirror 옵션 저장소에 push 2에서 clone했던 저장소로 이동 cd old-repo.git --mir..

    Sentry로 쉽고 안전하게 서비스 운영하기

    Hola! 서비스를 운영하면서 에러 로깅 + 모니터링 시스템을 적용한 내용을 공유하려고 합니다. 서비스를 운영하면서 가장 불안한 점은 언제 오류가 발생할지 모른다는 거죠.🥲 실제로 아래와 같은 불편함을 겪고있다면 Sentry 도입을 추천드립니다. (저는 모두 해당됐었..) 서비스에 접속이 안될까봐 수시로 접속해서 확인한다. 주기적으로 서버에 접속하여 에러 로그를 확인한다. 접속해서 모든 기능을 테스트 해볼 수 없다. 에러가 발생하더라도 팀원에게 공유하기 힘들다. Sentry란? Sentry란 Application 에러 트래킹, 성능 모니터링을 제공해주는 서비스입니다. 에러가 발생하면 알림을 받을 수 있고 에러에 대한 상세 정보를 트래킹 해줍니다. 성능 모니터링을 이용해 각 지표들을 쉽게 확인할 수 있습니..

    [Docker] Docker 환경 Nginx에 SSL 인증서 적용하기(Let’s Encrypt)

    Nginx에 SSL 인증서를 적용한 내용을 공유합니다. 컨테이너 상의 Nginx에 인증서를 적용하다 보니 방법이 잘 이해가 가지 않아 생각해보다 헤매었네요 😲 Let’s Encrypt 유효성 검사를 완료하려면 Nginx가 필요하지만 인증서가 없으면 nginx가 시작되지 않습니다. 그래서 임시로 https를 사용하지 않는 척 nginx를 실행한 다음 인증서를 발급받고 https를 사용한 nginx에 인증서를 적용하면 됩니다. 준비물 docker-compose 도메인 주소 💡 SSL이란? https를 통한 인터넷 접속은 서버와의 암호화를 통신하고 있는 것을 의미합니다. 이때 사용하는 보안 프로토콜이 SSL(Secure Socket Layer)이며 보안이 향상된 통신을 할 수 있게 됩니다. - http 뒤에 ..

    [Macbook] 맥북 외장모니터 연결 문제 임시 해결(모니터 깜빡임)

    맥북에서 외장 모니터 연결 시 깜박이는 문제가 발생했습니다. 원래는 문제가 없었는데 OS를 Monterey로 업데이트 이후 깜빡임 현상이 발생했습니다. 완전한 해결 방법은 아니지만 임시 조치라도 하지 않으면 외장 모니터를 못쓰기 때문에 도움이 될까 싶어 글을 작성하게 되었습니다. 기기 정보 Device : M1 macbook Air OS : macOS Monterey 12.1 문제 외부 모니터 연결 시 깜빡거림 임시 해결 방법 OS를 최신으로 업데이트 해보고 연결 케이블을 바꿔봐도 증상은 동일했습니다. 노트북의 문제인줄 알았는데 다른 모니터에 연결 시 정상적으로 연결이 됐습니다. 맥북을 살때는 뽑기를 잘해야.. 1. 시스템 환경 설정 - 디스플레이 - 외부 모니터 우클릭 - 내장 Retina 디스플레이 ..

    [Docker] Docker, Nginx, Node.js 환경에서 서비스 무중단 배포하기

    Overview 사이드 프로젝트에서 서버를 제대로 관리하기 위해 Docker를 적용하면서 무중단으로 배포한 과정을 공유하려고 합니다.😃 전에는 Node.js 프로세스 관리 모듈로 Pm2를 사용하면서 reload 기능으로 무중단 배포를 했었는데 Docker와 pm2를 같이 사용하는 것은 권장되지 않기때문에 pm2를 사용하지 않고 nginx의 http 로드 밸런싱 기능을 이용해 무중단 배포를 진행하였습니다. 왜 Docker와 pm2를 함께 사용하는 것이 권장되지 않을까? Docker 내부에서 pm2를 실행시키는 것은 의미가 없습니다. Docker와 pm2 모두 프로세스 프로세스 관리자이며 둘 다 로그 전달, 자동 다시 시작을 수행할 수 있습니다. (pm2 자동 재시작 - Docker의 restart 옵션으로..

    [Docker] Docker 호스트에 원격으로 배포하기(docker compose 이용)

    Overview 사이드 프로젝트에서 서버를 제대로 관리하기 위해 Docker를 적용하면서 원격으로 배포한 과정을 공유하려고 합니다. 자료가 많아 쉽게 원격으로 배포를 할 수 있을 줄 알았는데 생각보다 어려움을 겪어서 정리하고자 글을 작성하게 되었습니다. 다음 기회에는 CI/CD도 적용해보고 싶네요 😯 맥북 기준으로 작성되었으며 docker-compose.yml 파일이 준비되어 있다고 가정합니다. 샘플이 필요하시다면 여기에서 다운로드하시면 됩니다. ❌ DOCKER_HOST 환경 변수를 설정하여 실행 docker-compose 명령 전에 DOCKER_HOST 환경 변수를 실행해주면 타겟을 지정할 수 있습니다. -H(--host) 옵션을 통해 전달해도 됩니다. DOCKER_HOST= "ssh://user@r..