<개인적인 질문>
Q) mongodb를 이용한 댓글 목록 보기 기능을 구현할 예정인데, 댓글 작성자를 닉네임으로 표시하고 싶은 상태.
하지만 댓글 관련 colletion에는 닉네임 정보가 없고 id 정보만 있을 때, 서브쿼리나 조인을 하고 싶은데 어떻게 해야 좋은 방법으로 시행할 수 있는지
-> lookup 기능 써보세요!
Q) 포스팅 기능 구현 중 임의의 썸네일 이미지를 업로드 하는 기능을 추가하고 싶은데,
이미지 파일을 서버가 다운로드하는 방법은 무엇이 가장 좋은지
-> AWS의 S3라는 저장소에 보관해서 하는게 FM
Q) 현재 화면에 오버레이로 다른 창(포스팅 창)을 띄우는 기능을 만들고 싶은데, 항해 웹개발 종합반 이수 한 정도의 레벨로 구현 가능한지 -> modal 모달로 검색해보면 될 듯
-> width 100%, height 100%인 div 박스를 만들고 높은 수준의 z-index를 주어 덮은 뒤 창을 불러오는 방식으로 하면 됨. 이 다음에 하나의 div를 더 얹어서 blur 화면 구현
<기능적 피드백>
Q) UX적 측면 : 단일 영상 재생 말고 사람이추가했을떄 플레이리스트에 댓글을 달 수 있게 하셨잖아요. 근데 그 페이지에서 랜덤플레이리스트로 넘어갔을 때 ~~가 좋아요를 했습니다가 남아있었어요(버그)
A) html을 hide, show 할 수 있도록 id 네임스페이스를 동일화를 시키거나 특별한 class에 포함시켜 비교적 쉽게 설정할 수 있게 하던지, 하나의 요소만 지정해서 숨기고 보일 수 있게 할 수 있도록 페이지 구조 자체를 최적화를 했었다면 좋았을 것 같다. 아니면 아예 다른 사이트로 분리를 해서 만들었으면 좋았지 않았을까 하는 생각을 한다.
Q) 랜덤플레이리스트로 넘어갔을때 위에 해시태그 여러개 나오는거 계획된건지?
A) 아니다. 원래는 내가 추가한 거랑 상위 n개 하려고 했는데 디자인적으로 쉽지 않아서 위에 올리는 방향으로 했다.
<기능에 대해서 내가 한 질문>
Q) randomplaylist.js에서
파라미터를 바로 받아와 쿼리를 진행한 뒤 영상을 재생하려고 하니
영상을 재생하는 함수가 호출된 시점이 youtube player의 로딩이 완료되는 시간보다 빨라 영상이 재생되지 않는 문제가 발생함.
현재는 player가 로딩되기 위한 최소한의 시간(1000ms)만큼 지연시켜 실행하는 식으로 만들었는데,
어떻게 해야 player가 로딩되는것과 함수가 호출되는 타이밍을 맞출 수 있을까?
시도1) player 정보를 onload에 담아본다
결과 : 이벤트 정보는 늦게 로딩되어 오히려 player 선언 자체가 불가능하게 되었다.
시도2) 쿼리를 진행하는 함수 자체의 실행을 지연시킨다
결과 : 영상은 정상적으로 재생된다. 하지만 템플릿 영상이 나오는 시간이 앞에 등장하게 되었다.
A)이전 페이지에서 유튜브 API Call을 통해 URL을 먼저 받아서 플레이어를 생성할 때 Jinja2의 파라미터로 넣어주면 될 것 같다.
아니면 플레이어의 로딩이 끝날 때까지 함수의 호출을 막는 것도 방법이 될 것 같다.
Q) app.py에서
mongoDB에 쿼리를 진행한 결과물인 list 자료형을 json에 담아서 보내려고 했더니
jsonify 안에 인자로 들어갈수가 없었다.
그래서 dumps() 함수를 사용해서 JSON 형식의 String으로 변환 한 뒤
브라우저에서 JSON.parse()를 사용해 다시 JSON 형식으로 해석하여 적용시켜 사용했다.
보기에 상당히 비효율적인 방법인데, 이것을 잘 수행할 수 있도록 제공되는 기능이 있는가?
또는 기능이 없더라도 이것보다 나은 방법이 존재하는가?
A) 시도해보면 좋은 것 :
python : return Response(json.dumps(js), mimetype='application/json')
아직 해보진 않았지만 javascript 단계에서 JSON.parse를 사용하는(공정이 두 번 들어가게 되는) 상황은 없앨 수 있을 것 같다.
readme 첨삭
조언 : API테이블보다는 해당 기능에 대해 정리하는게 더 좋을 것 같았다.
'가르침을 받은 것들' 카테고리의 다른 글
항해99 이범규 튜터님 실전프로젝트 피드백 기록 (0) | 2022.02.03 |
---|
댓글