묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
sequelize를 사용했는데 다른 방법으로 해야 되나요??
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 app_backend | db connection error ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:3304 app_backend | at ConnectionManager.connect (/app/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:92:17) app_backend | at process.processTicksAndRejections (node:internal/process/task_queues:95:5) app_backend | at async ConnectionManager._connect (/app/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:220:24) app_backend | at async /app/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:174:32 app_backend | at async ConnectionManager.getConnection (/app/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:197:7) app_backend | at async /app/node_modules/sequelize/lib/sequelize.js:301:26 app_backend | at async MySQLQueryInterface.tableExists (/app/node_modules/sequelize/lib/dialects/abstract/query-interface.js:102:17) app_backend | at async List.sync (/app/node_modules/sequelize/lib/model.js:939:21) app_backend | at async Sequelize.sync (/app/node_modules/sequelize/lib/sequelize.js:373:9) { app_backend | parent: Error: connect ECONNREFUSED 127.0.0.1:3304 app_backend | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1229:16) { app_backend | errno: -111, app_backend | code: 'ECONNREFUSED', app_backend | syscall: 'connect', app_backend | address: '127.0.0.1', app_backend | port: 3304, app_backend | fatal: true app_backend | }, app_backend | original: Error: connect ECONNREFUSED 127.0.0.1:3304 app_backend | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1229:16) { app_backend | errno: -111, app_backend | code: 'ECONNREFUSED', app_backend | syscall: 'connect', app_backend | address: '127.0.0.1', app_backend | port: 3304, app_backend | fatal: true app_backend | } app_backend | } Colored by Color Scripter cs
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
이번강의 + 전 목차에서 다루신 웹브라우저 동작 과정에 관한 질문입니다.
강사님 안녕하세요. if(window.scrollY !== 0){ backToTop.classList.add('show') }else{ backToTop.classList.remove('show') } 이번 강의의 4분 50초에 페이지 스크롤 관련 이벤트를 코딩하시면서, 이렇게 코드를 짜기 전 CSS에서 먼저 show라는 클래스를 작업해주셨는데, 여기서 궁금한 점이 생겼습니다. 저는 CSS가 바로 떠오르지 않아서, 전부 JS로 스크롤 이벤트를 작성했는데, 강사님께서 'JS로 이 스크롤 이벤트를 처리하면 조금 장황하다'라고 말씀 하신걸 듣고, 이 말은 1. CSS로 만들 수 있는 것을 최대한 생각한 후 ->JS로 작업한다. 2.전 강의(DOM,BOM강의)에서 다루셨던 웹브라우저 동작과정과의 연관성? (CSSOM tree를 생성하는 속도와 render tree에서 js엔진에서 처리되는 속도의 차이? or 다른 이유?)) => 정확한 질문이 아니라 죄송합니다ㅠ 에 관련되었는지 궁금했습니다. 만약 1이 맞다면 CSS를 조금 더 집중해서 봐야할까요..? 독학을 하는 중이라 방향성에 대한 고민을 많이 하게되네요 ++이제 강의가 거의 끝에 다왔는데, 리액트나 뷰같은 프레임워크를 다루면서도 이 강의를 듣고 JS에 대해 무지했다는 사실을 여실히 느꼈습니다. 처음 듣는 분들은 모르실 수도 있지만, 어느정도 코딩을 하다가 와서 가볍게 복습차원으로 들으려고 했던 저는 몇 대 얻어맞고 갑니다.. 너무 질 좋고, 핵심에 대해서 정확하게 짚어주셔서 하나하나 넘길게 없는 강의였습니다. 꽤나 시간이 지났지만 감사하다는 말씀드립니다. 강의 때 하신 말처럼 ' 합리적인 분들과 좋은 컨텐츠가 지속될 수 있는 선순환 시스템을 지향합니다' 라는 말을 느낄수 있었습니다.
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
kubernets 클러스터 구축
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 쿠버네티스 클러스터 구축시 네트워크는 항상 같은 대역에 있어야 하나요? 서로 다른 네트워크의 클러스터 구축할 때 네트워크 설정에 대해 궁금합니다. gcp에서 vm instance 하나를 생성한 후 k8s 설치시 kubeadm init을 하면 내부 ip로 되며 다른 곳에서 접근을 하지 못하고 외부 ip로 init하면 init이 동작하지 않네요.. 답변 주시면 감사합니다.
-
미해결
Whitelabel Error Page 404 에러가 납니다 해결 부탁드립니다
[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 강의를 듣고 있고 servlet 관련 사항을 공부 중입니다. 선생님은 맥OS를 이용하고 저는 윈도우여서 이클립스와 롬북, 스프링부트를 자체적으로 설치하여 공부 하였습니다. 19강 HttpServletResponse - 기본 사용법 20강 HttpServletResponse - HTTP 응답 데이터-단순 텍스트, HTML 공부 중입니다. 선생님이 입력한 사항을 동일하게 입력 후 실행 하였으나(복사도 해보았습니다) 실행되지 않고 오류만 발생됩니다. 화면을 못찾는다고 하는데 선생님 화면에서는 나오고 있습니다. 오류좀 해결 부탁드립니다. -- 오류로그 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed Jun 22 18:26:56 KST 2022 There was an unexpected error (type=Not Found, status=404). -- 문제예제 @WebServlet(name = "responseHtmlServlet", urlPatterns = "/response-html") public class ResponseHtmlServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //Content-Type: text/html;charset=utf-8 response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter writer = response.getWriter(); writer.println("<html>"); writer.println("<body>"); writer.println(" <div>안녕?</div>"); writer.println("</body>"); writer.println("</html>"); } }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
질문있습니다!
Team team = em.find(Team.class, "team1"); List<Member> members = team.getMembers(); for (Member member:members){ System.out.println("member.getName() = " + member.getName()); } 지금 현재 제 데이터 베이스에 team1으로 등록된 member들이 3명이 있는데 갑자기 궁금한게 생겼습니다. Team team = em.find(Team.class, "team1") --> 이 부분에서 이 한 줄 코드만으로 team1에 해당하는 모든 멤버들을 찾아와서 변수 team에 담기는건가요? 그래서 다음 줄 코드에서 team.getMembers()를 할 수 있는건가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
질문이 있습니다!
안녕하세요 제로초님 노드버드 강의 이후 참고해서 타입스크립트 적용해서 프로젝트를 하는 중인데 도저히 뭐가 문제인지 알 수가 없어 질문드립니다.... 먼저 로그인 폼에서 const onLogin = useCallback(() => { console.log("로그인폼"); if (emailError || passwordError) { return; } return dispatch(loginRequest({ email, password })); }, [email, password, emailError, passwordError]); 로그인 액션을 디스패치합니다. import { UserType } from "../reducer/rootReducer"; import { LOGIN_REQUEST, LOGIN_SUCCESS, LOGIN_FAILURE } from "./types"; export const loginRequest = (data: UserType) => { console.log("로그인 액션 데이터는 ", data); return { type: LOGIN_REQUEST, data, }; }; export const loginSuccess = (data: UserType) => ({ type: LOGIN_SUCCESS, data, }); export const loginFailure = (error: string) => ({ type: LOGIN_FAILURE, data: error, }); export type Actions = | ReturnType<typeof loginRequest> | ReturnType<typeof loginSuccess> | ReturnType<typeof loginFailure>; export const LOGIN_REQUEST = "LOGIN_REQUEST" as const; export const LOGIN_SUCCESS = "LOGIN_SUCCESS" as const; export const LOGIN_FAILURE = "LOGIN_FAILUREE" as const; 로그인 액션에서도 콘솔을 찍고 case LOGIN_REQUEST: console.log("리듀서 액션은 ", action); return { ...state, loginRoading: true, loginDone: false, loginError: null, }; 그리고 리듀서에서도 콘솔 찍고 function* login(action: Actions) { console.log("사가 액션은 ", action); debugger; const result = (yield call(login, action.data)) as Actions; console.log("result", result); } function* watchLogin() { yield takeLatest(LOGIN_REQUEST, login); } export default function* rootSaga() { yield all([fork(watchLogin)]); } 사가에서도 콘솔을 찍어봤습니다. 그런데 사가가 3번이나 호출이 됩니다... 다른 부분에서 디스패치를 더 하지도 않았는데 왜 그러는지 모르겠습니다ㅠㅠㅠ 심지어 두번째는 액션 타입은 보내지도 않고 데이터만 보내고 결국 마지막에 undefined가 되어 API 요청 보내기도 전에 에러가 납니다. 검색해도 나오질 않고 계속 콘솔 찍어보며 확인하다 답이 없어 질문드립니다...!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
스킬을 코루틴으로 구현하는 이유
스킬을 코루틴으로 구현하는 이유가 무엇인가요?? 거리가 되어서(특정 조건을 만족할 때) 그냥 스킬함수를 쓰는것과 스킬함수를 코루틴으로 구현한것의 성능적인 차이점을 잘 이해를 못하겠습니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
카드가 아닌 antd Table을 이용해서 하려는데 도와주세요ㅠㅠ
안녕하세요, 선생님. 선생님 수업 기본강의부터 쇼핑몰만들기까지하여 여러번 수강중인 학생입니다. 천천히 너무 자세하게 알려주셔서 많은 도움이 되고 있습니다 :) 제가 이 수업을 들으면서 목표한게 있는데요, 회사의 재고장을 실시간으로 확인할 수 있도록 웹기만으로 만드는 것이었습니다. 그래서 선생님 수업들으면서 이것저것 응용하고 바꿔가며 만들고 있는데요~ 문제에 봉착했습니다 ㅠㅠ ANT Design 사용하여 Card사용을 하셨는데, 저는 Table을 사용하려고 하여 쭉 코드를 작성하였습니다. 총 업로드를 5개를 하였는데, 칸은 5개가 생겼는데 테이블 안에 내용은 보이지 않아서요 ㅠㅠ 어디가 잘못된 걸까요... 컨솔창 키면 정상적으로 상품정보가 랜딩페이지로 넘어오는데 표기가 안되고 있어요. 제가 작성한 코드는 아래와 같습니다. import React, { useEffect, useState } from 'react' import { FaCode } from "react-icons/fa"; import axios from "axios"; import { Card, Button, Col, Row, Table } from 'antd'; import { SketchOutlined } from '@ant-design/icons'; function LandingPage() { const [Products, setProducts] = useState ([]); useEffect(()=> { axios.post('/api/product/products') .then(response => { if (response.data.success) { setProducts(response.data.productInfo) } else { alert("상품을 가져오는데 실패하였습니다.") } }) }, []) const data = Products.map ((product, index) => ( [{ item: product.item, grade: product.grade, price: product.price, box: product.box, key: '1' }] )) const columns = [ { title: '품명', dataIndex: 'item', key:'key', render: item =>{ return <a>{item}</a> } }, { title: '등급', dataIndex: 'grade', key:'key' }, { title: '수량', dataIndex: 'box', key:'key' }, { title: '가격(원)', dataIndex: 'price', key:'key' } ] console.log('products', Products) return ( <div style={{ width: '75%', margin: '3rem auto' }}> <div style={{ textAlign: 'center' }}> <h2> 재고자료 <SketchOutlined /></h2> <h3>재고 LIST</h3> </div> {/* Filter */} {/* Search */} {/* Table */} <Table dataSource={data} columns={columns} /> <br /> <br /> <div style={{ display: 'flex', justifyContent: 'center' }}> <Button type="primary">See More</Button> </div> </div> ) } export default LandingPage 번거로우시겠지만, 알려주시면 너무 감사드리겠습니다ㅠㅠ
-
해결됨빅데이터 분석기사 시험 실기(Python)
라벨인코더 관련 문의드립니다!
안녕하세요. 선생님! 먼저, 좋은 강의로 시험 준비를 잘 할 수 있게 해주셔서 진심으로 감사합니다. 라벨인코더 관련 문의입니다. 우선 저는 비전공자로, 나와 있는 자료들로 공부를 하다보니, 아래의 질문이 엉망일 수도 있을 것 같아서 염려가 됩니다만, 아직 공부해나가는 중인 비전공자의 질문이라는 점을 너그럽게 이해해주시고, 답변 가능하시다면 부탁드립니다! from sklearn.preprocessing import LabelEncoder label = ['sex', 'embarked', 'class', 'who', 'adult_male', 'deck', 'embark_town', 'alone'] X_train[label] = X_train[label].apply(LabelEncoder().fit_transform) X_test[label] = X_test[label].apply(LabelEncoder().fit_transform) (1) test에도 fit을 하는 것이 맞는지 문의드립니다. (2) fit을 빼면 오류코드가 뜨는데, 어떻게 수정할 수 있을까요? (3) 해당 코드 외에, 라벨 인코더를 적용할 수 있는, 비전공자 수준에서 따라갈 수 있는 다른 코드가 있다면 공유가 가능하실까요? 관련해서 답변이 가능하시다면 부탁드리겠습니다! 덕분에 시험 준비를 잘 하고 있습니다. 다시한 번 감사드립니다!
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
질문 있습니다!
저와 같은 경우 8섹션 문제들을 보면 대부분이 브루투스 포스, 그리디, 정렬에 관한 문제라고 떠오르게 되는데 알려주신 대로 문제를 보고 딱 이진 트리를 활용한 문제다 라고 명확하게 인식할 수 있는 방법은 없을까요?
-
미해결
웹앱프로젝트의 현업의 기술과 스택이 궁금합니다,!
저는 현재 대학교3학년 컴퓨터공학과 재학중입니다 학교에서배우는 강의들로는 부족해 패컴,인프런 등 자바 코딩테스트 알고리즘공부를 집중적으로하고있습니다! 이번방학에는 웹앱프로젝트를 기획부터 배포까지 하려고 목표를 새웠습니다.! 웹앱 프로젝트를 할때 써야하는 툴과 활용할수있는 스택을이 어마어마하게 많은걸알고있지만 요즘 현업에서는 어떠한 툴과 스택을 이용하여 사이트를 만드는지 알고싶습니다.. ㅜ 그에 맞는 기술을 습득하여 현시대에 맞는 프로젝트하나를 만들고싶어서 기본적으로 쓰는 스택과 기술에 대해 알고있으신 고수님들은 도움부탁드리겠습니다 ( _ _ )
-
미해결앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해
8.LazyVar 코드에서 궁금한 점이 있습니다.
안녕하세요! 0.GCD - 8.LazyVar 코드 중 2) 시리얼큐+Sync로 해결(Thread-safe처리) 부분을 테스트 하다 궁금한 점이 생겨 글 남깁니다. 코드를 실행하면 다음과 같은 결과가 나옵니다. 이때, id 2가 1보다 먼저 나오는 경우가 있습니다. 대부분은 제대로 나오나 가끔 이런 식으로 순서가 바뀌어 나옵니다. 궁금한 점은 for문을 통해 돌렸기 때문에 id 2를 다루는 작업이 id 1을 다루는 작업보다 스레드에 더 늦게 배치될 것이라 예상이 되는데 시리얼 큐를 사용하는데 어떻게 먼저 나올 수 있는 건가요? 감사합니다.
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
constructoer 개념에 대해 질문드립니다.
class Person { constructor(name) { this.name = name; } introduce() { console.log(`Hello, my name is ${this.name}`); } } const otto = new Person('Otto'); otto.introduce(); 해당코드는 제가 생성자에 대해서 잘 이해할수 없어서 MDN문서의 constructor 부분의 예제를 긁어왔습니다. Person클래스를 만들고 그 안에는 constructor가 반드시 있어야하는데 저기서 생성된 생성자 constructor는 constructor라는 이름을 가지고 있고 이건 쓰는사람이 마음대로 바꿔쓸수 있는건가요 그리고 const로 선언된 otto는 Person이라는 인스턴스를 만들고 매개변수로 'Otto'를 넣으면 생성된 인스턴스 Person의 생성자 constructor의 매개변수로 상속되는것 같은데 otto.Introduce();로 호출하는거보면 생성자인지 함수인지 헷갈립니다. 여기서 super라는 개념까지 들어가면 이해가 너무 어렵습니다.. return 이라는 것도 함수안에서 선언된 파라미터가 함수 바깥으로 나올수 없으니까 쓰는것이다 이렇게 알고 있는데 제가 정확히 알고 있는게 맞나요? 지금 2강째인 객체지향 프로그래밍을 듣고있습니다.
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
M1 맥북에서 ML-Agent 설치시 문제
M1Max 맥북 프로 노트북에서 실습을 진행했습니다. 강의시 사용했는던 버전을 찾을수가 없어서 기간적으로 가장 가까운 버전을 설치하여 진행하였습니다. unity hub 최신설치(강좌와 같은 버전의 프로그램을 찾을수 없음) 2021.3.4f1 유니티 설치 ML-Agent는 각각 별도의 프로젝트에서 설치를 진행해 보았습니다. 진행 1 : https://github.com/Unity-Technologies/ml-agents/archive/release_17.zip 압축 해제후 강좌대로 설치 진행 com.unity.ml-agents 설치 성공 com.unity.ml-agents.extensions 설치 마무리 단계에서 계속 로딩 진행 진행 2: 패키지매니저 package in projects > Unity Projects ML-Agents 2.0.1 > install 설치진행중에 계속 로딩 진행 이 상태로 더이상 진행이 않되서 수업 진도를 못나가고 있습니다. 어떻게 해결해야 할까요? 확인 부탁드립니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Unable to locate package ncurses-compat-libs
새로 설치작업을 위해 사전작업을 하던중 sudo apt install ncurses-compat-libs (엔터) 한 결과 위와 같이 Unable 이라고 나옵니다 구글링 해본결과 이유는 Ubuntu가 패키지를 찾지 못해서이고 해결하기 위해서 편집기로 /etc/apt/source.list 수정하는 방법을 찾았는데 이 방법을 제외하고는 해결이 안되나요? Ubuntu 20.04 입니다.
-
해결됨HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
overflow: hidden; 부분 질문 좀 드릴게요.
before after 가상클래스 활용한 실전 예제 제작 (네비게이션 호버이펙트 - content attr) 선생님 overflow: hidden; 사용법에 대해서 알고 있다고 생각했는데요. 갑자기 응용이 되니깐 어려워서요.. 제가 이해하기로는, 자식요소에 float속성을 주면 부모요소가 자식요소의 높이값을 잃어버려서 overflow:hidden를 줘서 높이값을 되찾아주는 기능으로 알고 있었거든요. 위의 예제에서는 가상클래스 before,after이용해서 마우스호버하면 position값 지정해서 바뀌어보이는 기능인데요. 마우스오버하면 before, after요소가 다 보여서 문제였는데 마지막에 .gnb a { overflow: hidden;를 주니깐 제대로 보이는 걸 알 수 있는데요. overflow:hidden;를 찾아보니깐 '콘텐츠를 안쪽 여백 상자에 맞추기 위해 잘라낸다' 이런 설명이 있더라고요. 그러니깐 여기에서는 a영역만큼만 보여지기 위해서 overflow:hidden;를 준 것이라고 이해하면 맞을까요? 만약에 display:none;값을 주는 경우는 적용될 수 없는 걸까요? <body> <div class="gnb"> <a href="#none" data-text="CodingWorks Online Class"></a> </div> </body> ------------------------------------------------------------------ .gnb a { /* border: 1px solid green; */ width: 300px; display: block; height: 40px; position: relative; /* overflow: hidden; */ } .gnb a:before, .gnb a:after { content: attr(data-text); position: absolute; width: inherit; height: inherit; text-align: center; line-height: 40px; color: #fff; text-transform: uppercase; transition: 0.3s; } .gnb a:before { background-color: crimson; } .gnb a:after { background-color: royalblue; top: 100%; } .gnb a:hover:before { top: -100%; } .gnb a:hover:after { top: 0; }
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
이전 질문에 이어서 질문드립니다.
이전에 findEmail 과 같은 함수에서 promise allSettled를 사용해야 할지 질문했었는데 findEmail에 allSettled를 적용시키려고 시도해봤습니다. 이전 질문의 코드를 아래 처럼 재구성하였습니다. await Promise.allSettled([ this.authRepositry.isExistUserWithRealName(realName), this.authRepositry.isExistUserWithPhoneNumber(phoneNumber), ]).then((data) => { const errors = data.map((idx) => idx.status === "rejected" ? idx.reason : false, ); if (errors.includes(false)) { const foundWithRealName = data[0].value; } throw new BadRequestException(errors, "Find Email Error"); }); allSettled 인자의 함수들에는 실명과 전화번호가 없을 시 에러를 내는 코드가 있고 에러가 있을시 rejected 상태의 인덱스를 errors 배열에 담고 아닐 시 false를 담습니다. 그리고 errors에 false값이 포함되어있다면 실명과 전화번호를 매치시켜 일치한다면 email을 리턴하게끔 하려 했습니다. 그런데 data변수가 PromiseRejectedResult라서 value속성이 없다 합니다. data[idx].value를 해야 value 안에 있는 id를 서로 비교 시킬수가 있는데 value를 사용할 수가 없습니다. 만약 콘솔로 찍어보면 "fullfiled" 라고 뜨기는 하는데 말이죠. 제가 디버그 콘솔을 자주 사용하는데 const foundWithRealName이 있는 라인에서 data[0].value를 찍어보면 정상적으로 User Entity값을 얻어올 수가 있습니다. 어떻게 좋은 방법이 없을까요?
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Optional과 @NotBlank는 무슨 차이인가요?
안녕하세요. null 체크 하실 때 @NotBlank 라는 어노테이션을 붙여서 에러메시지가 나오도록 하셨는데 Optional 도 null 이 넘어올 시, null point exception이 발생하지 않도록 체크해주는 것으로 알고 있습니다. @NotBlank 와 어떤 차이가 있는 것인지 궁금합니다. 혹시 제가 놓치고 있는 부분이 있다면 짚어주시면 감사드려요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
왜 images/filename에 대한 메서드를 구현하면 엑박뜬 이미지가 보이게 되는건가요?
원래 엑박은뜨는데 저 메서드를 구현한 이후에는 /images/{filename} < 이 url로 들어갔을때 image를 반환하는것은 알겠는데엑박뜬것까지 해결을 어떻게 해주는거죠? 엑박은 프론트에서 뿌려줄때 문제가 발생한거아닌가요?
-
미해결배달앱 클론코딩 [with React Native]
AsyncStorage 비동기로 인한 undefined 문제
Flatlist 입니다. const renderItem = {item} => { return ( <TextInput value={true || fixDescription[item.order].value} onChangeText={onChangeText}/> ) } item과 fixDescription 둘다 useState 값이고 useEffect (()=>{AsyncStorage})를 통해서 값을 받아옵니다. 추측하기론, 컨솔 해보니 AsyncStorage가 비동기 방식이기 때문에, 처음에 빈칸으로 데이터가 떠서 {true || fixDescription[item.order].value} 이런식으로 데이터 없으면 null로 아예 안보이게 해줬는데 이렇게 하니 화면은 뜨는데 문제가 비동기처리 이후 데이터값이 들어와도 해당 TextInput의 value가 바뀌지 않다는 점이 문제입니다... console.log(fixDescription[data[0].order].value) data는 flatlist의 아이템입니다. (flatlist의 item이니 [0]번째를 임의로 주었습니다.) 위의 컨솔 실행시 첫 빌드는 에러가 생기고, 저장해서 화면을 바꾸는( 핫리로드?) 시에는 컨솔이 작동하는 상황입니다.