본문 바로가기

내일 배움 캠프/Weekly I learned

WIL 20230625

728x90

0. 기간 :

20230619~20230625

 

1-1. 이번 주 동안 있었던 일

Lv2, Lv3 과제 제출 (로그인 기능 : mongoose, sequelize)

1-2. 이번 주 체크리스트

[ O ] 예쁜 말로 협업하였는가?

[ O ] 12시간 동안 몰입하였는가?

[ ... ] 코딩 시 복사 + 붙여넣기를 하지 않았는가?

좀 하였다.

[ O ] 친절한 개발자였는가?

[ ? ] 이번 주를 평가하였을 때 주니어 개발자가 될 수 있겠는가?

기억을 잘 못한다면 다른 사람보다 몇 번 더 보고 읽고 외우자.

2. 이번 주 소감

이번 주는 힘들었다. 새로운 것들도 많이 배웠고, 전혀 다른 개념의 것들이라 처음에 내가 별세계에 온 줄 알았다.

3. 이번 주에 배운 것

const alltodos = require("../models/todo");
const maxOrderByUserId = await alltodos.findOne().sort("-order")

이 식에서 findOne()은 안이 비어 있는 경우에 첫 번째 document를 반환합니다.

이 식에서 sort(“-order“)는 cursor.sort()를 사용한 것입니다.

 

cursor는 find query를 실행했을 때의 return 값입니다.
안에 있는 문자열은 mongoose 내에서 실행되는 method 기능의 일부입니다.
원래는 오름차순 정렬이나 -를 붙이면 내림차순 정렬이 됩니다.

 

일반 js에서의 sort를 생각하면 findOne() 이전에 와도 될 것 같지만,
findOne() 이전의 alltodos는 model 이기 때문에 cursor에 해당하지 않습니다.


그래서 다음과 같이 작성하는 경우 식이 작동하지 않습니다.

const alltodos = require("../models/todo");
const maxOrderByUserId = await alltodos.sort("-order").findOne()

이 경우에는 cursor 가 앞에 없는 sort를 함수로 해석하려고 하여 작동하지 않습니다.

 

 

 ??  null 병합 연산자

왼쪽에 있는 값이 비었거나 null 일 경우에 오른쪽의 값으로 대치해 준다.

(authorization??"").split()

 

writeHead

res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}).write( "<script>alert('로그인이 성공하였습니다.')</script>" );

 

"writeHead"는 response 객체의 메소드에서 헤더 정보를 응답에 작성해서 내보내는 것이다.

첫번째 인자는 상태 코드를 지정하고 두번째인수에 헤더 정보를 연관 배열로 정리한 것이다.

4. 배운 것들을 토대로 적용할 미래

내가 하는 일에 대해 인지하고 이해하고 즐거움을 느끼는 개발자

5. 다음주 목표

뉴스피드 프로젝트 완성

6. 나에게 응원 마디

남보다 부족하다면 그 부분만큼 더 열심히 하면 된다. 

 

 

 

'내일 배움 캠프 > Weekly I learned' 카테고리의 다른 글

WIL 20230709  (2) 2023.07.09
WIL 20230702  (0) 2023.07.02
WIL 20230618  (0) 2023.06.18
WIL 20230611  (0) 2023.06.11
WIL 20230604  (0) 2023.06.04