묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
의존성 배열에 filterItems를 넣으면 무한렌더링이 발생합니다.
import {useEffect, useState} from 'react'; import {queryKeys, storageKeys} from '@/constants'; import type {Marker} from '@/types'; import {getEncryptedStorage, setEncryptedStorage} from '@/utils'; import queryClient from '@/api/query-client'; const initialFilters = { RED: true, YELLOW: true, GREEN: true, BLUE: true, PURPLE: true, '1': true, '2': true, '3': true, '4': true, '5': true, }; function useMarkerFilterStorage() { const [filterItems, setFilterItems] = useState<Record<string, boolean>>(initialFilters); const set = async (items: Record<string, boolean>) => { queryClient.invalidateQueries({ queryKey: [queryKeys.MARKER, queryKeys.GET_MARKERS], }); await setEncryptedStorage(storageKeys.MARKER_FILTER, items); setFilterItems(items); }; const transformFilteredMarker = (markers: Marker[]) => { return markers.filter(marker => { return ( filterItems[marker.color] === true && filterItems[String(marker.score)] === true ); }); }; useEffect(() => { (async () => { const storedData = (await getEncryptedStorage(storageKeys.MARKER_FILTER)) ?? initialFilters; setFilterItems(storedData); })(); }, [filterItems]); return {set, items: filterItems, transformFilteredMarker}; } export default useMarkerFilterStorage;의도대로 items의 값을 set으로 변경하면 필터링이 정상적으로 동작하지만 무한렌더링이 발생합니다.무한 렌더링을 막기 위해 의존성 배열을 지우고 쿼리키를 무효화하는 방법등 많은 시도를 해봤지만 제대로 동작하지 않네요. 혹시 현재 진행된 강의에서 무한 렌더링을 해결할 수 있는 방법이 있을까요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Part 1
Part1 수강중인데 혹시 이까지만 해도 초기에 나온 로드맵을 다 다루게 되는건가요? Part1은 어느 범위까지를 다루게 되는건지요 @.@?
-
미해결견고한 결제 시스템 구축
JpaLedgerTransactionMapper.class
강사님 샘플 프로젝트에서 발견한 오타 제보드립니다!!referenceType = ledgerTransaction.referenceType,referenceType = ledgerTransaction.referenceType.name,
-
미해결15일간의 빅데이터 파일럿 프로젝트
파일질라 다운로드 오류
안녕하세요파일질라 exe 파일을 열면이와 같은 오류가 발생합니다. 어떻게 해결해야하나요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
객체지향 설계에 대한 질문
안녕하세요, 9강 델리게이트 까지 들은 현재,제가 객체지향 설계에 대해 잘 이해를 한 것인지 잘 모르겠고 궁금한 것이 생겨서 질문 남깁니다. 9강에서 인터페이스를 사용해서 느슨한 결합으로 구현하는 것을 설명해주셨었습니다.강의에서 인터페이스를 구현할 때, 인터페이스를 사용해서 함수를 호출하기 위해서는 특정 클래스를 Cast하여 확인하고 호출했었습니다.그러면 예를 들어 캐릭터에서 아이템 사용 인터페이스를 사용한다고 해도 아이템 클래스 헤더를 include를 해야하는 상황이 발생하는데이 경우에는 인터페이스를 사용했음에도 결합? 의존이 발생한 것이라고 봐야할까요? 그리고 델리게이트 강의에서 중간에서 연결과 활동을 관리하는 주체 클래스가 필요하다고 하셨는데 이 클래스의 경우에는 모든 클래스를 include하여 사용하게 되는데 강한결합을 따지지 않나요? 그리고 강의를 따라가며 이해한 걸로 예시를 들어보았는데 제가 제대로 이해하고 있는 것인지 궁금합니다...좀 길지만 혹시 한번 봐주신다면 정말 감사하겠습니다===============================================================<6강 리플렉션 2>게임에서 다양한 아이템이 있습니다.아이템이라는 클래스를 만들어서 상속시켜 구현을 합니다.아이템 클래스에는 Use라는 가상 함수를 두고 이를 오버라이드 해서 각 아이템의 사용 시 효과를 구현합니다. <7강 인터페이스>사용가능한 아이템이 있고 패시브 효과를 가진 아이템이 있을 수 있기 때문에 Use라는 함수를 UsableItemInterface 등의 인터페이스로 구현하여 상속시켜 구현합니다. <8강 컴포지션>포함관계를 사용하여 복잡한 기능을 클래스를 쉽게 구현합니다.캐릭터 클래스에 아이템 클래스를 include하여 생성하여 아이템의 기능을 사용할 수 있게 합니다. <9강 델리게이트>include 된다면 강한 결합이기 때문에 안좋은 설계 방법이며 인터페이스를 활용하여 구현하여 느슨한 결합을 유지할 수 있습니다.예를 들어 아이템 자체를 include하기 보다는 아이템 사용 함수를 구현한 인터페이스에 의존하게 하여 해당 인터페이스를 구현한다면 다양한 종류의 아이템을 직접 캐릭터에 include하여 변경할 필요없이 사용이 가능하게 됩니다.하지만 매번 인터페이스를 만드는 것이 불편할 수 있으므로 델리게이트를 쓰면 편하고 안정적으로 관리가 가능합니다.캐릭터와 아이템의 의존을 없애기 위해 연결과 활동 주체 클래스를 만듭니다.주체 클래스에서 캐릭터와 아이템을 include하고 캐릭터에 onUse라는 델리게이트를 만들고 이게 호출되면 아이템의 Use가 호출되도록 bind합니다.그러면 캐릭터와 아이템이 의존하지 않고도 사용할 수 있게 되었습니다.===============================================================
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
generate -> add Dependency 이 메뉴가 안보이던데, 어떻게 보이게할까요?
generate -> add Dependency 이 메뉴가 안보이던데, 어떻게 보이게할까요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
깃허브 주소
선생님 강의에서 코드 대신 필기하며 듣고싶어 그런데 강의 코드가 있는 깃허브 주소는 없을까요 ?
-
미해결초보 기획자/PM을 위한 Test Case 작성 및 QA 노하우
TC한계 - 기술적 이슈
안녕하세요! TC의 한계 가운데 '인프라, 기술적 이슈는 PM이 모를 수 있다'는 부분이 있는데요, 강의에서 들어주신 예로는, QA단계에서가 아닌 배포 후 발생하는 기술적 이슈에 대해 말씀하신 것 같은데 맞을까요? TC작성과 QA 단계에서 발생할 수 있는 인프라, 기술 이슈도 있는지, 혹시 가능하다면 예시를 들어주시면 감사하겠습니다. 그리고 기획자가 잘 모르는 인프라와 기술적인 이슈에 관한 부분은 어떻게 대처를 하면 좋을까요?(QA를 전문적으로 하는 사람은 알 수 있다고 하셨는데 그분들은 어떻게 아는 걸까요??)
-
해결됨
모바일 환경에서 영상 재생이 안됩니다
현재 진행중인 강의 영상 진행이 안됩니다. PC 환경에서는 문제없는데 모바일 환경에서 볼려고 하니 0초에서 검은 화면만 뜬 채 시작이 안됩니다. 쿠키 삭제도 해보고 크롬 시크릿 모드로도 해봤지만 소용이 없고, 다른 브라우저에서 로그인해서 실행해봐도 보안 재생..으로 시작하는 오류 문구만 뜨고 재생이 안됩니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
o.s.b.d LoggingFailureAnalysisReporter 오류
2024-05-16T23:53:30.318+09:00 ERROR 11428 --- [library-app] [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : ***************************APPLICATION FAILED TO START***************************Description:Parameter 0 of constructor in com.group.libraryapp.service.book.BookService required a bean of type 'com.group.libraryapp.domain.book.BookRepository' that could not be found.Action:Consider defining a bean of type 'com.group.libraryapp.domain.book.BookRepository' in your configuration.Process finished with exit code 0이런 오류가 뜨는데 bean 설정도 강의 내용그대로 한거 같은데 계속 코드를 수정하려고 해도 Error 가 떠서 해결방법을 모르겠습니다package com.group.libraryapp.service.book; import com.group.libraryapp.domain.book.Book; import com.group.libraryapp.domain.book.BookRepository; import com.group.libraryapp.domain.user.User; import com.group.libraryapp.domain.user.UserRepository; import com.group.libraryapp.domain.user.loanhistory.UserLoanHistory; import com.group.libraryapp.domain.user.loanhistory.UserLoanHistoryRepository; import com.group.libraryapp.dto.Book.request.BookCreateRequest; import com.group.libraryapp.dto.Book.request.BookLoanRequest; import com.group.libraryapp.dto.Book.request.BookReturnRequest; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class BookService { private final BookRepository bookRepository; private final UserLoanHistoryRepository userLoanHistoryRepository; private final UserRepository userRepository; public BookService( BookRepository bookRepository, UserLoanHistoryRepository userLoanHistoryRepository, UserRepository userRepository) { this.bookRepository = bookRepository; this.userLoanHistoryRepository = userLoanHistoryRepository; this.userRepository = userRepository; } @Transactional public void saveBook(BookCreateRequest request){ bookRepository.save(new Book(request.getName())); } @Transactional public void loanBook(BookLoanRequest request){ Book book = bookRepository.findByName(request.getBookName()) .orElseThrow(IllegalArgumentException::new); if(userLoanHistoryRepository.existsByBookNameAndIsReturn (book.getName(),false)){ throw new IllegalArgumentException("이미 대출되어 있는 책 입니다"); } User user = userRepository.findByName(request.getUsername()) .orElseThrow(IllegalArgumentException::new); userLoanHistoryRepository.save(new UserLoanHistory(user, book.getName())); } @Transactional public void returnBook(BookReturnRequest request){ User user= userRepository.findByName(request.getUserName()) .orElseThrow(IllegalArgumentException::new); UserLoanHistory history = userLoanHistoryRepository.findByUserIdAndBookName(user.getId(), request.getBookName()) .orElseThrow(IllegalArgumentException::new); history.doReturn(); } } package com.group.libraryapp.domain.book; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface BookRepository extends JpaRepository<Book,Long> { Optional<Book> findByName(String bookName); }
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
UE MMO 콘텐츠 구현은 언제쯤 출시 예정이실까요?
C# 서버 듣고 돈이 안아까워서C++서버랑 게임도 붙여보고 싶습니다.UE MMO 콘텐츠 구현은 언제쯤 출시 예정이실까요?올해 말까진 출시됐으면 좋겠는뎅
-
미해결
c++ 이상하게 저장되는 코드 질문있습니다
void put2byte(void *dest, uint16_t data){ *(uint16_t*)dest = data; } uint32_t num_data = hdr.get_num_data(); void* offset_array = hdr.get_offset_array(); //오프셋 어레이 받아오기 uint16_t now_data_region_off = hdr.get_data_region_off(); void* data_region = 0; uint16_t off = 0; uint16_t remain_data_region_off = now_data_region_off - input_record_size; put2byte((void*)((uint64_t)offset_array + num_data * 2), remain_data_region_off); 이렇게 되어있는데 remain_data_region_off 이 값이 37이하이면 37이하로 저장되는게 아니라 이상하게 저장이 되는데 무슨 문제인지 모르겠습니다 예를 들어 remain_data_region_off = 37 이면 7717이 저장되는데 num_data가 6일때만 발생합니다 0~5까지는 제가 설정한 값대로 저장이되는데 이유를 모르겠습니다
-
미해결Next + React Query로 SNS 서비스 만들기
The Middleware "/src/middleware" must export a middleware or a default function
미들웨어 matcher에 추가한 페이지 home으로 replace 시에 이렇게 에러가 뜨는데 이유를 모르겠습니다 ㅠ⨯ Error [ERR_HTTP_HEADERS_SENT]: Cannot append headers after they are sent to the clientat ServerResponse.appendHeader (node:_http_outgoing:689:11)at AsyncLocalStorage.run (node:async_hooks:346:14) import { auth as middleware } from "./auth"; export const config = { matcher: ["/compose/tweet", "/home", "/explore"], };
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
데디케이티드 서버 개발 문의
현재는 리슨 서버로 개발하고 있어서 서버 클라 코드가 동시에 들어가지만데디케이티드 서버 개발은 서버 코드만 있으면 되기 때문에 더 편리하다 라고 하셨는데이게 머릿속에 잘 그려 지지가 않습니다 ㅠ 데디케이티드 서버 개발 방식이라는게아예 프로젝트를 분리해서 서버와 클라를 구분해서 개발 하는 것으로 생각 해야 할까요?(예를 들어 캐릭터 액터의 경우를 보면 같은 이름의 ABCharacter.h & cpp 파일이 있지만 안의 내용은 다르게 (어떤건 같은 내용) 되어 있다고 생각해야 할까요?)아니면 프로퍼티 리플리케이션의 경우는 콜백으로 OnRep_ 함수가 클라이언트 측에서만 실행 할 수 있는 걸로 나오는데, 이렇게 되면 애초에 서버 클라가 분리된 형태로 볼 수 있고, 이를 기반으로 프로퍼티를 바꾸는건 서버 코드, OnRep_ 콜백 함수는 클라이언트 코드 로 해서 각 파트가 개발 하는 방식이 데디케이티드 서버 개발 방식일까요?
-
미해결[웹 개발 풀스택 코스] 순수 자바스크립트 기초에서 실무까지
혹시 VS code입력내용 그대로 적힌 자료공유해주실수 있나요 ?(깃허브등)
안녕하세요 선생님,강의 잘 듣고 있습니다. 감사합니다.근무중에도 틈틈히 몰래 화면 펼쳐놓고 공부하고 싶은데두터운 책 아닌 폰으로 슬쩍 볼수 있는 코드화면이 필요합니다.vscode 입력내용이 적힌 앱/웹 공유를 해주실수도 있을까요 ?? 어떤 식으로든 폰 화면으로 코드 복습할 방법을 알려주시면 더욱 좋겠습니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
에러가 생겨서 질문드립니다
에러 내용W/WindowOnBackDispatcher(25534): OnBackInvokedCallback is not enabled for the application.W/WindowOnBackDispatcher(25534): Set 'android:enableOnBackInvokedCallback="true"' in the application manifest. 증상:실행시키면 녹색바탕에 codefactory 로고 와 인디케이터 화면이 나오면서 무지 오래 20분 이상 계속 되다가 로그인 화면으로 들어가네요로그인 화면으로 바로 들어가야 하는데요. 그게 안되고 있습니다.로그인 화면으로 들어갈 때 첨부한 사진 하단 2줄 메세지가 나오네요 (에러 내용 참조) 검색하면 증상 대처법이 나오는데 따라해도 똑같습니다.설정 어디를 바꾸면 될거도 같은데 찾지 못하고 있습니다.
-
미해결
소리만 나오고 화면 안나오는 문제
맥북 m1 프로 사용하고 있는데요. 기본적으로 듀얼모니터까지만 지원해서 별도로 DisplayLink를 써서 트리플 모니터를 구성하고 있는데요.DisplayLink로 연결하면 화면이 안나옵니다. DisplayLink끄면 잘나옵니다.인프런에서 업데이트를 한 것 같은데 불편합니다 ㅜ고쳐주실 수 없나요..
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
5-4. 후위식 연산 괄호 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 잘 듣고 있습니다!혹시 풀이해주신 코드에서 괄호는 고려하지 않는 이유가 있을까요?
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
100vw 관련 질문
모던 웹을 위한 모던 CSS 단위 이해 및 정리 14:10에서 100vw를 하면 전체가 차지 되야 하는데 흰색 테두리가 있는 걸로 보아 100%꽉 채우지 않은 것 같아서요. 제가 예전에 어디서 배운 것 같기는 한데 정확하게 개념이 기억이 안나서 설명 부탁드립니다...!
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
State 패턴듣고 질문드립니다..
안녕하세요 루키스님저는 비전공자로서, 강의 너무 잘듣고있습니다.이해가 아주 쏙쏙됩니다.이때까지 제 자존심이 허락하지 않아뭐 안되는거있으면 구글링이나 chatgpt한테 물어봐가면서 아득바득해결했는데이건 도저히 이해가 안되네요... 제가 공격을 구현하는 코드에서 실수로 UpdateAnimation 부분을 빼고 연결해버렸습니다.나머지는 강의랑 동일한 코드로 작성하였습니다근데 요상하게도 나머지 기능은 정상적으로 작동하는데 공격시, 2회연속공격을 하더라구요??아니 공격키가 먹히는 것도 요상한데 2회연속공격도 요상합니다. 공격키가 먹히는 이유는 Event Tick에 걸어준 코드 때문에Update Input 함수에서 노란선방향으로 쭉 나가서 UpateAnimation쪽으로 가주면서공격키를 눌러주긴했으니까 EState가 Skill값으로 받아줘서 결과적으로 공격 모션을 취한것으로 예상을하고있는데근데 왜 2회연속공격으로 실행될까요??예전에 말씀하시길 Tick이 frame단위로 굉장히 짧은시간이니깐공격키가 눌린 찰나의 시간동안 저 과정이 2번 반복되서 그런걸까요??