[항해99] 66일차
항해 99
66일 차 :
요즘 들어 나빼고다 성장한 것 같아 난 뭐 하고 있는 건지 라고 생각이 드는 하루였다.
창길님이랑 같은 팀을 -주특기 기본 , 미니프로젝트 , 클론 프로젝트 , 파이널 프로젝트로 4번이나 했다.
처음에는 내가 싫어하는 학교 선배를 닮아서 싫었는데 ㅋㅋ(진짜 같은 사람인 줄...) 알고 보니 굉장히 좋은 사람이었다.
말도 잘하고, 설명도 잘하고, 팀 리드도 잘하고 , 짱짱맨이야.
유학생들의 비슷한 환경을 겪었어서 그런지 비슷한 점도 많이 있는 것 같다.
창길님이 실력이 느는 게 하루마다 느껴져서 부럽다....
나도 잠을 자지 말아 하는 걸까.
게다가 상현님 TIL 을봐도 초고속 성장인 것 같아 나만 머릿속에서 이우 이우 🚨거리고 다들 잘하는 것 같아서 슬픈 하루다.
SerializeUser 가 passport에서만 있는 개념인 줄 알았는데 알고 보니 더 큰 개념인 것 같다.
Serialization :
transform the complicated data structure into a single line or JSON to send
https://www.youtube.com/watch?v=uS37TujnLRw
Javascript :
자바스크립트 물음표 왜캐많음..
?? : 물음표 물음표
nullish coalescing operator :
A 가 null / undefine이면 B로 return
let vegie = A??B
?. : 물음 표점
optoinal chaining
객체 안의 들어간 속성 값을 가져올 수 있다.
dog이름이 없으면? undefine을 반환한다
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
};
const dogName = adventurer.dog?.name;
console.log(dogName);
// expected output: undefined
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Optional_chaining
Optional chaining - JavaScript | MDN
?. 연산자는 . 체이닝 연산자와 유사하게 작동하지만, 만약 참조가 nullish (en-US) (null 또는 undefined)이라면, 에러가 발생하는 것 대신에 표현식의 리턴 값은 undefined로 단락된다.
developer.mozilla.org
? : 물음표
삼항 연산자
a가 참 투수면 B 아니면 C
var res = (A=== True)? B:C
2. 인기글 가져오기
prisma에서 orderByRelation 설정해주면
relation 설정해준 거에 따라서 order를 가져올 수 있지!
그럼 해당 post에 like개수를 가져와서 order를 하면 인기글이 완성되지! 되지? 돼지!
generator client {
provider = "prisma-client-js"
previewFeatures = ["referentialActions","orderByRelation"]
}
근데 우리는 post like개수가 없지! 그래서 이거 찾아봤자 쓸모없지!
그럼 어떻게 해야 해!
그냥 다 가져와서 loop 돌려서 해당하는 좋아요 숫자 넣어서 다시 sort 해!
근데 궁금한 거는 저거 sort가 시간 복잡도가 뭔지 잘 모르겠음
이래서 알고리즘을 배운 효과가 여기서 나오는 건가? 그럼 여기서 bubble sort.... 등 (생각 안 남) 여러 가지 sortintg algorithm을 여기서 구현을 하는 건가!!!! 오??????
import { prisma } from xx
export default async () => {
const Post = prisma.post
let postWithLike = {}
const posts = await Post.findMany({
include: { postLike: true,
user:true }
})
for (const post of posts ){
//console.log(post)
//console.log(`${post.postId} has ${post.postLike.length} like`)
post["likeNumber"] = post.postLike.length
}
posts.sort(function(a, b) {
return b.likeNumber - a.likeNumber;
});
console.log(posts);
}