묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
django channels 채팅 기능을 비동기 구현 시, 채팅방 종료 관련 문의입니다.
consumers.pyfrom django.contrib.auth.models import User from django.shortcuts import get_object_or_404 from channels.db import database_sync_to_async from channels.generic.websocket import AsyncJsonWebsocketConsumer from chat.models import Chat, Room class ChatConsumer(AsyncJsonWebsocketConsumer): def __init__(self): super().__init__() self.group_name = "" self.room = None # .. 생략 .. async def chat_room_delete(self, message_dict): print(message_dict, "chat_room_delete") custom_code = 4000 await self.close(code=custom_code) # .. 생략 .. 채팅방 삭제 요청 시, 실제 데이터를 삭제하는 것이 아니라 채팅방의 상태를 비활성화하도록 is_active=False로 변경처리하게 로직을 작성해놨습니다.그래서 아래와 같이 signal을 작성하였는데요.@receiver(post_save, sender=Room) def room_on_post_save(sender, instance, **kwargs): if instance.is_active: return print("동작여부 확인") channel_layer = get_channel_layer() print(channel_layer.__dict__) channel_layer.group_send( instance.chat_group_name, { "type": "chat.room.deleted", }, ) 삭제 시, 해당 함수가 실행되긴 하지만 group_send가 되지 않는지 다른 유저의 브라우저 콘솔창을 보면 방 삭제 관련 메세지가 뜨지를 않습니다.어디가 잘못되었는지, 어느 부분을 수정해야 하는지 알고 싶습니다.
-
해결됨데이터분석 준전문가(ADsP) 자격증 대비
38회 기출 강의는 안해주시나요?
38회 기출 강의는 안해주시나요?
-
해결됨[JS] Phaser 게임 제작 - 뱀파이어 서바이벌 클론
Phaser3 질문드립니다!!
안녕하세요 Phaser3 강의를 듣고 있는 학생입니다. // camera가 가는 곳으로 background가 따라 움직이도록 해줍니다. this.m_background.setX(this.m_player.x - Config.width / 2); this.m_background.setY(this.m_player.y - Config.height / 2); // tilePosition을 player가 움직이는 만큼 이동시켜 마치 무한 배경인 것처럼 나타내 줍니다. this.m_background.tilePositionX = this.m_player.x - Config.width / 2; this.m_background.tilePositionY = this.m_player.y - Config.height / 2;이렇게 하면 카메라도 고정이고, 무한배경도 구현할 수 있는걸 알게되었습니다. 그런데어느 게임처럼.. 배경의 크기가 좀 크지만 정해져있고, 플레이어가 배경 끝에 다다르기 전까지는 시점이 중앙 고정이었다가, 배경의 끝에 다다르게 되면 카메라 시점 고정이 풀리게 되는 방식을 만들기 위해서는 어떻게 해야될지 모르겠어서 질문 남겨드립니다!
-
미해결홍정모의 따라하며 배우는 C언어
break
7.10 루프 도우미 질문입니다 사진에서 실행시 0 1 2 3 4 5 가 아니라 왜 4까지 출력되는건지 이해가 안됩니다++i면 i=4일때 5도 출력되어야 하는거 아닌가요? i=5일때 break을 만나서 루프에서 나간다면 6은 출력하면 안되고 5까지만 출력되어야 한다고 생각했거든요
-
미해결홍정모의 따라하며 배우는 C언어
if
7.9 조건 연산자 6:10 질문입니다위에서 사실이면 true가 is_even에 대입되고, 거짓이면 false가 대입되는거잖아요 그런데 아래 if(is_even)에서 (is_even==true) 이렇게 안들어가고 is_even만 들어가는 이유가 뭔가요? is_even만 쓰면 true일때인지 false일때인지 알 수 없는거 아닌가 생각이들어서요..!
-
미해결모던 안드로이드 - Jetpack Compose 입문
viewModel() 오류 추가질문입니다
dependencies { implementation("androidx.core:core-ktx:1.9.0") implementation("androidx.lifecycle:lifecycle-viewmodel-compose-ktx:2.6.2") implementation("androidx.lifecycle:lifecycle-runtime-compose:2.6.2") implementation("androidx.activity:activity-compose:1.8.0") implementation(platform("androidx.compose:compose-bom:2023.03.00")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00")) androidTestImplementation("androidx.compose.ui:ui-test-junit4") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") }위와 같이 build.gradle.kts 파일내용을 변경한 후 아래아 같이 코드를 작성하면 34번줄 viewModel() 에서 오류가 발생합니다 또 viewModel() 에서 Alt+Enter 키를 누르면 아래처럼여러개의 항목을 선택하는 창이 뜨는데 이중 어느것을 선택해야 하는지 ...
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Magic Method - Not Implemented
안녕하세요,magic method를 다양하게 연습해보고 있었는데 하기와 같이 코드를 작성하니 에러는 아니지만 값 대신 'Not Implemented' 라는 문구가 출력되더라구요. 왜 그런걸까요? n = 10f = 12.345print (n.__mul__(f)) print (n.__mul__(12.345))는 값을 반환해주는 걸로 보아 int, float 차이 때문은 아닌 것 같습니다.
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
netlify를 배포를 했는데 문제 생겼습니다
netlify를 배포 했는데 경고와 빌드 문제 인 것 같습니다 어떻게 하면 될까요?
-
미해결비전공 기획자 및 관리자를 위한 IT 필수 지식
강의 교안
안녕하세요, 강의 교안 요청드립니다. juni8020@naver.com 으로 보내주시면 감사하겠습니다 :) 강의 잘 듣겠습니다.감사합니다!
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
강의 pdf 파일
안녕하세요, 강의 자료 pdf #2 Authentication 부분에 깨져서 보이는데 업데이트 해주실수 있나요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
네임드락 레포지토리
"Stock을 사용하면 안되고.."라는 표현을 사용하셨는데요.Stock Entity를 사용하면 안되고 어떤 Entity를 통해서 repository를 만들어야한다고 말씀하시는건가요?
-
해결됨실전! FastAPI 입문
안녕하세요. fastapi 강의 수강 중입니다.
안녕하세요. fastapi 강의 수강 중입니다.섹션2에서 데이터베이스 생성과정 중docker exec -it todos bash를 하면Error response from daemon: Container c77ef59c10ff05ebd5ead765aa6f64ac185daa38214ad0fc5195750cace0b167 is not running위와 같은 에로가 나오는데요, 나름대로 구글링을 해보니까 docker start를 사용해 도커 실행을 해주면한다해서 해보면 Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use이러한 에러가 나옵니다.docker와 mysql을 연결하는 명령어에서 다 잘 다운로드되고 마지막에 docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use.이런 에러가 뜨긴했는데 우선 넘어가보니 docker ps를 해보면 실행중인 컨테이너가 없습니다. 도커를 아예 처음 접하다보니 시작단계에서 어려움이 있는데 도움 부탁드립니다.
-
해결됨그림으로 쉽게 배우는 운영체제
MLFQ
MLFQ 2분 58초에 p2는 io 요청이 끝나지 않았다고 나오는데 끝나는데 조건이 있나요? 그냥 p1 1초하고 다시 p2로 돌아오면 되는거 아닌가요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
비동기 함수와 lock 의 관계에 대한 질문입니다
lock(key){ bool pending = recvAsync() if(pending == false) //콜백 함수}이런 상황에서 비동기 함수가 pending == true면 흐름이 끊긴다고 할까요? 대기 중인 상태 랄까요 어쨋든 이런 상황에서는 다른 스레드가 lock 안으로 들어올 수 있나요?? 질문을 다시 정리하면 스레드 1이 위의 코드에서 pending 이 true 인 상태면 lock 을 빠져나가서 스레드2가 lock 안으로 들어 올 수 있나요 아니면 스레드가 1 이 lock 안에 계속 있는 판정이라서 스레드2 가 lock 안으로 들어올 수 없나요??
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 버전
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]start.spring.io에서 spring boot를 설치하고 h2 버전도 1.4.199로 설치하였습니다.그러나 아래의 사진과 같이 라이브러리 내에 h2:1.4.199가 아닌 h2:2.1.214가 설치되어 있습니다.이 부분 때문에 다음 강의에서 제대로 실행이 되지 않는 것 같습니다 .. (MEMBER 테이블 생성이 되지 않음)왜 이러는 걸까요 ..? 해결 방법도 알려주시면 감사하겠습니다 ㅜ ㅜ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
다이나믹 라우팅 안에서 다른 다이나믹 라우팅으로 이동할때 발생하는 에러.
안녕하세요!user/[id].js 페이지 안에서 hashtag/[tag] 페이지로 이동하는 버튼을 만들에 사용 하면 알맞은 페이지로 이동하는 것이 아니라 user/hashtag/[tag]로 이동하게 됩니다.참고로, hashtag/[tag]로 이동하는 버튼을 Applayout에 추가 하고 user/[id]페이지에서 Applayout 컴퍼턴트로 감싸 줬습니다. 이 페이지에서 상단에 Search버튼을 누르면,이런 페이지로 이동합니다...import React,{useCallback} from 'react' import {HStack, Input, Button, Modal, ModalOverlay, ModalContent, ModalHeader, ModalBody, ModalCloseButton, useDisclosure} from '@chakra-ui/react' import {BiSearch} from 'react-icons/bi' import { css } from '@emotion/react' import Router from 'next/router' import PropTypes from 'prop-types' import useInput from '../hooks/useInput' import Spacer from './CustomizedUI/Spacer' const buttonCss = css` :hover { background-color: transparent; color: #1890ff; } `; export default function SearchButton({type, children}) { const { isOpen, onOpen, onClose } = useDisclosure(); const [value, onChangeValue, setValue] = useInput('') const onClickHandler = useCallback(()=>{ Router.push(`hashtag/${value}`); },[value]) const ConditionButton = type; return ( <> <ConditionButton variant="ghost" aria-label="Search Button" icon={<BiSearch />} leftIcon={type === Button && <BiSearch />} onClick={onOpen} fontSize="25px" css={buttonCss} > {children} </ConditionButton> <Modal isOpen={isOpen} onClose={onClose} size="md" isCentered> <ModalOverlay /> <ModalContent> <ModalHeader>Search</ModalHeader> <ModalCloseButton /> <ModalBody> <HStack> <Input type="text" value={value} onChange={onChangeValue} required /> <Button onClick={onClickHandler}>Search</Button> </HStack> <Spacer /> </ModalBody> </ModalContent> </Modal> </> ); } SearchButton.propTypes = { type: PropTypes.elementType.isRequired, children: PropTypes.node.isRequired, }이것은 제가 만든 컴퍼넌트인데, 혹시 어디서 문제가 있는걸까요? 혹시나 해서 Chakra UI 상의 문제 아닐까 해서 antd로도 해봤는데, 같은 오류가 납니다.신기한 오류라서 질문드립니다.감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
시간초과 문제
안녕하세요, 시간초과가 나서 질문드립니다.http://boj.kr/8e5586c64a774c39bac19c6aa002074f 제 로직은 다음과 같습니다.2차원 벡터로 사다리를 표현합니다. 다만 각 행열의 값은 0일 경우 이어진 사다리가 없고, 값을 가질 경우 index+1의 value를 가집니다. 즉 (0,0)-(0,1) 사이에 사다리가 있을 경우 (0,0)=2, (0,1)=1을 갖습니다.뽑을 수 있는 사다리의 조합을 구합니다. 이는 벡터의 현재 값과 다음 값이 모두 0이면 후보군 벡터에 추가합니다. (코드에선 parti입니다.)parti 벡터를 0부터 3까지 조합을 구합니다. 후보군 중 0개, 1개, 2개, 3개 를 뽑는 모든 조합을 구합니다.조합을 만들 때 연속된 사다리는 피했습니다.조합이 완성될 경우 check 함수를 호출하여 사다리 타기를 진행합니다.이런 플로우를 갖고있고, 이렇게 풀 경우 백트래킹도 필요가 없기에 오히려 적은 연산을 할 거라고 생각했습니다. (아니면 비슷하거나) 하지만 시간초과가 발생하기에 질문드립니다.디버깅을 해보니 조합은 제대로 뽑히고 있습니다. 필요없는 연산은 딱히 없어보이는데 무슨 문제가 있을까요?+) 백트래킹이란 말을 그냥 완전탐색을 진행하되 중간에 답이 나오면 끝내겠다. 혹은 기존의 답보다 깊게 탐색이 진행되는 것을 막겠다. 라는 것으로 이해했는데 이게 맞는건가요? 그렇다면 보통은 다들 그런 식으로 구현할텐데 굳이 백트래킹이란 단어를 쓰는 이유는 뭘까요..?감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MEMBER 테이블 생성이 안 됩니다.
안녕하세요. 강의를 듣고 강의자료까지 참고하며 코드를 작성하였습니다.그러나 실행창에 create와 drop이 뜨지도 않고 MEMBER 테이블 또한 생성되지 않습니다.관련 질의를 지금 6시간 넘게 다 찾아보며 (띄어쓰기, @Rollback(false) 추가 등) 해결 시도를 했지만 끝까지 되지 않아 질문 남깁니다 ..[yml 코드]감사합니다 ..
-
미해결반응형 웹사이트 포트폴리오(Architecture Agency)
트리거메뉴 제이쿼리
<!doctype html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300,700' rel='stylesheet' type='text/css'> <title>DesignWorks Architecture Agency</title> <!-- Page Scroll Effects JS & CSS --> <script src="/js/jquery-2.1.4.js"></script> <script src="js/velocity/modernizr.js"></script> <script src="js/velocity/velocity.min.js"></script> <script src="js/velocity/velocity.ui.min.js"></script> <script src="js/velocity/main.js"></script> <link rel="stylesheet" href="/js/velocity/velocity.css"> <!-- Custom JS & CSS --> <script src="/custom.js"></script> <link rel="stylesheet" href="/style.css"> <link rel="stylesheet" href="/reponsive.css"> </head> <!-- hijacking: on/off - animation: none/scaleDown/rotate/gallery/catch/opacity/fixed/parallax --> <body data-hijacking="on" data-animation="rotate"> <div class="container"> <section class="cd-section visible" id="home"> <div> <div class="content"> <img src="/images/temp-section-01.jpg"> </div> </div> </section> <section class="cd-section" id="about"> <div> <div class="content"> <img src="/images/temp-section-02.jpg"> </div> </div> </section> <section class="cd-section" id="project"> <div> <div class="content"> <img src="/images/temp-section-03.jpg"> </div> </div> </section> <section class="cd-section" id="plan"> <div> <div class="content"> <img src="/images/temp-section-04.jpg"> </div> </div> </section> <section class="cd-section" id="awards"> <div> <div class="content"> <img src="/images/temp-section-05.jpg"> </div> </div> </section> <section class="cd-section" id="location"> <div> <div class="content"> <img src="/images/temp-section-06.jpg"> </div> </div> </section> <section class="cd-section" id="content"> <div> <div class="content"> <img src="/images/temp-section-07.jpg"> </div> </div> </section> <header> <div class="gnb-inner"> <div class="logo"> <a href="#none"><img src="/images/logo.png"></a> </div> <div class="gnb"> <div class="menu"> <a href="#home">Home</a> <a href="#about">About</a> <a href="#project">Project</a> <a href="#plan">Plan & History</a> <a href="#awards">Awards</a> <a href="#location">Location</a> <a href="#contact">Contact</a> </div> <div class="slogan">We design places, not projects.</div> </div> <div class="trigger"> <span></span> <span></span> <span></span> </div> </div> </header> </div> <nav> <ul class="cd-vertical-nav"> <li><a href="#0" class="cd-prev inactive">Next</a></li> <li><a href="#0" class="cd-next">Prev</a></li> </ul> </nav> </body> </html>@media (max-width: 768px) { /* Entire Layout */ .cd-section { height: auto; } .cd-section > div { height: auto; } .content { position: static; width: 100%; height: 100%; } /* Header */ .menu { display: block; } .slogan { display: none; } .gnb { background-color: #fff; position: fixed; top: 0; right: -270px; width: 250px; height: 100vh; box-shadow: -5px 0 10px #0000002a; transition: 0.3s; } .gnb.active { right: 0; } .menu { line-height: 40px; margin-top: 60px; } .menu a { display: block; text-align: right; padding-right: 20px; color: black; font-size: 20px; } /* Trigger */ .trigger { display: block; width: 24px; height: 14px; position: absolute; right: 20px; top: 20px; } .trigger span { position: absolute; height: 1px; width: 100%; background-color: black; transition: 0.3s; } .trigger span:nth-child(1) { top: 0; } .trigger span:nth-child(2) { top: 50%; width: 90%; } .trigger span:nth-child(3) { top: 100%; } .trigger.active span:nth-child(1) { top: 50%; transform: rotate(45deg); } .trigger.active span:nth-child(2) { top: 50%; width: 90%; opacity: 0; } .trigger.active span:nth-child(3) { top: 50%; transform: rotate(-45deg); } }$(function(){ /* Trigger */ $('.trigger').click(function(){ $(this).toggleClass('active') $('.gnb').toggleClass('active') }) $('section, .menu a').click(function(){ $('.gnb').removeClass('active') }) }) 모바일에서 트리거메뉴 클릭시 제이쿼리(아이콘X로 변경 슬라이더메뉴 나오기)가 적용되지 않는데 왜 이럴까요 ㅠ 클레스네임부분에서 틀린게 없습니다
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
3강 4번에 대해 질문이 있습니다
public int solution(int n, int m, int arr[]){int answer =0;int sum=0;int start= 0;int end =start+1;while(start<n-1 && end<n){if(arr[start]==m) answer++;if(sum<m-arr[start]){sum += arr[end];end++;}else if(sum==m-arr[start]){answer++;sum=0;start++;end=start+1;}else{sum=0;start++;end=start+1;}} 혹시 sum에 end 값을 더해서 누적 시키고 m(특정 숫자)에서 start 뺀 것과 비교해서 같다면 start를 1 증가시키고 end를 그 다음 위치시키고크다면 start와 end를 위와 같이 방식으로 증가 시키는 접근 방식은 잘못되었을까요? 제출 결과 케이스에 따라 정답도 있고 오답은 무조건 정답에서 -1 이라 헷갈리네요 ㅠㅠ