- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
Date 24/11/08 16:56:49
Name   토비
Subject   추천 버튼을 누르면 어떻게 되나
홍차넷 추천 버튼은 대충 만들어져 있습니다.

사실 홍차넷의 모든 것은 그 어느 것 하나 대충 만들지 않은 것이 없습니다만...

하지만 애정을 갖고 대충 만들었습니다.
아무튼 그렇다고 합니다.

타임라인과 댓글에서의 좋아요 버튼은 꽤 빠르게 반응하는 편입니다.
좋아요 로직 자체가 심플하기도 하고... 그마저도 느린 속도를 감추기 위해서 누르면 즉시 일단 파란칠을  한 뒤에 서버에서 반영되는 응답을 받아서 상태를 업데이트하게 해놓았기 때문입니다.
일단 누르면 색칠이 되고 [좋아요를 눌렀습니다] 라는 메시지가 뜨니 답답하지 않죠.

그렇다면 티타임이나 다른 게시판들에 붙어있는 저 큰 왕따봉 버튼은 왜 이렇게 반응이 늦냐... 하면 역시나 색칠하고 숫자 올리는 작업을 즉각적으로 하지 않기 때문입니다. 그걸 먼저 해두면 답답함은 없을건데요. 아직 못했습니다. 곧 하겠습니다.

일단 티타임에는 다른 게시판과 다르게 추천 사유를 입력하는 창이 뜹니다.
자문단에서 추천글 투표하고 이벤트 할 때 사유 적을 수 있도록 하자는 의견을 반영해서 그렇게 만들었던 것 같은데요.
오래전에 만들어서 잘 기억이 안납니다.

추천 사유를 입력하는 창에 추천 사유를 적지 않아도 추천이 됩니다.
만약 추천사유에 [토해라 일비] 라고 적으신다면 제가 자다가 꿈속에서 홍차넷을 수정하게 된다고 합니다.
한 번 해보세요.

티타임의 추천 버튼이 눌리면 일단 누른 사람이 권한이 있는 사용자인지를 체크합니다. (로그인한 비강등 유저의 정상 활동인지 체크)
로그인 안한채로 추천 버튼을 누르면 [추천하시려면 로그인을 해주세요] 라는 메시지를 띄웁니다.
비로그인 상태에선 추천 버튼이 뜨지 않지만 새창으로 홍차넷을 하나 띄운 뒤에 로그아웃한 뒤에 원래 창에서 추천 버튼을 눌러보면 테스트 하실 수 있습니다.
(비밀번호를 까먹어서 다시 로그인을 못하시게 된다면 저에게 메일을 주시면 비밀번호를 리셋해드립니다.)

권한이 있는 사용자였다면 추천인지 신고인지도 체크합니다.
왜냐면 제가 입력폼을 두번 만들기 번거로워서 같은 입력폼으로 추천도하고 신고도하게 해놓았거든요. (대충만들었다는 뜻)
그래서 누르면 서버에서 추천버튼을 눌렀는지 신고버튼을 눌렀는지 체크합니다.

추천 버튼이었다면 글쓴 회원이 누른 것인지 아닌지 체크합니다.
글쓴이가 누른 추천이었다면 [자기 글에 추천하실 수 없습니다] 라는 메시지를 띄웁니다.

자기글이 아니었는지도 확인한다면 이미 이 글을 추천한 기록이 있었는지 확인합니다.
있었다면 [중복으로 추천 할 수 없습니다] 라는 메시지를 띄웁니다.

중복이 아니었다면 [정상적으로 접수 되었습니다] 라는 메시지를 띄웁니다.
그리고 해당 글의 레코드에서 추천수를 +1 하고 화면상에도 +1 된 숫자로 표시를 업데이트 합니다.
그리고 티타임 글쓴이에게 댓글알림으로 추천 내용을 보내줍니다.

그 외에도 다양한 예외처리가 있지만 그것 까지 알리는 것은 이 글의 목적이 아니므로 생략하겠습니다.

사실 티타임의 커다란 추천버튼은 타임라인 식의 방식으로 대체하려고 오래전부터 생각했지만 아직 하지 못했습니다.
곧 하겠습니다.



35
  • 토해라 일비
  • 토해라 일비
  • 토해라 일비
  • 추천
  • 일해라 토비
  • 토해라 일비
  • 토해라 일비
  • 토마토 일본
  • 비해라 토일
  • 라토일 해비
  • 힐래타 보이
  • 하입 뽀이
  • 토하세요 일비
  • 일.토.
  • 토비님 사랑해요
  • 춫천
  • 토요일엔 비빔밥
  • 일비님의 편안한 위장을 기원하읍니다
  • 토토비 토토비 ㅎㅎ
  • 토해라 일비


T.Robin
고생이 많으십니다.
- 지나가던 개발자
7
앗 댓글 따봉은 바로 색칠이 되진 않는군요. 조금 더 빠르게 할 여지는 남아있다
1
교양 파이썬 수업에서 if조건문을 배운 날에 이런 글을 ㅎㅎ
@클로드
본문에 나온 추천버튼 동작 흐름을 파이썬 if조건문으로 작성해줘.
클로드AI
네, 토비님. 추천 버튼의 동작 흐름을 파이썬 if 조건문으로 간단히 표현해보겠습니다.

```python
if not user.is_logged_in():
print("추천하시려면 로그인을 해주세요")
elif button_type == "신고":
# 신고 처리 로직
pass
elif user == post.author:
print("자기 글에 추천하실 수 없습니다")
elif user_... 더 보기
네, 토비님. 추천 버튼의 동작 흐름을 파이썬 if 조건문으로 간단히 표현해보겠습니다.

```python
if not user.is_logged_in():
print("추천하시려면 로그인을 해주세요")
elif button_type == "신고":
# 신고 처리 로직
pass
elif user == post.author:
print("자기 글에 추천하실 수 없습니다")
elif user_already_recommended(user, post):
print("중복으로 추천 할 수 없습니다")
else:
post.recommend_count += 1
update_display(post.recommend_count)
send_notification(post.author, "추천")
print("정상적으로 접수 되었습니다")
```

이 코드는 본문에서 설명하신 주요 조건들을 순서대로 체크합니다. 물론 실제 구현에서는 더 많은 예외 처리와 세부 로직이 필요할 것 같습니다. 그리고 신고 처리 부분은 별도의 로직이 필요할 것 같아 pass로 넘어갔습니다.

이런 식으로 조건문을 사용하면 추천 버튼의 기본적인 동작 흐름을 구현할 수 있겠네요.
클로드야 elif를 이렇게 많이 쓰면 뚝배기가 깨진단다... 다시 작성하렴
2
클로드AI
네, 라싸님. 말씀해 주셔서 감사합니다. 제가 조금 과하게 elif를 사용했네요. 코드를 좀 더 간결하고 효율적으로 다시 작성해보겠습니다.

```python
def recommend_post(user, post):
if not user.is_logged_in():
return "추천하시려면 로그인을 해주세요"

if user == post.author:
return "자기 글에 추천하실 수 없습니다"

if user_already_recommended(user, po... 더 보기
네, 라싸님. 말씀해 주셔서 감사합니다. 제가 조금 과하게 elif를 사용했네요. 코드를 좀 더 간결하고 효율적으로 다시 작성해보겠습니다.

```python
def recommend_post(user, post):
if not user.is_logged_in():
return "추천하시려면 로그인을 해주세요"

if user == post.author:
return "자기 글에 추천하실 수 없습니다"

if user_already_recommended(user, post):
return "중복으로 추천 할 수 없습니다"

post.recommend_count += 1
update_display(post.recommend_count)
send_notification(post.author, "추천")
return "정상적으로 접수 되었습니다"

# 사용 예시
result = recommend_post(user, post)
print(result)
```

이렇게 하면 elif 사용을 줄이고 함수로 묶어서 더 깔끔하게 표현할 수 있겠네요. 각 조건을 순차적으로 체크하고, 조건에 맞지 않으면 바로 return하여 불필요한 검사를 줄였습니다.

신고 기능은 별도의 함수로 분리하는 것이 좋을 것 같아 여기서는 생략했습니다. 이렇게 하면 코드의 가독성도 높아지고 유지보수도 더 쉬워질 것 같아요.

다시 한 번 조언해주셔서 감사합니다, 라싸님!
1
dolmusa
흠 왠지 유튜브 동영상 구조를 보는 흐름이군요. 첫 문단의 요약부터 추천 유도의 자연스러운 흐름까지..
1
노바로마

아니 따봉이벤트를 이렇게 참여하는 방법이...
2
토비님 꿈에서 수정하게 만드려는 시도가 많네요
*alchemist*
훗훗 저는 아직도 추천을 누를 수 없습니다 ㅋㅋㅋ 개발자 공인 특문 닉 사용자는 그게 안된다고 하셨음 ㄲㄲㄲㄲ 절대 안 바꿀겁니다 ㅋㅋㅋㅋ
1
삐지셨습니까
*alchemist*
삐질리가요.. ㅎㅎ 앞으로 등록 안되는 닉이라는 데 자부심을 가지고 계속 쓸겁니다 ㅋ;
목록
번호 제목 이름 날짜 조회 추천
15289 IT/컴퓨터클로드 3.7에게 소설을 맡겨보았다 - 물망초의 기억 유하 25/03/01 628 3
15236 IT/컴퓨터결국 구입해버린 저지연코덱 지원 헤드셋 8 야얌 25/01/27 885 0
15210 IT/컴퓨터금융인증서와 공동인증서 4 달씨 25/01/15 2533 0
15188 IT/컴퓨터인공지능 시대, 우리에게 필요한 것은 "말빨" 4 T.Robin 25/01/05 1094 7
15157 IT/컴퓨터AI가 점점 무서워지고 있습니다. 7 제그리드 24/12/26 1209 0
15125 IT/컴퓨터모니터 대신 메타 퀘스트3 VR 써보기(업데이트) 10 바쿠 24/12/12 1645 5
15081 IT/컴퓨터분류를 잘하면 중간은 간다..? 닭장군 24/12/01 922 5
15032 IT/컴퓨터추천 버튼을 누르면 어떻게 되나 13 토비 24/11/08 1299 35
15010 IT/컴퓨터[마감] 애플원(아이클라우드 + 애플뮤직+...) + 아이클라우드 2TB 파티원 모집 중! (6/6) 20 아란 24/10/30 1341 0
14885 IT/컴퓨터도시의 심연 (서울 싱크홀 모티브의 창작소설) 1 타는저녁놀 24/09/01 1050 1
14871 IT/컴퓨터호텔방 카드키의 사실상 표준인 mifare에서 하드웨어적 백도어 발견 7 보리건빵 24/08/27 1678 0
14867 IT/컴퓨터카드사 스크래핑을 해볼까? 3 삼성그룹 24/08/26 1533 5
14769 IT/컴퓨터독한 랜섬웨어에 걸렸습니다 5 블리츠 24/07/02 1690 0
14737 IT/컴퓨터애플의 쓸대없는 고집에서 시작된 아이패드 계산기 업데이트 8 Leeka 24/06/11 2476 0
14734 IT/컴퓨터인공지능과 개발자 12 제그리드 24/06/10 1988 5
14680 IT/컴퓨터Life hack : 내가 사용하는 도구들 2 Jargon 24/05/14 1872 5
14676 IT/컴퓨터BING AI 에서 노래도 만들어주네요.. 3 soulless 24/05/14 1272 0
14670 IT/컴퓨터인체공학을 염두에 둔 내 pc용 책상 세팅(1) 23 kaestro 24/05/12 1690 2
14622 IT/컴퓨터5년후 2029년의 애플과 구글 3 아침커피 24/04/25 1775 1
14614 IT/컴퓨터re: 제로부터 시작하는 기술 블로그(1) 2 kaestro 24/04/22 1512 1
14473 IT/컴퓨터유부남의 몰래 [PC처분]-판매완료 17 방사능홍차 24/02/20 3403 0
14442 IT/컴퓨터천원돌파 의존성 역전 17 kaestro 24/02/08 4112 1
14422 IT/컴퓨터의존성 역전 패턴을 활용한 소프트웨어 설계 개선(1~3) 30 kaestro 24/01/30 2542 0
14383 IT/컴퓨터구글에 암호를 모두 저장하는 습관 36 매뉴물있뉴 24/01/05 3498 1
14259 IT/컴퓨터잠시 마법세계 다녀오겠습니다?? 1 큐리스 23/11/06 2775 1
목록

+ : 최근 2시간내에 달린 댓글
+ : 최근 4시간내에 달린 댓글

댓글
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기