inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

강사님 REST API와 GraphQL에 관하여 질문이 있습니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

graphql의 장점이 딱 원하는 데이터만 가져온다는 것은 이해가 되는데, REST API도 딱 원하는 DB 컬럼만 요청해서 가져오거나 할 수도 있지 않나요? 이게 어떠한 차이가 있나 궁금합니다. ㅎㅎ

  • react
  • node.js
  • seo
  • graphql
  • next.js
  • restapi
건태 댓글 2 좋아요 0 조회수 171

hwp.TableCellBlcok() 코드 미작동

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

안녕하세요 일코님 더위에 건강 잘 챙기시기 바랍니다. 일코님께서 제공해주신 코드인데,, 어제까지는 잘 작동하는데 오늘 다시 실행해보니 >>> hwp = Hwp().hwp >>> hwp.MoveToField("3") True >>> hwp.TableCellBlock() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\samsung-user\anaconda3\Lib\site-packages\win32com\client\__init__.py", line 580, in __getattr__ raise AttributeError( AttributeError: '<win32com.gen_py.HwpObject 1.0 Type Library.IHwpObject instance at 0x1750723382032>' object has no attribute 'TableCellBlock' hwp.TableCellBlock() 코드가 작동하지를 않네요 ㅠㅠ 왜이런 걸까요? hwp.TableCellBlock() hwp.TableCellBlockExtend() hwp.TableColEnd() hwp.MoveToField("3") 까지는 올바르게 작동을 하는데,, 위의 테이블 관련 코드가 다 작동하지 않네요. 감사합니다 ^^

  • python
  • 한컴오피스
윤병현 댓글 1 좋아요 1 조회수 255

isPending vs isLoading

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

안녕하세요 로펀님 tanstackquery에서 최근에 isPending이 생겨서 어느 블로그에선가 봤는데 이제 isPending을 사용하면 된다고 했던 것 같은데 혹시 둘의 차이가 있을까요? 어느 시점에서는 이것을 사용해야 한다라는 가이드가 있을까요?

  • firebase
  • next.js
  • tailwind-css
  • react-query
  • supabase
___ 댓글 1 좋아요 0 조회수 1521

Open API에서 GET으로 데이터가불러와지지 않습니다.

미해결

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

안녕하세요. '크롤링을 위한 지식: Open API 쉽게 사용하는 방법' 강의를 듣고 질문 드립니다. 아래사 진처럼 웹주소 기입하고 헤더의 키와 밸류에 각각 클라이언트 아이디랑 비밀번호 기입했는데 다음과 같은 오류 메세지가 떴습니다. Q데이터를 가져오는데 뭐가문제일까요>

  • python
  • 웹-크롤링
데이터 엔지니어 준비생 댓글 1 좋아요 0 조회수 208

AVD가 보이지 않아요..

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

안녕하세요. 사진처럼 AVD가 보이지 않아요.. ...ㅠ 최신 버전이여서 안보이는걸까요..?

  • android
  • kotlin
  • firebase
park y 댓글 1 좋아요 0 조회수 156

강의자료 부탁드립니다!

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

안녕하세요. 강의자료 부탁드립니다! sukim13062@naver.com

  • python
sukim13062 댓글 1 좋아요 0 조회수 110

섹션 1 넘파이 ndarray 인덱싱

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 마지막 2차원 ndarray 인덱싱 자료화면(11분 경)에서 마지막 6번째 인덱싱 결과가 1차원이라고 하셨는데 Index 1이 1개, index 0이 2개인 (2,1) 의 2차원으로 봐야 하는 것 아닌지 질문 드립니다

  • python
  • 머신러닝
  • 통계
능함가 댓글 2 좋아요 0 조회수 157

이렇게 풀어도 되나요?

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

n,k = map(int, input().split()) data = list(map(int, input().split())) m = int(input()) cnt = 0 def dfs(l,s,c): global cnt if l == n: if c == k: if s % m == 0: cnt += 1 return dfs(l+1,s+data[l],c+1) dfs(l + 1, s, c) dfs(0,0,0) print(cnt) 이렇게 풀어도 되나요?

  • python
  • 코딩-테스트
코딩코딩코딩코 댓글 1 좋아요 0 조회수 149

Azure Function Deploy 실패

미해결

Azure Native로 나만의 GPT 만들기

Azure Function Deploy가 실패하는데 원인을 모르겠습니다. ㅠ.ㅠ 2:32:09 PM xbg-my-chatgpt-api: [05:31:59+0000] Collecting watchfiles>=0.13 2:32:09 PM xbg-my-chatgpt-api: [05:31:59+0000] Using cached watchfiles-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB) 2:32:09 PM xbg-my-chatgpt-api: [05:31:59+0000] Collecting python-dotenv>=0.13 2:32:09 PM xbg-my-chatgpt-api: [05:31:59+0000] Using cached python_dotenv-1.0.1-py3-none-any.whl (19 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:31:59+0000] Collecting uvloop!=0.15.0,!=0.15.1,>=0.14.0 2:32:09 PM xbg-my-chatgpt-api: [05:31:59+0000] Using cached uvloop-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Collecting websockets>=10.4 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Using cached websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (130 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Collecting pyyaml>=5.1 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Using cached PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Collecting isodate>=0.6.1 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Using cached isodate-0.6.1-py2.py3-none-any.whl (41 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Collecting pyjwt>=2.6.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Using cached PyJWT-2.8.0-py3-none-any.whl (22 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Collecting azure-core>=1.24.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Using cached azure_core-1.30.2-py3-none-any.whl (194 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Collecting aiosignal>=1.1.2 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Collecting attrs>=17.3.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:00+0000] Using cached attrs-23.2.0-py3-none-any.whl (60 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Collecting multidict<7.0,>=4.5 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Using cached multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (128 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Collecting yarl<2.0,>=1.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Using cached yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (328 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Collecting frozenlist>=1.1.1 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Using cached frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (272 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Collecting requests>=2.21.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Using cached requests-2.32.3-py3-none-any.whl (64 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Collecting six>=1.11.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Using cached six-1.16.0-py2.py3-none-any.whl (11 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Collecting idna>=2.0.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Using cached idna-3.7-py3-none-any.whl (66 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Collecting dnspython>=2.0.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:01+0000] Using cached dnspython-2.6.1-py3-none-any.whl (307 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Collecting typer>=0.12.3 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Using cached typer-0.12.3-py3-none-any.whl (47 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Collecting certifi 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Using cached certifi-2024.7.4-py3-none-any.whl (162 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Collecting anyio 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Using cached anyio-4.4.0-py3-none-any.whl (86 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Collecting httpcore==1.* 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Using cached httpcore-1.0.5-py3-none-any.whl (77 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Collecting sniffio 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Using cached sniffio-1.3.1-py3-none-any.whl (10 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Collecting MarkupSafe>=2.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:02+0000] Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:04+0000] Collecting pydantic-core==2.20.1 2:32:09 PM xbg-my-chatgpt-api: [05:32:04+0000] Using cached pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:04+0000] Collecting annotated-types>=0.4.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:04+0000] Using cached annotated_types-0.7.0-py3-none-any.whl (13 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:04+0000] Collecting urllib3<3,>=1.21.1 2:32:09 PM xbg-my-chatgpt-api: [05:32:04+0000] Using cached urllib3-2.2.2-py3-none-any.whl (121 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:04+0000] Collecting charset-normalizer<4,>=2 2:32:09 PM xbg-my-chatgpt-api: [05:32:04+0000] Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Collecting rich>=10.11.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Using cached rich-13.7.1-py3-none-any.whl (240 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Collecting shellingham>=1.3.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Using cached shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Collecting pygments<3.0.0,>=2.13.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Using cached pygments-2.18.0-py3-none-any.whl (1.2 MB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Collecting markdown-it-py>=2.2.0 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Collecting mdurl~=0.1 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB) 2:32:09 PM xbg-my-chatgpt-api: [05:32:05+0000] Installing collected packages: mdurl, sniffio, pygments, markdown-it-py, idna, urllib3, typing-extensions, shellingham, rich, h11, click, charset-normalizer, certifi, anyio, websockets, watchfiles, uvloop, uvicorn, typer, six, requests, pyyaml, python-dotenv, pydantic-core, multidict, MarkupSafe, httptools, httpcore, frozenlist, dnspython, annotated-types, yarl, starlette, python-multipart, pyjwt, pydantic, jinja2, isodate, httpx, fastapi-cli, email-validator, azure-core, attrs, aiosignal, fastapi, azure-messaging-webpubsubservice, azure-functions, aiohttp 2:32:09 PM xbg-my-chatgpt-api: [05:32:09+0000] Successfully installed MarkupSafe-2.1.5 aiohttp-3.9.5 aiosignal-1.3.1 annotated-types-0.7.0 anyio-4.4.0 attrs-23.2.0 azure-core-1.30.2 azure-functions-1.20.0 azure-messaging-webpubsubservice-1.1.0 certifi-2024.7.4 charset-normalizer-3.3.2 click-8.1.7 dnspython-2.6.1 email-validator-2.2.0 fastapi-0.111.1 fastapi-cli-0.0.4 frozenlist-1.4.1 h11-0.14.0 httpcore-1.0.5 httptools-0.6.1 httpx-0.27.0 idna-3.7 isodate-0.6.1 jinja2-3.1.4 markdown-it-py-3.0.0 mdurl-0.1.2 multidict-6.0.5 pydantic-2.8.2 pydantic-core-2.20.1 pygments-2.18.0 pyjwt-2.8.0 python-dotenv-1.0.1 python-multipart-0.0.9 pyyaml-6.0.1 requests-2.32.3 rich-13.7.1 shellingham-1.5.4 six-1.16.0 sniffio-1.3.1 starlette-0.37.2 typer-0.12.3 typing-extensions-4.12.2 urllib3-2.2.2 uvicorn-0.30.3 uvloop-0.19.0 watchfiles-0.22.0 websockets-12.0 yarl-1.9.4 2:32:09 PM xbg-my-chatgpt-api: WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv 2:32:09 PM xbg-my-chatgpt-api: WARNING: You are using pip version 21.2.4; however, version 24.2 is available. 2:32:09 PM xbg-my-chatgpt-api: You should consider upgrading via the '/tmp/oryx/platforms/python/3.11.8/bin/python3.11 -m pip install --upgrade pip' command. 2:32:09 PM xbg-my-chatgpt-api: Not a vso image, so not writing build commands 2:32:09 PM xbg-my-chatgpt-api: Preparing output... 2:32:09 PM xbg-my-chatgpt-api: Copying files to destination directory '/home/site/wwwroot'... 2:32:11 PM xbg-my-chatgpt-api: Done in 1 sec(s). 2:32:11 PM xbg-my-chatgpt-api: Removing existing manifest file 2:32:11 PM xbg-my-chatgpt-api: Creating a manifest file... 2:32:11 PM xbg-my-chatgpt-api: Manifest file created. 2:32:11 PM xbg-my-chatgpt-api: Copying .ostype to manifest output directory. 2:32:11 PM xbg-my-chatgpt-api: Done in 14 sec(s). 2:32:12 PM xbg-my-chatgpt-api: Running post deployment command(s)... 2:32:12 PM xbg-my-chatgpt-api: Generating summary of Oryx build 2:32:12 PM xbg-my-chatgpt-api: Deployment Log file does not exist in /tmp/oryx-build.log 2:32:12 PM xbg-my-chatgpt-api: The logfile at /tmp/oryx-build.log is empty. Unable to fetch the summary of build 2:32:12 PM xbg-my-chatgpt-api: Triggering recycle (preview mode disabled). 2:32:12 PM xbg-my-chatgpt-api: Linux Consumption plan has a 1.5 GB memory limit on a remote build container. 2:32:12 PM xbg-my-chatgpt-api: To check our service limit, please visit https://docs.microsoft.com/en-us/azure/azure-functions/functions-scale#service-limits 2:32:12 PM xbg-my-chatgpt-api: Writing the artifacts to a squashfs file 2:32:13 PM xbg-my-chatgpt-api: Parallel mksquashfs: Using 1 processor 2:32:13 PM xbg-my-chatgpt-api: Creating 4.0 filesystem on /home/site/artifacts/functionappartifact.squashfs, block size 131072. 2:32:27 PM xbg-my-chatgpt-api: Deployment failed.

  • javascript
  • python
  • mongodb
  • azure
  • FastAPI
삼각형 댓글 3 좋아요 2 조회수 567

BOJ1461 제일 먼 곳은 가장 나중에 가는 것이 이득아닌가요?

해결됨

세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)

먼 곳을 먼저가게 되면 돌아오는 만큼의 거리를 손해보게 되는데 가장 먼 곳을 나중에 가는 게 이득이 아닌가해서 질문을 남겨봅니다.

  • python
  • 코딩-테스트
  • 알고리즘
hobeats 댓글 2 좋아요 1 조회수 210

11.5 Channel 노래,앨범 section 강의중

해결됨

기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)

안녕하세요 선생님 ㅎ channel쪽 진행하고 있었는데 앨범 밑에 PlayListCarousel이 크기가 이상하게 나오네여 ㅠㅠ 코드를 다똑같이 써도 안되서 질문드립니다! channel/[id]/page.tsx import HeaderBgChanger from "@/components/HeaderBgChanger"; import PagePadding from "@/components/PagePadding"; import PlayListCarousel from "@/components/PlayListCarousel"; import SongCardRowExpand from "@/components/SongCardRowExpand"; import DarkButton from "@/components/elements/DarkButton"; import WhiteButton from "@/components/elements/WhiteButton"; import { getChannelById } from "@/lib/dummyData"; import { getRandomElementFromArray } from "@/lib/utils"; import { permanentRedirect } from "next/navigation"; import React from "react"; import { FiMusic, FiShuffle } from "react-icons/fi"; interface ChannelPageProps { params: { id: string; }; } const page = async (props: ChannelPageProps) => { const channel = await getChannelById(Number(props.params.id)); if (!channel) permanentRedirect("/"); const imageSrc = getRandomElementFromArray(channel.songList)?.imageSrc; return ( <PagePadding> <HeaderBgChanger imageSrc={imageSrc} /> <div className="mt-[150px]"></div> <section> <div className=" text-[28px] font-bold">{channel.name}</div> <article className="mt-4 lg:hidden"> <div> <DarkButton className={"w-[230px] flex justify-center"} label={"구독중 99만"} /> </div> <div className="flex flex-row gap-4 mt-4"> <WhiteButton label={"셔플"} icon={<FiShuffle size={16}></FiShuffle>} /> <WhiteButton label={"뮤직 스테이션"} icon={<FiMusic size={16} />} /> </div> </article> <div className="hidden lg:flex flex-row items-center gap-4 text-[14px] mt-4"> <WhiteButton label={"셔플"} icon={<FiShuffle size={16}></FiShuffle>} /> <WhiteButton label={"뮤직 스테이션"} icon={<FiMusic size={16} />} /> <DarkButton className={"w-[230px] flex justify-center"} label={"구독중 99만"} /> </div> </section> <section className="mt-[80px]"> <div className=" text-[28px] font-bold">노래</div> <div className="mt-[20px]"> <ul className="flex flex-col gap-2"> {channel.songList.map((song, key) => { return <SongCardRowExpand song={song} key={key} />; })} </ul> </div> </section> <section className="mt-[80px]"> <div className=" text-[28px] font-bold">앨범</div> <PlayListCarousel playlistArray={channel.playlistArray} /> </section> <section className="mt-[80px]"></section> </PagePadding> ); }; export default page; PlayListCarousel.tsx import { Playlist } from "@/types"; import React from "react"; import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from "@/components/ui/carousel"; import PlayListCard from "./PlayListCard"; interface PlayListCarouselProps { title?: string; subTitle?: string; Thumbnail?: React.ReactNode; playlistArray?: Playlist[]; } const PlayListCarousel: React.FC<PlayListCarouselProps> = ({ title, subTitle, Thumbnail, playlistArray, }) => { return ( <div className="w-full"> <Carousel> <div className="flex flex-row justify-between items-end my-2"> <article className="flex flex-row gap-3"> {Thumbnail} <div className="flex flex-col justify-center"> <div> {subTitle && ( <div className=" text-neutral-500">{subTitle}</div> )} </div> <div className="text-[34px] font-bold leading-[34px] "> {title} </div> </div> </article> <div className="relative left-[-45px]"> <div className="absolute bottom-[20px]"> <CarouselPrevious className="right-2" /> <CarouselNext className=" left-2" /> </div> </div> </div> <CarouselContent className="mt-4"> {playlistArray?.map((playlist, index) => { return ( <CarouselItem key={index} className="basis-1/2 md:basis-1/3 lg:basis-1/4 xl:basis-1/5" > <PlayListCard playlist={playlist} /> </CarouselItem> ); })} </CarouselContent> </Carousel> </div> ); }; export default PlayListCarousel;

  • react
  • 인터랙티브-웹
  • 클론코딩
  • next.js
  • tailwind-css
  • zustand
장산 댓글 1 좋아요 0 조회수 187

섹션4_인코딩 이해하고 적용해보기(원핫인코딩) 질문

미해결

[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]

섹션 4 부분 마지막 강의인 인코딩 이해하고 적용하기 라는 강의의 14분 50초에 나오는 pd.getdummies()에 관한 질문이 있습니다. 강의 내용대로 실행을 시켜보니 df_onehot.head()의 내용이 True/False의 형태로 나오는 것을 확인했습니다. 서칭 후 pd.get_dummies(df_label, columns=onehot_cols, dtype = int) 처럼 dtype을 int형태로 바꾸어주니 강사님이 보여주신 화면대로 나오는 것을 확인했습니다. 이것 역시 버전차이로 인한 기능 변화라고 이해하면 되나요?

  • python
  • 머신러닝
  • pandas
  • kaggle
hhs834373 댓글 1 좋아요 0 조회수 212

createPortal 활용해서 modal 만들 때 활용한 MutationObserver 코드 관련 질문

해결됨

[React / VanillaJS] UI 요소 직접 만들기 Part 2

import { useEffect, useRef } from "react" const mutationObserverOption: MutationObserverInit = { childList: true, subtree: true } const ModalRoot = () => { const ref = useRef<HTMLDivElement>(null); useEffect(() => { let observer: MutationObserver if (ref.current) { observer = new MutationObserver(() => { const size = ref.current?.childNodes.length || 0 document.body.classList.toggle('no-scroll', size > 0) }) observer.observe(ref.current, mutationObserverOption) } return () => { observer.disconnect() } }, []) return (<div id="modalRoot" ref={ref}/>) } export default ModalRoot; 수업시간에 구현 되었던 코드가 어떤 순서로 동작하는지 콘솔로 확인해봤습니다. 제가 확인해 봤을 땐 처음 페이지가 렌더링 될 때 1. ModalRoot 컴포넌트가 실행 2. modalRoot div가 생성 3. useEffect가 실행 4. useEffect의 Clean Up 작동 까지는 예상대로 진행되었습니다. 하지만 이후에 이해가 안되는 부분이 있습니다. 질문 1) 이후 useEffect 가 다시 실행되는데, 의존성도 없는데 어떻게 다시 실행되는지 궁금합니다. 질문 2) 영상에서 모달 버튼을 누르면 useEffect 의 조건문에서 size 를 콘솔로 확인하셨는데, ModalRoot 컴포넌트가 재실행되지 않고 어떻게 size 를 확인할 수 있는지 궁금합니다.

  • react
  • typescript
  • dom
  • ui
  • vanilla-js
working.zima 댓글 3 좋아요 0 조회수 384

이방식은 시간초과로 되지않을까요?

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

이방식은 예시는 잘 돌아가는데 추후 시간초과같은걸로 컷 엣지를 하지못해 틀린 답일까요? n = int(input()) data = list(map(int, input().split())) ch = [0]*n def dfs(num): if num == n: choose = 0 unchoose = 0 for i in range(n): if ch[i] == 1: choose += data[i] else: unchoose += data[i] if choose == unchoose: print("YES") exit() return ch[num] = 1 dfs(num+1) ch[num] = 0 dfs(num+1) dfs(0) print("NO")

  • python
  • 코딩-테스트
코딩코딩코딩코 댓글 1 좋아요 0 조회수 133

강의자료 부탁드립니다

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

yy3082@naver.com 추가로 질문드리고 싶은게 있는데 제가 파이썬으로 코딩테스트를 볼 생각인데 파이썬 입문편 만으로 코딩테스트 공부를 위한 기본 문법은 정리가 될까요?? 추가적으로 필요하다면 어느정도까지 들어야 하는지 알려주세요

  • python
yy3082 댓글 1 좋아요 0 조회수 118

깃 액션 활용

해결됨

React 기반 Gatsby로 기술 블로그 개발하기 v2

name: Deploy Blog on: push: branches: develop jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 # 원하는 Github Secrets을 불러와 env 파일을 생성해줍니다. - name: Generate env file run: | echo "CONTENTFUL_ACCESS_TOKEN=$CONTENTFUL_ACCESS_TOKEN" >> .env echo "CONTENTFUL_SPACE_ID=$CONTENTFUL_SPACE_ID" >> .env env: CONTENTFUL_ACCESS_TOKEN: ${{ secrets.CONTENTFUL_ACCESS_TOKEN }} CONTENTFUL_SPACE_ID: ${{ secrets.CONTENTFUL_SPACE_ID }} - name: Deploy gatsby uses: enriikke/gatsby-gh-pages-action@v2 with: access-token: ${{ secrets.DEPLOYMENT_ACCESS_TOKEN }} deploy-branch: main gatsby-args: --verbose develop 브런치에서 위 코드를 작성하고 git push origin develop 을했는데 액션에 동작을 안합니다. https://github.com/Choi-jeonghoon/Jeong-hoon.github.io/actions/new

  • react
  • typescript
  • 블로그
  • gatsby
최정훈 댓글 3 좋아요 0 조회수 409

리텐션 과제 연습문제 4번(core_event)

해결됨

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

최근에, 면접이 있어서 공부를 제대로 못했네요. 오늘부터 매일 매일 못했던 공부를 다시 해보려고 합니다. 문제: core_event를 'click_payment'라고 설정하고, Weekly Retention을 구하여라. 저는 click_payment 까지의 사용자 여정 별로 세그먼트를 나누려는 시도를 해보았습니다. 문제에 대한 고민사항은 길어지니, 최종적으로 나누었던 세그먼트를 먼저 소개해드리겠습니다. click_payment 까지의 여정은 크게 다음과 같이 구성할 수 있습니다. click_search(검색) -> click_payment click_banner(배너 클릭) -> click_payment click_food_category(음식 카테고리 클릭) -> click_payment click_restaurant_nearby( 내 위치 기반 주변 레스토랑) -> click_payment click_recommend_food(추천) -> click_payment 크게 다음과 같이 5개의 세그먼트로 나누어보고, 각 세그먼트 별로, Count를 해보았습니다. 이 때, click_login -> click_search -> .... -> click_payment -> click_search .... 이런 경우를 대비해서, 각 이벤트마다 제일 처음 이벤트가 발생한 시간 을 기준으로 구분하도록 하였습니다. 이제 각 퍼널별로 리텐션을 구해보겠습니다. WITH user_events AS ( SELECT user_pseudo_id, event_name, event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_timestamp, ROW_NUMBER() OVER (PARTITION BY user_pseudo_id, event_name ORDER BY event_timestamp) AS r_num FROM advanced.app_logs WHERE event_name IN ('click_search', 'click_banner', 'click_food_category', 'click_restaurant_nearby', 'click_recommend_food', 'click_payment') AND event_name NOT IN ('screen_view', 'click_login') ), FIRST_EVENTS AS ( SELECT *, DATE_DIFF(event_week, first_week, WEEK) AS diff_of_week FROM ( SELECT user_pseudo_id, event_date, DATE_TRUNC(MIN(event_date) OVER (PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week, DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week, MIN(CASE WHEN event_name = 'click_search' THEN event_timestamp END) OVER (PARTITION BY user_pseudo_id, event_date) AS first_search_time, MIN(CASE WHEN event_name = 'click_payment' THEN event_timestamp END) OVER (PARTITION BY user_pseudo_id, event_date) AS first_payment_time, MIN(CASE WHEN event_name = 'click_banner' THEN event_timestamp END) OVER (PARTITION BY user_pseudo_id, event_date) AS first_banner_time, MIN(CASE WHEN event_name = 'click_food_category' THEN event_timestamp END) OVER (PARTITION BY user_pseudo_id, event_date) AS first_food_category_time, MIN(CASE WHEN event_name = 'click_restaurant_nearby' THEN event_timestamp END) OVER (PARTITION BY user_pseudo_id, event_date) AS first_restaurant_nearby_time, MIN(CASE WHEN event_name = 'click_recommend_food' THEN event_timestamp END) OVER (PARTITION BY user_pseudo_id, event_date) AS first_recommend_food_time FROM user_events ) ), FUNNEL_CLASSIFICATION AS ( SELECT DISTINCT *, CASE WHEN first_search_time IS NOT NULL AND first_payment_time IS NOT NULL AND first_search_time < first_payment_time THEN 'click_search -> click_payment' WHEN first_banner_time IS NOT NULL AND first_payment_time IS NOT NULL AND first_banner_time < first_payment_time THEN 'click_banner -> click_payment' WHEN first_food_category_time IS NOT NULL AND first_payment_time IS NOT NULL AND first_food_category_time < first_payment_time THEN 'click_food_category -> click_payment' WHEN first_restaurant_nearby_time IS NOT NULL AND first_payment_time IS NOT NULL AND first_restaurant_nearby_time < first_payment_time THEN 'click_restaurant_nearby -> click_payment' WHEN first_recommend_food_time IS NOT NULL AND first_payment_time IS NOT NULL AND first_recommend_food_time < first_payment_time THEN 'click_recommend_food -> click_payment' ELSE 'Other' END AS funnel FROM FIRST_EVENTS WHERE first_payment_time IS NOT NULL ), PIVOTED_ANALYSIS AS ( SELECT diff_of_week, COUNT(DISTINCT CASE WHEN funnel = 'click_search -> click_payment' THEN user_pseudo_id END) AS user_cnt_search_payment, COUNT(DISTINCT CASE WHEN funnel = 'click_banner -> click_payment' THEN user_pseudo_id END) AS user_cnt_banner_payment, COUNT(DISTINCT CASE WHEN funnel = 'click_food_category -> click_payment' THEN user_pseudo_id END) AS user_cnt_food_category_payment, COUNT(DISTINCT CASE WHEN funnel = 'click_restaurant_nearby -> click_payment' THEN user_pseudo_id END) AS user_cnt_restaurant_nearby_payment, COUNT(DISTINCT CASE WHEN funnel = 'click_recommend_food -> click_payment' THEN user_pseudo_id END) AS user_cnt_recommend_food_payment FROM FUNNEL_CLASSIFICATION GROUP BY diff_of_week ), INITIAL_USERS AS ( SELECT FIRST_VALUE(user_cnt_search_payment) OVER (ORDER BY diff_of_week) AS first_user_cnt_search_payment, FIRST_VALUE(user_cnt_banner_payment) OVER (ORDER BY diff_of_week) AS first_user_cnt_banner_payment, FIRST_VALUE(user_cnt_food_category_payment) OVER (ORDER BY diff_of_week) AS first_user_cnt_food_category_payment, FIRST_VALUE(user_cnt_restaurant_nearby_payment) OVER (ORDER BY diff_of_week) AS first_user_cnt_restaurant_nearby_payment, FIRST_VALUE(user_cnt_recommend_food_payment) OVER (ORDER BY diff_of_week) AS first_user_cnt_recommend_food_payment FROM PIVOTED_ANALYSIS LIMIT 1 ) SELECT pa.diff_of_week, pa.user_cnt_search_payment AS search_active_user, pa.user_cnt_banner_payment AS banner_active_user, pa.user_cnt_food_category_payment AS category_active_user, pa.user_cnt_restaurant_nearby_payment AS nearby_active_user, pa.user_cnt_recommend_food_payment AS recommend_active_user, iu.first_user_cnt_search_payment AS search_cohort_user, iu.first_user_cnt_banner_payment AS banner_cohort_user, iu.first_user_cnt_food_category_payment AS category_cohort_user, iu.first_user_cnt_restaurant_nearby_payment AS nearby_cohort_user, iu.first_user_cnt_recommend_food_payment AS recommend_cohort_user, ROUND(SAFE_DIVIDE(pa.user_cnt_search_payment, iu.first_user_cnt_search_payment), 3) AS retention_week_rate_search_payment, ROUND(SAFE_DIVIDE(pa.user_cnt_banner_payment, iu.first_user_cnt_banner_payment), 3) AS retention_week_rate_banner_payment, ROUND(SAFE_DIVIDE(pa.user_cnt_food_category_payment, iu.first_user_cnt_food_category_payment), 3) AS retention_week_rate_food_category_payment, ROUND(SAFE_DIVIDE(pa.user_cnt_restaurant_nearby_payment, iu.first_user_cnt_restaurant_nearby_payment), 3) AS retention_week_rate_restaurant_nearby_payment, ROUND(SAFE_DIVIDE(pa.user_cnt_recommend_food_payment, iu.first_user_cnt_recommend_food_payment), 3) AS retention_week_rate_recommend_food_payment FROM PIVOTED_ANALYSIS pa, INITIAL_USERS iu ORDER BY pa.diff_of_week; 1000자 이내로 작성해야 게시글 하나를 쓸 수 있음.. screen_view -> screen_view -> click_login의 경우, 사용자가 로그인을 하지 않고, 앱이 잠시 백그라운드 상에 동작중인 상태에서, 다시 앱을 켰을 때, screen_view 로그가 찍히는 것을 확인했습니다. 현재 집중해야 할 부분은 사용자가 상품을 들여다보는 시간이나, item을 찾을 때, UI/UX 적으로 개선할 부분이 있는지 찾기보다, click_payment를 하기까지의 주요 이벤트 여정을 세그먼트로 분류하는 작업을 하고 있기 때문에, screen_view 이벤트는 제외해야겠다는 생각을 했습니다. 또한, screen_view -> click_login -> screen_view -> screen_view -> click_login 처럼, 이전 이벤트와 현재 이벤트가 같은 경우를 제외한 다른 경우만을 필터링해서, 굵직한 이벤트만을 필터링해보자! 라는 생각을 가졌었습니다. --- 1000자 이내로 작성해야 글이 올ㅠ 퍼널의 수가 열 몇개로 나오지 않을까? 하는 예상과 다르게 총 433개의 단계가 나왔습니다. click_login -> click_food_category -> click_restaurant -> click_food -> click_cart -> view_recommend_extra_food -> click_payment 와 같이 click_login ----- > click_payment까지의 여정의 가짓수가 너무 많아, 단계를 단순화할 필요성이 있어보였습니다. 그래서, 위의 결과와 같이 총 5개로 퍼널을 나누었습니다.

  • sql
  • Google-Analytics
  • firebase
  • google-sheets
  • bigquery
minsubrother 댓글 2 좋아요 0 조회수 263

SLM을 이용한 사내 전용 AI

해결됨

Azure Native로 나만의 GPT 만들기

안녕하세요 저는 업무 상 필요에 의해 AI 활용 관련해서 이런저런 테스트를 해 보고 있는 중입니다. 개발자가 아니여서 직접적으로 개발을 수행하기에는 어려움이 있습니다. 현재 사내 가이드라인 문서들 (PDF)을 ChatGPT4o에 업로드하여 이해 시킨 후 개인 업무 진행 후 그 결과물들이 가이드라인을 얼마나 준수하는지에 대한 준수율 체크를 해 점수화 해 주는 사내 전용 AI를 도입해 보려고 강의를 듣고 있습니다만 어렵네요 ChatGPT에 pdf 파일을 올려 테스트를 해 보니 상당 수준의 검출 가능성이 있겠다는걸 확인 했습니다만 그 과정을 통해 ChatGPT가 저희 가이드라인을 학습해 다른데 활용이 될 수도 있다는 우려가 있습니다 그래서 덩치가 크고 무거운 LLM 말고 SLM을 이용하여 한정된 분야에만 전문화되고 사내 전용으로 보안도 확보한 상태에서 개발할 수 있는 방법에 대해 문의 드리고 싶은데요 개인 이메일로 연락 부탁드리겠습니다 tk.lee@lge.com 감사합니다

  • javascript
  • python
  • mongodb
  • azure
  • FastAPI
tk.lee 댓글 2 좋아요 1 조회수 744

Link태그와 useRouter

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

혹시 Next.js에서 Link태그와 useRouter를 제공하고 있는데 서로 차이점이 있을까요?? 이미지나 버튼이 있으면 거기에 onClick 달고 라우터 쓰고 있긴한데 이미지나 버튼에 링크를 감싸버리면 뭔가 이상할 것 같아서 어떤식으로 쓰면 좋을까요 <Link href="/" ><Image ... /></Link> <Image ... onClick={()=>router.push("/")} />

  • firebase
  • next.js
  • tailwind-css
  • react-query
  • supabase
___ 댓글 1 좋아요 0 조회수 245

수치 연산?

해결됨

문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!

3 * 0.1을 계산하면, 0.3이 나오지 않습니다. 0.3이 나오게 하려면 어떻게 하나요?

  • python
jwbaek4 댓글 1 좋아요 0 조회수 204

인기 태그

인프런 TOP Writers

주간 인기글