만쥬의 개발일기
article thumbnail
[스마트팜] - forever로 실행한 애플리케이션 log 확인하기

서버를 배포중, 문제가 생겼을 때 에러를 확인하려면 반드시 log를 확인해야 한다. 하지만 node.js에서 forever로 실행할 경우, 콘솔에 찍은 에러는 확인이 불가능하기 때문에 반드시 따로 로그 파일을 생성해주어야한다. 물론 server.js에서 처리해주어도 되지만, 기존 콘솔에 찍히던 log들을 모두 옮겨주기도 귀찮고 테스트시에는 어차피 콘솔에 찍으며 하기 때문에, 콘솔에 찍히던 log또한 파일에 저장 후 확인 가능하도록 하였다. sudo forever start -w -o ../out.log -e ../err.log server.js 위와 같이 실행할경우, 기존 출력되던 로그들은 out.log 파일에, 오류 출력 로그들은 err.log에 정상적으로 저장된다. -w: 파일 변경을 감지하고 자동으..

article thumbnail
[스마트팜/Troubleshooting] - Mysql ERROR 1129 (HY000): Host IP ... error 해결하기

잘 동작하던 스마트팜 서버에서 갑자기 DB를 불러오지 못하는 현상이 발생했다. 에러를 잡으려고 콘솔에 찍어보려 했는데, 콘솔에 메시지도 전혀 찍히지 않는 것이었다.. 원인을 찾아보니 , forever로 실행한 애플리케이션은 콘솔에 메시지가 찍히지 않는다는 것이다. 생각해보면 당연한것임을,, 그래서 node명령어로 서버 실행 후 콘솔을 확인해보니 Error connecting to database: Error: Packets out of order. Got: 1 Expected: 0 이런 에러메시지가 찍혔고, 데이터베이스와의 연결에 문제가 생긴것을 확인했다. mysql -h DB_IP -u DB_ID -p 위 명령어로 데이터 베이스에 접속을 시도하자 ERROR 1129 (HY000): Host '접속IP'..

article thumbnail
[Linux/Shell] 폴더 여러개 한 번에 만들고, 삭제하기
🛠️TOOL/📄Linux 2023. 7. 4. 15:13

PS 문제 풀이를 친구와 함께 깃으로 공유를 하다보면, 각자의 코드를 작성해서 push하기 때문에 폴더를 여러개 만들어 공유하는 상황이 생긴다. 우리는 이런식으로 날짜별로 폴더를 만들어서 사용하기에 1~31일의 폴더를 노가다로 만들어야 했다. 하지만 리눅스의 쉘에서도 for문을 사용 가능하다는 사실. 예시를 위해 8월자 폴더를 만들어보자. 먼저 8월자 폴더를 생성하고, 해당 폴더로 이동한다. 그리고 터미널에 다음과 같은 명령어를 입력해주면, for i in {1..31}; do mkdir $i; done 폴더가 잘 생긴 모습이다. 하지만 이대로 커밋하고 푸시할경우, git은 기본적으로 빈 폴더를 추적하지 않기 때문에 변경 내역에 추가되지 않는다. 따라서 폴더마다 내부에 '.gitkeep' 파일을 생성해주..

article thumbnail
[VSCODE] C/C++ Code Formatter 설정하기
🛠️TOOL/🆚VSCODE 2023. 7. 4. 14:47

extension의 prettier를 사용해도 되지만, 직접 C/C++의 코드 포매터를 설정해보자. 개인적으로 Google이 내 코드 스타일과 가장 적합하여, 해당 포맷을 사용하기로 했다. 1.먼저 vscode를 키고, 좌측 하단 톱니바퀴를 누른다. 2. 리눅스의 경우, ctrl+shift+p 단축키로 Command Palette를 연뒤, open user settings를 검색하고 open user settings(JSON) 파일을 연다. 3.해당파일의 하단에 "C_Cpp.clang_format_fallbackStyle": "Google" 해당 코드를 추가해준다. 여기서 Google 부분에는 원하는 formatter를 써주면 된다. LLVM: LLVM coding standards Google: Goo..

article thumbnail
[CA] Datapath of instructions (R-type, Load/Store,Branch)
🖥️CS/📗컴퓨터구조 2023. 6. 16. 20:25

지난 포스팅을 보지 않았다면 먼저 읽고 오자. [CA] - MIPS의 Datapath 이해하기 오늘 배워볼 것은 MIPS의 Datapath이다. CPU의 핵심 구성 요소인 Datapath는 Computer Architecture의 꽃이고, 이후 CA내용을 이해하는데 있어 굉장히 중요한 요소라고 생각해서 포스팅을 작성하게 되었다. ❓D kangmanjoo.tistory.com 📚MIPS의 instruction들 MIPS의 명령어들은 다음 세가지 + jump 중 하나의 구조를 가지고 있다. 각 명령어의 필드와 일부 예시를 먼저 설명해보겠다. R-type 필드 opcode : 명령어의 종류를 나타내는 필드 rs,rt,rd : 각각 source, source, destination 레지스터를 가리키는 필드 sh..

article thumbnail
[CA] - MIPS의 Datapath 이해하기
🖥️CS/📗컴퓨터구조 2023. 6. 16. 17:27

오늘 배워볼 것은 MIPS의 Datapath이다. CPU의 핵심 구성 요소인 Datapath는 Computer Architecture의 꽃이고, 이후 CA내용을 이해하는데 있어 굉장히 중요한 요소라고 생각해서 포스팅을 작성하게 되었다. ❓Datapath란 Datapath는 컴퓨터 아키텍쳐에서 데이터를 처리하는 논리 회로와 구성 요소들의 집합을 말한다. 데이터 경로라고도 할 수 있고, 무엇보다 CPU의 핵심 구성 요소이기에 중요하다. 앞으로의 최적화 기술들과 주소 연산을 이해하는 데 있어 아주 중요하기에 자세하게 짚고 넘어가는 것이 좋다. 이 포스팅에서는 컴퓨터 아키텍쳐들 중에서도 RISC 기반인 MIPS 아키텍쳐의 Datapth에 대해 알아볼 것이다. 👀Datapath의 구성 요소 (MIPS) Datap..

article thumbnail
[스마트팜] - NAS 설치

저번 포스팅에서 말했듯, 우리는 NAS에 공인 IP를 직접 입력하기로 결정하였다. 지난 포스팅 >> 2023.06.09 - [Project/스마트팜-web] - [스마트팜] - 공인IP와 사설 IP, 포트 포워딩 [스마트팜] NAS 설치, 포트 포워딩 kangmanjoo.tistory.com 👀학교 서버실을 가다 계획서에서는 NAS를 학교 서버실에 설치하기로 했었기에, 신공학관 10층에 위치한 서버실을 방문했다. 학교 서버실을 들어와본 건 처음이라 신기했는데, 흔히 아는 서버실의 풍경다웠고 발열을 잡고자 에어컨을 24시간 틀어놔서 굉장히 춥고 팬이 돌아가는 소리가 어마어마했다. (말소리도 잘 안들릴 정도) ❓NAS에 공인 IP 설정하는 법 이제 서버실에 NAS를 설치하려면, 공인 IP를 할당해야 한다. ..

article thumbnail
[스마트팜] - 공인IP와 사설 IP, 포트 포워딩

킥오프 미팅이후, 메일로 다음 미팅 약속을잡은 뒤 우리는 강서구에 위치한 업체에 가서 나스를 업어왔다. 사실 나스 설치까지는 업체측에서 해주기로 했었는데, 좋은 경험이 될 것 같아 우리가 직접 하겠다고 나섰다. (이후 굉장히 후회했다) 나스를 직접 본 건 처음이었는데, 안에 2TB 하드 디스크가 꽂혀있었음에도 생각보다 더 작고 가벼웠다. 이게 40만원이 넘는다니,, 정말 탐난다. 나스의 초기 세팅은 이미 되어있는 것으로 전달받았으나, 계정 비밀번호가 유실되어 초기 세팅부터 직접 진행했다. 우선 NAS 뒤에 있는 reset 버튼을 눌러 초기화 후, OS 설치부터 진행하였다. NAS의 OS는 리눅스 기반 OS인 DSM이다. 이후 계정 생성등 초기 설정을 마친 뒤 (https://chelly.kr/synolo..