전체 글

전체 글

    [React] EC2/라이트세일 서버에서 리액트 npm start 배포/빌드/구동시 서버 멈춤 해결하기 / 메모리 부족 / 스왑 메모리 설정 / Swap Memory

    현상 로컬환경에서 리액트 프론트앤드 서버구축을 끝냈고 git 저장소로 올려 이제 서버 배포하는 단계에서 문제가 일어났다. 서버 터미널에서 npm start 명령어를 이용해 앱을 실행하면 빌드과정을 거쳐 앱이 구동되는데.. 위 화면을 마지막으로 계속 터미널 접속이 멈추는것... 위 터미널만 멈추는 것이 아니고.. 새 터미널로 서버에 접속하려고해도.. 서버에서 응답을 주지 않았다. 즉..서버가 뻗어버린 것.. 기존에 올라가있던 앱들도 무응답을 현상을 보였다. 메모리 부족 그래서 원인이 뭘까 추측과 테스트를 반복하는 과정에서 놀랍게도 진짜 리앱트 앱이 구동될때만 이런 현상이 나타나기 시작했다. 그럼 왜.. 리액트 앱이 구동될때 이렇게 되는걸까..? 가장 먼저 의심이 들었던건 설마..? 메모리부족..? 일까....

    [React] 리액트 실행시 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 에러 발생 / 힙메모리 부족

    현상 로컬에서 만든 react 프론트 앤드를 라이트세일 서버에 올렸고 npm start 커멘드를 이용해 실행시켰는데 위처럼 나왔다. FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 내용을 보면 힙메모리가 부족해서 OOM 이 발생했다는 뜻이다. 해결 방법 현재 Heap 사이즈 확인 node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))' 현재 약 512 메가가 힙사이즈로 할당되어있다. Heap 사이즈 변경 $ export NODE_OPTIONS=--max_old_space_size=8192 다른 가이드를 보면 터미널에서 위 명령어를 수..

    [github] git 저장소 비밀번호 없이 push pull clone 하기 / token 입력 없이 명령어 실행 방법 / ssh key 설정

    문제점 문제점이라고 할 것 까지는 없을 것 같긴한데.. 불편한점이 있다..라이트세일/EC2 서버에 git 저장소와 연동한 이후 git 명령어를 수행할 때 마다 비밀번호를 입력하라고 하는 것.. 후... 내가 쓰는 그냥 비밀번호면 참아볼만한데.. 외울수도 없는 token 으로 된 비밀번호를 입력하라고하니 원.. 매번 어디다 적어뒀던 토큰을 복사해서 입력하고 있는데.. 이 인증을 계속하고 싶지 않단 생각이 들었다. 방법을 찾아보니 ssh key 를 샐성하여 세팅하면 ID/PW 인증 없이 접속이 가능하다고하여 그 방법을 알아보자. 실행 환경 라이트세일 우분투 리눅스 서버 mac 환경 원격 터미널 접속 SSH key 생성 .ssh 폴더 이동 cd .ssh 라이트세일 우분투 서버기준으로 홈디렉토리(~) 하위에 ...

    [라이트세일/EC2] 우분투 리눅스 서버에 nodejs express / react 배포하기 / 프론트앤드, 백앤드 API 프로젝트/ git 배포방법

    서론 nodejs 환경에서 express 백앤드와 react 프론트앤드를 만들었고, 로컬환경에서 내 git 저장소에 모두 커밋을 해두었다. 이제 우리가 해야할 이은 git 저장소에 있는 소스코드 기반으로 내 라이트세일 리눅스 서버에 배포하는 것.! 일단 BE 배포나 FE 배포나 둘다 nodejs 환경이기때문에 그놈이 그놈이고 방법이 크게 다르지 않아 일단 express 로 구현한 backend 서버 배포하는 방법에 대해 알아보자! node 구동 환경 준비 먼저 라이트세일이나 EC2 리눅스 서버에서 node 기반 앱을 구동하기 위해서는 nodejs 런타임 환경과 npm 도구를 설치해줘야한다. https://extsdd.tistory.com/444 [Mac 환경설정] 라이트세일/EC2 우분투 리눅스 서버에 ..

    [nodejs] express 프로젝트 실행시 MODULE_NOT_FOUND 에러 해결 방법 / Error: Cannot find module 'package'

    현상 npm run start 혹은 npm start 등 nodejs 환경 app을 실행할때 아래와 같은 메시지가 나타나는 경우가 있다. Error: Cannot find module '패키지명' code: 'MODULE_NOT_FOUND' 원인 원인은 말그대로다. 앱을 실행하는데 프로젝트 디렉토리에 앱을 구동할 관련 패키지가 없다는 뜻이다. NO! Module! 즉, 패키지 모듈이 없는데!?! 일단 저기서 친절하게도 알려준다. http-errors 패키지가 없다고. 그럼 해당 패키지를 설치해주면 된다. 보통 이런 케이스가 많이 생기는 케이스는 경험적으로 아래 두 케이스다. 프로젝트 디렉토리에 node_modules 경로가 아예 없는 경우 express나 react 앱도 기본적으로 기본 의종성들이 있기때..

    [라이트세일/EC2] git 저장소에 반영한 커밋내용 연동된 우분투 리눅스 서버 저장소에 최신화하여 반영하기

    사이드 프로젝트를 하고있는데 일단 내 맥환경에서(local) 개발후 git 저장소에 커밋하여 내용을 반영하고 있다. 어느정도 커밋되어 작업이 완료되었다면, 이제 이 git 저장소와 연동된 서버에도 반영해야할 떄가 생긴다. 어떻게 보면 배포다. 나는 젠킨스 등 CI/CD까지 이용해 배포 자동화를 구축해놓진 않았다. 한번 배포하고나서 이후로 따로 배포해야할 건이 많지 않아. 그냥 git 저장소를 연동해서 배포하고 있다. git 저장소 최신화 git pull origin master 위 명령어를 입력하여 git 저상소의 최신 소스를 받아오자, 입력하면 id/pw 를 입력하는데 여기서 입력하는 pw 는 token 이니 참고하자. 접근 정보를 입력하고나면 소스 동기화가 이루어진다. token 발급 https://..

    [Mac 환경설정] 라이트세일/EC2 우분투 리눅스 서버에 git 저장소 연동하기

    디렉토리 생성 mkdir server # 서버 경로 생성 cd server # 생성한 server 경로 이동 git 프로젝트를 보관할 디렉토리를 새로 생성해주자. 나는 home 에서 server 폴더를 하나 만들었다. 그리고 먼저 backend 소스를 받기위해 server 폴더 내부에 프로젝트 폴더를 하나더 만든 후 해당 경로로 이동했다. 저장소 복제 git clone # git 저장소 복제 위 명령어를 이용해서 git 저장소를 복제하자. clone 을 시도할때 ID/PW 를 묻게된다. 여기서 ID는 본인 git 계정 이메일주소를 쓰면된다. 다만 PW는 본인이 git 접속할때 사용하는 PW가 아니고 Token 형태로 입력해야한다. 로그인 실패하는 경우 만약 PW를 Token 형태로 입력하지 않는경우 위처..

    [Mac 환경설정] git clone 로그인시 fatal: Autentication failed for 오류 해결하기 / 비밀번호 token 생성

    현상 git 저장소에 있는 코드를 라이트세일 서버로 옮기려는 도중 문제가 생겼다. git clone 명령어를 이용해 저장소를 복제하기위해 로그인 정보를 묻기에 내 계정정보를 입력했으나 아래 오류가 발생했다. remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication. fatal: ..