묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Next + React Query로 SNS 서비스 만들기
팔로우 게시글 불러올 때 내 게시글이 가져와지는 문제
getFollowingPosts 호출 시 내 게시글들이 불러와집니다.credentials: 'include' 제대로 넣어줬는데 원인을 모르겠습니다.무한스크롤은 적용했고 팔로잉은 아직 없는 상태입니다.getFollowingPoststype Props = { pageParam?: number; }; export async function getFollowingPosts({ pageParam }: Props) { const response = await fetch( `${process.env.NEXT_PUBLIC_BASE_URL}/api/posts/followings?cursor=${pageParam}`, { next: { tags: ['posts', 'followings'], }, credentials: 'include', cache: 'no-store', }, ); if (!response.ok) { throw new Error('Failed to fetch data'); } return response.json(); } FollowingPosts'use client'; import { InfiniteData, useInfiniteQuery } from '@tanstack/react-query'; import { getFollowingPosts } from '../_lib/getFollowingPosts'; import Post from '../../_components/post'; import type { Post as IPost } from '@/model/post'; import { useInView } from 'react-intersection-observer'; import { Fragment, useEffect } from 'react'; export default function FollowingPosts() { const { data, fetchNextPage, hasNextPage, isFetching } = useInfiniteQuery< IPost[], Object, InfiniteData<IPost[]>, [_1: string, _2: string], number >({ queryKey: ['posts', 'followings'], queryFn: getFollowingPosts, initialPageParam: 0, // required getNextPageParam: (lastPage) => lastPage.at(-1)?.postId, // required staleTime: 60 * 1000, gcTime: 300 * 1000, }); const { ref, inView } = useInView({ threshold: 0, delay: 0, }); useEffect(() => { //. inView: ref가 화면에 보일 때 //. !isFetching: 패칭상태 아닐때 (중복 패칭 방지) //. hasNextPage: 다음 페이지가 있을 때 console.log('useEffect', { inView, isFetching, hasNextPage }); if (inView && !isFetching && hasNextPage) { fetchNextPage(); } }, [inView, isFetching, hasNextPage, fetchNextPage]); return data?.pages.map((page, index) => ( <Fragment key={`posts-followings-page-${index}`}> {page.map((post) => ( <Post key={post.postId} post={post} /> ))} {!isFetching && <div ref={ref} style={{ height: 50 }}></div>} {isFetching && <div style={{ height: 50 }}></div>} </Fragment> )); } response에는 내 게시글들이 담겨옵니다서버쪽 PostsService findAll 콘솔 찍어보면 유저정보 제대로 받아옵니다{ cursor: 0, type: 'followings', user: { id: 'asdf', nickname: '슈퍼맨', image: '/upload/dummy1719568724038.png' } }
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
8회 빅데이터분석기사 합격이요! 좋은 강의 감사합니다.
덕분에 실기 잘 준비할 수 있었습니다. 감사합니다 ^^ 잘 배웠습니다 ㅎㅎ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ControllerAdvice HTTP 405 처리
@ControllerAdvice("com.test.controller") 이렇게 패키지명을 명시하고전역 @ControllerAdivce가 없는 경우405가 발생하면 핸들러 어댑터에서 처리해야 할 핸들러를 찾지 못해서 ( handler = null )예외 처리가 안되더라구요.405라고 인식한거 자체가 handler 의 정보는 가지고 있을 줄 알고 @ControllerAdvice("com.test.controller") 에서 처리가 될 줄 알았는데 말이죠이 문제 해결할려면 무조건 @ControllerAdvice 전역처리기나 아니면 /error 로 포워딩되는곳에서 처리를 해줘야 할까요?
-
미해결데이터 분석 SQL Fundamentals
제가 작성한 코드에 왜 오류가 생기는지 잘 모르겠습니다.
with temp_01 as ( select b.product_id, b.category_id , sum(amount) as sum_by_prod from order_items a join products b on a.product_id = b.product_id group by b.product_id, b.category_id ) , temp_02 as ( select product_id, category_id, sum_by_prod , sum(sum_by_prod) over (partition by category_id) as sum_by_cate , row_number() over(partition by category_id order by sum_by_prod) top_prod_ranking from temp_01 ) select * from temp_02 where sum_by_prod >= sum_by_cate*0.05 and top_prod_ranking <= 3 ;안녕하세요. 위의 코드로 실행시킨 결과, 다음과 같이 출력되었습니다.12 4 12257.66 234507.26 322 5 7122.36 95744.59 355 6 17426.40 163022.37 314 7 7991.48 99984.57 27 7 22044.30 99984.57 3위의 코드에서 선생님께서 작성하신 코드와 다른 점은 temp_01 생성할 때 group by를 product._id와 category_id, 총 2개로 놓은 것인데요. 선생님이 작성하신 temp_01과 제가 작성한 temp_01를 전체 쿼리에서 떼어와서 각각 실행했을 때 결과는 같았는데, 전체 쿼리에서는 왜 결과가 달라졌는지 궁금합니다. 감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
5.12 강의 관련 질문있습니다
void draw(int n) 의 while 문에서 감소연산자를 안쓰고 같은 결과가 나오게하려면 어떻게 해야하나요?
-
미해결스프링 배치
chunk 처리 기반에서 cursor 방식과 메모리 사용
안녕하세요. 비전공자로 배치 프로그램에 관심이 많아서 해당 강의를 듣다가 커서 방식과 페이징 방식을 스프링 배치에서 사용할 때 고려사항과 관련하여 질문이 있습니다. 커서가 페이징 방법에 비해 데이터 일관성이 보장이 쉽고 속도도 더 빠른 것으로 알고 있습니다. 그리고 청크 기반 배치 처리 로직으로 구현한다면, 커서 기법을 사용하는 경우에도 페이징 방법처럼 트랜잭션 단위를 청크 크기만큼 나눌 수 있을 텐데요.(페이징에서 chunk와 paging 단위를 같이 하는 것처럼 커서에서도 chunk와 fetchsize를 같게 해주면 될 것으로 고려합니다.)그리고 멀티 스레드를 고려한다면,SynchronizedItemStreamReader로 reader 영역을 감싸서 처리할 수도 있는 걸로 알고 있습니다. 그렇다면, 이러한 상황 속에서 커서와 페이징을 사용함에 고려해야할 트레이프 오프가 커넥션 타임 뿐인 걸까요??이런 상황에서도 커서가 메모리 할당 방식으로 인해서 메모리 사용량이 커진다는 단점이 있는 건가요??( 더 정확하게 말하자면 결과를 메모리에 할당한다는 점이 명확히 와닿지 않습니다.제 나름 추론하자면,커서가 fetch size나 chunk로 전체 데이터를 분할하여 메모리에 올리고 읽고나서도 모든 결과값이 메모리에 쌓여 한번에 write(ex- db에 저장) 되기 때문에 메모리 사용량이 많아 진다는 것인가여??반면에, 페이징은 기반 처리는 페이징 단위로 데이터를 읽고 읽은 데이터 크기를 처리 후 메모리에 올리고 write한 후에 다시 정해진 크기 만큼 읽는 방식인건가요??즉, 이것이 커넥션을 맺고 끊는 것 방식과 관련이 깊은 것인지 궁금합니다.)이상 cs적인 지식이 부족한 비전공자의 긴 질문을 읽어주셔서 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2번은 LinearReggression으로는 풀 수 없는건가요?
randomforest로도 해보고 Linear으로도 했는데 최종 제출은 Linear로 제출 했더니 10점이 나왔네요...
-
미해결[신규 개정판] 이것이 진짜 엑셀자동화다 - 기본편
엑셀 파일 제목 중복되면 (1),(2) 씩 늘어나게 해서 생성하게 하기
파일이 중복되면 다시 지웠다가 파이썬을 실행시켜야 하는데 그걸 막기 위해 코드 추가했습니다.import openpyxl import random import os from datetime import datetime, timedelta wb = openpyxl.Workbook() ws = wb.active base_path = '파일이 있는 폴더 경로 ex)c://user' base_filename = '파일명.xlsx' full_path = os.path.join(base_path, base_filename) # 파일명이 겹치면 숫자를 붙여가며 저장 if os.path.exists(full_path): version = 1 while os.path.exists(full_path): name, ext = os.path.splitext(base_filename) full_path = os.path.join(base_path, f"{name} ({version}){ext}") version += 1 ws.title = 'automation' item = [['32인치 모니터', 350000], ['마우스 패드', 20000],['게이밍 마우스', 40000], ['기계식 키보드',120000]] # ws['A1'] = '순번' # ws['B1'] = '제품명' # ws['C1'] = '가격' # ws['D1'] = '수량' # ws['E1'] = '합계' # ws['F1'] = '날짜' ws.append(['순번','제품명','가격','수량','합계','날짜']) first_date = datetime(2024, 3, 1) for i in range(2, 12): current_date = first_date + timedelta(i) rand_ind = random.randint(0,3) selected_item = item[rand_ind] ws.append([i-1, selected_item[0], selected_item[1], random.randint(1,8), f'=C{i}*D{i}', current_date.strftime('%Y-%m-%d')]) # strftime으로 나타내야 엑셀에서 날짜형식으로 뜬다. wb.save(full_path)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
단일 모듈 다중 프로젝트 질문
아직 완강은 하지 않았지만 궁금한 점이 생겨 질문드립니다강의에서 단일모듈 다중 프로젝트로 진행을 하시는데, 이렇게 되면 CI/CD 관리는 어떻게 하는 지 궁금합니다 서비스 마다 Github Repository를 하나씩 만드는 건가요?단일 프로젝트 멀티모듈은 권장하지 않으시나요?현업에서는 주로 어떤 방법을 사용하는지 궁금합니다
-
미해결
8회 실기합격^^
8회 실기시험에 덕분에 합격했습니다7회때 0점 실기총점 75점 선생님 강의가 8회 실기때 많이 도움되었습니다감사합니다^^
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
파라미터 로깅 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.Hibernate: drop table if exists memberHibernate: create table member ( id bigint not null auto_increment, username varchar(255), primary key (id) ) engine=InnoDBHibernate: insert into member (username) values (?)insert시에 id 값이 보이지 않는 이유가 무엇일까요 ㅠㅠ파라미터는 id, username 2개가 나와야 하는데 1개만 나와서 질문 드립니다.spring.jpa.properties.hibernate.show_sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.type=trace p6spy도 똑같이 하나만 나오더라구요
-
해결됨실무에 바로 적용하는 AWS 배포
강의 1.2, 1.3 영상이 보이지 않습니다.
강의 1.2, 1.3 영상이 보이지 않습니다처음에 주의사항이라 하셔서, 음성 강의로 들으려했으나, 스크립트를 확인해보니, 여기 확대, 화면의 대한 언급을 하셔서, 영상이 필요한 강의라고 확신하여 질문을 올렸습니다.. 이거 어떻게 해결이 안될까요??.
-
미해결[신규 개정판] 이것이 진짜 엑셀자동화다 - 기본편
엑셀 다루기 기초에서 날짜 1일씩 늘어나게 하기
from datetime import datetime, timedelta import openpyxl # 날짜 시작 start_date = datetime(2030, 1, 1) # 데이터 추가(2) ws.cell(row=2, column=1, value= start_date.strftime('%Y-%m-%d')) ws.cell(row=2, column=2, value = 20000) ws.cell(row=2, column=3, value='삼성tv') ws.cell(row=2, column=4, value = 4) ws.cell(row=2, column=5, value='=B2*D2') for i in range(3,7): current_date = start_date + timedelta(days=i-2) ws.cell(row = i, column = 1, value = current_date.strftime('%Y-%m-%d')) 엑셀 다루기 기초 - openpyxl 수업에서 데이터 추가할 때,3번재 행 셀부터 날짜가 1일씩 늘어나게 작성해 보았습니다.
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 2 - 랭체인(LangChain)으로 나만의 ChatGPT 만들기
ConversationSummaryBufferMemory의 max_token_limit
ConversationSummaryBufferMemory 설명 중max_token_limit 관련 문의 있습니다토큰 제한하신 경우:max_token_limit=5대화 요약된 경우: {'history': 'System: \nThe human greets the AI and the AI responds asking how the human is doing. The human responds that they are not doing well and the AI responds similarly.'}이렇게 지정한 토큰 수를 넘어서 대화 요약이 되는 이유가 있을까요?
-
미해결Next + React Query로 SNS 서비스 만들기
유저정보 유지관련해서 세션쿠키, 엑세스토큰 질문드립니다.
안녕하세요 선생님선생님강의 따라서 로그인을 구현했습니다.auth에서 관리해주는 세션으로는 프론트용,로그인 후 내려주는 connect.id 세션으로는 백엔드용,으로 사용했습니다.그런데 궁금한게로그인을 하고 기간이 지나거나 그런 경우를 대비해서엑세스토큰, 리프레시 토큰을 많이 사용하는 것을 보았는데선생님은 넥스트에서 어떤 방식을 사용하시는지,어떤방식을 추천하시는지 궁금합니다.검색해보니까 엑세스토큰이 아닌 쿠키세션으로 사용할때에는 일정시간 inter시켜주고 특정시간지나면 쿠키시간을 업데이트해주기도 하더라구요.선생님 조언이 궁금합니다.감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
빅데이터분석기사 합격
비전공자인데, 강사님의 강의를 듣고 한 번에 붙을 수 있었습니다!시험 전까지 강의 문제와 캐글 문제까지 여러 번 복습했고, 그 결과 좋은 점수를 받을 수 있었던 것 같습니다.감사합니다!!
-
미해결[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문
추상화와 클래스중 질문
안녕하세요 너무 감사하게 잘 보고 있습니다.다름이 아니라 강의 내용중에 궁금한점이 있어 질문 드립니다.클래스 안에 함수를 만들면 되는데 왜 클래스 밖에서 함수를 만드는건가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
C언어 기출문제 변형 풀이중 질문
정답이랑은 크게 상관없지만...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findById 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]왜 에러가 나는 걸 까요? 그리고강사님과 창이 다르게 뜨는데 어떻게 설정해야하나요?
-
미해결
구글 플레이 콘솔 : 앱 출시 순서 질문
안녕하세요. 이번에 구글에 처음으로 앱을 출시하려고 시도중입니다. 대강 [개발자 계정 등록], [본인 확인, 조직 웹사이트 확인] 의 과정을 거친 후,[첫 번째 앱 만들기] - 에서 [앱 설정]에 해당하는 부분들도 다 지정을 해줬습니다. 문제는 이후부터인데, 제가 찾아본 바로는 앱의 첫 등록 시에는 [비공개 테스트] 진행 후에 [프로덕션] 출시를 진행해서 앱이 마켓에 공개적으로 등록된다고 이해했습니다.그러면 [비공개 테스트]가 완료돼야 [프로덕션] 버전이 등록되는게 순차적으로 맞는 것 같은데, 지금 제 "출시 개요" 목록에선 [비공개 테스트]와 [프로덕션]이 둘 다 등록돼있고, "변경 사항 검토 중" 에 있습니다.이 과정이 얼만큼 걸릴지 타임라인을 짜서 위에 보고해야하는데 앱 빌드가 처음이라 지금 이게 옳게 순서를 가져가고 있는 것인지도 잘 알 수가 없네요.혹시 어떤 과정을 순서대로 거쳐야 하는지 정확히 설명을 들을 수 있을까요?