묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller와 @RequestMapping에 대한 이해
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@Controller과 @RequestMapping에 대하여 강의도 몇 번 계속 듣고 혼자서 계속 고민한 결과 이해가 잘 안 되어서 저만의 방식으로 이런 식으로 이해하려는데 이렇게 이해해도 될지 궁금해서 질문드립니다 ! 결국 스프링 MVC는 다형성에 의해서 프레임워크가 구현되어있으므로 다형성 개념을 @Controller과 @RequestMapping에 다음과 같이 도입하고자 합니다. RequestMappingHandlerMapping 클래스가 @Controller가 붙은 클래스 전체를 매핑 정보로 매핑하는데 사용자 요청에 따라 DispatcherServlet의 getHandler()에서 @Controller이 붙은 클래스 객체가 반환되는데 요청 url에 따라 @Controller이 붙은 클래스 객체 내부의 @RequestMapping 메서드 중 하나가 반환되니즉 "@Controller 컨트롤러"를 인터페이스로 인정하고 "@RequestMapping 메서드"를 그 인터페이스를 구현한 구현체로 인정 후 DispatcherServlet에서 getHandler()을 하면 컨트롤러가 반환되어야하지만 다형성에 의해서 컨트롤러에 구현된 메서드가 반환이 되는 것이라고 이해해도 되는지 여쭤보고 싶습니다!
-
미해결
trends key props error
나를 위한 트랜드인 TrendSection 컴포넌트에서 계속 key가 없다고 에러를 내는 상황이 있어 살펴봤더니 trend.tagId가 react-query로 변경 이후엔 오지 않고 있다는 사실을 알게 되었습니다!trend.title로 변경해서 해결했습니다~ before : {TrendList?.map((trend) => (<Trend key={trend.tagId} trend={trend}/>))}after:{data?.map((trend) => { return <Trend key={trend.title} trend={trend}/> })}swagger:
-
미해결빠르게 훑는 HTML + CSS 기초
가상요소가 체크되었을때 체크박스 테두리까지 같이 움직입니다.
top 2px left 4px 를 주는데 안에 폰트어썸 아이콘이 움직이는게 아니라 체크박스가 통으로 움직입니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
MakePacket<T> 함수 질문있습니다.
PacketManager에서 MakePacket<T>가 호출되면 T 객체를 생성해서 처리하는데, 혹시 해당 함수가 호출될때마다 객체를 생성하는게 아니라 Dictionary에 Register함수로 등록할 때 객체를 생성해서 Dictionary에 등록해주고 그 객체 하나로만 버퍼를 받아서 처리하면 문제가 발생하나요?
-
해결됨카프카 완벽 가이드 - 코어편
프로듀서 전송과 ack 관계에 대해 질문있습니다.
안녕하세요, 프로듀서 전송 부분에 대해 강의를 듣던 중 궁금한 점이 있습니다.최대 한 번 전송 외에는 ack를 받고 다음 메시지를 전송한다고 설명하셨는데, 비동기 전송은 ack와 상관 없이 지속적으로 메시지를 전송할 수 있는거 아닌가요? 메시지 a,b,c 3개를 보낸다고 했을 때ack = 0의 경우는a,b,c를 보내고 오는 ack에 대해 신경 쓰지 않는것이고,ack != 0의 경우 비동기라면 마찬가지로 전송은 ack 여부와 상관 없이 a,b,c를 보내고 대신 ack 여부에 따라 특정 메시지에 대한 재전송이 이루어 지는 것이 아닌지 궁금합니다.즉, ack 여부에 따라 a이후 b를 전송하는 것이 결정되는게 맞는지 궁금합니다.
-
미해결
VScode 주피터 마크다운 사용 시 코드 블럭 랜더링 문제
안녕하세요 VScode 주피터 마크다운 사용 시 코드 블럭을 활용하기 위해 코드 문단 위 아래에 ``` 를 활용하여 블록을 지정하고 실행을 하면 문단 블록이 아닌 각각의 문장마다 블록이 씌어지는 렌더링의 문제가 발생합니다.이에 VS코드 업데이트 및 주피터 확장자 업데이트 등을 진행하고, 다시 시작까지 해보았는데 다른 해결이 안되고 있습니다. .md 파일에서 테스트를 할 때 문법적으로 잘 실행되는 것으로 보아 문법의 문제는 아닌듯 합니다. 참고 사진 첨부합니다...
-
미해결초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
섹션0 python e teb 실행 불가 이슈 문의
python e가 최종 실행되어야하는데, 지정된 모듈을 찾을 수 없음이 뜹니다.(matplotlib 설치 완료)
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
SetWaitingOnAvatar() 질문
이거 주석해도 별다른 차이점을 잘 모르겠습니다.내부에 보니, 기다리는 상태 Enum을 Avatar 기준에 둘지/User에 둘지/Game에 둘지 정하는데 정확히 무슨 차이인가요??
-
해결됨Next.js 풀스택 Github Issue 서비스 만들기
Prisma.issue.findMany라우터 가 아닌 페이지에서 사용 ( in 60. 이슈 필터링 기능 구현 )
안녕하세요?꾸준히 학습을 하여 60강을 지나고 있는데요, 페이지.tsx 에서도 프리즈마를 활용해서 데이터를 서버로 요청하는것은 처음 보았습니다. 이렇게 되면 라우트를 거치지 않고 바로 데이터요청을 하는 것인데.. Fetch 를 통한 route.tsx 를 거치지 않고 바로 요청하는 이유가 있는지요?현업에서도 이렇게 하는 경우가 자주 있는지요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
while 문 펙토리얼
안녕하세요 제가 코드 짤때 재귀함수로도 풀어보고 while문으로도 풀어보았는데 둘의 시간복잡도나 그런 부분에 큰 차이가 있나요??function solution(n) { let answer; function factorial(k) { if (k === 1) return 1; return factorial(k - 1) * k; } answer = factorial(n); return answer; // while 문 이용 // let answer = 1; // while (n >= 1) { // answer *= n; // n--; // } // return answer; }
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
for문 사용에 대한 질문이 있습니다!
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 안녕하세요 맛비님!대학교의 verilog 수업 중 모듈을 설계할 때는for문을 사용하지 말라고 배우고연구실 선배들도 테스트벤치가 아닌 모듈을 설계할 때는for문을 사용하지 말라고하셔서항상 안써왔는데맛비님의 FIFO 코드를 공부하다 register 초기화할 때for문을 이용하여 초기화하는 것을 보고어떤 상황에서는 사용해도되고,어떤 상황에 사용하면 안되는지 자세하게 알고 싶습니다!
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhile4 Switch문 질문
1. 위의 코드에서 case1 에 있는 변수 price를 case2에 사용하면 오류가 나는 이유가 무엇인가요? 오류가 나지 않게 switch문 밖에 price를 선언하면 어떻게 scanner을 사용해서 System.out.print("상품의 가격을 입력하세요: ");밑에 사용 하는 방법은 뭘까요??
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
npm start 오류
계속 이렇게 오류가 떠서 캐시 지워서 해보고 다시 설치도 해보고 명령어도 입력해봐도 해결이 안되네요 ㅜㅜ뭐가 문제일까요..
-
미해결Cinema 4D의 기초
선 관련 질문
실례지만 강의와 관련된 내용은 아니지만 염치 불구하고 질문합니다😭 위치를 조정하여 노란색 처럼 되어 있는데 빨간색 처럼 선이 되야 하는데 아무리 찾아도 방법을 모르겠어서 질문할 곳이 마땅치 않아 올립니다.
-
해결됨AWS Certified Solutions Architect - Associate 자격증 준비하기
수강신청 연장 부탁 드립니다.
안녕하세요.회사 업무랑 겹쳐 자격증 준비가 늦어지고 있습니다.혹시 가능하다면 수강 기간 연장 가능할까요?
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
NPU architecture 관련 질문
안녕하세요좋은 강의 감사히 잘 듣고 있습니다.하나 궁금한게 DNN에는 많은 알고리즘들이 있는데 NPU 설계시 어떻게 architecture를 보통 잡나요?MAC을 무수히 깔아두고 SW가 알아서 여러 알고리즘을 돌릴수 있게 해줄수도 있겠지만분명 특정 알고리즘에 특화해서 HW architecture 부터 잡을 수도 있지 않을까 생각이 됩니다.해당 chip이 쓰일 application에 맞게 몇개 알고리즘에 좀더 특화해서 설계를 하나요?적다 보니 전자는 GPU, 후자는 NPU 일수도 있겠다는 생각이 듭니다. 모델 경량화 기법들을 강의에서 소개해주셨는데 이런 부분들을 위해 HW에서 지원해야 하는 점이 있는지도 궁금합니다.
-
해결됨실전! Querydsl
혹여 fetchOne() 메서드에서 예외가 발생하시는 분들을 위해서 작성합니다.
fetchOne()은 메서드 내부에서 JPQL의 getSingleResult를 수행하기에 현재 강의 환경에서 fetchOne()을 실행하면 NonUniqueResultException 예외가 발생합니다. 그 이유는 member1, 2, 3, 4 가 테스트 수행 전(@BeforeEach)에 persist 되기에 조회되는 member의 갯수가 4개가 됩니다. 그러므로 NonUniqueResultException 예외가 발생합니다. 참고하시면 좋을 것 같아서 남깁니다!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller에서 호출된 메서드의 매개변수가 다다른데 내부적으로 어떻게 호출하는지.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링 MVC -1편 스프링MVC-컨트롤러 통합 강의를 시청중에 궁금증이 생겨서 질문드립니다. 어노테이션을 이용해서 컨트롤러를 매핑하면 해당 컨트롤러가 스프링빈에 등록되고 Spring mvc의 컨트롤러로 인식되어서 HandlerMapping과 HandlerAdapter를 통해서 처리되는것은 이해하였는데요.이해하기론 컨트롤러에 정의 하는 메소드는 개발자가 정의 하는 부분이고 메소드를 실행하는것은 프레임워크가 처리하는것인데요. 메소드마다 매개변수가 상이한데 프레임워크는 해당 메소드의 매개변수를 어떤식으로 넣어주는것인가요? 예를들어 @RequestMapping("/1")public ModelAndView process1(){//생략} @RequestMapping("/1")public ModelAndView process2(HttpServletRequest request, HttpServletResponse response) {생략 }이런식의 두개의 Mapping 메소드?가 있을경우에 이를 실행하는것은 개발자가 컨트롤하는것이 아닌 프레임워크가 컨트롤하는것인데요. 내부적으로 어떤식으로 판단해서 매개변수가 있는 메소드에 값을 넣어주는지 궁금합니다.
-
해결됨디자인 시스템 with 피그마
디자인 시스템 Component 만들 때
안녕하세요 디자인 시스템에서 버튼 컴포넌트를 예시로 등록할 때 같은 속성에 같은 디자인인데 크기만 달라지는 경우 이것도 일일히 디자인 시스템에서 높이 42짜리 버튼, 높이 30짜리 버튼 이런식으로 하나하나 등록을 하는지 궁금합니다.아니면 디자인 시스템에 있는 버튼을 인스턴스로 불러와서 디자인 화면에서 조정해서 써도 되는걸까요?버튼 뿐만 아니라 다른 컴포넌트도 동일하게 단순히 크기만 달라지는것도 디자인 시스템에서 크기별로 하나하나 등록해야 되는지 문의드립니다~~ 두번째 질문으로는 색상에서 컬러 토큰 명칭 지정할 때 주요하게 쓴다고 판단되는 것만 따로 (예 : 버튼 프레스, 버튼 디폴트 등...) 추려서 토큰 명칭을 새로 매기는지 아니면 디자인 화면안에 들어가는 모든 색상은 무조건 토큰 명칭으로 새로 지정을 해서 관리하는지 궁금합니다. 기존에 등록되어있는 컬러에서 새롭게 토큰 명칭으로 지정하는 부분에 대한 문의입니다 (예 : grey200 = $tertiary 식으로 새로 지정)감사합니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
RatingPagination 렌더링 부분에서 api 요청이 가지 않고 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! RatingPagination 렌더링 강의에서 http://ip/restaurant/:rid/rating으로 요청이 가지 않고 있습니다! 어떤 부분을 놓치고 있을까요? restaurant_detail_screen.dartclass RestaurantDetailScreen extends ConsumerStatefulWidget { final String id; const RestaurantDetailScreen({required this.id, super.key}); @override ConsumerState<RestaurantDetailScreen> createState() => _RestaurantDetailScreenState(); } class _RestaurantDetailScreenState extends ConsumerState<RestaurantDetailScreen> { @override void initState() { super.initState(); ref.read(restaurantProvider.notifier).getDetail(id: widget.id); } @override Widget build(BuildContext context) { final state = ref.watch(restaurantDetailProvider(widget.id)); final ratingsState = ref.watch(restaurantRatingProvider(widget.id)); if (state == null) { return DefaultLayout( child: Center( child: CircularProgressIndicator(), ), ); } return DefaultLayout( title: '불타는 떡볶이', child: CustomScrollView( slivers: [ renderTop( model: state!, ), if (state is! RestaurantDetailModel) renderLoading(), if (state is RestaurantDetailModel) renderLabel(), if (state is RestaurantDetailModel) renderProduct( products: state.products, ), if(ratingsState is CursorPagination<RatingModel>) renderRatings(models: ratingsState.data), ], ), ); } SliverPadding renderRatings({ required List<RatingModel> models, }){ return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16.0), sliver: SliverList( delegate: SliverChildBuilderDelegate( (_, index) => RatingCard.fromModel( model: models[index], ), childCount: models.length, ), ) ); } //skeleton 사용 -> 로딩중에는 미리보는것 같은 효과 가져오기 SliverPadding renderLoading() { return SliverPadding( padding: EdgeInsets.symmetric( vertical: 16.0, horizontal: 16.0, ), sliver: SliverList( delegate: SliverChildListDelegate( List.generate( 3, (index) => Padding( padding: const EdgeInsets.only(bottom: 32.0), child: SkeletonParagraph( style: SkeletonParagraphStyle( lines: 5, padding: EdgeInsets.zero, ), ), ), ), ), ), ); } // 일반 위젯을 slivers에 추가하려면 SliverToBoxAdapter로 감싸줘야 한다. SliverToBoxAdapter renderTop({ required RestaurantModel model, }) { return SliverToBoxAdapter( child: RestaurantCard.fromModel( model: model, isDetail: true, ), ); } SliverPadding renderLabel() { return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16.0), sliver: SliverToBoxAdapter( child: Text( '메뉴', style: TextStyle( fontSize: 18.0, fontWeight: FontWeight.w500, ), ), ), ); } SliverPadding renderProduct({ required List<RestaurantProductModel> products, }) { return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16.0), sliver: SliverList( delegate: SliverChildBuilderDelegate( (context, index) { final model = products[index]; return Padding( padding: const EdgeInsets.only(top: 16.0), child: ProductCard.fromModel( model: model, ), ); }, childCount: products.length, ), ), ); } } restaurantRatingProviderfinal restaurantRatingProvider = StateNotifierProvider.family<RestaurantRatingStateNotifier, CursorPaginationBase, String>((ref, id){ final repository = ref.watch(restaurantRatingRepositoryProvider(id)); return RestaurantRatingStateNotifier(repository: repository); }); class RestaurantRatingStateNotifier extends StateNotifier<CursorPaginationBase> { final RestaurantRatingRepository repository; RestaurantRatingStateNotifier({ required this.repository, }) : super( CursorPaginationLoading(), ); } restaurantRatingRepositoryProviderfinal restaurantRatingRepositoryProvider = Provider.family<RestaurantRatingRepository, String>((ref, id) { final dio = ref.watch(dioProvider); return RestaurantRatingRepository(dio, baseUrl: 'http://$ip/restaurant/$id/rating'); }); // http://ip/restaurant/:rid/rating @RestApi() abstract class RestaurantRatingRepository implements IBasePaginationRepository<RatingModel>{ factory RestaurantRatingRepository(Dio dio, {String baseUrl}) = _RestaurantRatingRepository; @GET('/') @Headers({ 'accessToken': 'true', }) Future<CursorPagination<RatingModel>> paginate({ @Queries() PaginationParams? paginationParams = const PaginationParams(), //@Queries() -> PaginationParams 클래스의 값들이 자동으로 쿼리로 변환되어서 요청할 때 들어감! }); }