묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결핸즈온 리액트 네이티브
nanoid 생성 에러
안녕하세요? nanoid를 생성할 때 에러가 발생합니다.import "react-native-get-random-values"; import { nanoid } from "nanoid";를 이용하여 nanoid를 생성할 때 1번째 까지는 정상적으로 생성되나 2번째부터const id = nanoid();위의 생성 부분에서 ERROR TypeError: undefined is not a function, js engine: hermes 에러가 발생합니다.대신 나노id를 non-secure로 생성하면 계속해서 생성해도 문제 없이 생성됩니다. 버전은 아래와 같습니다만 react-native-get-random-values는 1.9.0 버전으로변경해도 동일한 문제가 발생합니다.버전 정보 "dependencies": { "@react-navigation/native": "^6.1.6", "@react-navigation/native-stack": "^6.9.12", "expo": "~48.0.15", "expo-status-bar": "~1.4.4", "expo-updates": "~0.16.4", "nanoid": "^4.0.2", "prop-types": "^15.8.1", "react": "18.2.0", "react-native": "0.71.8", "react-native-get-random-values": "~1.8.0", "react-native-safe-area-context": "4.5.0", "react-native-screens": "~3.20.0" },이 문제가 반드시 짚고 넘어가야하는 부분인가요? 별로 중요하지 않으면 그냥 비보안 모드나 uuid를 사용하는걸로 넘어가고싶은데 답변 부탁드립니다.감사합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
파이썬 알고리즘 코딩테스트 입문 강의와 차이점이 어떤게 있나요?
파이썬 알고리즘 코딩테스트 입문 강의와 차이점이 어떤게 있나요? 문제 차이나 난이도 혹은 업데이트된 부분이 있을까요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
refreshToken 활용한 로그인 로직에 대한 궁금증
안녕하세요. jwt를 발급할 때 refresh와 aceess 토큰에 담긴 페이로드는 동일할까요 ?accessToken의 탈취 당했을 때를 대비해서 accessToken의 만료기한 을 짧게두고 refreshToken의 만료기한을 길게 두는 것으로 알고 있는데,refreshToken이 탈취당했을 때 refreshToken으로도 사이트에 인가된다면 굳이 이 두개를 나누는 의미가 없을 것 같은데,,현업에서는 어떠한 식으로 이뤄지는지 궁금합니다..
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
왜 저는 todoItem.item 하면 값이 안나오는걸까요?
TodoList.vue코드<template><div><ul><!-- <li v-for="(todoItem, index) in todoItems" v-bind:key="todoItem.item" class="shadow">{{todoItem}}<i class="checkBtn fa-solid fa-check" v-bind:class="{checkBtnCompleted: todoItem.completed}" v-on:click="toggleComplete(todoItem, index)"></i>v-bind:class="{A:a}" A클래스의 a속성이 false면 안나타남, true면 나타남 --><!-- <span v-bind:class="{textCompleted: todoItem.completed}">{{ todoItem.item }}</span><span class="removeBtn" v-on:click="removeTodo(todoItem, index)"><i class="fa-solid fa-trash-can"></i></span></li>> --><li v-for="(todoItem, index) in todoItems" v-bind:key="todoItem" class="shadow"><i class="checkBtn fa-solid fa-check" v-bind:class="{ checkBtnCompleted: todoItem.completed }" v-on:click="toggleComplete(todoItem, index)"></i>{{ todoItem.item }} {{ index }}<!-- //v-bind:class="{A:a}" A클래스의 a속성이 false면 안나타남, true면 나타남 --><span v-bind:class="{ textCompleted: todoItem.completed }">{{ todoItem}}</span><span class="removeBtn" v-on:click="removeTodo"><i class="fa-solid fa-trash-can"></i></span></li></ul></div></template> <script>export default {data: function () {return {todoItems: []}},methods: {removeTodo: function (todoItem, index) {console.log('remove items');console.log(todoItem, index);localStorage.removeItem(todoItem);this.todoItems.splice(index, 1);},toggleComplete: function (todoItem, index) {todoItem.completed = !todoItem.completed;console.log(index);console.log(todoItem.item);//로컬스토리지 갱신localStorage.removeItem(todoItem.item);localStorage.setItem(todoItem.item, JSON.stringify(todoItem));}},created: function () {if (localStorage.length > 0) {for (var i = 0; i < localStorage.length; i++) {if (localStorage.key(i) !== 'loglevel:webpack-dev-server') {console.log(JSON.parse(localStorage.getItem(localStorage.key(i))));this.todoItems.push(localStorage.key(i));}}}}}</script> <style scoped>ul {list-style-type: none;padding-left: 0px;margin-top: 0;text-align: left;}li {display: flex;min-height: 50px;height: 50px;line-height: 50px;margin: 0.5rem 0;padding: 0 0.9rem;background: white;border-radius: 5px;}.removeBtn {margin-left: auto;color: #de4343;}.checkBtn {line-height: 45px;color: #62acde;margin-right: 5px;}.checkBtnCompleted {color: #b3adad;}.textCompleted {text-decoration: line-through;color: #b3adad;}</style> TodoInput.vue코드<template> <div class="inputBox shadow"> <input type= "text" v-model="todoItems" v-on:keyup.enter="addTodo"> <span class="addContainer" v-on:click="addTodo"> <i class="fas fa-plus addBBtn"></i> </span> </div> </template> <script> export default { data: function(){ return{ todoItems: "" } }, methods:{ addTodo: function(){ if(this.todoItems !== ''){ //저장하는 로직 //localStorage.setItem(key, value); //localStorage.setItem(this.newTodoItem, this.newTodoItem); var obj = {completed: false, item: this.todoItems}; //localStorage.setItem(this.newTodoItem,obj); localStorage.setItem(this.todoItems, JSON.stringify(obj)); //obj 객체 > string화 this.clearInput(); } }, clearInput: function(){ this.todoItems = ''; } } } </script> <style scoped> input:focus{ outline: none; } .inputBox { background: white; height: 50px; line-height: 50px; border-radius: 5px; } .inputBox input { border-style: none; font-size: 0.9rem; } .addContainer { float: right; background: linear-gradient(to right, #6478FB, #8763FB); display: block; width: 3rem; border-radius: 0 5px 5px 0; } .addBtn { color: white; vertical-align: middle; } </style>
-
미해결
[인프런x코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스 로그인 기능
안녕하세요 강의 결제 전 궁금한 점이 있어 질문 드립니다 카카오 로그인 이나 네이버 로그인 기능 강의는 없는 걸 까요?
-
미해결운영체제 공룡책 강의
1.운영체제가 뭐길래 7분 58초 질문이요
1.운영체제가 뭐길래 에서 7분58초에 1Mb를 2의 1024승이라고 말씀하셨는데, 찾아보니 1Kb가 2의 1024승 이던데요... 제가 잘못찾은걸까요?
-
미해결Vue.js + TypeScript 완벽 가이드
두번째 프로젝트 권한 요청 드립니다.
깃헙 계정 : hjyoo.dev@gmail.comusername: hyunjiyoo 입니다.
-
미해결스프링 부트 - 핵심 원리와 활용
스프링부트 버전 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 영한님! 이번 강의에서 프로젝트 생성하실 때 "스프링 부트 3.x 대 이상으로 하셔야 합니다" 라고 말씀해주셨는데 2.x대 버전이 아닌 3.x 대로 해야하는 특별한 이유가 있을까요~? 3.x 대의 업데이트에 대한 내용은 공식문서와 많은 블로그에 나와있어서 확인을 했는데 혹시 강의에 있어서 특별한 이유가 있는지 궁금합니다~!
-
미해결팝스타 공식 뮤비 제작 & 유튜브 2천만 뷰 크리에이터의 애니메이트 X 이모티콘 클래스
이미지가 겹쳐 보여요
복습하다보니 캐릭터 뒷부분에 연한색으로 캐릭터가 겹치는데 왜 그럴까요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Xilinx Zynq FSBL 방법에 대해서 궁금합니다.
보드로 맛비님 강의도 듣고, 실습 해보던 중에Zynq FSBL(First Stage Bootloader) 방법이 있더라구요.이 방법과 강의에서 사용하는 방법이 어떻게 다른지,Zybo Z7-10 보드로도 가능한 것인지 궁금합니다!
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
HTTP 메시지 전송 그림 질문
그림에서 웹 브라우저가 HTTP 메시지를 생성한다고 할때 클라이언트가 서버를 치게 될 때를 말씀하시는게 맞을까요??SOCKET 라이브러리를 통해 전달 부분에서 A : TCP/IP 연결 한다는 말씀을 하셨는데 그것은 패킷 그림과 별도로 서버와 가상의 연결을 한다는 말씀이 맞을까요?? ((추측) 이때도 TCP/IP 패킷을 전달하는데 영상에 그려진 패킷과는 다른 패킷을 전달하는게 맞을까요? 맞다면 이 TCP/IP 패킷은 어떤 정보를 담아서 전달하는건지 간단하게 궁금합니다.) (즉, SOCKET 라이브러리에 요청(서버) IP,PORT 정보가 있기 때문에 패킷 그림과 별도로 해당 IP, PORT에 사전에 3 hand shaking을 하는 것이 맞을까요??)2.번이 맞다면 사전의 3hand-shaking을 통한 TCP/IP패킷 전달을 통해 먼저 가상의 연결을 한 다음 웹 브라우저 HTTP 메세지 정보 패킷 + OS에서 해당 TCP/IP 패킷을 포함 시켜서 해당 서버로 보낸다는 말씀이 맞을까요??
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
d 1 레이아웃 연습중에 궁금한것이 있어서 질문 남깁니다.
<!DOCTYPE html><html lang="ko"><head><meta charset="UTF-8"><title>D 타입 연습</title><link rel="stylesheet" href="css/style.css"></head><body><div class="container"><div class="main-content"><div class="left"><header><div class="header-logo"></div><div class="navi"></div><div class="spot-menu"></div></header></div><div class="right"><div class="slide"><div class="slide-image"></div><div class="slide-banner"></div></div><div class="items"><div class="shorcut"></div><div class="news-galley"></div></div></div></div><footer><div class="footer-logo"></div><div class="cpoyright"></div><div class="sns"></div></footer></div> <script src="script/jquery-1.12.4.js"></script> <script src="script/custom.js"></script></body></html>ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ@charset "utf-8";body { background-color:#fff; color:#000; margin:0;}a { text-decoration:none; color:#000;}.container {}.main-content { display:flex;}.left { width:200px; border:1px solid #000;}.right { flex:1; border:1px solid red;}header {}.header-logo { height: 100px; border:1px solid red;}.navi { height:400px; border:1px solid #000;}.spot-menu { height: 50px; border:1px solid red;}.slide { height:400px;}.slide-image { border:1px solid green; height:inherit;}.slide-banner { width:150px; height: 300px; border: 1px solid red; position:absolute; top:0; right:0;}.items {}.shortcut { height:200px; border: 5px solid gold;}.news-gallery { height:250px; border:1px solid blue;}footer { display: flex;}footer > div { border:1px solid #000; height:100px;}.footer-logo { width: 200px;}.copyright { flex:1;}.sns { width:300px;}
-
미해결만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)
전체 예제 소스좀 올려주세요
실무 vue nuxt 사용 프론트 개발자입니다.. 다른건 다이해가 가는데 firebase admin 이부분 좀 소스코드예시를 파일로 올려주시면 안될까요? 아니면 깃허브에서 전체 예제 소스를 다운받을 수 있도록 해주시면 감사하겠습니다..
-
미해결
next.js의 "_buildmanifest.js" 파일의 경로 유출(?)은 괜찮은 걸까요?
소스코드에서 _buildmanifest.js에 들어가보면 모든 경로가 표시되던데이러면 관리자 페이지의 모든 경로도 볼 수 있어서 어느정도 앱 규모(?)를 알 수 있다는 건데이거 보안적으로 괜찮은걸까요?관리자 페이지는 따로 만들어야 하는 건지 아니면 slug 경로를 이용해서 안 보이게 해야하는 건지 갑자기 머리가 복잡해지네요😂다른 분들은 어떻게 하시는지 궁금합니다.
-
해결됨배민도 사용한다고? 환경설정 없는 백엔드 노코드 개발!
result 값 이모지 입력할 경우 save 에러
안녕하세요.5강 따라하던 중 save 에러 생겨 문의 남깁니다.테스트 해 보니 이모지를 적을 경우 생기는 에러인 것 같네요.이모지는 string으로 처리가 안되는건지,이모지를 처리하려면 어떻게 해야하는 것인지 궁금합니다. An unexpected error has occurred. Please try again later. (500002)
-
해결됨[코드캠프] 강력한 CSS
제가 만든 강의 자료와 코드 - github 업로드에 대해
안녕하세요.notion으로 저만의 강의 노트를 만들어서 정리한 자료가 있습니다. 강의 내용이 구체적으로 포함되어있고 선생님의 강의 자료를 참고했습니다. 이 자료의 링크와 실습 코드를 제 github에 업로드하려고 하는데 출처와 강의 정보를 명시하여 업로드해도 될까요?github에 올린다고 볼 사람도 없는 건 둘째치고 혹시나 남이 본다고 하더라도 홍보 효과도 될 거 같아 좋을 거 같습니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
14-02 프로시저 오류
안녕하세요. 프로시저를 만든는 도중 에러가 발생해서 질문드립니다.똑같이 작성했는데도 에러가 나오네요. 세미콜론도 여러번 확인했는데 혹시 오류가 나는 다른 이유가 있을까요??
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
6-2 Parameter 강의에서 질문이 있습니다
public static void powerByExP(int number, int exponent) {int result = 1;for(int i = 0; i < exponent; i++) {result *= number;}에서 result*=number; 식에대해서 이해가 안됩니다기존에는 for문을 쓰면 i 값이 기재가 되어야 i값이 적용이 되는걸로 알고있는데 result = result * number * ( i ) 인건가요??? 숫자를 대입하면 1 = 1*2 로 2가 나올것같은데 2^3 인 8이 나오는게 이해가 안됩니다.. 제가 for문에 대해서 제대로 이해를 못하고있는걸까요? 위식에서는 i값을 넣은곳이 없는데 어떻게 반복이 되는건지 잘 모르겠습니다...
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
빌드 도구를 Gradle이 아닌 IntelliJ로 했을 때의 인식 오류(해결)
안녕하세요.강의 코드를 작성하던 도중 QUser 클래스가 UserRepositoryCustomImpl에서 인식이 되지 않는 오류가 발생하였습니다. 빌드도 다시 해보고, build 파일을 삭제하고 다시 빌드 해보고, 캐시도 삭제해봤는데도 인식이 안되길래, 혹시나 해서 설정에서 '다음을 사용하여 빌드 및 실행' 부분을 Gradle로 바꾸어주니 바로 인식이 되더라구요. 혹시나 저와 같은 상황에서 삽질하고 계신 분들을 위해 글 남깁니다 ㅎㅎ자세히 다시 읽어보니 일부 플러그인을 사용 시에 제대로 빌드가 되지 않을 수 있다고 적혀있네요..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 에러
MemberServiceIntegrationTest 회원가입 실행 했더니00:48:24.902 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [hello.hellospring.service.MemberServiceIntegrationTest]: MemberServiceIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.00:48:24.954 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration hello.hellospring.HelloSpringApplication for test class hello.hellospring.service.MemberServiceIntegrationTestJava HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended에러가 발생하는데 어떻게 해결을 해야 할지 모르겠습니다.spring boot version : 3.1.0 입니다.dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test'}이렇게 설정되어있습니다.