172만명의 커뮤니티!! 함께 토론해봐요.
해결됨
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
CommonService 클래스 부분에서 이 코드 테스트를 하며 생각을 해봤는데요 EX) 루트 댓글 A(논리삭제) ㄴ 댓글 B ㄴ 대댓글 C 상황인 경우에서 B를 삭제했을 경우에 논리 삭제 되어있던 루트 댓글A도 삭제가 되면서 루트 댓글 A(물리삭제) ㄴ 댓글 B(물리삭제) ㄴ 대댓글 C 이런 상황으로 된다면 대댓글 C는 물리삭제 된 루트 댓글A를 parent로 가지는 고아 댓글이 되어버리는 것은 아닌가 궁금해서요!! 깔끔하게 딥한 강의 너무 잘 듣고 있어요!! 감사합니다 :)
java mysql spring-boot kafka redis
박력
2025-11-06T07:39:04.302Z
댓글 2
좋아요 0
조회수 82
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
자식클래스에서 super() 이 없어도 부모 생성자 A()실행해야 하는건가요? super()는 생략가능하다고 들은거 같아서요
jongbin7245
2025-11-06T07:22:34.061Z
댓글 2
좋아요 0
조회수 85
미해결
나도! 스프링으로 인공지능을 할 수 있다(인프1탄)
동영상 속도 조절 가능한가요? 너무 빠른데 조정 버튼이 없어요.
java spring spring-boot 인공지능(ai) spring-ai
jdpark
2025-11-06T07:19:07.065Z
댓글 1
좋아요 0
조회수 75
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
While (첫번째 조건 && 두번째 조건) -> 두번째 조건의 의미가 n1을 가리키고 있는 NODE의 next가 널이 아닌지를 묻고 있는것일까요?? 아니면 n1의 next가 n3라서 널이 아니라는 것인가요? 저는 node를 n1을 가리키고 있는 노드라고 생각해서 처음의 의미로 생각했는데 아닌것같아서 질문드립니다.
2025-11-06T06:28:55.382Z
댓글 2
좋아요 0
조회수 56
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
7:30분 Java 예시 문제에서 답변을 m / 1000 (m % 1000) / 500 (m % 500) / 100 (m % 100) / 10 이렇게 괄호 쳐서 답변해도 정답 처리 되나요?
kjh0925
2025-11-06T06:01:11.308Z
댓글 2
좋아요 0
조회수 59
해결됨
[VOD] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
안녕하세요. 다름이 아니라 프롬프트를 실행 할 경우 매번 md 파일로 만들어져서 루트 디렉토리에 쌓이게 되더라구요. 이게 많아지면서 뭔가 자꾸 컨텍스트를 들고 가는지 요구사항을 제대로 못지키는 현상이 발생되는 것 같아 md-files를 만들고 옮겨두었더니 이젠 거기에 md 파일을 생성합니다. 이럴 경우 컨텍스트가 늘어나 원하는 프롬프트 요구사항을 제대로 이행하지 못하는게 맞을까요? 강사님이라면 해당 md 파일 생성은 하지말라는 프롬프트를 추가하셨을까요?
react next.js cursor 프롬프트엔지니어링 바이브코딩
이동규
2025-11-06T04:29:40.563Z
댓글 2
좋아요 0
조회수 249
미해결
Cursor AI로 만드는 생산성 2배 Java Spring 개발
안녕하세요. 학습 관련 강의자료를 받아볼 수 있을지 문의드립니다.
Depth
2025-11-06T02:25:49.759Z
댓글 1
좋아요 0
조회수 66
미해결
고성능 JPA & Hibernate (High-Performance Java Persistence)
ManyToOne and OneToMany 의 12:38 스크립트가 반대로 작성 (이에 따라 번역도 반대로) 되어있는 것 같습니다. Hibernate is not going to set the foreign key when executing the insert statement. -> Hibernate is going to set the foreign key when executing the insert statement. nullable false 설정하면 삽입 시 외래키도 같이 설정. 그럼에도 이후 update 쿼리가 날아간다. 라는 것 같은데 반대로 적혀있네요. 스크립트 정정에서 신청할랬는데 정정 버튼이 안눌려서 글 남깁니다.
Young Kim
2025-11-06T01:28:03.430Z
댓글 1
좋아요 0
조회수 65
해결됨
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
해당 강의 완강하면 프로그래머스 lv 몇까지 커버 가능한지 궁금합니다. 코딩테스트 준비하려는데 lv2까지는 가능한건지 궁금합니다. 아니면 강사님 다음 강의인 대기업 it 코딩테스트 자바도 들어야되는지 궁금합니다.
Cat Developer
2025-11-06T00:26:05.264Z
댓글 1
좋아요 0
조회수 140
미해결
죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
킬구형 1장 - 작전3에서 아래와 같이 얘기한 부분에 대해 궁금한게 있어. '리스너는 감시와 통제만 담당한다. 실제 시스템 제거 로직( 비즈니스 로직 )은 분리하라. 리스너가 너무 많은 일을 하면 유지보수가 어려워지고 시스템 동작을 파악하기 힘들어진다' 청크 기반 배치 잡이라고 하고 A라는 테이블에서 데이터를 읽어와서 B라는 테이블에 데이터를 삽입하는데 B 테이블에 데이터가 없다면 삽입, 있다면 수정하는 로직이 있어. 이 과정들이 모두 끝나고 마지막으로 B 테이블에 수정 날짜 컬럼이 잡 시작 시간보다 이르다면 A 테이블에 데이터가 없으므로 B 테이블에서 이러한 데이터들을 삭제하려는 로직을 넣는다고 했을 때 아래 궁금증들이 있어. 1. 위 얘기를 토대로 생각해보면 삭제 로직은 청크 기반 스텝 이후 태스크릿과 같은 다음 스텝으로 넣는게 좋은 것 같은데, 실무에서는 해당 잡 전용 리스너를 하나 추가로 만들어서 afterJob 메서드에 배치 상태가 COMPLETED인 경우에 삭제 로직을 실행하도록 하는 방식은 지양하는 편인거야? 전용 리스너를 만들어서 사용하는 경우도 있어? 만약 리스너에 삭제 로직을 넣는다고 했을 때 리스너에서 데이터 삭제 과정 중 오류가 발생한 경우에는 잡이 실패 상태로 종료되는거지? 2번과 같은 맥락인데 리스너에 삭제 로직을 넣는 경우 트랜잭션이 필요할텐데 리스너는 트랜잭션 범위가 어떻게 돼? 스텝에서는 청크 범위, 태스크릿의 반복 범위라고 본 걸로 기억하는데 리스너는 트랜잭션 설정 자체가 안되는건지 리스너 범위 내부에서만 설정되는건지 궁금해.
java spring spring-boot spring-batch backend
기내식은수박바
2025-11-05T15:10:49.159Z
댓글 2
좋아요 1
조회수 55
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
원래강의순서가 파이썬 자바 C언어를 계속 넘나들면서 하나요? 강의를 어떤 순서로 들어야 효율적일까요? 뭔가 언어별로 이어서 듣고싶은데 저런순서로 해놓으신 이유가 있으시겠죠? ㅜ
이j
2025-11-05T15:05:25.798Z
댓글 2
좋아요 0
조회수 103
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
영상이 예전꺼여서 그럴 수도 있을 거 같은데 데이터베이스 드라이버 설정을 꼭 META-INF에서 persistence.xml에다가 해야하는 건가요? 제가 작년에 웹 프로젝트 했을 때는 그냥 application.properties에서 했었는데..
rlgus4531
2025-11-05T10:34:47.583Z
댓글 2
좋아요 0
조회수 141
미해결
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
선생님, 안녕하세요. answer 변수 선언하셨는데, 이유가 있을까요? 사용을 안 하는 것 같아서요!
imlearn
2025-11-05T08:34:03.038Z
댓글 1
좋아요 0
조회수 62
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
# include <stdio.h> void initialize () { static int initialized = 0 ; if (!initialized) { printf ("초기화...\n "); initialized = 1; } else { printf("초기화 완료되었습니다.\n" ); } } int main () { initialize(); initialize(); return 0 ; } 여기서 출력값: 초기화.... 초기화 완료되었습니다. 이해가 안가는데 풀이 한번 부탁드립니다 ㅠ 밑에 예제도 한번 풀이 같이 해주시면 감사하겠습니다.
skaerjgh2
2025-11-05T08:04:11.933Z
댓글 2
좋아요 0
조회수 65
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
업캐스팅이 아닌경우 Chi 자식으로 가는게아니라 Par로 가는이유가 생성자가 있기때문인가요?? 업캐스팅 아닌경우 Chi로 바로가는경우랑 Par로 가는경우랑의 예제를 알려주시면 감사하겠습니다!
조찬희
2025-11-05T06:41:03.675Z
댓글 3
좋아요 0
조회수 65
해결됨
6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
1. 현재 학습 진도 2-9 2. 어려움을 겪는 부분 window 11 에서 k6 1.3.0 버전을 사용 중 이고 set K6_WEB_DASHBOARD=true k6 run k6-scripts/k6-test.js 로 명령어를 쳐도 테스트 자체는 실행이 되지만 대쉬보드가 나오지 않습니다 3. 시도해보신 내용 처음엔 버전 문젠가 해서 최신 버전으로 수정 했고 5665 포트도 사용 중 은 아닌 것 을 확인 이 외에 체크를 해야 할 것이 있는지 모르겠습니다.
java spring mysql redis 이력서 카카오공채-채용
주민규
2025-11-05T06:38:04.483Z
댓글 2
좋아요 0
조회수 140
미해결
실전 알고리즘 코딩테스트 문제풀이 100제 (by 하루코딩)
ㅈㄱㄴ입니다.
java 코딩-테스트 알고리즘 data-structure
2025-11-05T06:28:15.397Z
댓글 1
좋아요 0
조회수 59
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
강의가 일부 재생이 안됩니다. 크롬, 사파리 상관없이 영상이 안뜹니다. 예를 들어 27강은 나오고, 28강은 안나오는데 어떻게 해결할 수 있을까요?
신수진
2025-11-05T03:14:41.506Z
댓글 3
좋아요 0
조회수 64
미해결
Next + React Query로 SNS 서비스 만들기
리액트 쿼리의 suspense 스트리밍 기능 구현 중 버그가 발생해 인사이트를 얻고자 질문드립니다. 상위 컴포넌트에서 useInfiniteQuery 로 promise를 반환하고, 해당 promise를 자식 컴포넌트의 props로 넘긴 뒤 React의 use hook으로 감싸서 data를 반환하도록 구현했습니다. 그리고 promise를 throw하는 자식 컴포넌트를 Suspense로 감싸서 promise를 캐치하도록 했는데요. 페이지 렌더링 자체는 정상적으로 되는데, request가 완료되지 않는 문제가 있습니다. 크롬 개발자도구의 Network 탭에서 document를 확인하면 "Caution: request is not finished yet"이라는 경고가 표시됩니다. TanStack Query 공식 문서에도 useInfiniteQuery 의 promise 사용 시 "This can be used with React.use() to fetch data"라고 명시되어 있어 React use 와 함께 사용하라고 안내하고 있는데, 혹시 이 문제의 원인을 알 수 있을까요? 참고로 prefetch는 안했습니다. 그리고 prefetch 안하는 방법으로 suspense 스트리밍을 구현하고 싶습니다. 코드는 아래와 같습니다. 감사합니다! export default function DetailReviewWrapper({ pid, userId }: DetailReviewProps) { const { infoData, observerRef, isFetchingNextPage, refetch, promise } = useReviewListInfinity({ userId, pid, }) return ( <Suspense fallback={<DetailReviewLoading />}> <DetailReview pid={pid} userId={userId} promise={promise} refetch={refetch} isFetchingNextPage={isFetchingNextPage} observerRef={observerRef} /> </Suspense> ) } export default function DetailReview({ pid, userId, promise, refetch, isFetchingNextPage, observerRef, }: DetailReviewProps) { const data = use(promise) return ( <> <section> <ReviewListView userId={userId} pid={pid} data={data?.list || []} className={cn('review-list')} refetch={refetch} showPoint /> {isFetchingNextPage && <Loading />} <div ref={observerRef} /> </section> export function useReviewListInfinity(params: UseReviewListInfinityProps) { const section = useSearchParams().get('contentType') as SectionType const orderType = useRecoilValue(commentOrderState) const filterType = useRecoilValue(filterTypeState) const { fetchNextPage, hasNextPage, isFetchingNextPage, isLoading, refetch, promise } = useInfiniteQuery({ queryKey: [REVIEW_LIST_KEY, params, orderType, filterType, section], queryFn: ({ pageParam = 1 }) => getReviewApi({ uid: params.userId, pid: params.pid, section, pageInfo: { curPage: pageParam, pageSize: 20, }, orderType: orderType === 'RECOMMENDED' ? 'like' : 'date', filterType, }), select: (data) => { return { list: data.pages.flatMap((page) => page.data.list), info: data.pages[0].data.info, } }, getNextPageParam: (lastPage) => { const nextPage = lastPage.data.pageInfo.curPage + 1 return nextPage <= lastPage.data.pageInfo.pageCount ? nextPage : undefined }, initialPageParam: 1, }) const { observerRef } = useIntersectionObserver({ onScroll: () => { if (hasNextPage && !isFetchingNextPage) { fetchNextPage() } }, }) return { isLoading, isFetchingNextPage, observerRef, refetch, promise, } } const getQueryClient = (): QueryClient => new QueryClient({ defaultOptions: { queries: { refetchOnWindowFocus: false, refetchInterval: false, refetchOnReconnect: true, refetchOnMount: true, staleTime: Infinity, gcTime: Infinity, retry: false, experimental_prefetchInRender: true, }, }, }) 무한 로딩 시 개발자 도구 캡쳐이미지입니다.
react next.js react-query next-auth msw
변재정
2025-11-05T00:43:56.088Z
댓글 1
좋아요 0
조회수 121
미해결
Next.js 까보기: "쓸 줄 아는 개발자"에서 "알고 쓰는 개발자"로
리액트 쿼리의 suspense 스트리밍 기능 구현 중 버그가 발생해 인사이트를 얻고자 질문드립니다. 상위 컴포넌트에서 useInfiniteQuery 로 promise를 반환하고, 해당 promise를 자식 컴포넌트의 props로 넘긴 뒤 React의 use hook으로 감싸서 data를 반환하도록 구현했습니다. 그리고 promise를 throw하는 자식 컴포넌트를 Suspense로 감싸서 promise를 캐치하도록 했는데요. 페이지 렌더링 자체는 정상적으로 되는데, request가 완료되지 않는 문제가 있습니다. 크롬 개발자도구의 Network 탭에서 document를 확인하면 "Caution: request is not finished yet"이라는 경고가 표시됩니다. TanStack Query 공식 문서에도 useInfiniteQuery 의 promise 사용 시 "This can be used with React.use() to fetch data"라고 명시되어 있어 React use 와 함께 사용하라고 안내하고 있는데, 혹시 이 문제의 원인을 알 수 있을까요? 참고로 prefetch는 안했습니다. 그리고 prefetch 안하는 방법으로 suspense 스트리밍을 구현하고 싶습니다. 코드는 아래와 같습니다. 감사합니다! export default function DetailReviewWrapper({ pid, userId }: DetailReviewProps) { const { observerRef, isFetchingNextPage, refetch, promise } = useReviewListInfinity({ userId, pid, }) return ( <Suspense fallback={<DetailReviewLoading />}> <DetailReview pid={pid} userId={userId} promise={promise} refetch={refetch} isFetchingNextPage={isFetchingNextPage} observerRef={observerRef} /> </Suspense> ) } export default function DetailReview({ pid, userId, promise, refetch, isFetchingNextPage, observerRef, }: DetailReviewProps) { const data = use(promise) return ( <> <section> <ReviewListView userId={userId} pid={pid} data={data?.list || []} className={cn('review-list')} refetch={refetch} showPoint /> {isFetchingNextPage && <Loading />} <div ref={observerRef} /> </section> export function useReviewListInfinity(params: UseReviewListInfinityProps) { const section = useSearchParams().get('contentType') as SectionType const orderType = useRecoilValue(commentOrderState) const filterType = useRecoilValue(filterTypeState) const { fetchNextPage, hasNextPage, isFetchingNextPage, isLoading, refetch, promise } = useInfiniteQuery({ queryKey: [REVIEW_LIST_KEY, params, orderType, filterType, section], queryFn: ({ pageParam = 1 }) => getReviewApi({ uid: params.userId, pid: params.pid, section, pageInfo: { curPage: pageParam, pageSize: 20, }, orderType: orderType === 'RECOMMENDED' ? 'like' : 'date', filterType, }), select: (data) => { return { list: data.pages.flatMap((page) => page.data.list), info: data.pages[0].data.info, } }, getNextPageParam: (lastPage) => { const nextPage = lastPage.data.pageInfo.curPage + 1 return nextPage <= lastPage.data.pageInfo.pageCount ? nextPage : undefined }, initialPageParam: 1, }) const { observerRef } = useIntersectionObserver({ onScroll: () => { if (hasNextPage && !isFetchingNextPage) { fetchNextPage() } }, }) return { isLoading, isFetchingNextPage, observerRef, refetch, promise, } } const getQueryClient = (): QueryClient => new QueryClient({ defaultOptions: { queries: { refetchOnWindowFocus: false, refetchInterval: false, refetchOnReconnect: true, refetchOnMount: true, staleTime: Infinity, gcTime: Infinity, retry: false, experimental_prefetchInRender: true, }, }, }) 무한 로딩 시 개발자 도구 캡쳐이미지입니다.
변재정
2025-11-05T00:39:42.483Z
댓글 1
좋아요 0
조회수 81