본문 바로가기

전체 글96

Celery를 활용한 채팅 서버 자원 최적화[WhoAU] 문제  채팅 서비스를 개발하는 과정에서, 서버가 종료된 후에도 Redis에 기존 WebSocket 연결 정보가 남아 있는 문제가 발생했습니다. 개발 환경에서는 비활성화된 채팅방 데이터를 수동으로 삭제할 수 있었지만, 배포 환경에서는 다음과 같은 문제가 예상됐다. disconnect 함수 미작동 시: 의도치 않게 채팅방 데이터가 남아 있을 가능성.사용하지 않는 데이터 방치: 서버 자원을 지속적으로 점유하며, 비활성화된 채팅방 데이터로 인해 성능 저하 발생.비활성화된 채팅방 관리 문제로 인해 Redis 서버의 저장 공간을 낭비하고, 전체 서버 성능이 저하될 수 있다는 판단 했다.해결 방법 1 cache 사용하기  채팅방 관리를 위해 Redis의 Cache 기능을 사용하여 각 채팅방의 상태(마지막 활동 시간).. 2024. 11. 17.
Python Celery 분산 작업 자업 큐? Celery가 뭐야? 비동기 작업 처리와 작업 스케줄링을 지원하는 작업 큐(Task Queue)이다. 작업 큐(Task Queue)?  작업을 비동기적으로 처리하기 위해 요청을 대기열에 저장하고, 이를 워커가 순차적으로 처리하는 시스템이다.주로 대규모 작업 분산 처리와 백그라운드 실행을 통해 애플리케이션 성능을 최적화하는 데 사용된다. 1. 비동지 작업 처리 사용자가 요청한 작업을 즉시 처리하지 않고 백그라운드에서 된다.시간이 오래 걸리는 작업을 효율적으로 분리하여 애플리케이션의 응답 속도를 개선한다. 2. 작업 스케줄링특정 작업을 주기적으로 실행하거나 예약된 시간에 실행할 수 있도록 관리한다. 비동기 작업에는 시간이 오래 걸리는 '이메일 발송', '데이터 분석' 등에 사용하며작업 스케줄링은 주기적으로 .. 2024. 11. 17.
[TIL]내일배움캠프 Django +React 심화기능 전 issue 해결 DRF issue 해결하기새로운 기능내가 좋아하는 글 페이지 뒤로 가기 시 기존의 글로 가기 querystring모달창 컴포넌트로 만들기채팅방 , 홈화면, 핫글 UI/UX 만들기ISSUE 정리reactquill 이미지 이슈 해결메시지 답장, 페이징신규 유저 ui 점검🔥 신규 유저 ui 점검 프로필 페이지 신규 유저일 경우 더미 이미지자기소개 내용 변경 / 수정mbti가 없어요 ‘좋아요’ 가능하게??검색에 카테고리 구분선mbti가 없으면 글쓰기 부분 비활성화프로필 페이지 로그아웃시 이전 user의 프로필이 보인다. 프로필 클릭 시 /myprofil??로그인 시 지신의 이름을 넘긴다.로그아웃시 기존 페이지로 돌아갈 때 인자값?? 문제 발생posts.map is not a function 해결방법event로 들어온.. 2024. 5. 31.
[TIL]내일배움캠프 - Django +React 중간정검 아이디 찾기 비밀번호 찾기 frontend 작업과제 피피티 제출 내용 작성redis를 해볼까? 소셜 로그인을 할까?? 아니면 채팅??🔥 아이디 찾기 비밀번호 찾기 frontendimport React, { useState } from "react";import axios from "axios";import style from "./FindUser.module.css";import { Link } from 'react-router-dom'const FindUser = () => { const [username_email, setUserNameEmail] = useState(""); const [password_email, setPasswordEmail] = useState(""); con.. 2024. 5. 30.
[TIL]내일배움캠프 - Django +React 아이디 찾기, 비밀번호 찾기 오늘 할일이메일 페이지 디자인ativate 아 아닌 경우 안내창아이디 / 비밀번호 찾기is_activate일 경우 backend에서 False을 리턴 하도록 설정해 줬다.if문을 줘서 작동을 시켰지만 전혀 작동을 하지 않음 🔥 토큰토큰에다사 is_activate를 값을 추가 하여 보낸다 로그인시 토큰을 열어본다const decodedToken = jwt_decode(access) if (!decodedToken.is_active) { const message = '이메일 인증을 해주세요.' setErrorMessage(message) }  react 코드 이다.token으로 문제를 확인하려 했으나 불가 했다. .. 2024. 5. 28.
[TIL]내일배움캠프 - Django +React 구글 이메일 인증 오늘 할 일피그마로 모달창 디자인React로 frontend 제작이메일 보내지는 창 디자인“이메일 인증을 완료해 주세요” 이메일 인증을 안 했을 경우 모달창is_activate가 false값이면 🔥 페이지 오류게시판 디테일 페이지에서 로그아웃 시 / Cannot read properties of null (reading 'mbti_type') 오류 발생회원가입 클릭 후 데이터를 전송하는데 시간이 걸림회원가입 페이지 hover 일 경우 커서변경  ⏰ 생각토큰을 발급해 줘야 하나?? → 프로필 페이지로 이동하기 때문에 토큰 발급을 한다.하지만 나는 해당 user의 is_activate값만 면경 하는 것이니 괜찮지 않을까??⏰ 회원가입 순서회원가입 진행 → email 전송 → 이메일 활성화 버튼 클릭 → 홈.. 2024. 5. 27.
[TIL]내일배움캠프 - DRF 구글 이메일 인증 SMTP 채팅, redis, 이메일 인증글쓰기 버튼 만들고 드롭다운 변경 🤔 이메일 인증 구조회원 가입진행 → 상태값 false 저장→ 이메일 인증 메일 전송 → 이메일에서 확인 버튼 클릭 → 상태값 ture 변경 → 회원가입 완료 → 로그인 창으로 이동SMTP django에서는 기본 SMTP(simple mail transfer protocol)를 지원한다.SMTP는 인터넷에서 이메일을 전송하기 위해 사용하는 표준 통신 프로토콜입니다. 주로 이메일 클라이언트와 서버 간, 또는 서버들 간의 메시지 전송을 담당한다.   SMTP 작동 방법은 간이 전자 우편 전송 프로토콜(SMTP) 모델에서 발신자의 이메일 클라이언트 또는 서버는 SMTP 클라이언트 역할을 하고 발신자의 이메일 서버는 SMTP 서버 역할을 합니다... 2024. 5. 25.
[TIL]내일배움 캠프 - Django + React 쪽지기능 채팅 기능도 좋지만 쪽지 기능을 구현하기로 했다.아쉽게도 팀원 중에 한 분이 백안드 부분을 다 구성해 보셔서 프런트 부분을 진행했다. 이 부분은 따로 직접 구현을 해봐야겠다.    📮 쪽지 기능쪽지를 작성쪽지를 작성하는 페이지 또는 팝업창쪽지를 보내기보내는 상대 유저의 아이디 값이 있어야 한다.상대 프로필로 들어가 쪽지 보내기작성자 아이디값 누르면 쪽지 보이게쪽지를 받기프로필 페이지에 세 쪽지를 확인한다.프로필 누르면 팝업창도 좋을 듯프로필에 쪽지 온 것이 확인쪽지 보기나에게 보낸 쪽지를 확인팝업창 또는 페이지에서 확인다시 1번부터 반복쪽지 보내기 manytomany를 이용상대의 user 정보와 나의 값을 보내기   버튼 디자인 변경 setView('posts')}>내가 작성한 글 setView('li.. 2024. 5. 24.
[TIL] Django(DRF) +react 마지막 팀 프로젝트 오늘 한일 회원 정보 수정 피그마제작레인지를 사용해서 MBTI 크기 조절하기회원 정보 pagenation API수정로그인한 user와 같으면 좋아요 한 글 보이게 만들기프로필 페이지 구현더 보기 클릭 시 글페이지 보이게 만들기나의 프로필 페이 지며면 프로필 수정타 유저일 경우 팔로우 취소 팔로우 기능 구현Error  로그인 한 user 데이터를 가져와야 한다 그런데 usere데이터를 가져와야 하지만 안된다. useEffect(() => { async function fetchData() { const response = await apiClient.get(`api/accounts/bmkim/`) console.log(response.data) .. 2024. 5. 23.