- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
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*
삐질리가요.. ㅎㅎ 앞으로 등록 안되는 닉이라는 데 자부심을 가지고 계속 쓸겁니다 ㅋ;
목록
번호 제목 이름 날짜 조회 추천
공지 티타임 게시판 이용 규정 2 Toby 15/06/19 32687 7
15347 게임퍼스트 버서커 카잔 - 5시간 짧은 후기 2 + kaestro 25/03/31 165 2
15346 사회장애학 시리즈 (6) - 청력에 더해 시력까지라고? 1 소요 25/03/30 249 4
15345 일상/생각오늘은 마나님께 최고의 서비스를 제공해야 합니다^^ 4 큐리스 25/03/28 546 4
15344 경제[의료법인 회생절차 가이드(1)] 요양급여 및 본인부담금 채권 압류해제 어떻게 해야할까? 1 김비버 25/03/28 303 2
15343 정치(혐오주의) 생성형 AI는 예상보다 빠르게 극단주의를 퍼트릴지도 모르겠습니다 12 명동의밤 25/03/27 1458 9
15342 정치2심 무죄가 나온 내용 (1) 40 명동의밤 25/03/26 1839 12
15341 기타트랙터 잡썰 4 잔고부자(전문가) 25/03/26 437 4
15340 정치연금 문제-결국 답은 소득주도성장에 있다. 9 kien 25/03/25 1096 0
15339 일상/생각알중고백 7 당근매니아 25/03/25 706 6
15338 오프모임3/27(목) 신촌서 봅시다아 25 나단 25/03/25 758 0
15337 일상/생각평범한 동네 이야기 4 nm막장 25/03/24 460 7
15336 도서/문학[서평] 행복에 걸려 비틀거리다 - 대니얼 길버트, 2006 1 化神 25/03/24 325 8
15335 일상/생각와이프한테 보낼 보고서 써달라고 했습니다. 클로드한테 ㅋㅋㅋㅋ 6 큐리스 25/03/24 746 2
15334 정치국민연금 개혁안에 대한 여야합의에 대해 이해가 가지 않는 부분 9 파로돈탁스 25/03/24 954 1
15332 일상/생각감자와 당근의 이야기입니다~~ 7 큐리스 25/03/24 449 0
15331 일상/생각기분 좋은 하루를 기록하기 3 골든햄스 25/03/22 482 11
15330 일상/생각국민연금 내기 싫다, 고갈되면 나는 헛돈 낸 게 아니냐는 친구의 말을 듣고.. 15 타치코마 25/03/21 1701 5
15329 여행그간 다녀본 리조트 간단 정리 : 푸켓, 나트랑, 안탈리아 8 당근매니아 25/03/21 778 23
15328 기타한화에어로 이것들이 유증을 하는군요. 이참에 유상증자 관련 몇가지 아는 것들 이야기 해봅니다. 17 동네주방장 25/03/21 1126 2
15327 정치헌재 선고 시점, 인용/기각 인원에 따른 짧은 생각 9 kien 25/03/21 930 0
15326 일상/생각평범한 남편의 투정^^ 큐리스 25/03/20 510 3
15325 사회한국 시민의 일원으로 연금개혁을 환영하며 30 카르스 25/03/20 1533 8
15324 음악[팝송] 알레시아 카라 새 앨범 "Love & Hyperbole" 김치찌개 25/03/20 140 1
15323 문화/예술천사소녀 네티 덕질 백서 - 8. 문화적 다양성 2 허락해주세요 25/03/17 402 6
목록

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

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