오늘 한일 Node.js 심화 과제를 진행하면서 많은 의문과 궁금증이 있었습니다. Sequelize 모듈로 MySQL을 조작할 때 assocation을 Models에서 정의하지 않으면 JOIN 문을 사용할 수 없다는 것을 찾지 못해 엄청난 고난의 시간을 겪었습니다. 그리고 아직은 모듈의 사용법을 잘 알지 못하다 보니, SQL문으로 DB를 조작하는 것이 더 편하였습니다. 그래서 일반적인 SELECT 문이 아닌 JOIN 연산자 또는 중첩 쿼리문을 사용해야 할 경우에는 mysql이라는 node.js 모듈을 활용해 문자열을 이용해 DB를 조작할 수 있도록 설정하였습니다. Nunjucks 템플릿 엔진을 처음 사용해봤습니다. 이전에 Flask의 Jinja 2 템플릿을 사용했을 때의 문법과 비슷해 사용하는 데 어려움..
오늘 한일 Node.js 심화 과제를 진행했습니다. 기존에 있던 코드를 재사용하여 빠른 속도로 과제를 완수 할 수 있었지만, 4일이란 시간이 짧지는 않은 것 같아서 처음부터 코드를 작성해 구현해보도록 하였습니다. DB가 포함된 프로젝트를 할 때는 가장 중요한 것이 구조도를 작성하여 틀을 맞추는 것이 가장 중요하다 생각하였습니다. Sequelize를 사용해서 DB를 구현하였고, 구현된 DB를 기반으로 CREATE 문을 작성하여 ERD를 생성하였습니다. 매번 정규표현식을 사용할 때는 Python에서 re 라이브러리를 사용하였지만, 처음으로 Javascript에서 정규표현식을 구현하여 Nickname, Password가 형식에 맞는지 검출해 보았습니다. 오늘 배운 것 Node.js 심화 과제 회원 가입페이지,..
오늘 한일 Node.js 5주 차 숙제를 해결하였습니다. 테스트 코드의 종류에는 대표적으로 Unit, Integration, End-to-end 가 있다는 것을 확인하였고, Unit 테스트를 어떠한 방식으로 사용하는지 배웠습니다. Jest, SuperTest 라이브러리에서 http와 일반 함수를 체크해 올바른 동작인지 확인하는 방법을 배웠습니다. 테스트 코드는 구조를 이해하고 작성을 해야 하기 때문에 아직 구조도를 작성하는 데 어려운 부분이 존재하였습니다. AWS CCP 공부를 진행하였습니다. 대표적인 AWS에서 제공하는 기능에 대해서 훑어보면서 기능이 어떠한 것이 있는지, 각 기능이 어떠한 동작을 하는지 확인하였습니다. 오늘 배운 것 Node.js 5주 차 과제 진행 WIL 작성 SuperTest 라이..
결국 먹통이었습니다. cp 명령어로 데이터를 이전하는 것은 성공하지 못했습니다. 1시간이 지난 후 확인해본 결과 DSM과 함께 SSH도 똑같이 죽었습니다. HDD의 손상이 어쩔 수 없지만, 강제적으로 NAS를 전원 차단하여 종료하였습니다. 이후 오류가 발생한 당일을 되짚어 보았습니다. MongoDB와 Node.js를 Docker에서 이미지 다운로드하였고, 컨테이너를 생성하였습니다. 3주 차 Node.js 과제를 Docker에 추가 업로드 하였고, Node.js, MongoDB를 연결하였습니다. 00시 정각에 정기적인 전원 종료가 실행되었습니다. 다음날 오전 8시 NAS의 전원을 키려 했으나 종료되지 않는 상태였습니다. 종료 버튼을 눌러도 동일하게 깜빡 거리기만 할 뿐 시간이 지나도 종료되지 않았습니다. ..
오늘 한일 Node.js 심화 강의를 전부 수강하였습니다. 각 주 차별 과제들이 난이도가 상당히 높아 기존의 Javascript 실력만으로는 풀이가 힘들었습니다. 3주 차 과제에서는 MongoDB를 이용하던 파일을 MySQL로 변경하는 것이었는데, Docker에 DB를 설치해 동기화하는 것은 처음이었지만 상당히 재미있었습니다. DB에 접속해 SQL 문으로 데이터를 삽입하고, 데이터를 웹으로 출력시키는 것은 저의 흥미를 자극 해주었습니다. 4주 차 강의 과제는 Socket.io를 사용해 실시간 이벤트를 발생시키는 것이었는데, 이벤트 핸들링이라고 생각하면 그렇게 어렵게 느껴지지는 않았습니다. 상당히 흥미로운 과제였습니다. 오늘 배운 것 Node.js 주특기 심화 강의 수강 Node.js 3, 4주 차 과제 ..
오늘 한일 NAS의 데이터를 전부 백업하였습니다. 여분의 12TB 하드가 남아있어 데이터를 전부 다운받고 기존의 충돌 문제가 생긴 Volume 1을 제거하였습니다. 그리고 DSM에 문제가 생긴 것 같아 리셋 설정을 하고, 모든 DSM의 데이터를 삭제하였습니다. 그 이후 DSM 재설치를 시도해보았지만, 알 수 없는 에러 발생으로 설치되지 않는다는 메시지만 나타난 채로 더는 진행되지 않았습니다. 기존의 Volume 1의 문제인 것 같지만 확실한 문제 해결을 위해 다음 주 월요일 A/S 센터에 전화하여 해결해야 할 것 같습니다. Node.js 심화 강의를 3강까지 수강하였습니다. 기본 강의와는 확연히 다른 난이도로 저의 정신 상태를 갉아먹기 시작한 것 같습니다. 2강 숙제에서 제공하는 코드 대신의 기존에 작업..
오늘 한일 NAS의 데이터 백업이 실패했습니다. 아침에 A/S 부서에 상담을 해봤지만, 자기들로서는 도와줄 수 없다는 답변을 들었고, 해당 디스크를 포기해야 한다는 소리를 들었습니다. 그래서 왜 에러가 발생했는지 한번 되돌아보았고, Package에서 에러가 발생한 것이 아닌지 의심이 들어 메인 패키지 관리하는 위치인 /var/packages에서 에러가 발생한 모든 패키지를 삭제하였습니다. 그 이후 DSM에서 데이터 다운이 정상적으로 되는 것을 확인하여 백업을 진행하고 있습니다. Code it에서 Promise 내부 함수들을 배웠습니다. 반환 값이 존재할 때와 에러가 발생할 때, 그리고 catch, finally 등 비동기 프로그래밍의 구조를 확인할 수 있었습니다. 이후 데이터 통신을 할 때 어떠한 방식으..
볼륨이 충돌 되었습니다. 우선은 모든 포트 포워딩을 차단하여 NAS 서버의 접근을 차단하였습니다. 처음으로 모든 볼륨이 장착된 상태에서 백업을 진행하였지만, 여러 가지 문제점이 발견되었습니다. DSM을 1~2시간 사용하다 보면 무한 로딩 상태가 발생한다. 정상적인 종료 방법으로는 NAS가 종료되지 않고, 강제종료로만 NAS의 전원이 차단된다. SSH로 충돌이 발생한 Volume 1은 접근이 되지 않는다. 모든 패키지의 에러가 발생했다. Volume 1의 일부 폴더가 접근되지 않습니다. 결국 멈춰버린 NAS를 어떻게 해서든 되살리기 위해 NAS의 디스크에는 무리를 주는 것이지만, 어쩔 수 없이 강제종료를 사용해 전원을 차단하였고, NAS 자체의 문제인지, Volume 1의 문제인지 확인하기 위해 백업용 하..
오늘 한일 항해톡 3회에서 코드스니펫과 매크로를 주제로 발표를 진행하였습니다. 다른 크루원들의 빠른 코딩 속도를 위해 발표를 진행하였는데 PPT제작에 너무 많은 시간을 사용해서 내용을 체크하는부분에서는 미흡했던 것 같습니다. 많은 아쉬움이 남은 발표 인 것 같고, 다음 발표를 진행할 때는 내용이나 발표의 구성요소를 중점적으로 생각해야 할 것 같습니다. NAS가 죽었습니다. 1번 볼륨에서 충돌이 발생하였고, 모든 데이터는 정상적으로 존재 하지만 DSM이라는 NAS 서버가 1~2시간 이후에 뻗으며, 종료되지 않는 무한 종료 상태가 진행되었습니다. 1번 볼륨은 RAID 1로 구성되어 있지 않아 데이터 복구에 많은 시간을 쓸 것 같고, RAID 및 Backup의 중요성을 깨달았습니다. 오늘 배운 것 항해톡 3회..