210721 TIL

5805 단어 TILTIL

금일 분석

- 3:19 취침
- 숙면 - 3시간7분, 2시간 16분 = 총 5시간23분
- 오후 1:00 집중 시작
    - 순공시간 -  1시간20분, 20분, 52분, 1시간43분, 2시간
    - = **8시간중 6시간 15분 집중**

Feeling

- 비록 늦게 일과를 시작했지만 충분히 컨디션이 괜찮을 것 같다는 정도로 쉬고 나서 공부를 하니 집중할때 졸음이 계속 오지 않아서 너무 좋았다. 하루중에 졸림 신호가 3번 밖에 오지 않았던 것 같다. 덕분에 진도도 계속 나갈 수 있었다. 크루원보다 진도도 뒤에 있는데 좋아해야 될 일인가 싶기도 하지만 앞으로 나아 가지도 못하다가 움직여져서 그런가 아직은 재미있다.
- 충분한 숙면이 우선순위이기는 하지만 그렇다고 너무 퍼지지는 말자. 충분히 쉬는 만큼 공부할수 있는 시간도 확실히 지키려고 노력하자

FAP

- 시간뺏김
    - 휴식을 취할때 잠깐 보던 유튭에 어느세 한두시간이 지나가있다.. 휴식을 취할때 유툽을 본다면 하루 일과에 지장이 가지 않게 얼만큼 볼지 머리속에 인지해두거나 타이머를 맞춰두고 쉬자.
    

금일 목표

- [x]  수정하기 보수공사
- [x]  삭제하기 구현
- [ ]  배포하기
    - [x]  거의 다와서 배포 오류나서 실패했지만  한사이클 채운것으로 만족

구현과정 로깅

- 노드 실행후 나오는 결과 값의 인지 속도가 느려서 해당 기능마다 어떤 행위를 한것인지와 실행값을 콘솔로 찍어주기
    - 확실히 원하는 결과인지 아닌지 인지 하기가 수월함
- 수정하기 실패시 수정하기 리로딩 구현
    - 해당하는 게시글의 데이터를 다시 넣어 주어야 되기 때문에 /editing의 get메서드 API의 응답값을 그대로 응용함
- 수정하기 기능은 되는데  처음에만 수정할때 DeprecationWarning이 뜸
    - 찝찝해서 찾아봄

    node:11012) DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFindAndModify` option set to false are deprecated. See: [https://mongoosejs.com/docs/deprecations.html#findandmodify](https://mongoosejs.com/docs/deprecations.html#findandmodify)
    (Use `node --trace-deprecation ...` to show where the warning was created)

    - 무시하고 삭제기능구현할까 아니면 찾아 볼까? 고민
        - 10분투자하고 알아보는데 시간이 오래 걸리면 다음 기능 ㄱㄱ
        - 결국 40분 정도 시간 쓰고 해결 하지 못함
            - 추후에 지원하지 않을 기능이라 뜨는 경고 메시지 같음
            - 더이상 지원하지 않는 기능인감?
            - 유저하고 개발자가 서로 확인도 않고 데이터를 삭제하고 바꿀수 있기때문에 나타네는 warning같은데 사용하기 위해서
            - 필요한 조건세팅하라고 해서 했는데 그대로임 뭐가 문제일까?
        - You can also safely ignore this warning. Mongoose will not remove the legacy useFindAndModify: true behavior until Mongoose 6.0.
        - 현제 몽구스 버전 5라 딱히 신경은 안써도 되는데 경고문 나오는거 없에는 방법을 알고 싶음....
- 세세한 오류 수정
    - 수정하기 누르고나서  그에 해당하는 데이터가 미리 작성이 되어야 하는데 어떤 글들은 앞에 단어만 나오고 띄어쓰기 공간 다음부터는 적혀있지가 않다
    - 내용값에 띄어쓰기와 엔터가 들어가있다.
    - 예시
        - 제목, 작성자, 비번, 내용을 전부다 "오늘 낮에 안잘수 있을까"로 저장하고 수정하기에 들어가면 내용적는 칸빼고 제목과 작성자가 "오늘 "이라고 나옴
    - 해결
        - 해당 ejs파일인 editing.ejs에 들어가서 input태그로 되어 있는 제목, 작성자, 비밀번호칸을 전부 textarea태그로 변경
        - <>괄호같은게 겹쳐보여서 보기 쉽게 띄어써놨더니 입력값에 /r/n같이 생긴게 있었던것 같다. 빈공간을 없애고 딱 ejs문법만 입력값으로 변경함
- 게시글 수정하기 구현 100퍼센트 완료!!
- 코드 실행후 항상 첫페이지를 들어가기 위해서 추가로 allpost를 쳐주어야 하는데 번거로우니 api url만 "/"로 수정
- init 게시글 삭제하기 구상
    - 로직 에러
        1. 전체게시글에서 각 게시글마다 삭제하기 클릭할 수 있는 링크를 만들어준다.
        2. 클릭한 게시글의 id를 쿼리로 담아 삭제하기 기능을 구현할  api에 보내준다.
        3. 삭제하기 기능의 api에서 아마 req.query.id로 쿼리를 뽑아서 변수에 지정해준다.(잘 모르겠으면 콘솔로 req.query확인해볼것)
        4. 아이디값을 지정한 변수를 사용해 몽고db에 있는 데이터값을 찾고 해당 데이터를 삭제해준다.
            - 구글링으로 몽구스 데이터 삭제하는 법 찾아보기
        5. 뇌정지옴 로직 에러 깨달음
    - 다시 구상
        1. 게시글 조회하기 페이지에 삭제하기 버튼을 만들어준다
        2. 삭제하기 버튼에 삭제하기 기능을 구현할 API url과 데이터 아이디를 쿼리로 넣어주려고 하는데 생각해보니 form을 써서 보내는 데이터 위치는 이미 '수정완료'기능으로 설정을 해두었는데 삭제하기에 필요한 데이터는 몽고디비 고유한 아이디값과 비밀번호가 일치 한지 안한지를 확인 하기 위한 데이터값 그럼 form을 두가지의 submit 버튼에 두가지의 action과 method형태를 쓰는 법 구글링 또는 ejs에서 함수를 만들어서 수정하기 버튼을 클릭시 현재 입력되어 있는 비밀번호와 ㄷ이터에서 받은 비밀 번호가 일치하면 삭제하기 api실행 시키는 방향
        3. 
    - 게시글 삭제하기 기능 구현
        - 하나의 폼에 두가지 api로 선택적으로 데이터 보내는법 찾기
            - 기존에 만들어 두었던 '수정하기' 버튼과 다르게 구현이 되어 있어서 실험해보다가 의식의 흐름대로 가는것 같아서 기존에서 한번에 추가로 버튼을 구현하는게 아니라 기존에 있는 '수정하기' 버튼을 지금 찾은 방식대로 변형해본다

            [https://goodsgoods.tistory.com/288](https://goodsgoods.tistory.com/288)

        - 일단 스스로 구글링해서 하나의 form에  두개이상의 버튼의 선택적으로 데이터를 보내는 방법을 찾았는데 기존에 제출 했던것을 찾아보니 '삭제하기' 버튼 태그에다가 formaction과 method를 추가하는 방식이 있었다. 간편해 보이니 다음번에는 이방법으로 써보자
        - 에러찾기
            - delete method안됨 (form과 관련 있어보임)
                - 희한하게 form 방식에서 post만 쓸수 있는 것 같다 아니면 다른 REST API method를 쓸때는 다른 형식으로 작성하는 form 틀이 있을 것 같다.
                - 해결법
                    - post로 바꿈
        - mongodb에서 데이터 삭제하는 법 구글링
            - findByIdAndDelete (id)찾음
        - '수정하기' 기능 만들때 처럼 구현
        - 게시글 삭제하기 구현완료!
        - 이것저것 테스트중
        - async await 언제 쓰고 언제 안쓰는지 타이밍을 아직 모르겠음
            - 비번 삭제에서 await 빼니까 삭제 안됨
    - 과제 조건 테스트 완료!
    - 배포하기!
        - **[AWS에 Node.js 배포하기] AWS 가입 및 EC2 서버 임대**
        - **[AWS에 Node.js 배포하기] EC2에 Node.js 설치 및 몽고디비 설치**
        - **[AWS에 Node.js 배포하기] 프로젝트 업로드 후 실행하기, PM2**
        - **[AWS에 Node.js 배포하기] 서버의 대문 설정, 포트(Port)**
            - 포트 80에서 3000으로 연결하기 하고 ip주소로 들어가니까 안됨!
            - 인스턴스 죽이고 다시 시작하기!

TimeTracking

- 3:04
    - 하루 회고 정리
- 3:19
    - 잘준비
- 3:29
    - 숙면 - 3시간7분
- 6:36
    - 학습실에서 피곤하면 잘까 아니면 여기서 조금 더 자고 나갈까 고민중...
    - 자취관련 유튭 시청
        - 시간 삭제???? 1시간40이나 지나감???
- 8:16
    - 숙면 - 2시간16분
- 10:32
    - 스트레칭
    - 나갈준비
    - 분리수거
- 11:05
    - 점심
    - 학습실 이동
- 12:10
    - 세팅
    - 필요한거 알아봄
    - 전화
- 12:52
    - 금일 자율시간
        - 1:00
            - 자율 - 8시간 30분
            - 어제처럼 시간을 쓸시- 7시간 10분 순공 가능
        - 저녁 (6시쯤 이후에 집중 안되거나 문제가 풀리지 않을때) - 30분
        - 9:00
            - 다이소
    - 7시간 10분 순공 가능
- 1:00
    - 로깅
    - 공부전 세팅
    - 금일 목표 작성
    - 
- 1:10
    - init 수정하기 기능 보수공사
    - cmplt 수정하기 구현 100퍼완료
- 2:30
    - BR
    - 헬스장 연기날짜 확인
        - 주단위로가능
- 2:48
    - init 게시글 삭제하기 기능 구상 및 구현
- 3:08
    - 집중안되고 멍한 느낌이라 바람쐬러 다이소감
- 3:38
    - ing 게시글 삭제하기 기능 구상 및 구현
    - 졸리기 시작
- 4:30
    - 낮잠
    - 을 자려다가 저녁먹는걸로 대체하기
    - 저녁
- 5:10
    - ing 게시글 삭제하기 기능 구상 및 구현
    - cmplt 게시글 삭제하기 기능 구상 및 구현 완료!!!
    - 구현해야되는 조건 테스트 완료!
- 6:53
    - BR
- 7:00
    - init 배포하기
    - ejs사용해서 서비스를 완성 시켰는데 강의하고 조금 다른 방법이라면 다음단계로 넘어가는데 혹시나 내용을 놓쳐서 학습하는데 지장이 있을지 걱정
- 9:00
    - 로깅
- 9:05
    - 퇴근준비
- 9:10
    - 휴식
- 11:40
    - 하루 정리
- 12:13
	- 자러감

좋은 웹페이지 즐겨찾기