묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
(어찌저찌 해결되긴 하는데..) AppBar의 bottom에 PreferredSize 적용 시 기존 TabBar는 잘 되는데 Row로 감싸면 에러가 떠요.
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.269. TabBar 스타일링하기[TabBar Widget] 이론 섹션의 269번 강의 영상에서약 9:46부터 나오는 PreferredSize의 child 속성을 일반 위젯인 Row 로 wrapping한 경우에요.문제의 에러 코드 Widget build(BuildContext context) { return DefaultTabController( length: TABS.length, child: Scaffold( backgroundColor: Colors.pink[50], appBar: AppBar( title: Text('Basic AppBar'), backgroundColor: Colors.green[300], bottom: PreferredSize( preferredSize: Size.fromHeight(80), child: TabBar( // 내부 사항 생략 ), ), ), body: TabBarView( children: TABS.map((e) => Center(child: Icon(e.icon))).toList(), ), ), ); }위 코드는 그대로 실행이 잘 되지만 이 상태에서 TabBar에 커서를 두고 Context Action을 실행해서 Row로 감싸기를 하면 이런 에러가 떠요.child: Row( children: [ child: TabBar( // 내부 사항 생략 ), ], ),RenderFlex children have non-zero flex but incoming width constraints are unbounded. The affected RenderFlex is: _TabLabelBarRenderer#be04c relayoutBoundary=up13 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE parentData: <none> (can use size) constraints: BoxConstraints(unconstrained) size: MISSING direction: horizontal mainAxisAlignment: start mainAxisSize: max crossAxisAlignment: center textDirection: ltr verticalDirection: down spacing: 0.0 The creator information is set to: _TabLabelBar ← IconTheme ← Builder ← DefaultTextStyle ← _TabStyle ← CustomPaint ← Semantics ← MediaQuery ← TabBar ← Row ← PreferredSize ← Column ← ⋯ The nearest ancestor providing an unbounded width constraint is: RenderFlex#01f78 relayoutBoundary=up10 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE The relevant error-causing widget was: TabBar TabBar:file:{Project Root Dir}/lib/screen/basic_appbar_tabbar_screen.dart:22:17 에러 스택 따라가다 보니 해결됨Row로 감싸진 TabBar를 다시 Expanded로 감싸면 해결이 돼요. 그래도 간헐적으로 픽셀 오버플로우 에러가 나기는 하는데 어쨌든 사이즈 미확인 문제는 해결된 것 같아요. child: Row( children: [ Expanded( child: TabBar( // 내부 사항 생략 ), ), ], ), 근데 아직 왜 TabBar에 사이즈 제한을 걸지 않으면 Row로 감쌀 수 없는지 잘 모르겠어요. 자세히 알려주시면 감사합니다.
-
미해결
코딩 1:1 클래스 코드스케이프 모집
🌟 코딩을 탐험하는 CodeScape(코드스케이프) 🌟 안녕하세요 코드스케이프 스터디입니다! 2학기를 맞이해서 1학기에 이어 새학기 C언어, JAVA 4주 마스터 스터디와 응용 심화 스터디를 준비하고 있습니다! 중간고사 기간 전에 빠르게 기본기 점검, 마스터하고 싶은 분들 모집합니다! 자세한 커리큘럼은 노션 통해서 확인 해주세요~! 📖 <프로그램 및 커리큘럼 소개>https://polar-zydeco-01f.notion.site/CodeScape-17eab7600a9d805bb0a2e0b474d895a8?pvs=4 📝모집기간 및 대상 📍모집 기간 : 09.01 (월) ~ 09.21 (일)📍진행 기간 : 4~5주차 커리큘럼으로 준비중 (클래스마다 조금씩 상이할 수 있음.)📍모집대상 ✅ 서울권 대학생(휴학생도 환영)✅ 서울 거주자 전공자 & 비전공자 상관 없음!✅ 새학기 시작하고 C Langauge 혹은 Java 개념 4주안에 기본기 쌓고 싶은 분!✅ C Langauge 혹은 JAVA 주력언어로 희망하는 개발자 지망생! (심화반은 사이드 프로젝트 진행예정.)✅ 6주차 커리큘럼으로 준비중 (스터디마다 조금씩 상이할 수 있음.) ✉ <신청 및 문의>📤신청링크: https://forms.gle/Nwzj5mqPVDxHAvLr9📤문의링크: 김지석 010-2973-4106
-
해결됨오브젝트 - 기초편
질문 있습니다!
public Reservation reserve(Customer customer, int audienceCount) { Money fee = movie.calculateFee(this).times(audienceCount); return new Reservation(customer, this , audienceCount, fee); }reserve 하기위해 movie에게 calculateFee를 하기 위해 screening을 전달해주는데 이 전달해주는 명확한 근거가 있는지 궁금합니다. 만약 screening을 전달하지않고 빈 것으로 전달했다하더라도public Money calculateFee(Screening screening) { return fee.minus(discountPolicy.calculateDiscount(screening)); }Movie 클래스에서 screening 대신 movie를 this로 전달했어도 동일한 기능은 가능한 거 같습니다. 질문을 하다가 깨달았는데 DiscountCondition에 screening이 필요하기 때문에 전달해주는 것을 알게되었습니다. 이렇게 전달해주는 것은 자연스럽게 일단 관계와 책임을 결정한 뒤 필요한 요소들이 뭘까 전체적으로 고민하면서 정해지는 것일까요? 상영이 예약에 대한 책임을 지고, 영화에게 가격을 계산하는 책임을 줄 때 screening을 넘겨주는 것과 condition에서 screening이 필요하다는 것까지 같이 설계하셨었는지 궁금합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
엔티티 분리의 기준
안녕하세요 영한님!이전 게시글에서 질문의 연장선 느낌이지만, 별도의 주제인 것 같아서 글을 따로 남깁니다. 강의에서 주문은 '결제'까지 포함하는 비즈니스 트랜잭션의 단위이고, 배송은 '물류'라는 별개의 프로세스다 라는 이유로, 주문 엔티티와 배송 엔티티를 분류하였는데요. 엔티티를 분리할 수 있는 기준을 어디까지 고려해야 하는지 궁금합니다. Application예를 들면, 회원(이메일, 비밀번호, 실명, 닉네임, 성별) 엔티티가 있다면,Application Server에서의 인증/인가 프로세스를 고려하여, (이메일, 비밀번호), (실명, 닉네임, 성별) 이라는 별개의 엔티티로 분리할 수 있을 것 같거든요. 이런식으로 Application 을 고려해서 설계를 해도 괜찮을까요? 화면또 다른 예를 들면, 배달의 민족에서 가게 를 생각해보면 가게 목록 페이지에서는 가게의 전화번호, 주소 같은 정보는 보여주지 않고, "가게 정보" 라는 페이지에서만 구체적인 가게 정보들을 보여주는데요.만약 가게와 가게 세부 정보 라고 따로 분리한다면 가게 목록 페이지를 구성할 때 가게 세부 정보는 읽지 않고 가게 컬럼만 접근할 수도 있을 것 같습니다. 이런식으로 엔티티를 분리하였을 때 얻는 이점도 존재할 것 같고, 복잡도가 증가한다는 단점도 존재하는 것 같습니다. 처음에는 비즈니스 요구사항에 초점을 두고 모델링하고, 개발을 진행하면서 엔티티 설계를 조금씩 바꾸는게 좋을까요? 처음부터 너무나 많은 걸 고려하면 오버엔지니어링이 되거나 유연성이 떨어질 것 같고, 반대의 경우에도 나중에 Application 코드를 바꾸는 데 많은 자원이 필요할 것 같습니다. 영한님의 생각은 어떠신지 궁금합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
synchronized 메서드와 join 관련 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.만약 무한정 대기할 수도 있는 상황에서 t1.join(50);t2.join(50); main의 코드를 이렇게 바꿔봤는데 결과가 똑같더라구요 이게 왜 그런지 알고 싶습니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
Store 엔티티를 추가했을 때의 관계
안녕하세요 영한님!강의를 들으면서 쇼핑몰 요구사항을 조금 더 확대해서 직접 모델링해보고 있습니다. (Store, Delivery, ...)엔티티를 분류하고 개념적 모델링, 논리적 모델링을 진행하면서 몇 가지 궁금한 점이 있어서 질문드립니다. 현재 강의에서는 Order - OrderItem - Product 관계가 존재했고,만약 Store와 Product 사이에 "무엇"을 등록한다 라는 관계가 존재한다면,Order - OrderItem - Product - Store 이렇게 관계가 형성될 것 같습니다. 질문 1. Order와 Store 관계Order와 Store 사이에, "어디에서" 주문한다 라는 관계가 있다고 볼 수 있는지 궁금합니다.(비즈니스 적으로 의미가 있는지에 따라 관계 여부를 결정하는게 맞을까요?) 질문 2. 만약에 관계가 존재한다고 생각하면 Order와 Store를 직접적으로 관계를 맺어주는게 좋을지, 아니면 그래프 탐색을 통해 관계를 참조하는게 좋을 지 궁금합니다.사실 Order - OrderItem - Product - Store 순으로 모두 Join 하면, 직접적인 연관관계를 맺지 않아도 원하는 데이터를 조회할 수 있을 것이라고 생각하는데요. 만약에 Order와 Store만으로 구성된 화면이 존재하거나, Store 정보를 바탕으로 Order를 필터링 해야한다면, Order에 Store의 식별자를 가지고 있으면 편하게 조회할 수 있을 것 같더라고요.다만, 이렇게 되면 화면이나 Api에 의존적이게 모델링되는 것 같은데, 이러한 설계 방식이 괜찮은 방식인지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
프론트엔드도 도커 + nginx 기반 배포 추가 강의 가능하실까요
안녕하세요 강의 커리큘럼은 백엔드 + mysql까지만 ec2에 도거 기반 배포하셨는데 풀스택(Next.js 또는 React.js + springboot + mysql)으로도 배포하는 보충강의도 제작 가능하실까요 ~ ?
-
해결됨수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
N8N에 data table이 추가 되었네요.
airtable 무료로 쓰고 있는데, 무료도 한계가 있어서이것 저것 찾아보고 있는데, 반가운 소식이네요. 아직 beta여서 별 기능이 없지만, 더 기능이 추가 될꺼라 생각이 되네요. airtable 대신 사용을 해봤는데, 사용하는데 무리가 없네요. data table 노드가 생겨서 함 글을 남겨봅니다.
-
미해결
서브넷 관련 질문
서브넷 관련 강의도 찍어서 올려주시면 감사하겠습니다.
-
해결됨앨런 Swift Concurrency for Swift 6 (Part-1)
18강 자식 작업의 메타데이터 상속 관련 강의 자료 문의
안녕하세요~18강 8:35 쯤 강의자료에 자식 작업은 부모작업의우선순위 실행중인액터로컬변수를 상속한다고 되어있는데 이때 실행중인 액터에 취소선이 그어져있는 이유가 있을까요?혹시 의미가 있는건지...궁금합니다감사합니다
-
미해결입문자를 위한 LangChain 기초
system 메세지는 정의가 되어 있는 건가요?
안녕하세요. 소스 내용중에 아래와 같은 것이 있습니다. ("system":"이 시스템은 여행 전문가 입니다."),("user":"{user_input}"), 사용자의 질문이 뭐가 들어올지 모르는 상황에서 여행 전문가라고 지정하는 것이 의미가 있는 것인지요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
receive하는 부분과 send하는 부분의 차이
강의를 쭉 듣다 궁금한게 생겨서 질문올립니다강의에선 receive하는 부분에서는 lock을 걸지 않고, send하는 부분에서는 lock을 걸어서 경합을 방지해주는데요 send도 receive도 둘다 async계열의 함수를 사용해서 비동기로 작동하기때문에 멀티쓰레드가 들어갈거같은데요. 왜 send에만 lock을 걸어서 경합을 방지하고, receive에는 lock을 걸지 않는지가 궁금해요
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
키보드 이슈 관련 해결 질문
윈도우+안드로이드 환경에서 KeyboardAwareScrollView가 동작하지 않아 React Native 문서를 보고 KeyboardAvoidingView component를 사용하려고 시도 했습니다.import Button from "@/components/CustomButton"; import DescriptionInput from "@/components/DescriptionInput"; import TitleInput from "@/components/TitleInput"; import { useCreatePost } from "@/hooks/queries/useCreatePost"; import useKeyboardOffset from "@/hooks/useKeyboardOffset"; import { ImageUri } from "@/types"; import { zodResolver } from "@hookform/resolvers/zod"; import { useNavigation } from "expo-router"; import { useEffect } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { KeyboardAvoidingView, ScrollView, StyleSheet } from "react-native"; import z from "zod"; export default function PostWriteScreen() { // ... const { isKeyboardShown, keyboardVerticalOffsetValue } = useKeyboardOffset(); // ... useEffect(() => { navigation.setOptions({ headerRight: () => ( <Button label="Save" size="medium" variant="standard" onPress={postForm.handleSubmit(onSubmit)} /> ), }); }); // ... return ( <FormProvider {...postForm}> <KeyboardAvoidingView behavior="padding" keyboardVerticalOffset={keyboardVerticalOffsetValue} enabled={isKeyboardShown} style={{ flex: 1 }} > <ScrollView style={styles.container} contentContainerStyle={styles.contentContainer} > <TitleInput /> <DescriptionInput /> <DescriptionInput /> <DescriptionInput /> <DescriptionInput /> </ScrollView> </KeyboardAvoidingView> </FormProvider> ); } const styles = StyleSheet.create({ container: { flex: 1, }, contentContainer: { flexGrow: 1, padding: 16, gap: 16, }, }); import { useEffect, useState } from "react"; import { Keyboard } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; export default function useKeyboardOffset() { const [isKeyboardShown, setIsKeyboardShown] = useState<boolean>(false); const insets = useSafeAreaInsets(); const verticalInsets = insets.top + insets.bottom; const keyboardVerticalOffsetValue = (Keyboard.metrics()?.height || 0) + verticalInsets + 50; useEffect(() => { const showSubscription = Keyboard.addListener("keyboardDidShow", () => { setIsKeyboardShown(true); }); const hideSubscription = Keyboard.addListener("keyboardDidHide", () => { setIsKeyboardShown(false); }); return () => { showSubscription.remove(); hideSubscription.remove(); }; }, []); return { isKeyboardShown, keyboardVerticalOffsetValue }; }단순히 Keyboard 문서를 확인하니 event listener 부분이 있어 그걸 참고하여 metric().height 만큼 offset을 주고 비슷하게 동작은 하도록 작성했습니다. 추가적으로, 아랫 부분이 조금 짤려서 임의로 50을 추가했습니다.이미 비슷한 질문이 올라 왔길래 '안드로이드 KeyboardAwareScrollView 이슈 수정 & 키보드 상태 커스텀 훅 만들기' 강의 확인하고 훅으로만 분리했는데 강의 중 상세 코드는 다르기도 하고 iOS 환경에서는 테스트를 할 수가 없어서 이런 식으로 짜도 되는지, 그리고 위에서 언급한 50에 해당하는 공간이 왜 필요한지 질문 드립니다.
-
미해결프로들만의 차별화된 엑셀 데이터 분석과 차트 시각화
38강 2분53초
VLOOKUP 두번째 절때참조할때 절떄참조범위를 L5:N10L6:N10 둘다가능한거죠?
-
미해결R로 배우는 통계
강의자료 다운로드 방법
기존 Q&A 링크 및 학습 창에서는 실습용 데이터(성적 자료)가 확인이 안되는데, 어디서 다운로드가 가능할까요?
-
해결됨수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
perplexity는 좋은 ai인가요?
결제를 여러군데 하고 있는데 perplexity ai 까지 API를 결재해야는지 여쭤봅니다.perplexity ai 로 검색했을때 좋은 결과를 얻지 못한거 같아서요n8n자동화 워드프레스 운영시 perplexity ai api를 반드시 결재해야 하는지 여쭤봅니다. 그게 아니면 14강은 건너뛰어도 되는지 여쭤봅니다.
-
미해결타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
퀴즈 활성화 안됨
강의를 다 들었는데 섹션4의 퀴즈가 활성화 되지 않아 수료증을 못받고 있습니다 ㅠㅠ 혹시 뭐 빠트렸나 해서 섹션 4번 강의 다시 다 들었는데도 안되네요.. 확인부탁드립니다
-
미해결기초부터 따라하는 디지털포렌식
strings_1640.log
strings .\dumps\1640.dmp > strings_1640.log 명령어를 입력했을 때 오래 걸린다고 하셨는데 저는 아무 반 ༔없이 프롬프트가 바로 뜹니다. Notepad++에도 파일을 올려보면 강의와 같은 내용이 안 뜨고 무슨 라이선스.. 이런게 뜨는데 뭐가 문제일까요?
-
미해결Git & GitHub, 원리부터 차근차근 - 근본깃 [완성편]
rebase 와 3-way merge 의 근본적인 차이
안녕하세요.rebase 단원(이전 강의)의 설명을 들으면서, rebase 란 fast-forward merge 를 수행할 수 있게끔 commit history 를 flatten 해 주는 작업으로 이해했는데요.rebase 과정에서도 conflict 가 발생하고, 이것을 처리해줄 필요가 있다면, 그냥 3-way merge 에서 conflict 를 처리하는 것과 근본적인 차이가 있을까요?제 생각으로는 rebase 과정에서는 branch 에서 떨어져 나간 commit 들이 생기고, 3-way merge 에서는 기존 commit 들이 병합된 branch 안에 들어있다, 는 차이 정도밖에 없는 것 같은데요.굳이 3-way merge 말고 rebase 를 사용해야 할 필요가 있을까요?
-
해결됨앨런 Swift Concurrency for Swift 6 (Part-1)
withCheckedContinuation 에서 resume 호출의 안정성 보장 질문
안녕하세요~ 강의 잘 보고 있습니다. withCheckedContinuation 에서 resume 호출에 대해 질문이 있습니다.11강의 12:56 쯤에서 'withCheckedContinuation 에서는 resume 을 두번 호출해도, runtime 에서 알아서 두번째 resume 되는걸 체크해서 크래시가 발생하지 않게 해준다고 공식문서에서 나와있다. 즉, 안전하다' 라고 설명을 해주시는데요 (12강에서도 Checked 는 안전하다고 나와있구요),제가 확인을 해보았을때는 withCheckedContinuation 에서도 resume 을 두번 호출하면 런타임 에러가 발생하는 것을 확인했습니다.다만 CheckedContinuation과 UnsafeContinuation 의 케이스별 에러 로그 / 콘솔 로그가 조금 달랐습니다.애플 문서에서는 checked continuation 만이 오용(misuse)에 대한 detect 및 diagnose 를 제공한다고 되어있는데요, 이를 통해 제가 유추할 수 있는건 withCheckedContinuation 은 런타임에 "안전" 하다기 보다는, resume 을 잘못 사용했을때 좀 더 자세한 에러 로그(여러번 호출시) 및 콘솔 로그(미호출시)를 통해 개발자가 resume 을 한번만 올바르게 호출할 수 있도록 도와주는 역할을 한다는 것이었습니다.혹시 withCheckContinuation 에 대해 강의해서 설명해주신 "안전" 의 의미와, "두번째 resume 되는걸 체크해서 크래시가 발생하지 않게 해준다" 의 문서 레퍼런스를 알 수 있을까요?참고로 체크한 코드는 다음과 같습니다func fetchGreeting(completion: @escaping (Result<String, MyError>) -> Void) { completion(.success("hello")) } enum MyError: Error { case bye } func asyncFetchGreeting() async throws -> String { let greeting = try await withCheckedThrowingContinuation { continuation in fetchGreeting { greeting in continuation.resume(with: greeting) // 📍 resume 호출부 } } return greeting } Task { do { let greeting = try await asyncFetchGreeting() } catch { } }감사합니다.