묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[최신] Vue 강의 끝판왕 : Nuxt 3 완벽 마스터
.eslintrc.cjs 설정시 반대로 되는데, 혹 왜 이런지 아시는지요?
vscode와 eslint를 자주 사용하는데.. 이번에 이상해서 질문 드립니다.. ㅡ.ㅜ;우선 강의 내용대로 설정을 하고 있는데.. workspace에 vscode의 settings.json로 생성해서 알려주신거 붙여넣기 하고...eslintrc.cjs 파일로 이동해서 ctrl+s로 저장을 하면 space->tab으로, 싱글쿼터가 더블쿼터로 바뀝니다.즉, 반대로 되는거죠.. 'prettier/prettier': [ 'error', { arrowSpacing: ['error', { before: true, after: true }], singleQuote: true, semi: true, useTabs: false, tabWidth: 2, trailingComma: 'all', printWidth: 80, bracketSpacing: true, arrowParens: 'always', endOfLine: 'auto', }, ],강의 교안 그대로 붙여넣기 해서 하고 있는데.. 이처럼 설정되어 있는데.. 왜 이런지 혹시 아실까요?? 이전부터 싱글쿼터에 useTabs는 false로 해서 코딩하고 있으며, vscode의 전체의 settings.josn에는 eslint 관련된 것은 없습니다.물론 위 설정에서 그냥 useTabs를 true로 하고, singleQuote를 false로 하면 정상적으로 작동 할거 같기는 한데.. 왜 이런지는 꼭 알고 싶어서 적어봅니다.설정등은 교안 그래도 했는데.. 혹 패키지 버전이나 그런 문제로 이런 문제가 발생할 수도 있을까요??혹 짚히시는게 있을까 싶어 질문 올려 봅니다..
-
해결됨자바스크립트로 알아보는 함수형 프로그래밍 (ES5)
_go함수 _pipe.apply(null, fns) 사용하는 이유
질문1. go 함수에서 apply의 쓰임 제가 알고 있는 apply는 this바인딩 때문에 사용하는것으로 알고 있습니다. 여기서는 array-like를 array로 바꿔주는 것으로 쓰이는것 같아요?? 물어보고싶은것은 apply의 기능 1. this바인딩 때문에 사용 호출함수에서 array-like를 array로 기능하도록해준다이렇게 두 가지 기능을 한다 라고 정의를 하면 될까요??
-
미해결STM32 CAN 통신
외부 ST LINK/V2 핀맵 질문
안녕하세요.외부 ST LINK/V2 핀맵연결과 문의가 있습니다.강의 5페이지의 표 2-1을 보시면 "보드 CN7"이 보드의 CN7 영역인 것은 찾았지만, PA13(SWDIO)와 PA14(SWCLK) 라고 써져있는 부분은 보지 못했습니다. 또, ST LINK/V2에도 아예 번호와 이름이 써져있지 않은데, 어떤식으로 연결해야할 지 알고 싶습니다.좋은 강의 정말 감사드립니다.
-
해결됨Flutter로 SNS 앱 만들기
섹션2 TextFormField/ElevatedButton/TextButton사용에서
섹션2 회원가입TextFormField/ElevatedButton/TextButton사용에서 회원가입 버튼이 radius가 먹고 있는데 어디서 먹고 있는지 모르겠습니다. 안드로이드 업그레이드 하면서 이러네요. 메일 보냈습니다.
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
자바 스프링 개발자입니다.
안녕하세요. 강의 너무 잘듣고있습니다. node 기반의 강의이기에 pm2 등의 내용을 듣고있던 중, 궁금한 부분이 있어 문의드립니다.1개의 vm에서 pm2을 사용하여 nodejs app을 2개를 올리고 있습니다. 제 생각에는 nodejs가 싱글스레드여서 vm의 cpu 개수만큼 사용하기 위해서 app을 여러 개를 띄운다로 이해하였습니다. 맞을까요?맞다면, 스프링의 경우에는 멀티스레드로 제공하기 때문에 위와 같이 1개의 vm에 여러개의 app을 띄울 필요가 없이 1개의 vm에 1개의 app만 띄우면 위와 같은 동작을 기대할 수 있다고 생각했습니다. 맞을까요?1개의 vm에서 여러 개의 스프링부트 app을 띄워야한다면 pm2와 같은게 필요한거 같은데, 스프링에서 pm2와 같은게 있을까요?노드 기반 강의이기에 조금 아쉬운 부분은 있지만, 강의 재밌게 듣고있습니다. 감사합니다!
-
미해결김영한의 실전 자바 - 중급 1편
지역 클래스를 익명 클래스로 바꿀 때
익명 클래스를 사용할 때는 상위 클래스가 필요하다고 하셨는데, 만약 어떤 지역 클래스를 익명 클래스로 만드려고 하는데 해당 지역 클래스에서 implements 또는 extends 하는 게 없다면 익명 클래스를 만들 때 new Object() { ... }로 해야 하는 건가요?
-
미해결
스프링부트 그레이들과 메이븐 개발
안녕하세요 현재 그레이들 빌드로 스프링부트 공부를 하고 있는데 그 전에 메이븐으로 의존성 설정만 하고 조금 해본 기억 밖에 없네요 둘의 차이를 알고 있는 것은 그레이들이 캐시를 사용하고 속도면에서 그레이들이 우세하며 필요한 의존성 주입도 짧아서 좋다는 것인데 제일 궁금한 것이 스프링부트로 개발을 할 때 그레이들과 메이븐의 차이가 있을까요?가령 애노테이션이 서로 다르다거나 스프링 mvc 자체가 사용법이 다른 것이 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-M 반례 질문
안녕하십니까 큰돌님정답 맞추긴 했는데 틀렸던 코드 중에서 반례가 무엇이 있는지 궁금해서 질문드립니다.http://boj.kr/72c2759cc7fc49bc81d88d5c5cdbdd17
-
미해결김영한의 실전 자바 - 중급 1편
지역 클래스 인스턴스 생성 전에 지역변수의 값 변경
public class LocalOuterV4 { public Printer process(int paramVar) { int localVar = 1; class LocalPrinter implements Printer { @Override public void print() { System.out.println("localVar = " + localVar); // 지역클래스가 접근하는 지역변수 (1) System.out.println("paramVar = " + paramVar); // 지역클래스가 접근하는 지역변수 (2) } } paramVar = 20; localVar = 10; Printer printer = new LocalPrinter(); // 지역 클래스의 인스턴스를 생성할 때, 지역 클래스가 사용하는 지역변수를 캡쳐해서 멤버로 포함시킨다. return printer; } }위 코드와 같이 LocalPrinter 인스턴스를 생성하기 전에 paramVar와 localVar의 값을 수정하려고 했습니다. 그러면 지역변수 캡쳐 전이니까 2, 1이 아닌 바뀐 20, 10을 캡쳐해서 지역 클래스의 인스턴스에 포함시키면 되겠다고 생각했습니다.그런데, paramVar와 localVar의 값을 수정하는 코드를 new LocalPrinter()의 이후에 적든, 이전에 적든에 관계없이 컴파일 오류가 발생합니다.제가 생각한 이유는 이미 자바 차원에서, 지역클래스가 사용 중인 지역변수는 값이 바뀌는 것 자체를 막아두었기 때문이라고 생각합니다. 제 생각이 맞는지 알려주시면 감사하겠습니다
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
실제 안드로이드 스토어에 배포할려면?
혹시 실제 안드로이드 스토어에 배포할려면 어떤 강의를 들어야 할까요?
-
미해결스프링 핵심 원리 - 기본편
test 오류를 못찾겠습니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. https://drive.google.com/file/d/1eaGwuFK0ptwt7-5tXkKBmLXL6c_8wVCr/view?usp=drive_link
-
해결됨코딩테스트 [ ALL IN ONE ]
bfs 시간복잡도 관련 질문입니다!
안녕하세요! 열심히 수강하다가 질문이 생겨 작성하게 되었습니다:> '''질문 : 이 함수의 시간복잡도는 O(n^3)인가?'''def bfs(graph, start_v): visited = [start_v] queue = deque(start_v) while queue: cur_v = queue.popleft() for v in graph[cur_v]: if v not in visited: visited.append(v) queue.append(v) return visited 위의 코드를 템플릿처럼 외우라고 하신 함수 시간복잡도가 궁금합니다!제가 생각하기로는 n(vertax의 수만큼 while문 실행) x n(for문) x n(리스트 in 연산자 수행) -> O(n^3) 이라고 생각하는데 이게 맞는걸까요??
-
해결됨Next + React Query로 SNS 서비스 만들기
무한 스크롤 prefetch SSR 로그인 쿠키 관련 질문
안녕하세요 제로초님,api/users/{id} 에서 Followers 데이터는제가 상대방을 팔로잉 했고 로그인 정보 쿠키가 잘 전달되면상대방의 팔로워 수와 관계없이 제가 팔로우 했다면 저의 userId만 배열에 담겨서 돌아오기 때문에 api/posts/followings 혹은 api/posts/recommends의Comments 데이터도 이와 동일할 것이라고 생각했습니다. 추천 포스트는 prefetch를 진행하고(Suspense를 적용하지 않음)팔로잉 포스트는 SSR을 할 때 서버에서 로그인 여부를 판단하는 쿠키를 함께 보내야 하기 때문에prefetch에서는 next의 cookies를 사용해서 쿠키를 전달했습니다.하지만 Comments 배열에 로그인 유저가 아닌 다른 유저의 id도 함께 날라옵니다. 추천 포스트가 아닌 팔로잉 포스트는 useSuspenseInfiniteQuery를 사용했는데로그인 유저의 id만 잘 전달받았습니다. 이게 Suspense 내부에 있어서 그런가 싶어서Suspense를 걷어내고 prefetch만 사용했을 때도동일하게 로그인 유저가 아닌 다른 유저의 id도 확인할 수 있었습니다.왜 로그인 쿠키를 보내는데도 다른 유저의 정보도 날라오는지 궁금합니다.어디가 잘못된 것일까요?useSuspenseInfiniteQuery를 사용한 팔로잉 포스트는 추천 포스트와 어떤점이 달라서 정상 작동한 것일까요?추가) 이 글 작성하고 추천 포스트에도 useSuspenseInfiniteQuery를 적용했는데 팔로잉 포스트처럼 안 나오고 이전과 동일하게 다른 유저의 id도 함께 날라오는데 왜 그럴까요? 추천 포스트 결과현재 로그인 한 유저의 id는 'jihwan3'Comments에 'jihwan2'도 함께 날라오는중 팔로잉 포스트 결과현재 로그인 한 유저의 id는 'jihwan3'Comments에 'jihwan3'만 날라오는 중Hearts도 jihwan3가 좋아요를 안 눌러서 비어있는 모습page.tsximport { Suspense } from "react"; import { auth } from "@/auth"; import { Container } from "./_component/styled"; import HomeTab from "./_component/HomeTab"; import HomeTabProvider from "./_component/HomeTabProvider"; import PostForm from "./_component/PostForm"; import SuspenseDecider from "./_component/SuspenseDecider"; import Loading from "../_component/LoadingUI"; export default async function Home() { const session = await auth(); return ( <Container> <HomeTabProvider> <HomeTab></HomeTab> <PostForm me={session} /> <Suspense fallback={<Loading />}> {/* @ts-expect-error Server Component */} <SuspenseDecider /> </Suspense> </HomeTabProvider> </Container> ); } SuspenseDecider.tsximport { QueryClient, HydrationBoundary, dehydrate } from "@tanstack/react-query"; import getRecommendPosts from "../_lib/getRecommendPosts"; import getRecommendPostsServer from "../_lib/getRecommendPostsServer"; import PostDisplay from "./PostDisplay"; export default async function SuspenseDecider() { const queryClient = new QueryClient(); await queryClient.prefetchInfiniteQuery({ queryKey: ["posts", "recommends"], queryFn: getRecommendPostsServer, initialPageParam: 0, getNextPageParam: (lastPage, pages) => lastPage.at(-1)?.postId, pages: 1, }); return ( <HydrationBoundary state={dehydrate(queryClient)}> <PostDisplay /> </HydrationBoundary> ); }getRecommendPostsServer.tsimport { QueryFunction } from "@tanstack/query-core"; import { Post as IPost } from "@/model/Post"; import { cookies } from "next/headers"; type Prop = { pageParam: number; }; const getRecommendPostsServer: QueryFunction<IPost[], [_1: string, _2: string], number> = async ({ pageParam }: Prop) => { const response = await fetch(`${process.env.NEXT_PUBLIC_BASE_URL}/api/posts/recommends?cursor=${pageParam}`, { method: "get", headers: { Cookie: cookies().toString(), }, }); if (response.ok) return response.json(); else throw new Error(); }; export default getRecommendPostsServer;postDisplay.tsx"use client"; import { use } from "react"; import { TabContext } from "./HomeTabProvider"; import RecommendPosts from "./RecommendPosts"; import FollowingPosts from "@/app/(afterLogin)/home/_component/FollowingPosts"; export default function PostDisplay() { const { selectedMenu } = use(TabContext); if (selectedMenu === "recommend") { return <RecommendPosts />; } return <FollowingPosts />; } RecommendPosts.tsx"use client"; import { useEffect, Fragment } from "react"; import { InfiniteData, useInfiniteQuery } from "@tanstack/react-query"; import { useInView } from "react-intersection-observer"; import getRecommendPosts from "../_lib/getRecommendPosts"; import Post from "../../_component/Post"; import { Post as IPost } from "@/model/Post"; export default function RecommendPosts() { const { isFetching, fetchNextPage, hasNextPage, data } = useInfiniteQuery<IPost[], Object, InfiniteData<IPost[]>, [_1: string, _2: string], number>({ queryKey: ["posts", "recommends"], queryFn: getRecommendPosts, initialPageParam: 0, getNextPageParam: (lastPage) => lastPage.at(-1)?.postId, }); const { ref, inView } = useInView({ /* Optional options */ threshold: 0, delay: 100, }); useEffect(() => { if (inView) !isFetching && hasNextPage && fetchNextPage(); }, [inView, isFetching, hasNextPage, fetchNextPage]); if (!data) return null; // 이거 에러는...? type error인데.. -> InfiniteData로 해결 return ( <> {data.pages.map((ele: IPost[], idx: number) => ( <Fragment key={idx}> {ele.map((post: IPost) => ( <Post key={post.postId} post={post}></Post> ))} </Fragment> ))} <div ref={ref} style={{ height: "50px" }}></div> </> ); } getRecommendPost.tsimport { QueryFunction } from "@tanstack/query-core"; import { Post as IPost } from "@/model/Post"; type Prop = { pageParam: number; }; const getRecommendPosts: QueryFunction<IPost[], [_1: string, _2: string], number> = async ({ pageParam }: Prop) => { const response = await fetch(`${process.env.NEXT_PUBLIC_BASE_URL}/api/posts/recommends?cursor=${pageParam}`, { method: "get", credentials: "include", }); if (response.ok) return response.json(); else throw new Error(); }; export default getRecommendPosts; FollowingPosts.tsx"use client"; import { Fragment, useEffect } from "react"; import { useSuspenseInfiniteQuery, InfiniteData } from "@tanstack/react-query"; import { useInView } from "react-intersection-observer"; import getFollowingPosts from "../_lib/getFollowingPosts"; import Post from "../../_component/Post"; import { Post as IPost } from "@/model/Post"; export default function FollowingPosts() { const { isFetching, fetchNextPage, hasNextPage, data } = useSuspenseInfiniteQuery<IPost[], Object, InfiniteData<IPost[]>, [_1: string, _2: string], number>({ queryKey: ["posts", "followings"], queryFn: getFollowingPosts, initialPageParam: 0, getNextPageParam: (lastPage, allPages, lastPageParam, allPageParams) => lastPage.at(-1)?.postId, }); const { ref, inView } = useInView({ threshold: 0, delay: 100, }); useEffect(() => { if (inView) !isFetching && hasNextPage && fetchNextPage(); }, [inView, fetchNextPage, hasNextPage, isFetching]); if (!data) return null; return ( <> {data.pages.map((ele: IPost[], idx: number) => ( <Fragment key={idx}> {ele.map((ele) => ( <Post key={ele.postId} post={ele}></Post> ))} </Fragment> ))} <div ref={ref} style={{ height: "100px" }}></div> </> ); }
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
적 AI 길찾기 중 겹쳐지는 문제, 충돌 회피 관련 질문
안녕하세요 좋은 강의 감사합니다. 다름이 아니라 현재 개인 프로젝트에서 적 AI 길찾기를 구현한 상태입니다. 그런데 여기서 문제가 적 객체가 여러마리일 경우 결국 모든 적의 도착지가 플레이어로 같기 때문에 겹쳐지는 문제가 발생한다는 것입니다. 다른 게임 엔진에서는 NavMesh로 Obstacle Avoidance를 통해 적들끼리도 겹쳐지지 않도록 할 수 있다는데 현재 NavMesh가 아닌 2D 배열로 AStar를 구현한 상태에서 어떻게 적들이 서로 겹쳐지지 않도록 구현할 수 있을까요? 적 겹쳐짐 문제에 대한 마땅한 해결 방법이 떠오르지 않아 선생님의 고견을 여쭙고자 이렇게 글 남깁니다. 감사합니다.
-
미해결실전! 스프링 데이터 JPA
ID에 @GeneratedValue를 적용하지 않았는데 강의처럼 동작하지 않습니다.
@Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Item { @Id private String id; public Item(String id) { this.id = id; } } public interface ItemRepository extends JpaRepository<Item, String> { } @SpringBootTest class ItemRepositoryTest { @Autowired ItemRepository itemRepository; @Test void save() { Item item = new Item("A"); itemRepository.save(item); } } 위와 같이 강의를 따라서 테스트 코드를 작성했습니다. 그런데디버깅 찍은 곳을 확인해보니Member(id=null, username=user0, age=0)이렇게 나왔습니다. 분명 생성자에서 Item의 id를 "A"로 세팅했는데 어디서 문제가 생긴걸까요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
안녕하세요 코드 관련 질문입니다.
코드를 인터넷에 올려두셨다 했는데링크 알 수 있을까요?
-
해결됨[플러터플로우] 실전! 앱 출시를 위한 끝장 노하우!
카카오 로그인 질문드립니다
loginKakao 의 action code 맨 하단 // 5. DB 에 유저 데이터 동록 await maybeCreateUser(credential.user!);에서 에러 표시가 뜹니다.
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
php & mssql 연동이 안됩니다.
안녕하세요. 지금 php와 mssql 연동과 몇일째 씨름하고 있습니다. 강의에 올려주신 것처럼 dll파일을 구글에서 다운받아서 원래 있던 파일을 제거 하고 추가하여도 오류가 납니다. 혹시나 제가 놓친게 있을까 몇번이고 지우고 다시 깔고 반복했는데도 안되네요.. php 5버전인거 확인했습니다. 몇일째 답이 안나옵니다. 도와주세요.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.> Task :compileJava FAILEDC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:4: error: package jpabook.jpashop.domain.item does not existimport jpabook.jpashop.domain.item.Item; ^C:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:20: error: cannot find symbol private Item item; ^ symbol: class Item location: class OrderItemC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:31: error: cannot find symbol public static OrderItem createOrderItem(Item item, int orderPrice, int count) { //item에 price가 있지만, 할인 가격일 수 있어서 orderPrice로 따로 사용 ^ symbol: class Item location: class OrderItemC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:20: error: cannot find symbol private Item item; ^ symbol: class Item location: class OrderItemC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\domain\OrderItem.java:11: error: cannot find symbol@Getter @Setter ^ symbol: class Item location: class OrderItemC:\Users\adong\Documents\GitHub\spring-study-inflearn\springboot & jpa1\jpashop\src\main\java\jpabook\jpashop\service\OrderService.java:7: error: package jpabook.jpashop.domain.item does not existimport jpabook.jpashop.domain.item.Item; ^6 errors이렇게 자꾸 Item을 인식하지 못하는거 같은데, 계속 봐도 오타가 안보입니다.. 도와주세요..구글 드라이브에 코드 업로드해두었습니다.https://drive.google.com/file/d/1Sj8eAPexXkQJ5livmAq_BaTAXaTSd_zu/view?usp=sharing
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
skid buffer 안의 m_ready 신호와 ready 신호의 차이
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 안녕하세요, 좋은 강의 감사합니다. skid buffer 안의 ready 신호에 대해 헷갈리는 부분이 있어 질문을 올립니다. ready 신호는 master side의 모듈이 data를 받을 준비가 되었음을 의미한다고 이해가 되며, 이는 m_ready 신호와 유사한 의미를 가진다고 생각이 됩니다. 하지만, 구현된 코드에서는 m_ready 신호와 동일한 신호로 사용하지 않는데, 두 신호의 차이를 확인할 수 있는 case가 있는지 궁금합니다.감사합니다!