본문 바로가기

TIL

20210824(화) [항해 79일 차] 협업돼지 런칭 D-1

행복의 비결은 더 많은 것을 찾는 것이 아니라
더 적은 것으로 즐길 수 있는 능력을 키우는데 있다.
- 소크라테스 -

 

깃허브에 우리 mongodb 패스워드가 노출되어있어 재설정을 하려고 시도하다가 연결이 안되는 버그가 생겼다. 

여러가지 시도해도 안되길래 log폴더와 data폴더까지 날려버렸다. (폴더도 지워버림)

https://jvvp.tistory.com/960 여기 보고 지우고, 폴더는 파일질라로 수동삭제 했다.

삭제 전에는 아래와 같은 명령어를 통해 혹시나 있을 오류를 대비했다.

# sudo service mongod stop
# killall -9 mongod

 

이후 다시 아래 명령어를 통해 mongodb를 재설치했다.

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

sudo apt-get update

sudo apt-get install -y mongodb-org

재설치 후 

# sudo systemctl start mongod도 해보고,

# sudo service mongod start도 해본 다음

# mongo를 해봐도 아래와 같은 에러만 자꾸 떴다.

 

ps -ef에서 목록을 봐도 mongodb와 관련된 프로세스가 실행되지 않고 있었고, 동일한 문제를 해결한 사람을 찾아 열심히 구글링했다. 

# sudo mongod --repair

# sudo mongod

# mongod 

이렇게 해봐라는 사람의 말대로도 해보고, 

 

brew services list | grep mongo 로 실행여부를 확인 후 어떻게 하라는 사람의 말도 해봤는데 실행이 안되고 있어 이건 진행이 불가능했다.

 

sudo systemctl start mongod으로 실행해보라는 말도 안됐다.

 

그러다가 3개의 좋아요를 받은 답변대로 하니 정상적으로 실행이됐다.

 

https://stackoverflow.com/questions/52535985/couldnt-connect-to-server-127-0-0-127017-connection-attempt-failed-mongodb

 

삭제하는 과정에서 data관련 폴더는 따로 백업해두는 게 좋았을 것 같은데 생각이 짧아 그냥 삭제해버렸다. 기존에 테스트용으로 만들었던 것들이 싸그리 증발되었다 ㅠㅠ 팀원분들께 죄송한 마음에 사과를 드렸다.

 

기존 팀원분이 만들었던 계정이 로그인이 잘 안되서 teampig.manager@gmail.com 으로 비즈니스용 계정을 새로 팠다. 

가입만해도 뭐 10만원어치의 광고 크레딧을 주는 것 같은데 받으시겠습니까? 라는 문구에서 안받는다는 클릭을 했다. 걍 할걸... 

198번 줄 부터 보자

myStatus가 memberStatus와 완벽하게 일치하는듯한 모습. 보통 const a = b라고 변수를 두면

아래에서 b = 'c'가 되더라도 console.log(a)의 결과는 b가 나올 것이다.(찾아보니 참조 할당이라고 한다.)

동일하게 위 사진의 경우에서도 const a(myStatus) = b(memberStatus) 로 변수를 선언하고

b에 대해서만 값이 바뀌어서 a는 그대로 b일 것이라고 예측했는데 그렇지 않고 a는 바뀐 b가 되었다. 마찬가지로 b도 바뀐 a가 되었다. a와 b가 완전히 동일시 된 것 처럼 나타났다. 

생전 처음 보는 현상이라 많이 당황했다. 다행히 8조에서 해당 문제에 대해 아는 분이 계셔 원인과 해결방안을 알려주셔서 쉽게 해결했다. 아래 링크를 보며 약간의 감을 잡았다.

https://junwoo45.github.io/2019-09-23-deep_clone/

https://codesource.io/how-to-deep-copy-array-using-lodash/ 

 

How to Deep Copy Array Using Lodash - CodeSource.io

In this article, you will learn how to deep copy an array using Lodash. Let’s say you have an array named 'a' with elements

codesource.io

위 링크글을 보고 lodash.cloneDeep 메소드를 사용하니 문제가 바로 해결됐다. 

참조할당, 얕은복사, 깊은복사 자바스크립트의 메모리 할당방식, Immutability 등등 관련해서 더 공부하고 찾아봐야할 필요성을 느낀다. 이제 디자인패턴 개념이 슬슬 나오고 필요성이 느껴지는 것 같다.

어쩌다 가끔 이처럼 원래 알던 정보와 다를 때 많이 당황스러운데 해당 언어에 대해 너무 얕게 알고있어서 그런 것 같다.

https://poiemaweb.com/js-immutability 여기도 설명이 자세하게 되어있다. 더 알고싶으면 들어가서 보면 좋다.

 

하고싶은 게 진짜 많은데 이젠 정말 선택과 집중이 필요하다. 통합테스트, CI/CD 부하테스트와 쿼리 최적화 등등 많지만 진짜 하나라도 제대로 끝내는 게 더 좋아보인다.