묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Next + React Query로 SNS 서비스 만들기
리액트 쿼리를 활용한 SSR으로 데이터 조회하기
안녕하세요!제가 강의를 모두 수강하고 프로젝트에서 리액트 쿼리를 통해 SSR을 적용하려고 하고 있습니다. 아래 코드는 fetchAPISever 함수를 통해 백엔드 api로부터 데이터를 요청하는 함수입니다. 이때fetchAPIsever 함수는 next/header의 cookies()를 통해 사용자의 토큰이 있으면 토큰을 넣어서 api를 요청하는 함수입니다.export const getBestAndPendingReviews = async (): Promise<ReviewePageResponse> => { const res = await fetchAPIServer('/api/review', 'GET'); if (res.code === 'SUCCESS') { return res.result; } throw new Error( `리뷰 페이지 데이터 불러오기 실패 ${res.code}-${res.message}`, ); }; 아래 코드는 리뷰 페이지에서 서버 사이드 렌더링으로 보여주기 위해 리액트 쿼리로 Hydration을 적용한 코드입니다.// src\app\reviews\page.tsx import { HydrationBoundary, QueryClient, dehydrate, } from '@tanstack/react-query'; import ReviewDashboard from './_components/ReviewDashboard'; import { getBestAndPendingReviews } from './_lib/getBestAndPendingReviews'; export default async function ReviewsPage() { const queryClient = new QueryClient(); await queryClient.prefetchQuery({ queryKey: ['reviews', 'best'], queryFn: getBestAndPendingReviews, }); const dehydrateState = dehydrate(queryClient); return ( <HydrationBoundary state={dehydrateState}> <ReviewDashboard /> </HydrationBoundary> ); } ' <ReviewDashboard/> 컴포넌트에서 UserInfo 컴포넌트를 반환하도록 설정하고 useQuery 훅을 사용하려 했으나, fetchAPIServer 함수에서 next/headers 를 import하고 있어서 클라이언트 컴포넌트에서 사용할 수 없다는 에러가 발생했습니다. 그러면 SSR을 적용하기 위해서는 getQueryData를 사용해야하는 걸까요..?import { QueryClient } from '@tanstack/react-query'; import { ReviewePageResponse } from '../_lib/getBestAndPendingReviews'; export default function UserInfo() { const queryClient = new QueryClient(); const reviews = queryClient.getQueryData<ReviewePageResponse>([ 'reviews', 'best', ]); const { total } = reviews!; if (!reviews) return <p>리뷰가 없습니다.</p>; console.log('reviews', reviews); return <p>작성한 리뷰 {total || 0}</p>; } 또는 useQuery를 쓰되 쿼리 함수를 Promise.Resolve()로 서버에서 전달 받은 데이터를 받는게 나은가 요? 'use client'; import { useQuery } from '@tanstack/react-query'; export default function UserInfo() { const { data: reviews, isLoading } = useQuery({ queryKey: ['reviews', 'best'], queryFn: () => Promise.resolve(), // 서버 데이터 재활용 }); if (isLoading) return <p>Loading...</p>; if (!reviews) return <p>리뷰가 없습니다.</p>; const { total } = reviews!; console.log('reviews', reviews); return <p>작성한 리뷰 {total || 0}</p>; }
-
미해결실습으로 배우는 그라파나 - {{ x86-64, arm64 }}
[해결] ch2/2.2 가 없어 수업 진행이 불가능합니다.
영상속에 나오는 ch2/2.2는 문성주님 저장소의 ch2/2.11의 이 링크에 있습니다.조훈님 GitHub : https://github.com/sysnet4admin/_Lecture_k8s_learning.kit문성주님 GitHub : https://github.com/SeongJuMoon/_Lecture_graf_learning.kit 말 그대로 ~/_Lecture_k8s_learning.kit/ch2 안에 2.2 가 없습니다.root@cp-k8s:~/_Lecture_k8s_learning.kit/ch2# pwd /root/_Lecture_k8s_learning.kit/ch2 root@cp-k8s:~/_Lecture_k8s_learning.kit/ch2# ls 2.12 2.13 2.14 2.3 2.4 2.5 README.md저장소에도 해당 파일이 없습니다.Link : https://github.com/sysnet4admin/_Lecture_k8s_learning.kit
-
해결됨디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
DHCP 부분에서 DhcpNameServer 값 데이터 관련
안녕하세요. 2025년 디포 2급 준비 중인 학생입니다. [공통] 네트워크 정보 확인 강좌의 DHCP 항목에 대해 질문이 있습니다. 강의 중 DHCP 설명에서 'DhcpNameServer'를 통해 IP를 할당해주는 ISP 업체를 알 수 있다고 하셨는데요,제 노트북의 'DhcpNameServer' 항목에는 8.8.8.8이 표시됩니다.동생이 공유기 설정을 한 상태인데, 검색해 보니 해당 IP는 구글의 IP 대역으로 나옵니다. 혹시 'DhcpNameServer'는 ISP 정보가 아니라 DNS 서버의 IP 주소를 나타내는 것이 아닌지요??? 답변 부탁드립니다. 감사합니다 ^^/
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
[수정] 린캔버스 수정1만 자막 없습니다.
안녕하세요~! 지금까지 수업 진도 잘 따라갔는데 [수정] 린캔버스 수정1만 자막이 없네요 ㅠㅠ 자막 언제 나올까요?
-
미해결루커 스튜디오(구글 데이터 스튜디오)로 배우는 데이터 시각화 입문
애널리스트 데모 계정 연결 후 진행 막힘.
강의 화면과 다르게 1가지 목록이 연결 안되어 진행이 안됩니다.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
emit event전달 문제
안녕하세요.자식 컴포넌트에서 부모 컴포넌트로 emit을 사용해서 event를 전달하는 내용을 실습하고 있습니다.강사님을 따라서 자식컴포넌트에서 전달하는 event명을 createPost(카멜케이스)로 작성하고 부모컴포넌트에서event 리스터에는 create-post(케밥케이스) 로 입력했는데 이벤트가 실행이 안됐습니다. 그러다가 둘다 케밥 케이스로 통일하니깐이벤트가 실행이 잘 되더라구요. 왜그런 건지 알수 있을까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기간 연장 부탁드립니다.
수강 연장 부탁드립니다..! 감사합니다.
-
미해결시니어 백엔드 개발자가 알려주는 데이터베이스 개론 & SQL
요청사항이 있습니다!
너무 좋은 강의 무료로 제공해주셔서 감사합니다.혹시 강의자료를 공유받을 수 있을까요? 복습할 때 있으면 도움이 많이 될 것 같아 여쭤봅니다!
-
미해결Verilog FPGA Program 1 (Zynq mini 7020)
TOP 모듈 코딩 관련
28page 부터 보고 있습니다.보면서 궁금한 점이 강사님께서 예제소스를 올려주셔서 그걸로 업로드 하면 모든 소스가 나와 있어서 비교하며 따라가고는 있는데 만약에 제가 필드에서 처음부터 코딩을 한다고 하면 User Top (system wrapper) 도 코딩을 하여야 하는걸까요? LED TOP이야 제어하는 부분이니까 코딩을 하는게 맞는데 PS, PL을 포함하는 TOP 코딩은 뭔가 막막하네요...여기서의 System wrapper는 PS 영역이 맞는건가요? 뭔가 두서없이 질문을 드렸네요..
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
length 질문
14:32 초 부근에 length 를 함수부분에서 널값이 있다검색한다음에 호출하는것으로 이해했습니다. 궁금한점은....Hello, world!에서 ","다음이 공란(널값)인데 수행이 멈추고6이 출력되야 하지 않나 헷갈려서 문의드립니다. 정답은 13 공란이 포함되어 있던데 헷갈리네요^^;
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
GameMode를 부모로 생성시 ConstructorHelpers의 기능을 사용할 수 없나요?
예전에 실수로 2강을 먼저 듣다가 1강 다 듣고 공부중인 학생입니다. Reference 경로를 복사해서, ConstructorHelpers의 FClassFinder를 사용하여 DefaultPawnClass를 설정해줄때, GameMode를 부모로 상속받은 C++ 클래스는 DefaultPawnClass가 바뀌지 않던데 부모를 GameModeBase로 바꿔주니 정상적으로 DefaultPawnClass가 바뀌더라구요. 혹시 어떠한 차이 때문에 이러한 결과 차이가 벌어지는지 알 수 있을까요?
-
미해결게임 프로그래머 취업 전략 가이드
언리얼엔진 포트폴리오에 관해 여쭤보고 싶어요
안녕하세요 루키스님저는 취업을 언리얼엔진 회사로 하고싶어서 언리얼엔진을 공부하고 있습니다. 엔진을 공부하다가 보니 GAS라는게 좋다고 해서 익혀보고.. 어느정도 감을 잡고 보니 이번엔 Lyra 프로젝트가 있더라구요. 그래서 지금은 루키스님 강의인 Lyra 클론코딩을 듣고있습니다. 그런데 Lyra가 지식적으로는 큰 도움이 되는 반면 이 구조를 기반으로 내가 포트폴리오를 만들 수 있을까? 라는 의심과 현업에선 아직 Lyra구조를 많이들 사용을 안하지 않을까? 라고 타협하고 싶은 마음이 슬슬 들기 시작해서요..제가 여쭤보고 싶은건 아래와 같습니다.현업에선 GAS 와 Lyra 구조를 각각 어느정도 쓰는 추세인지포트폴리오를 만든다면 기본 언리얼엔진에 GAS,멀티플레이어만 얹어서 만들면 충분할지, 아니면 Lyra구조로 포트폴리오를 만들면 더 경쟁력이 있는지
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1주차 숙제 두번째 문제 풀이에서..
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1-11 2. 어려움을 겪는 부분첫 시도에서 count_to_all_zero 와 count_to_all_one이 모두 1이 나오는 이유가 첫번째 문자에 대해서 비교를 안하고 있다고 나와있는데,첫번째 문자가 아니라 맨 마지막 문자를 비교 안하고 있는 것이 아닌가 궁금합니다! 첫 시작에서는 0번째 인덱스와 1번째 인덱스를 비교하지만마지막 len(string) - 1번째 인덱스와 len(string)를 비교할 때는 마지막 문자에 대한 카운팅이 이루어지지 않는게 아닌가 하는데.. 제가 잘못 이해하고 있는걸까요..? ㅠㅠ
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-10 문제 이런 접근은 어떤가요?
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1-10 2. 어려움을 겪는 부분재취준을 준비하면서 여러 기업의 코딩테스트를 봤었는데요.항상 시간 예외성 검사에 걸려서 코딩테스트를 탈락합니다.그래서 이 문제를 보면서도 시간을 최대한 줄이고자 노력했습니다. 3. 시도해보신 내용input = "abadabac" def find_not_repeating_first_character(string): while True: found_flag = False if len(string) > 1: target_char = string[0] for compare_char_index in range(1,len(string)): if target_char == string[compare_char_index]: found_flag = True break if found_flag: string = string.replace(target_char, "") else: return target_char else: return "_" result = find_not_repeating_first_character print("정답 = d 현재 풀이 값 =", result("abadabac")) print("정답 = c 현재 풀이 값 =", result("aabbcddd")) print("정답 =_ 현재 풀이 값 =", result("aaaaaaaa")) 제가 봐도 가독성이 안좋긴한데.. 저는 이 문제를 풀면서 가장 먼저 생각한 것이 '이미 한번 훑은 알파벳에 대해서는 순회를 제외한다' 였거든요.그런데 글을 쓰면서 다시 확인해보니 string을 replace할 때 오히려 더 시간이 늘어날 것 같기도 하구요.. ㅠㅠ for문의 대상이 되는 객체를 for문 안에서 변경할 수 없기에 부득이하게 found_flag라는 변수를 선언해서 for문 밖에서 판단 후 replace 하는 식으로 코드를 작성했습니다. 궁금한 점이, 딩코딩코님은 이 접근법에 대해서 어떻게 생각하시나요? 저는 정말 간단할 수 있는 문제를 20분 정도의 시간을 고민하면서 풀었는데, 이런 부분 때문에 실제 코딩테스트를 응시할 때도 시간이 부족했습니다.. ㅠㅠ 코딩테스트를 보면 1 <= N <= 1,000,000,000이런 식으로 제한을 두다 보니.. '길이 1억의 string이 주어졌을 때 전부 순회하면 시간이 너무 길어지지 않나..?' 하는 생각이 항상 발목을 잡는 것 같습니다.. 이런 문제를 접근할 때 어떤 식으로 접근해야 할지 조언 부탁드립니다..항상 좋은 강의 감사드립니다!! (_ _)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JPA오류
[질문 내용]JPA 테스트 코드 오류============================CONDITIONS EVALUATION REPORT============================Positive matches:----------------- AopAutoConfiguration matched: - @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition) AopAutoConfiguration.AspectJAutoProxyingConfiguration matched: - @ConditionalOnClass found required class 'org.aspectj.weaver.Advice' (OnClassCondition) AopAutoConfiguration.AspectJAutoProxyingConfiguration.CglibAutoProxyConfiguration matched: - @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition) ApplicationAvailabilityAutoConfiguration#applicationAvailability matched: - @ConditionalOnMissingBean (types: org.springframework.boot.availability.ApplicationAvailability; SearchStrategy: all) did not find any beans (OnBeanCondition) DataSourceAutoConfiguration matched: - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) - @ConditionalOnMissingBean (types: io.r2dbc.spi.ConnectionFactory; SearchStrategy: all) did not find any beans (OnBeanCondition) DataSourceAutoConfiguration.PooledDataSourceConfiguration matched: - AnyNestedCondition 1 matched 1 did not; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.PooledDataSourceAvailable PooledDataSource found supported DataSource; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.ExplicitType @ConditionalOnProperty (spring.datasource.type) did not find property 'type' (DataSourceAutoConfiguration.PooledDataSourceCondition) - @ConditionalOnMissingBean (types: javax.sql.DataSource,javax.sql.XADataSource; SearchStrategy: all) did not find any beans (OnBeanCondition)JPA코드를 작성하고 통합 테스트 코드를 작성하니 이와같은 오류가 뜹니다! 테스트 코드는 package hello.hello_spring.service; import hello.hello_spring.domain.Member; import hello.hello_spring.repository.MemberRepository; import jakarta.transaction.Transactional; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("hello"); //When Long saveId = memberService.join(member); //Then Member findMember = memberRepository.findById(saveId).get(); assertEquals(member.getName(), findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }이렇게 되어있습니다!
-
해결됨한 입 크기로 잘라먹는 타입스크립트(TypeScript)
이건 무슨 함수일까요...? 어떻게 해석해야 할까요...?
Fn : (name: string, value: any) => void = () => {} 이 함수를 이해하지 못하겠어요...뭔가 함수 타입 표현식이랑 관련된 거 같긴 한데, (name: string, value: any) => void = () => {}이렇게 끊어서 읽어도 되나요? 그리고 그냥 이 함수 자체를 이해하기 어려운데 도와주실 수 있을까요... 저녁 6시부터 이거만 보고 있어요...ㅠㅠ
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
터미널에서 uvicorn명령어 칠때 자동완성
자동완성 되시던데요. 어떤 확장프로그램쓰시는걸까요
-
해결됨독하게 시작하는 C 프로그래밍
memcpy 내부 구현은 어떻게 아신건가요?
선생님 안녕하세요!자바에서 native 메서드 보다가 선생님 C 강좌까지 와버렸습니다. 메모리 복사 관련한 함수 중 memmove의 내부 동작 원리를 찾다가 강의에서 memcpy를 설명하시는걸 보았습니다. 이때 memcpy 내부 구현이 반복문으로 되어있다고 설명하셨는데 이런 내부 구현은 어떻게 아신건가요?혹시 memmove도 반복문으로 구현이 되어있을까요?
-
미해결
대표적인 유형 장애 2
안녕하세요. 개발자님 대표적인 유형 장애에 대해 문의 드립니다.수신 측에서 유형 장애에 대한 요청을 송신측에게 하게 되면, 송신측 에서 장애 유형에 대한, 유실된 세그먼트를 전송 하든, 재정송 하든 하는데, 그렇다는 것은 송신측에서 보낸 세그먼트를 수신측에서 잘받았다고 응답 하기 전까지는 송신한 세그먼트를 가지고 있다는 것인데 맞는 걸가요? (O,X) 맞다면, 그 세그먼트들은 송신측 TCP buffer에 있으며, 장애 유형이 발생하면 TCP buffer 에 있는 세그먼트를 재전송 하는 작업이 이루어 진다고 생각 해도 되는 걸까요?
-
미해결취업/이직에 성공할 수 밖에 없는 포트폴리오 전략 강의
디스코드 초대 오류
안녕하세요!디스코드 초대가 만료되었다고 뜹니다..!