오늘은 인스타 UI클론 프로젝트 마지막 작업날이다.
지금현재 새벽1시43분인데 눈이 슬슴감긴다
오늘정말 하루종일 에러와, db와의 싸움을 이어나갔던 것 같다.
현재도 게더에는 28명이 접속해있다. 56명중 반이상인데 게더에 접속하지 않는 사람도 많을테니 거의 대부분
사람들이 밤을새고 있다는 건가? 정말 다들 대단한 열정인 것 같다!!
오늘은 많은양의 작업을 한것 같다 간단하게 정리를 해보자면
# 팔로우 db remove
@app.route("/follow_delete", methods=["POST"])
def follow_delete():
token_receive = request.cookies.get('mytoken')
payload = jwt.decode(token_receive, SECRET_KEY, algorithms=['HS256'])
uid_get = db.user.find_one({'uid': payload['uid']})
uid = uid_get['uid']
db.follow.update_one({'uid': id_receive}, {'$push': {'follow': uid}}, upsert=True)
db.follow.update_one({'uid': uid}, {'$push': {'following': id_receive}}, upsert=True)
return jsonify({'response': 'success'})
어제 해논작업에 db로 연동시켜서 작업을 다시 하였다. follow 기능이 조금 설계부분에서 햇갈렸지만 간단히 생각해보면
나(팔로우주는사람) -> 상대(팔로우 받는사람) 으로 생각하면 조금 접근하기가 쉽다. 내가 팔로우를 누르면 상대방 팔로우에 내가추가, 나의 팔로잉에 상대방 추가, 이런식으로 db연동이 가능하게 구현을 하였다.
# 팔로우 db remove
@app.route("/follow_delete", methods=["POST"])
def follow_delete():
token_receive = request.cookies.get('mytoken')
payload = jwt.decode(token_receive, SECRET_KEY, algorithms=['HS256'])
uid_get = db.user.find_one({'uid': payload['uid']})
uid = uid_get['uid']
db.follow.update_one({'uid': id_receive}, {'$push': {'follow': uid}}, upsert=True)
db.follow.update_one({'uid': uid}, {'$push': {'following': id_receive}}, upsert=True)
return jsonify({'response': 'success'})
팔로우 db삭제또한 같은 방식으로 진행하면 된다. 팔로잉으로 버튼이 바뀌는 부분같은 경우는 바닐라js 으로 구현하였다.
중간에 재완님이 작업량이 많아 피드부분 모달작업을 도와드렸다 이제는 css작업이나, html 작업을 할때는 속도가 잘 나는것 같다. 정말 노가다의 힘인가 여러번 반복하다보니 후딱 만들었다.
btn.onclick = function () {
modal.style.display = "block"
modal.onclick = function () {
modal.style.display = "none"
}
}
온클릭으로 모달버튼을 숨기고
close.addEventListener('mouseover', (event) => { close.style.backgroundColor = "#fafafa"
마우스 오버를 줘서 인스타와 비슷하게끔 구현을 하였다.
사실 밤부터 계속 해왔던 작업인데, 유저id를 랜덤으로 받아와서 팔로우 하는 부분에 뿌려주고 싶었다.
그래서 db에서 특정데이터를 random으로 가져오는 방법을 찾아보고 연구하였지만, 잘 나오지 않았다. 정말 많은
고민과 고통을 겪은 후에
all_user = list(db.user.find({}, {"_id": False}))
all_choice = random.choice(all_user)
choice_user = all_choice['uid']
을통해서 uid를 랜덤으로 가져올 수 있었다. 3줄밖에 안되는 코드를 엄청써보고, 엄청나게 고민을 해본 것 같다.
이렇게 가져온 uid는 피드로 넘어가 {{choive_user}}
진저 문법을 통해서 유저에게 랜덤한 아이디로 보여지게 된다
거기에 팔로우 기능을 넣어서 새로고침 될때 마다 새로운 유저가 나와서 팔로우 할 수 있게 구현을 해놨다.
문제가 있다. 데이터에 값이 적다보니 중복으로 나오는 경우가 종종 있다. 또한 저렇게 해서는 1명의 아이디만 랜덤으로 가져올 수 있다. 일단 어쩔 수 없이 하드코딩으로 3개를 가져오게 하긴 하였지만, 이걸 좀더 쉽게, 한번에 할 수 있는 방법이 있을것 같다. 나중에 꼭 찾아보자!!
오늘도 많은 기능을 공부해보고 시도해 볼 수 있어서 좋았다. 정말 삽질이라고 해야하나 하면 할수록 삽질실력이 느는 것 같다
이번 프로젝트가 끝나면 또 바로 다음프로젝트이다. 이번 프로젝트도 마무리를 잘하고 다음프로젝트도 열심히 달려보자.
프로젝트를 진행할수록 느끼는 점이 정말 다른 것 같다. 그리고 매일 공부한 것을 정리하는 습관 또한 나에게 굉장히 도움이 많이 되는 것 같다. 좀더 습관화 하자
요즘 프로젝트 하느라 개인적인 알고리즘,자료구조,기초 공부를 못하고 있다. 피곤하더라고 하루 1시간씩은 꾸준히 하도록 노력하자.