묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
key-value 타입 자동추론 질문드립니다
const StreamingProtocolList = ['HLS', 'DASH', 'CMAF'] as const export type UnionOfTuple<T extends readonly any[]> = T[number] export type IStreamingProtocol = UnionOfTuple<typeof StreamingProtocolList> export const isCMAFProtocol = (protocol: IStreamingProtocol) => protocol === 'CMAF' export interface IEndpoint { ce_id?: string ce_description: string ce_drm_yn: YN ce_type: IStreamingProtocol ce_hls_manifest_id: string | null }위와같이 타입을 만들어놓고 컴포넌트단에서 onchange시에 key값과 value값을 인자로 던졌을때, 해당 key값에 대한 value타입을 자동추론하려고 합니다. const onChangeHandler = useCallback( <K extends keyof IEndpoint>({ key, value }: { key: K; value: IEndpoint[K] }) => { setState(prev => { if (key === 'ce_type') { return { ...prev, ce_hls_manifest_id: isCMAFProtocol(value) ? 4464 : null, [key]: value } } else { return { ...prev, [key]: value } } }) }, [], ) 제가원하는건 위의라인에 isCMAFProtocol에 들어가는 value가 IStreamingProtocol타입으로 자동추론되는건데 TS2345: Argument of type string | number is not assignable to parameter of type 'HLS' | 'DASH' | 'CMAF라 발생하며 추론을 못하는 상황입니다. 이런 경우에는 제가 IStreamingProtocol에 대한 custom 타입가드함수를 만들어서 강제로 타입을 전환시켜야 되는 방법밖에 없을까요?
-
미해결1시간만에 끝내는 virtual thread in spring boot
pinned 확인법
https://github.com/openjdk/jdk/pull/17221이런 내용이 있네요. -Djdk.tracePinnedThreads 보다 JFR 을 권장하는 것 같습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 T1-6 문제에서 iloc
문제 : T1-6. 결측치 제거 및 그룹 합계 Expected Questionshttps://www.kaggle.com/agileteam/py-t1-6-expected-questions 문의 내용 : 'city가 경기이면서 f2가 0'인 조건에 만족하는 f1 값을 구할 때df.iloc[0, 0]["f1"] 이 아니라 왜 df.iloc[0]["f1"] 이렇게 입력해야 하는지 궁금합니다!
-
미해결Next + React Query로 SNS 서비스 만들기
api호출 3초뒤로 하고, loading.tsx 파일이 있을 때 없을때 /home/page.tsx
안녕하세요 제로초님제목처럼api호출 3초뒤로 하고, loading.tsx 파일이 있을 때 없을때 /home/page.tsx이런식으로 테스트를 해봤습니다. /home/page.tsx에서는 react-query로 ssr을 적용했고import style from './home.module.scss' import Tab from "@/app/(afterLogin)/home/_component/Tab"; import TabProvider from "@/app/(afterLogin)/home/_component/TabProvider"; import PostForm from "@/app/(afterLogin)/home/_component/PostForm"; import { HydrationBoundary, QueryClient, dehydrate } from '@tanstack/react-query'; import TabDecider from "@/app/(afterLogin)/home/_component/TabDecider"; import { getPostRecommends } from '@/app/(afterLogin)/_lib/getPostRecommends'; export default async function Home() { const queryClient = new QueryClient(); await queryClient.prefetchInfiniteQuery({ queryKey: ['posts', 'recommends'], queryFn: getPostRecommends, initialPageParam: 0, }); const dehydratedState = dehydrate(queryClient); return ( <main className={style.main}> <HydrationBoundary state={dehydratedState}> <TabProvider> <Tab /> <PostForm /> <TabDecider /> </TabProvider> </HydrationBoundary> </main> ); } /mocks/handlers.tsx에서는 postRecommends를 가져오되 3초 delay를 줬습니다.http.get('/api/postRecommends', async ({ request }) => { console.log('----------------------------------handlers /api/postRecommends'); await delay(3000); const url = new URL(request.url); const cursor = parseInt(url.searchParams.get('cursor') as string) || 0; return HttpResponse.json( [ { postId: cursor + 1, User: User[0], content: `${cursor + 1} ${faker.lorem.paragraph()}`, Images: [{ imageId: 1, link: faker.image.urlLoremFlickr({ category: 'animals' }) }], createdAt: generateDate(), }, { postId: cursor + 2, User: User[0], content: `${cursor + 2} ${faker.lorem.paragraph()}`, Images: [ { imageId: 1, link: faker.image.urlLoremFlickr({ category: 'animals' }) }, { imageId: 2, link: faker.image.urlLoremFlickr({ category: 'animals' }) }, ], createdAt: generateDate(), }, { postId: cursor + 3, User: User[0], content: `${cursor + 3} ${faker.lorem.paragraph()}`, Images: [], createdAt: generateDate(), }, { postId: cursor + 4, User: User[0], content: `${cursor + 4} ${faker.lorem.paragraph()}`, Images: [ { imageId: 1, link: faker.image.urlLoremFlickr({ category: 'animals' }) }, { imageId: 2, link: faker.image.urlLoremFlickr({ category: 'animals' }) }, { imageId: 3, link: faker.image.urlLoremFlickr({ category: 'animals' }) }, { imageId: 4, link: faker.image.urlLoremFlickr({ category: 'animals' }) }, ], createdAt: generateDate(), }, { postId: cursor + 5, User: User[0], content: `${cursor + 5} ${faker.lorem.paragraph()}`, Images: [ { imageId: 1, link: faker.image.urlLoremFlickr({ category: 'animals' }) }, { imageId: 2, link: faker.image.urlLoremFlickr({ category: 'animals' }) }, { imageId: 3, link: faker.image.urlLoremFlickr({ category: 'animals' }) }, ], createdAt: generateDate(), }, ] ); }), 이 후에 ssr화면 테스트를 위해서브라우저의 자바스크립트 사용중지 했습니다.서버도 각각 재시작하고 테스트했습니다.그리고 나서 테스트한 화면입니다.아래 화면은 loading.tsx가 업을때,아래 화면은 loading.tsx가 있을때 입니다.선생님 강의에서ssr을 적용했을때 loading화면을 포기해야한다고 이해했었습니다.prefetchInfiniteQuqery를 쓰고 loading을 포기하거나, prefetchInfiniteQuqery을 포기하고 loading을 사용하거나.그런데 제가 테스트했을때는 ssr이라도 로딩 화면이 보이는걸로 봐서 제가 테스트를 잘못한건지,loading.tsx가 있는것 자체가 suspense를 사용한것과 동일한 효과를 주어서 보여지게 되는건지여쭙고 싶습니다. 제가 잘못테스트했다면 어떻게 테스트를 해야 좀 더 정확히 구분지을 수있을지도 궁금합니다.
-
해결됨맛집 지도앱 만들기 (React Native + NestJS)
해결했습니다!
해결했습니다!
-
미해결스프링 핵심 원리 - 기본편
main에서 코드실행시 gradle에서 빌드되는거같아요 ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요강의잘듣고있습니다!Main에서 코드실행시 스프링 로딩되면서 로그가 보여야하는데, 뭔가 Gradle 실행된는것같아요구글링해서 찾아봣는데 해결법을 찾을수가없어서 질문드립니다!메인 실행시 아래 화면처럼 나옵니다!확인부탁드립니다!
-
미해결
test 질문 1
윤광동입니다. cypress 툴 괜찮나요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
explorer.exe 파일 미존재
해결했습니다. 해결 과정 아래 썼습니다. 감사합니다. 안녕하세요.강의명: 필수과정! Xilinx Vivado 2022.2 설치 (Windows 11 의 WSL 기반. 설계엔지니어라면 리눅스환경과 친해져야해요!) 질문: 강의내용에서 mobaxterm상 보여주신 explorer.exe가 존재하지 않는데 리눅스설치를 잘못한 것일까요? 강의시간 7:50/23:13=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결야, 너도 AI 서비스 만들 수 있어. [이미지 AI 서비스 서버리스 풀스택]
토스 페이먼츠 관련 문의
사업자가 없어 토스페이먼츠 api 신청을 할 수 가 없네요..토스 결제 관련 제외하고 실습을 진행해야 할 거 같습니다.결제 관련 제외할려면 어떻게 해야하는지 가이드 부탁합니다.
-
미해결김영한의 실전 자바 - 중급 2편
섹션 9. 문제와 풀이1
public static void main(String[] args) { String text = "Orange banana apple apple banana apple"; //코드 작성 String[] textArr = text.split(" "); System.out.println(Arrays.toString(textArr)); Map<String, Object> map = new HashMap<>(); for (String string : textArr) { map.put(string, 0); } for (String key : textArr) { if (map.containsKey(key)) { map.put(key, (map.get(key) + 1)); } } System.out.println(map); }문제와 풀이1에 3번째 문제입니다!Map<String, Object> map = new HashMap<>();HashMap을 생성 할 때, 값을 받는 부분은 뭐가 들어갈 지 몰라서 Object를 넣었습니다.코드를 진행하면서 for (String key : textArr) { if (map.containsKey(key)) { map.put(key, (map.get(key) + 1)); } }의문이 생긴 건 이 부분입니다.map.put(key, (map.get(key) + 1));여기서 오류, 빨간줄이 나왔습니다.-> 오류: java: bad operand types for binary operator '+'first type: java.lang.Objectsecond type: int map을 생성할 때, key는 String으로 받고,value는 Object로 받는다고 선언했는데 왜 오류가 뜨는 건가요?map.get(key) + 1은 int타입으로 나오는데 오토박싱으로 Integer 타입으로 변환되고, Object에 들어갈 수 있지 않나요?오토박싱이 안 되는 건가 해서 Integer.valueOf()를 써봐도 안 되더라구요..ㅠㅠ 물론 선언하는 부분에서 Object를 Integer로 바꾸면 해결이 되기는 합니다만..왜 오류가 나는지 모르겠습니다ㅠㅠ
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
라우팅 테이블 vs 포워딩 테이블
라우팅 테이블과 포워딩 테이블은 다른 개념인가요?
-
미해결[Lv.2] 레벨업 - SwiftUI intermediate with Core Data
강의중 코드폴딩 단축키 (커맨트+옵션+왼쪽방향키)
강의 중 함수내 코드폴딩 단축키는커맨드 + 옵션 + 왼쪽 방향키 입니다.Sorted,Filter,Map 강의 8:14 에커맨드 + 쉬프트 + 왼쪽 방향키로설명 되어 있어서 있어서 혼동 했네요. 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
미해결빅데이터 하둡 (Hadoop 3.2.1) 직접 설치하기
sbin/start-dfs.sh Permission denied 에러
작업 중 /usr/lib/hadoop/logs 경로를 건든 적이 없는데..ssh를 이해 하지 못하는 상황에서 문제가 생긴 걸까요..? ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys export PDSH_RCMD_TYPE=ssh ssh user@localhost user@localhost: Permission denied (publickey). sbin/start-dfs.shStarting namenodes on [localhost]localhost: WARNING: /usr/lib/hadoop/logs does not exist. Creating.localhost: mkdir: cannot create directory ‘/usr/lib/hadoop/logs’: Permission deniedlocalhost: ERROR: Unable to create /usr/lib/hadoop/logs. Aborting.Starting datanodeslocalhost: WARNING: /usr/lib/hadoop/logs does not exist. Creating.localhost: mkdir: cannot create directory ‘/usr/lib/hadoop/logs’: Permission deniedlocalhost: ERROR: Unable to create /usr/lib/hadoop/logs. Aborting.Starting secondary namenodes [tghong-cluster-public-temp-m]tghong-cluster-public-temp-m: WARNING: /usr/lib/hadoop/logs does not exist. Creating.tghong-cluster-public-temp-m: mkdir: cannot create directory ‘/usr/lib/hadoop/logs’: Permission deniedtghong-cluster-public-temp-m: ERROR: Unable to create /usr/lib/hadoop/logs. Aborting.
-
미해결
모바일 웹에서 바텀시트 작동하나요?!
모바일 웹에서도 바텀시트 작용하나요?!
-
미해결친절한 블렌더 - [LV.2] 모델링 연습
책속 장식 만들때
막힌 부분의 시간(예를들면 3:24)과 안 되는 부분과 현상을 자세히 써주셔야 해결이 빠릅니다. - 3:24, 여기서 막혔어요 (X) - 3:24, 영상에서는 원형인데 저는 타원형으로 만들어져요. (O) - 3:24, 베벨과 익스투르드까지는 적용이 되는데 미러 모디파이어는 반응이 없어요. (O) 문제되는 물체를 선택한 상황에서 일부가 아닌 전체 스크린샷 사진을 첨부해주시면 훨씬 좋습니다.책상 책 받침대에서 35:24 부분이 부분이요와이어프레임 넣고나서 저 주황색 라인이 안뜹니다.. 수정이 안되는 상태예요.. 에딧모드로 들어가도 안뜨네요.. 왜이러는 걸까요?이 상태네요 ㅜ
-
미해결
test 질문 1
윤광동입니다. cypress 툴 괜찮나요?
-
미해결모던 안드로이드 - Jetpack Compose 입문
강의에서 사용하는 리소스(이미지 등)을 다운 받을 수 있으면 좋겠어요.
일일이 구하느라 시간 낭비하는 것이 좋지 않네요.
-
미해결모던 안드로이드 - Jetpack Compose 입문
Card Compose에서 elevation 옵션
import androidx.compose.material3.CardMaterial3를 사용하면 elevation 옵션에 5.dp를 바로 넣지 못하고 elevation = CardDefaults.cardElevation(5.dp)이렇게 넣어야 하네요. 수강자한테 노티가 필요 할듯요.
-
미해결웹 게임을 만들며 배우는 React
npx webpack 실행시
[제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다. 이렇게 오류가 뜨는데 해결이 안됩니다
-
미해결
회사 앱 등록 구글 계정, 새로 만드는게 나을까요?
이번에 회사에서 앱 개발을 진행하게 되었습니다(본격적인 수익창출은 아니고, 기존 서비스 이용자분들의 편의성과 인증사업?의 이유입니다.)이런 경우에 제 개인정보(연락처, 복구 이메일 등)를 넣은 비즈니스 계정을 새롭게 만들어서 진행하는게 맞을까요? 아니면 기존에 회사 구글 계정이 있었다면 그걸 이용하는게 마음이 편할까요?