당신이 사람들을 좋아한다는 점을 분명히 한다면,
그들도 당신을 좋아하지 않고는 못 베길 것이다.
- 로이스 맥마스터 부졸드 -
페이지네이션(쪽수 메기기) 유튜브 외국인 형아가 알려주는 영상 보고 코드를 고쳐서 room에 적용했다.
limit와 skip은 어떨때 쓰는지 설명해줬는데 까먹었다. 다시 찾아볼 예정이다.
바로 옆조와 DB관련해서 많은 얘기를 했다. 무결성과 정합성에 대한 이야기를 들었고, SQL에서는 구현하기 쉽지만 NoSQL에서는 구현하기 어렵다가 결론이었던 것 같다. 내 생각이 맞는 지는 모르겠으나 지금까지 느낀바로는 NoSQL(MongoDB)도 mongoose와 같은 라이브러리를 사용하면 스키마도 만들 수 있고, 다양한 옵션을 주거나 조건을 걸어서 생성, 수정, 삭제를 할 경우 SQL의 특성을 그대로 재현할 수 있을 것 같다.
하지만 SQL로는 코드 몇 줄 써서 쉽게 될 것을 NoSQL은 몇 배의 노력을 들여 동일한 특성을 가지게 하는 것의 차이 인 것 같다.
만약 내가 생각한 게 맞다면 NoSQL이 정말 매력적이라 생각한다. 뭐든지 할 수 있고, 본인 입맛에 맞게 자유자재로 바꿀 수 있으니 성능(읽기 쓰기 속도나 메모리)을 크게 신경쓰지 않는다면 정말 정말 매력적이라 생각한다.
오늘 pm2가 켜져있는 상태로 filezilla를 통해 특정 파일을 업로드하여 덮어썼는데 pm2 restart를 해도 바뀐 파일이 적용 안되고 기존 것이 계속 돌아가는 현상이 발생했다. 심지어 pm2 kill을 하고 killall node를 해도 실행되는 노드가 없다고 나왔다. 그런데 서버는 여전히 돌아갔다. 보니까 3000번 포트가 계속 연결이 되어있었는데 lsof -i tcp:3000를 입력하여
pid를 찾고, kill -9 PID(Porcess Identification Number, 프로세스 각각을 구별할 수 있는 유일한 데이터)번호를 입력해서 포트를 계속 계속 죽여도 새로운 PID를 가진 녀석이 계속해서 계속해서 좀비처럼 나타났다.
에어맨이 쓰러지지 않아...
뭔가 죽여도 생성되게하는 뭔가가 있는 것 같아 찾아보니 해당 프로세스의 PPID(Parent Process Identification Number)를 찾아 죽이면 된다고 한다. 부모 아이디라고 하는데 해당하는 것을 찾아 죽이니 정말 서버 연결이 끊겼고, 다시 pm2 start server.js로 서버를 연결하니 새로 업로드한 파일이 적용되어 서버가 다시 연결되었다.
권한설정문제, 방의 마스터인 유저가 탈퇴할 경우 방이 지금은 그대로 남아있는 데 이것을 삭제할 건지 기존 유저에게 넘길 건지에 대한 문제 등등 해결해야 될 게 많다.
이미지 처리해서 넘겨주는 부분도 시급하게 해결해야한다.
아래는 참고한 블로그들... DB관련된 것들은 봐도 봐도 제대로 이해하지 못한다. 아직 내공이 많이 부족한 것 같다. 그래도 읽고 사용하다 보면 점차 통달하는 날이 오리라 생각한다.
https://siyoon210.tistory.com/130
SQL vs NoSQL (MySQL vs. MongoDB)
※이 포스팅은 academind의 SQL vs. NoSQL을 번역한 포스팅입니다. [개요] 웹 애플리케이션 개발을 위한 첫 걸음을 내딛은 이후에 한가지 선택사항을 마주하게 됩니다. MySQL와 같은 SQL을 사용할 것인가?
siyoon210.tistory.com
https://www.koreascience.or.kr/article/CFKO201331751942471.pdf
프로세스의 구성요소 - PID, PPID, UID, GID, EUID, EGID
프로세스의 구성 요소 프로세스를 구성하는 중요한 구성 요소로는 프로세스를 구별하는 유일한 요소인 PID, 현재 프로세스를 만든 부모 프로세스를 나타내는 PPID, 프로그램을 실행한 사람의 정
ttend.tistory.com
[nodejs] 실행중인 node process 종료하기 (address already in use :::3000 Error 해결)
실행중인 node process 종료하기 (address already in use :::3000 Error 해결)
velog.io
윈도우(Windows)에서 특정 포트 검색 및 종료 (netstat, taskkill, find)
개발 도중 사용하고 있던 특정 포트가 종료되지 않아 다시 명령어를 입력했을 때 에러가 발생하는 경우를 한 번씩 겪는다.
velog.io
특히 아래 글이 도움이 많이 됐다.
리눅스 포트 번호로 특정 프로세스 죽이기
리눅스 포트 번호로 특정 프로세스 죽이기 Dec 19, 2017 특정 포트를 사용중인 프로세스를 죽이려면 fuser를 사용하면 된다. fuser 사용법 info fuser 20001 번 포트를 사용중인 프로세스를 죽일 경우 fuser -
banbanmumani.github.io
'TIL' 카테고리의 다른 글
20210802[항해 57일 차] (2) | 2021.08.02 |
---|---|
20210801 [항해 56일 차] (0) | 2021.08.01 |
20210730 [항해 54일 차] (0) | 2021.07.30 |
20210729 [항해 53일 차] (0) | 2021.07.29 |
20210728 [항해 52일 차] (0) | 2021.07.28 |