묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결배달앱 클론코딩 [with React Native]
구글 플레이 내부 테스트에서 네이버맵이 가끔 팅기는 현상
안녕하세요! 개발할 때는 네이버맵이 잘 동작하는데,내부 테스트를 위해 aab를 추출하고 올렸는데다운받은 어플에서는 네이버맵이 가끔 팅깁니다.!현재 저는 rn72버전을 사용중이고 저번에 강사님이 rn72 폴더 쪽 올리실 때 커밋 히스토리들 중에서 네이버 맵 쪽 관련 코드도 조금 수정하셨던 걸로 보였었는데 현재는 스쿼시머지가 된것인지 히스토리 파악이 어렵습니다 ㅜ ㅜ혹시 rn72버전에서 네이버맵쪽 관련 수정해주어야 할 부분이 따로 존재할까요 ?아니면 혹시 릴리즈모드에 progaurd rule을 적용시키는 부분때문에 일어날수도 있을까요 ?
-
미해결실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
utm 확인하는 방법
특정사이트/?utm_source=youtube&utm_medium=video&utm_campaign=230918na1&utm_content=%EC%A1%B0%EC%9D%BC%ED%98%84 ?utm_source=naver&utm_medium=display&utm_campaign=230918ma1이렇게 해하고 애널리틱스 실시간 페이지뷰 해서 확인 하면 캠페인이나, 콘텐츠에 해당 캠페인 이 표시 되지 않습니다 organic, referral만 나오는데 어떻게 하면 될까요?
-
해결됨디자인 시스템 with 피그마
글로벌과 다크모드/라이트모드, 토큰스튜디오 프로
안녕하세요?글로벌에 타이포그래피 토큰을 만들면 다크모드, 라이트모드 테마쪽에는 굳이 안만들어도 상관이 없는건가요?글로벌에 등록된 토큰은 모든 테마에 전반적으로 적용이되는건가요??그리고 토큰스튜디오 프로를 사용했을때의 큰 메리트가 있을까요? 감사합니다!
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
부동산 크롤링 강좌 이벤트
선생님 안녕하세요~~ 몇 일 전에 이벤트 참여하려고 블로그에 글쓰고 선생님에게 메일을 보냈습니다.이거 완강하고 부동산도 꼭 듣고싶네요 ㅎㅎ 너무 유용한 강의 감사합니다. 메일 확인 부탁드려요 !!
-
미해결(2025 최신 업데이트)리액트 : 프론트엔드 개발자로 가는 마지막 단계
연락처 검색 버튼이 작동하지 않아요
import React, { useState } from 'react'; import {Form, Row, Col, Button} from 'react-bootstrap' import { useDispatch, useSelector } from 'react-redux'; const SearchBox = () => { let [keyword, setKeyword] = useState(''); let dispatch = useDispatch() const { contact } = useSelector((state) => state); const searchByName = (event) => { event.preventDefault(); dispatch({ type: "SEARCH_BY_USERNAME", payload: { keyword } }); }; return ( <Form onSubmit={searchByName} className='search-box'> <Row> <Col lg={8}> <Form.Control type="text" placeholder="이름을 입력해주세요" onChange={(event) => setKeyword(event.target.value)} \ /> </Col> <Col lg={4}> <Button variant="dark">찾기</Button> </Col> </Row> </Form> ) } export default SearchBox 위의 코드는 search-box 코드이고const initialState = { contact: [], keyword: "", } const reducer = (state = initialState, action) => { let { type, payload } = action; switch (type) { case "ADD_CONTACT": state.contact.push({ name: payload.name, phoneNumber: payload.phoneNumber, }); break; case "SEARCH_BY_USERNAME": state.keyword = payload.keyword; break; } return { ...state }; }; export default reducer;위의 코드는 reducer.js 코드 import React, { useEffect, useState } from "react"; import SearchBox from "./SearchBox"; import ContactItem from "./ContactItem"; import { useSelector } from "react-redux"; const ContactList = () => { const { contact, keyword } = useSelector((state) => state); let [filteredList, setFilteredList] = useState([]); useEffect(() => { if (keyword !== "") { let list = contact.filter((item) => item.name.includes(keyword)); setFilteredList(list); } else { setFilteredList(contact); } }, [keyword]); return ( <div> <SearchBox /> <div className="contact-list"> num:{filteredList.length} {filteredList.map((item, idx) => ( <ContactItem item={item} key={idx} /> )) } </div> </div> ); }; export default ContactList위코드는 contactList 코드입니다.너무 안되서 선생님 코드를 그대로 복붙하고 아무리 찾아봐도 다른 부분이 없는데 검색 버튼을 눌러도 작동하지 않습니다. 왜 안되는걸까요? 선생님? 이걸로 밤새고 있습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
12 섹터를 보고 있습니다.
class _Header extends StatelessWidget { final VoidCallback onPressed; const _Header({required this.onPressed, super.key});플러터 버젼때문에 그런가요.에러가 났는데 저는 상의 버젼이라서 그런가요.?const _Header({required this.onPressed, Key? key,}) : super(key: key);
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Get/user/followers API server error.
안녕하세요!강의를 어느정도 진행하고 프론트를 바꿔서 저만의 페이지를 구현하고 있습니다.구현하던 중 LOAD_FOLLOWERS_REQUEST 요청을 보내면 계속 500 에러가 뜹니다. 프론트의 saga, Redux action 만드는 부분 확인했고, 백엔드 쪽에 routes확인했는데, 특별한 이상한 점을 못찾았습니다.* Front- redux/user* Front-saga/user* Back-routes* console*redux error log. 어디 부분에서 에러가 나는것일까요?감사합니다.
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
graph, visited 사이즈 관련 문의
graph, visited의 사이즈를 다음 코드와 같이 노드 개수에 맞게 (n+1)로 하면 되겠다고 생각했는데, 노드 개수의 최댓값인 1000을 이용해 사이즈를 정하신 이유가 무엇인가요??graph = [[False]*(n+1) for _ in range(n+1)] visited = [False]*(n+1)
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
Image Upload시 register 문의
안녕하세요.포트폴리오를 만들던 도중 제 스스로 해결되지 않아 질문드립니다.import { useForm } from "react-hook-form"; import { wrapFormAsync } from "../../../../../../commons/libraries/asyncFunc"; import { yupResolver } from "@hookform/resolvers/yup"; import { productRegisterSchema } from "../../../../../commons/validation/Main"; import InputLong from "../../../../../commons/Input/long"; import Textarea01 from "../../../../../commons/Input/textarea"; import Button01 from "../../../../../commons/button/01"; import InputLongNormal from "../../../../../commons/Input/longNormal"; import { gql, useMutation } from "@apollo/client"; import type { IMutation, IMutationCreateUseditemArgs, } from "../../../../../../commons/types/generated/types"; import { useRouter } from "next/router"; import ImageUpload01 from "../../../../../commons/imageUpload/imageUpload"; interface IFormData { name: string; remarks: string; contents: string; price: number; images: string[]; } export const CREATE_USED_ITEM = gql` mutation createUseditem($createUseditemInput: CreateUseditemInput!) { createUseditem(createUseditemInput: $createUseditemInput) { _id } } `; export default function ProductRegisterBody(): JSX.Element { const { register, handleSubmit, formState } = useForm<IFormData>({ resolver: yupResolver(productRegisterSchema), mode: "onChange", }); const router = useRouter(); const [createUseditem] = useMutation< Pick<IMutation, "createUseditem">, IMutationCreateUseditemArgs >(CREATE_USED_ITEM); const onClickSubmit = async (data: IFormData): Promise<void> => { console.log(data); await createUseditem({ variables: { createUseditemInput: { name: data.name, remarks: data.remarks, contents: data.contents, price: data.price, images: data.images, }, }, }); void router.push("/markets"); }; return ( <form onSubmit={wrapFormAsync(handleSubmit(onClickSubmit))}> <InputLong register={register("name")} tag="상품명" /> <div>{formState.errors.name?.message}</div> <InputLong register={register("remarks")} tag="한줄요약" /> <div>{formState.errors.remarks?.message}</div> <Textarea01 register={register("contents")} tag="상품설명" /> <div>{formState.errors.contents?.message}</div> <InputLong register={register("price")} tag="판매가격" /> <div>{formState.errors.price?.message}</div> <InputLongNormal tag="태그입력" /> <div>거래위치</div> <div> <p>사진첨부</p> <ImageUpload01 register={register("images")} /> </div> <button> 테스트</button> <Button01 title="등록하기" isActive={formState.isValid} onClick={onClickSubmit} /> </form> ); } import { useMutation } from "@apollo/client"; import { useState, type ChangeEvent, useRef } from "react"; import { UPLOAD_FILE } from "../upload01/Upload01.queries"; import type { IMutation, IMutationUploadFileArgs, } from "../../../commons/types/generated/types"; import * as S from "./styles"; import type { UseFormRegisterReturn } from "react-hook-form"; interface IInputProps { register: UseFormRegisterReturn; } export default function ImageUpload01(props: IInputProps): JSX.Element { const [image, setImage] = useState(""); const [images, SetImages] = useState(""); const fileRef = useRef<HTMLInputElement>(null); const [uploadFile] = useMutation< Pick<IMutation, "uploadFile">, IMutationUploadFileArgs >(UPLOAD_FILE); const onChangeImageFile = async ( event: ChangeEvent<HTMLInputElement>, ): Promise<void> => { const file = event.target.files?.[0]; const result = await uploadFile({ variables: { file } }); console.log(result.data?.uploadFile.url); SetImages(result?.data?.uploadFile?.url ?? ""); }; console.log(images); const onClickFile = (): void => { fileRef.current?.click(); }; return ( <> <S.Wrapper> <S.Image src={`https://storage.googleapis.com/${images}`} alt="" /> <S.ImageClick onClick={onClickFile}> +</S.ImageClick> <S.HiddenInput onChange={onChangeImageFile} type="file" ref={fileRef} /> <S.HiddenInput value={images} {...props.register} autoFocus name="images" /> </S.Wrapper> </> ); } 일단 요령이 없어서 아래 처럼 만들었습니다.사진을 올리면 register를 위해 value값이 변경되는 input창을 만들었으나 등록하기를 누르면 graphql에 업로드되지가 않습니다.{price: 333, contents: '3333', remarks: '333', name: '333', images: ''} 허나 저 빨간 v표시 친 부분을 한번 클릭한다면 {price: 33, contents: '3333', remarks: '333', name: '3333', images: 'codecamp-file-storage/2023/9/17/Vector.png'}다음처럼 images가 잘 입력됩니다. 클릭하지 않아도 자동으로 변경되면 images를 업로드 시킬 수 있는 방법이 있을까요? 아니면 참고할만한 다른 방법들이 있을까요?
-
해결됨시나브로 자바스크립트
클로저에 대해서 제가 아는 부분을 공유합니다!
클로저에 대해서 어렴풋이 알고 있었지만, 막상 이벤트 핸들러 안에서 그것을 바라보니 조금 이해가 안되었는데요!저처럼 아직 클로저가 익숙하지 않은 분들은 이벤트핸들러를 분리해서 보면 조금 더 이해가 쉽습니다!그리고 디버거를 이용해서 스코프 안에 있는 변수들을 같이 보면 조금 더 이해가 되실거에요!일단 클로저를 "어떤 함수가 선언될 때 외부 영역을 기억하는 것" 이라고 생각하고 이 코드를 바라보면 onHelloButtonHandler 라는 함수(이벤트핸들러) 가 선언될 때 myCardCount 의 값을 기억합니다. 즉, Add Card를 할 때마다 + 1씩 올라간다고 하더라도 onelloButtonHandler 에게는 선언될 당시의 cardCount 를 myCardCount 로 받아서 기억하는 것이죠! 개발자 도구 우측에 Scope을 보면 onHelloButtonHandler 함수의 스코프체인을 볼 수 있는데요. myCardCount 가 로컬에 없기 때문에 그 위 스코프를 바라보는데요! 그 스코프가 바로 클로저이고! 저 클로저 스코프 안에 있는 myCardCount 라는 값은 이 함수가 선언될 당시의 값으로 정해집니다! 끝!!
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
대시보드 30000포트 접속 에러
강사님 안녕하세요.그라파나에서 Loki-stack Save & Test까지 마치고 대시보드에 접속하여 'App 배포 환경 구성하기' 과정을 실습하려고 했습니다.하지만, http://192.168.56.30:30000 접속을 시도하니 아래와 같은 에러가 발생하는데, 제가 놓친 부분이 있을까요?Client sent an HTTP request to an HTTPS server.그리고 개발자 도구 Network 탭 내용은 아래와 같습니다.대시보드 러닝 상태는 정상입니다.
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
접근지시자와 리플렉션 시스템
안녕하세요 강의 잘 시청하고 있습니다.한 가지 의문이 있어 글을 남깁니다.리플렉션 시스템의 장점은 정말 강력하다고 생각합니다만, 반대로 걱정되는 부분도 있습니다. 첫번째는일반적으로 어떤 속성의 값을 수정할 때나 참조할 때는한정된 접근 지시자를 사용하여 get, set 하는 것이 정석적으로 사용되어 왔다고 생각합니다. 리플렉션 시스템을 사용하여 접근지시자를 무시하게 할 수 있다고 하면, 장기적으로 봤을 때 문제점이 있을거라 생각합니다만, 혹시 간단한 사례같은 것이 존재할까요? 두번째는Find~ 라는 네이밍에서 유추하건대 해당 클래스내의 모든 UProperty나, UFunction중 일치하는 것을 찾을 때까지 탐색하는 시간이 걸릴 것이라 생각합니다만 비용적인 측면에서는 실제로 어떠한지요?
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
시퀄라이즈 강좌 내실 생각 있으신가요?
강사님 안녕하세요이번에 스프링 JPA를 공부하면서, Express.js에서 사용했던 시퀄라이즈가 생각났는데. 시퀄라이즈를 자세하게 다뤄주시는 강좌를 내주실 생각 있으신가요?언제가 될지는 모르겠지만, 제가 나중에 다시 Node.js 백엔드 개발을 공부하게 된다면 그 강의를 신청할 의향이 있어서요
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Quiz_07 static
햄버거 클래스들 앞에 static을 안썼더니 자꾸this cannot be referenced from a static context가 떠서public static class HamBurger {}public static class CheeseBurger extends Hamburger{}public static class ShrimpBurger extends Hamburger{}로 작성하였습니다.그런데 선생님은 class만 쓰셔도 에러가 안나길래 해봤는데 또 같은 에러가 나왔습니다. 찾아봤더니 main함수는 static 메서드이므로 그렇지 않은 클래스는 참조할 수 없다는 뜻이라 같은 곳에서 내부클래스를 선언하게 될 경우 같이 static을 붙여줘야한다라고 하던대...왜 선생님은 없어도 되고 저는 안될까요?ㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
솔루션 'Server'(0개의 프로젝트)로 생성이 되어버립니다.
'콘솔 앱(.NET Core)'가 존재 하지 않아서 '콘솔 애플리케이션'으로 프로젝트를 생성하였습니다. .NET 데스크톱 개발은 설치가 되어있습니다.개별 구성요소에서 .NET Core 3.1 Runtime(Out of support)를 체크하여 '콘솔 애플리케이션'을 만들었습니다. 프로젝트를 생성하였으나 솔루션에 프로젝트가 0개라고 떠서 더이상 진행 할 수 가 없습니다. 혹시 어떻게 해결하면 될까요??
-
해결됨[코드캠프] 시작은 프리캠프
싸이월드 2탄 home.css 질문
마지막 homework 문제에서 저는 box라고 지정했는데 저 margin-top부분을 padding으로 하면 적용이 안되던데 padding은 상위 태그부분에만 작용하는 건가요?
-
미해결Google 공인! 텐서플로(TensorFlow) 개발자 자격증 취득
슬랙 초대 메일이 안왔어요 ~
슬랙 초대 메일 추가 부탁드립니다.감사합니다.tradeyk93@gmail.com
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일 다운로드 404 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링 MVC 2편까지 수강한 이후에 내용을 복습하려고 1편과 2편의 내용을 통합하여 상품 관리 시스템을 만드는 중인데 파일 다운로드에서 문제가 생겼습니다.상품 등록 폼에서 상품 이미지를 포함한 상폼 정보를 저장하고 상품 상세 폼에서 상품 이미지를 불러와서 상품 정보들과 함께 나타내려고 합니다.파일을 업로드해서 로컬 컴퓨터에 저장하는 것 까지는 잘 작동이 되는데 상품 상세 폼에서 파일을 다운로드하는 것이 되지 않고 파일 src로 들어가보면 404 에러코드가 나타납니다. 저장은 잘 되는데 무엇을 잘못한 걸까요? 아무리 찾아보고 고쳐봐도 잘 모르겠네요ㅠㅠhttps://drive.google.com/file/d/1llC0gBVa9VNnmXQEYZ0fp5qFpWCiBwHA/view?usp=sharing
-
미해결생활코딩 - Linux
codeonweb에서 언어설정
codeonweb에서 언어를 shell로 지정하고 나면 오류가 뜨는데 어떻게 해결하나요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
스크립트템플릿 설정
똑같이 따라했는데 템플릿이 변경되지 않습니다 뭐가 문제일까요? 혹시나 해서 관리자 권한 메모장 실행해서 확인해봐도 변경된 걸로 확인되는데 스크립트를 만들어보면 변경되기 전으로 나옵니다