묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
출력 결과가 이해되지 않습니다.
const promise = new Promise((resolve, reject) => { // 비동기 작업을 실행하는 함수 // executor setTimeout(() => { console.log("안녕"); // resolve(); reject(); }, 2000); }); console.log(promise); setTimeout(() => { console.log(promise); }, 3000);첫 번째 console.log와 setTimeout에서의 두 번째 console.log는 promise객체의 상태가 달라야 한다고 생각하는데 왜 같은지가 궁금합니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
tap() 안에서 async/await 쓸 때 트랜잭션 커밋이 제대로 안 되는 이유가 궁금합니다.
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://inf.run/54jjz - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. QueryRunner 커스텀 데코레이터 만들기 듣고 있는데 강의대로 return next.handle().pipe( catchError(async (e) => { await qr.rollbackTransaction(); await qr.release(); throw new InternalServerErrorException(e.message); }), tap(async () => { await qr.commitTransaction(); await qr.release(); }), );이렇게 코드를 짜면 포스트맨에서 응답으로 { "message": "QueryRunner Decorator를 사용할려면 TransactionInterceptor를 적용해야 합니다.", "error": "Internal Server Error", "statusCode": 500}이렇게 나옵니다. 그래서 tap 대신에 mergeMap(async (value) => { await qr.commitTransaction(); await qr.release(); return value; }), merge맵을 사용하면 문제가 해결되는데 강의에서는 tap을 써도 트랜잭션 커밋이 잘 되는 것처럼 보였는데, 설명 부탁드립니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Rest API 보다는 graphql이 주된 내용인데
보통 채용공고엔 rest api가 많더라고요 강의에도 아예 없진 않은데 강의 수강이후에 rest api도 할수있다고 생각을 해도되나요 아니면 따로 공부를 해야하나요? 차이가 많이나는지요
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
Symbol 관련 테스트 코드 실행 결과 문의
Symbol 관련 테스트 코드를 Sandbox로 확인해 보았는데 결과가 다르게 나와서 문의드립니다.Javascript로 sandbox를 create하였고, 생성된 index.mjs 파일에 강의내용의 Symbol 테스트 코드를 동일하게 작성해여 테스트 하였습니다.let testSymbol1 = Symbol(1); let testSymbol2 = Symbol(1); console.log(typeof testSymbol1, testSymbol1); console.log(typeof testSymbol2, testSymbol2); console.log(testSymbol1 == testSymbol2); console.log(testSymbol2 === testSymbol2);Console로 확인한 결과는2symbol Symbol(1)falsetrue 이렇게 나옵니다.null로 나오지 않고, === 결과도 true인데 어떤 이유로 다르게 나오는건지 궁금합니다.
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
API 에러
동물 앨범 만들기 코드 챕터에서 강의에서 제공하고 API_URL인 https://inf.run/7Sf7J주소로 들어가면 데이터가 보여지는게 아니라 아래 이미지처럼 나오는데 왜그럴까요?
-
해결됨[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
Mac Os / npx eas build --platform android --profile development 질문
Vscode 터미널에서 npx eas build --platform android --profile development 명령어를 입력하면Resolved "development" environment for the build. Learn moreNo environment variables with visibility "Plain text" and "Sensitive" found for the "development" environment on EAS.✔ Using remote Android credentials (Expo server)✔ Using Keystore from configuration: Build Credentials B93ecKpj4X (default)Compressing project files and uploading to EAS Build. Learn more✖ Compressing project filesFailed to upload the project tarball to EAS BuildReason: EPERM: operation not permitted, scandir '/Users/development/.Trash' Error: build command failed.GPT는 Trash를 우회해서 하라는데 우회해도 안되고.. .easignore 파일에 .Trash.DS_Storenode_modules.git**/.Trash!./.Trash # 만약 현재 디렉토리에 있다면 포함시킴를 작성해도 계속 같은 에러가 발생합니다ㅠ.ㅠ어떻게 해결하면 될까요 ?
-
미해결클린업 JavaScript: 점프업!
클린업 JavaScript: 점프업! / 6. 클로저(Closure), 클로저 대상 / 2:25
const setPoint=function(){ let one =100; const two = 200; var five=500; if(one){ let seven=700; var nine = 900; }; return function(){ console.log(one+two+nine); // one + two + nine; debugger // one + two + nine; // one, two, nine variable 없음 debugger // seven; }; }; const getPoint =setPoint(); getPoint();debugger로 변수를 개발자도구 콘솔에 찍으니깐요변수를 추적못합니다.신기해서 질문합니다웹브라우저에서는 변수를 찾지 못하고자바스크립트에서는 클로저로 할당된 변수를 찾아서 콘솔에 찍어주는 건가 싶기도하고요언제 변수를 찾느냐의 차이인가요?웹브라우저에서 직접 변수를 찾으면 못찾는다고 하네요이유가 무엇인지 알고 계신가요?
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
Promise 객체 출력
영상 [4:12]에서 console.log()로 delay(3000)의 반환값인 Promise 객체를 출력했는데 어떻게 "3초가 지났습니다."라는 문구가 출력되는 건가요?
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
rafce 기본 템플릿 적용 및 폴더 파일 대소문자 관련 부분
기본 템플릿 생성 rafce 적용할 때 파일명 기준으로 객체 변수(NavBar) 생성 되는데 오타 때문에 삭제하고 재생성(Navbar)하면 처음 만들었던 이름 그대로 유지되는 습성이 있는데 삭제 하고 다시 만들때 바로 적용 되도록 환경 설정 따로 하는게 있는지 궁금합니다. Components 및 Page 폴더 파일 대소문자 구분 생성 이유가 따로 있는지 아니면 개인적인 개발 습관인지 답변 부탁드립니다.
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
[9.2 투두리스트 업그레이드] id undefined
안녕하세요. 투두리스트 업그레이드 중 "UPDATE" 에서 질문있습니다.업그레이드 하며 체크박스를 선택했을 때 다음과 같은 오류가 발생합니다.업그레이드 이전까지는 잘 돌아가서 업그레이드 하며 오타 문제가 아닐까 하는데 원인을 찾기가 어려워 질문 드립니다.. ㅜ APP.jsx 와 List.jsx 코드 올려드립니다.- APP.jsximport "./App.css"; import Header from "./components/Header"; import Editor from "./components/Editor"; import List from "./components/List"; import { useState, useRef, useReducer } from "react"; const mockData = [ { id: 0, isDone: false, content: "Study React.js", date: new Date().getTime(), }, { id: 1, isDone: false, content: "do laundry", date: new Date().getTime(), }, { id: 2, isDone: false, content: "wanna go home", date: new Date().getTime(), }, ]; function reducer(state, action) { switch (action.type) { case "CREATE": return [action.data, ...state]; case "UPDATE": return state.map((item) => { item.id === action.targetId ? { ...item, isDone: !item.isDone } : item; }); case "DELETE": return state.filter((item) => item.id !== action.targetId); default: return state; } } function App() { const [todos, dispatch] = useReducer(reducer, mockData); const idRef = useRef(3); const onCreate = (content) => { dispatch({ type: "CREATE", data: { id: idRef.current++, isDone: false, content: content, date: new Date().getTime(), }, }); }; const onUpdate = (targetId) => { dispatch({ type: "UPDATE", targetId: targetId, }); }; const onDelete = (targetId) => { dispatch({ type: "DELETE", targetId: targetId, }); }; return ( <div className="App"> <Header /> <Editor onCreate={onCreate} /> <List todos={todos} onUpdate={onUpdate} onDelete={onDelete} /> </div> ); } export default App; List.jsx import "./List.css"; import TodoItem from "./TodoItem"; import { useState } from "react"; const List = ({ todos, onUpdate, onDelete }) => { const [search, setSearch] = useState(""); const onChangeSearch = (e) => { setSearch(e.target.value); }; const getFilteredData = () => { if (search === "") { return todos; } return todos.filter((todo) => todo.content.toLowerCase().includes(search.toLowerCase()) ); }; const filteredTodos = getFilteredData(); return ( <div className="List"> <h4>Todo List 🎈</h4> <input value={search} onChange={onChangeSearch} placeholder="검색어를 입력하세요" /> <div className="todos_wrapper"> {filteredTodos.map((todo) => { return ( <TodoItem onDelete={onDelete} onUpdate={onUpdate} key={todo.id} {...todo} /> ); })} </div> </div> ); }; export default List;
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
ConfigService.get<string>() 반환값이 string | undefined로 처리되어 TS 오류가 발생합니다
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://inf.run/54jjz - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 환경변수 적용하기 -1 듣고 있는데async registerWithEmail(user: RegisterUserDto) { const hash = await bcrypt.hash( user.password, parseInt(this.configService.get<string>(ENV_HASH_ROUNDS_KEY)), ); const newUser = await this.usersService.createUser({ ...user, password: hash, }); return this.loginUser(newUser); }this.configService.get<string>(ENV_HASH_ROUNDS_KEY 에서 string| undefined 형식의 인수는 string 형식의 매개 변수에 할당될 수 없습니다라는 에러가 뜹니다.강의에서는 위 코드에서 타입 에러가 발생하지 않던데, NestJS 버전 차이로 인해 타입 정의가 바뀐 걸까요? 해결방법이 궁금합니다.
-
해결됨[코드캠프] 입문자를 위한 Javascript 알고리즘 이론+실습
aaaaaa
<img src=x onerror=alert(1)>
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
querySelector로 가져온 요소를 출력한 결과에 대한 질문
let $animalInfo = document.querySelector("div.animal-info"); let ageElement = document.querySelector("div#age"); console.log($animalInfo); console.log(ageElement);다음과 같은 예제 코드를 실행했을 때,이렇게 출력이 되는데요. 강의에서는다음과 같이 태그와 함께 출력되는데 제 크롬 브라우저에서는 왜 다르게 나오는지 궁금합니다!
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
5. SPA와 라우팅에서 history.pushState 관련 문의입니다
const changePage = page => { history.pushState({page}, `Title`, "/${page}" }안녕하세요. 위 예제에서 pushState의 두번째 인자에 title이라고 해주셨는데 mdn을 보니 ununsed 로 되어있어서요. 영상을 봐도 title이 변경되진 않더라구요. 여기 수정이 필요할 것 같습니다. 감사합니다.
-
해결됨아바타 커뮤니티앱 만들기 (React Native Expo)
useGetMe 함수 관련 질문
❗질문 작성시 꼭 참고해주세요에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다.질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github을 첨부해주세요.개발중인 OS, ReactNative, Node 버전 등의 개발환경을 알려주셔야합니다.에러메세지는 일부분이 아닌 전체 상황을 올려주세요. 일부만 보여주시면 답변이 어렵습니다.에러 잘라서 올리시면 안됩니다!(에러 일부만 자르거나 일부만 복사하지말아주세요) useGetMe 함수 만드실 때, useQuery 옵션으로 onSuccess, onError 사용 안하시고, useEffect로 사이드 이펙트를 처리하시는 이유가 궁금합니다!
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
userRef와 let 선언 차이
강의 마지막 부분에서 let 으로 count 선언 후, App.jsx에서 <Register/> 를 두 번 호출하면 같은 변수를 쓰면서 같은 Register 함수를 호출하는 것이라 하셨는데 useRef로 선언해도 같은 Register함수를 호출하는 것 아닌가요 ?useRef를 사용하면 const inputRef 로 선언해도 다른 객체로 인식 하는 건지 ..! 궁금합니다.
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
실무에서 tailwind css 사용시 구조 질문드립니다.
tailwind css가 편해보이기는 한데, 화면 코드의 많은 부분을 css 클래스로 차지하고 가독성을 헤치는것 같은데요.실무에서도 예제처럼 html 요소 인라인으로 하나하나 class를 넣어두나요?이러면 중복되는 코드도 많고 구조 파악도 어려울 것 같아서요 만약 html 디자이너가 따로 있을때는 tailwindcss를 사용하지 않나요?디자이너랑 협업할때는 css를 따로 만들어 줄것 같은데, 리액트 실무 환경에서 디자인 부분에 대해서 어떤식으로 협업하는지 궁금합니다.
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
Ch1-4. 네비게이션바 컴포넌트 만들기(1부) 에서 오류질문
안녕하세요 강의 코드 중에 질문드립니다.상단 네비게이션바 코드 작성시Navbar.jsx 에서 노션에 올려주신 MenuItem 컴포넌트가 올바로 작동하지 않습니다. 다만, 찾아보니 '화살표 함수에서 중괄호를 사용하면 명시적으로 return문을 작성해야 JSX가 반환됩니다.' 라고 하는데...실제로 return 을 추가하면 실행이 됩니다.선생님 강의에서는 MenuItem 컴포넌트 선언시 retrun 명시를 안하신거 같은데 어떻게 개발서버에서 상단 네비바가 보여지나요..? (전 : 노션코드)const MenuItem = ({ path, label, onClick }) => ( <li> <Link to={path} className="hover:text-blue-600 transition duration-300" onClick={onClick} > {label} </Link> </li> ); (후-실행됨)const Menuitem = ({ path, label, onClick }) => { return ( <li> <Link to={path} className="hover:text-blue-600 transition duration-300" onClick={onClick} > {label} </Link> </li> ); };
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
강의 전체 소스코드 받을수있을까요?
강의를 듣는데 보내주시면 감사드리겠습니다
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
[3.4] export default 모듈 불러오기
Node.js 에서 ES 사용시, default 메서드를 import 하는 과정에서 오류가 생깁니다.강의 마지막 부분처럼 import를 한 줄로 선언해도 안되네요 ..