묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Context 분리하기 강의 내용 중에 궁금한 것이 있습니다!
Context 분리하기 강의 중 3분 55초에 나오는 컴포넌트의 계층 구조 표를 보면,기존의 Context를 TodoStateContext와 TodoDispatchContext로 분리하면서 TodoDispatchContext가 TodoStateContext의 하위에 존재하는 것을 봤는데요,이 부분에서 의문이 생긴 것이 TodoStateContext와 TodoDispatchContext가 형제 위치에 존재하면 안되는걸까요..?제 생각에는 TodoDispatchContext가 하위에 존재하지 않고 StateContext와 형제 위치에 있다면 DispatchContext가 todos에 영향을 받지 않아 리랜더링도 발생하지 않을 것 같은데, 해당 방법이 안되는 이유가 있을까요?
 - 
      
        
    미해결처음 만난 리액트(React)
교재 구입해서 강의 들으려고 하는데 커리큘럼이 없어졌어요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.교재 구입해서 강의 들으려고 하는데 커리큘럼이 없어졌어요.이제 못 듣게 된건가요?
 - 
      
        
    해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
소스코드 다운로드 링크의 접속이 안됩니다
노션에 있는 소스코드 다운로드 링크의 접속이 안됩니다. 구글과 네이버 두개의 링크로 접속했을때의 사진을 첨부해드립니다.혹시 코드를 받을 다른방법이있을까요? 깃허브를 알려주시면 거기서라도 다운로드하겠습니다
 - 
      
        
    해결됨[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
Bottom tabs navigator 설정
class MainActivity:ReactActivity(){// ...overridefunonCreate(savedInstanceState: Bundle?){super.onCreate(null)}// ...}공식문서와 강의에는 위의 코드로 진행해주셨는데수업노트에overridefunonCreate(savedInstanceState: Bundle?) { if (savedInstanceState == null) { SplashScreen.show(this) } super.onCreate(savedInstanceState) }이렇게 코드가 적혀있어서 문의드립니다. 수업노트 부분의 코드가 맞는 것이지요?
 - 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
[18-05 게시글 이미지와 함께 등록] 타입 지정 질문드립니다
안녕하세요!! 강의 너무나도 잘 듣고 있습니다. 18-05 게시글 이미지와 함께 등록 23:25분에서 file에 대한 타입을 지정을 할 때 알려주신 방법 외에도 ! 를 이용해서 해결을 의도치 않게 했는데,구글 및 스택오버플로우에도 Argument of type ' file | undefined' is not assignable to parameter of type 'File'. Type 'undefined' is not assignable to type 'File'.ts(2345)해당 오류를 검색해보았지만 알려주신 방법들 외에는 느낌표를 사용하는 방법은 찾지 못했습니다.이게 왜 되는건지... 도통 알수가 없네요... 이건 어떤 원리인가요??항상 감사드립니다.
 - 
      
        
    미해결Next.js 까보기: "쓸 줄 아는 개발자"에서 "알고 쓰는 개발자"로
'왜 Next.js 가 필요할까?(기술적인 등장 배경)' 에서 언급하는 영상들이 무엇일까요?
1강 '왜 Next.js 가 필요할까?(기술적인 등장 배경)' 에서 언급하신 영상들이 무엇인지 궁금해서 질문드립니다. 04:40"이 비동기에 대한 의미는 한 번 설명드린 적이 있어요." 10:00"서버 사이드 렌더링 시간에 저희가 이미 공부했으니까요." 두 지점에서 언급하신 Youtube 영상이 각각 무엇인지 URL을 알려주실 수 있으실까요?
 - 
      
        
    해결됨아바타 커뮤니티앱 만들기 (React Native Expo)
console.log를 해도 터미널에 표시가 되지 않아요
console.log 를 해도 vscode 터미널상에서 로그가 뜨지 않는데,찾아보니 최신 ReactNative버전에선 React Native DevTools를 사용하라는 말이 있더라구요. 혹시 React Native DevTools에서 console.log를 확인하는 방법이 있을까요? 단순히 j눌러서 열고 "회원가입하기" 버튼 눌러도 로그가 안나오네요...ㅠㅠ // package.json { "name": "community", "main": "expo-router/entry", "version": "1.0.0", "scripts": { "start": "expo start", "reset-project": "node ./scripts/reset-project.js", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web", "test": "jest --watchAll", "lint": "expo lint" }, "jest": { "preset": "jest-expo" }, "dependencies": { "@expo/vector-icons": "^14.0.2", "@react-navigation/bottom-tabs": "^7.2.0", "@react-navigation/native": "^7.0.14", "expo": "~52.0.37", "expo-blur": "~14.0.3", "expo-constants": "~17.0.7", "expo-font": "~13.0.4", "expo-haptics": "~14.0.1", "expo-linking": "~7.0.5", "expo-router": "~4.0.17", "expo-splash-screen": "~0.29.22", "expo-status-bar": "~2.0.1", "expo-symbols": "~0.2.2", "expo-system-ui": "~4.0.8", "expo-web-browser": "~14.0.2", "react": "18.3.1", "react-dom": "18.3.1", "react-native": "0.76.7", "react-native-gesture-handler": "~2.20.2", "react-native-reanimated": "~3.16.1", "react-native-safe-area-context": "4.12.0", "react-native-screens": "~4.4.0", "react-native-web": "~0.19.13", "react-native-webview": "13.12.5" }, "devDependencies": { "@babel/core": "^7.25.2", "@types/jest": "^29.5.12", "@types/react": "~18.3.12", "@types/react-test-renderer": "^18.3.0", "jest": "^29.2.1", "jest-expo": "~52.0.4", "react-test-renderer": "18.3.1", "typescript": "^5.3.3" }, "private": true }
 - 
      
        
    해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
오류
강의대로 했는데 왜 오류가 나죠??
 - 
      
        
    미해결[React / VanillaJS] UI 요소 직접 만들기 Part 1
강의 연장관련
만료일까지 완강을 못할거 같은데 가능하다면 수강기간을 몇일이라도 늘려주실 수 있을까요? 첫질문이 수강기간에 관한 내용이라 죄송합니다 !!
 - 
      
        
    미해결[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
splash screen 화면이 안띄워져요.
안드로이드로 실행하고 있고 앱 아이콘까지 성공하였습니다. 그런데 app. tsx에function Section({children, title}: SectionProps): React.JSX.Element { useEffect(() => { setTimeout(() => { SplashScreen.hide(); }, 1000); }); const isDarkMode = useColorScheme() === 'dark';이 코드를 올리면 Cannot read property 'hide' of null 이라고 뜹니다. 그래서 시도해본 방법은-metro 서버 연겨리도 다시해보고-js hide 호출위치를 app()쪽에도 해보고-mainActivity 코드에 SplashScreen.show(this);코드가 잘 있는지 확인도 하고-gradle.properties에 android.enableJetifier=true추가해보고-androidmanifest의 activity에 android:theme="@style/SplashTheme"이 부분도 추가해보고-styles.xml에resource부분에 <!-- ① 스플래시 화면용 테마 --> <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- launch_screen.xml(layout) 을 배경으로 사용 --> <item name="android:windowBackground">@layout/launch_screen</item> </style> <!-- ② 앱 전체용 기본 테마 --> <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> <!-- 여기에 앱 전체 스타일 아이템들을 넣으세요 --> <!-- 예: 상태바 색상, 기본 버튼 스타일 등 --> </style>이렇게도 넣어보아도 앱이 켜지려다가 바로 꺼져버립니다. 로그도 따로 안남고.. 혹시 이 부분에서 왜 이렇게 되고 해결방안이 있을까요??
 - 
      
        
    미해결React 비기너: 튼튼한 기본 만들기
React 비기너: 튼튼한 기본 만들기 / 섹션 23. React Event / 2. 이벤트 핸들러 작성
버튼 컴포넌트 onClick={handleClick()} jsx 에서 위처럼 적으면 자바스크립트에서 엔진에서 즉시실행함수로 인식하는것 처럼 인식을 해서 렌더링이 되기도전에 함수를 먼저 실행해버리는 현상이 생기는 이유가 맞을까요? 결국 핸들러 함수의 기능도 하지못하고1회용으로 즉시실행되고 소멸해버리는 함수가 되어버리는 것 같아보이는데 이에 대한 정확한 설명이 있을까요? 제가 생각한 이 부분에 보충적으로 필요한 설명을 혹시 해주실 수 있으실까요?
 - 
      
        
    해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 1
Tooltip-useSyncExternalStore()에 함수 넘기는 방식에 대해...
안녕하세요!항상 유익한 강의를 제공해 주셔서 감사드리며,강의를 통해 UI를 다양한 방법으로 구현하는 법과 요구 사항의 디테일한 부분을 어떻게 처리해야 하는지에 대해 많은 것을 배우고 있습니다.조심스럽게 여쭤보고 싶은 점이 있어 글을 남깁니다.혹시 시간이 괜찮으시면 선생님의 고견을 듣고 싶습니다. - tooltip의 react 버전viewportContext.tsx에서 useSyncExternalStore()사용부분useSyncExternalStore를 통해 외부요소의 변화를 구독할 수 있게, 첫번째 인자로 subscribe를 넘기고 해당 상태를 컴포넌트와 동기화 할 수 있도록 두번째 인자로 getViewportRect를 넘기고 있습니다. 첫번째 인자인 subscribe는 함수의 참조를 넘기는데, 두번째 인자인 getViewportRect는 "getViewportRect()"로 값을 넘기고 있어, 이 부분에서 조금 의문이 생겨 아래와 같이 수정하면 어떨까 생각했습니다.useSyncExternalStore의 두번째 인자에도 함수의 참조를 넘기도록 수정하여react에게 제어권을 넘기고, getViewportRect에서 리턴된 함수는 stored값을 기억할 수 있도록 즉시실행함수로 만드는 방식입니다.const getViewportRect = (() => { let stored: Rect = DefaultRect; return () => { const el = typeof document !== 'undefined' && document.scrollingElement; if (!el) return stored; const { left, top, width, height } = el.getBoundingClientRect(); const newRect = { left, top, width, height, scrollHeight: el.scrollHeight }; if (newRect && !isSameRect(stored, newRect)) stored = newRect; return stored; }; })(); //1. 즉시실행함수로 수정 const ViewportContextProvider = ({ children }: { children: ReactNode }) => { const viewportRect = useSyncExternalStore(subscribe, getViewportRect); //2.두 인자 모두 참조만 넘기도록 수정 return ( <ViewportContext.Provider value={viewportRect}> {children} </ViewportContext.Provider> ); };이렇게 수정하는 것이 더 나은 방법일지 여쭙고 싶습니다. useStyleView.ts에서 useLayoutEffect의 의존성배열에 참조 자료형 넣는 것 viewportRect가 객체인데, 이를 의존성배열에 그대로 넣는것이 괜찮은지 궁금합니다. const viewportRect = useViewportRect(); //객체 useLayoutEffect(() => { ... }, [viewportRect, wrapperRef, targetRef, position]); viewportRect에서 개별 값만 분리해서 넣는 방법도 고려해 보았습니다. const { top, left, width, height } = useViewportRect(); //생각해본 버전 useLayoutEffect(() => { ... }, [top, left, width, height, wrapperRef, targetRef, position]); 강의자료에 완성코드가 있다고 하는 걸 어디서 본 것도 같은데... 제가 어디있는지 찾지를 못해서...🥲강의 내용만 보고 작성한 코드임을 양해 부탁드립니다. 🙇♀
 - 
      
        
    해결됨(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - <코딩 배워 사업하자>
이미지 리사이징 현상 막기
선생님! AWS에 이미지 호스팅 서비스 관련해서 궁금한게 있습니다.제가 테스트를 해봤는데 썸네일 이미지 크기(가로/세로)에 상관없이 실제 운영 환경에는 동일한 크기의 썸네일 이미지로 보여지더라구요. 그러면 이게 AWS 이미지 호스팅 할 때 이미지 크기를 리사이징해서 조절해주는 작업이 일어나는거라고 저는 추측하고 있는데요.만약 이런 작업이 일어난다면 결국 AWS에 불필요한 작업으로 인한 비용이 발생이 되는거라서... 혹시 이미지 사이즈 크기에 대한 팁이 있을까요?
 - 
      
        
    해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
{}안에 들어가는 값으로 숫자, 문자열, 배열의 값 뿐만 아니라 태그도 쓸 수 있는 건가요?
10:04에서의 문법을 보면 div안에 {}가 들어간 것이 아니라 {}안에 div태그를 넣는데 제대로 동작하는 것을 보면 그렇다고 생각합니다.
 - 
      
        
    미해결Next + React Query로 SNS 서비스 만들기
@modal/(i) 로 생성/파일이동 후, 무한 GET 출력
강의의 3분 정도 쯤에,(beforeLogin)/i 폴더와 파일들을 (beforeLogin)/@modal/(i) 로 복사 한 후http://localhost:3000/i/flow/login 접속시 무한 GET 접속 시도가 터미널 창에 보입니다.이때, <Link href="login" className={styles.login}>로그인</Link> 입니다. 그런데, <Link href="/i/flow/login" className={styles.login}>로그인</Link> 변경하면, http://localhost:3000/i/flow/login 접속시, 터미널 창에서는 무한 GET 접속시도는 사라집니다.어떻게 해서 이렇게 되는지요?
 - 
      
        
    미해결Next + React Query로 SNS 서비스 만들기
인터셉팅 라우트 설명
강의 50초 정도에, i, login, page.tsx는 {children}에서 렌더링, 여기는 (@modal 의 하위 폴더와 파일 선택) {modal}에서 되죠? 라고 설명하시는 부분이 이해가 안됩니다.저는, app/(beforeLogin)/layout.tsx 의 {children}은 app/(beforeLogin)/page.tsx 를 가져오는 것이고, {modal}은 @modal 폴더의 page.tsx (default.tsx, i/flow/login/폴더로 리다이렉션) 를 찾는 것으로 이했습니다.여러 폴더를 모두 보여준다고 설명하신듯하여, 이해가 안되네요.
 - 
      
        
    미해결React 비기너: 튼튼한 기본 만들기
React 비기너: 튼튼한 기본 만들기 / 섹션22. 이벤트 핸들러 강의 / Content Attribute와 IDL Attribute 사용 방식에 대한 질문드립니다
안녕하세요.항상 좋은 인사이트와 경험을 공유해주셔서 감사드립니다.최근 프론트엔드 개발을 공부하면서 "Content Attribute"와 "IDL Attribute"의 사용 방식에 대해 고민하게 되었습니다. 이를 정리해보면서 나름대로 다음과 같은 결론에 이르렀습니다.Content Attribute는 변하지 않는 어트리뷰트 값이나 리소스를 표현할 때 사용하고,그 외, 동적으로 핸들링이 필요한 경우에는 IDL Attribute를 사용하는 것이 맞다고 이해하고 있습니다.이러한 개념을 공부하면서, 현업에서 다양한 코드들을 보게 되었는데요, 특히 주니어 개발자분들이 작성한 코드에서는 Content Attribute를 많이 사용하는 반면, 시니어 개발자나 CTO급 분들의 코드에서는 Content Attribute 사용이 상대적으로 적고, 대부분 IDL Attribute를 적극적으로 사용하는 모습을 많이 볼 수 있었습니다.이런 현상을 보며 자연스럽게 궁금증이 생겼습니다.왜 경험 많은 개발자일수록 Content Attribute 사용이 줄어드는 걸까?Content Attribute 방식과 IDL Attribute 방식에 대해 어떻게 생각하시고, 어떤 기준으로 선택하시는지 궁금합니다.혹시 이 부분에 대해 간단히 의견을 들려주실 수 있다면 큰 도움이 될 것 같습니다.(물론 바쁘시다면 답변 주시지 않아도 괜찮습니다! 이렇게 질문을 정리하는 과정만으로도 많은 공부가 되고 있습니다.)읽어주셔서 감사합니다.좋은 하루 되세요.
 - 
      
        
    미해결[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
sunriseData 코드
2분 22초에서 return 문 앞에 const sunriseData = weatherData ? new Date(weatherData.sys.sunrise);이렇게 코드를 적었는데 이후의 코드에서는 갑자기 보이지 않아 이 코드는 어디가고이후의 return 앞에는 이 코드가 오게 되었는지 궁금합니다.const formatTime = timestamp => { const date = new Date((timestamp - 9 * 3600) * 1000); // UTC timestamp에 9시간 추가 return date.toLocaleTimeString([], {hour: '2-digit', minute: '2-digit'}); // 로컬 시간으로 포맷 }; 제가 이해할 때는 sunriseData가 wetherData의 unixtime을 현재 우리가 보는 시간으로 바꾸어 저장하는 것인데...아래의 formatTime은 sunriseData를 대체한 코드인가요?(시차도 적용한?)
 - 
      
        
    미해결React 비기너: 튼튼한 기본 만들기
React 비기너: 튼튼한 기본 만들기 / 섹션22. 이벤트 핸들러 / 3. 이벤트 핸들러: 콘텐트 속성 7:00
p id =one onclick=show() 1. five 오브젝트를 클릭할때 one onclick 이벤트삭제2. five 오브젝트를 클릭할때 one onclick null 로 재할당2번을 쓰게 되는 경우가 어떤경우가 일까요?1번방법이 일반적으로 쓰게될 것 같다는 생각이 듭니다
 - 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
npm_access_token 오류
npm_access_token 오류어떻게 해결하나요 ㅠㅠ