묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
중첩된 router 이용시 각각의 페이지는 url만으로도 정상적인 접근이 가능해야할까요?
제로초님 안녕하세요. react-router를 이용해서 중첩된 구조의 페이지를 만들던 도중에 궁금한 점이 생겨서 여쭤보려고 합니다. 현재 HomePage 컴포넌트에서 비동기로 patients list를 가져오고 이 데이터를 가지고 HomePage 안에서 PatientsList와 그 안에 있는 PatientNameCard와 같은 하위 컴포넌트들을 생성하고, PatientNameCard를 클릭하면 그 데이터와 연결된 PatientPage로 이동합니다. 노드버드 강좌를 들으면서 mainPosts를 통해서 post를 전부 다 받아와서 PostCard 하나하나에 데이터를 넣어주는 방식을 참고해서 이렇게 구현했는데요. PatientPage로 이동할 때는 HomePage에서 PatientsList 컴포넌트가 있던 자리만 PatientPage 컴포넌트로 바뀌고요. 그런데 HomePage를 거쳐서 PatientPage로 넘어가면 문제가 없는데, HomePage를 거치지 않고 url을 이용해서 PatientPage로 넘어가면 patients list 데이터를 가져오는 과정이 생략되니 에러가 발생하는데요. 리덕스를 이용해서 앱의 전체적인 상태관리를 하면서 세부적으로 중첩된 라우터를 사용하다보니 생기는 이슈인 것 같은데, 이런 경우는 어떻게 해결을 하고, 또 어떤 식으로 구조 설계를 하는 것이 좋을까요? 일단 PatientPage로 왔을 때 데이터가 없을 경우 따로 비동기 요청을 해서 그 patient에 해당하는 데이터만 받아오도록 하면 작동은 하게 만들 수 있을 것 같은데, 이런 방식이 반복되면 라우터 구조가 더 복잡해지거나 했을 때 전체적인 상태 관리를 하는 게 복잡해질 것 같다는 생각이 들어서 좋은 해결책인지는 잘 모르겠고요. 그렇다고 patient 페이지 하나를 띄우기 위해서 patients list를 다 받아오게끔 하는 것도 비효율적인 것이 아닌가 하는 생각이 듭니다. 아니면 애초에 patients list를 받아올 때도 리스트를 보여주기 위한 최소한의 정보만 받아오고 PatientPage에서도 리덕스 스토어의 patients list에 저장된 데이터를 받아오는 것이 아니라 따로 비동기 요청을 해서 해당 Patient를 위한 정보만 받아와서 보여주는 식으로 전체적인 설계를 변경해야하나 하는 생각도 해보았는데, 비동기 요청은 되도록이면 줄이는 게 좋지 않은가 하는 생각이 들기도 해서요. 아니면 아예 이런 식으로 접근하지 못하게 데이터가 없을 때는 잘못된 경로라는 식으로 응답을 줘버려야하는 생각이 들기도 합니다. 리덕스로 전체적인 상태 관리를 하면서 라우터의 구조가 복잡해지는 경우는 현업에서도 자주 있는 일일 것 같은데, 혹시 이런 경우는 어떤 식으로 다루는지 궁금합니다. 매번 감사합니다.
-
미해결인터랙티브 웹 개발 제대로 시작하기
옆에 스크롤 바가 안보여서 색상 바꿀 수 있나요?
스크롤바가 너무 연하게 보여서 색상을 변경하고 싶은데 방법이 어떻게 될까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
실루엣 계수 평균값
안녕하세요 교수님 :) 강의 마지막에 실루엣 점수 0.553은 매우 좋은 점수라고 말씀해주셨는데, 최대값 1에 절반밖에 못미치는 수준(?)이 왜 좋은 점수인가요? 실무에서는 실루엣 점수가 몇 점 정도 나와야 현실에 적용가능하다고 보는지 궁금해서 질문 남깁니다 :) 항상 감사합니다 😊
-
미해결하울의 안드로이드 인스타그램 클론 만들기
4분 29초경
FirebaseStorage 부분에서 오류뜨는데 버전문제인가요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[질문] 서버 값 전달 방식
머스타치 문법에서는 DTO 에 @AllArgsContstructor 가 있으면 서버로 전달하면서 값이 들어가 있는데 타입리프에서는 적용하는 방법을 찾아보았는데 대부분 setter로 된예시만 있었습니다. 타입리프는 불가능한것인지 궁금합니다.
-
해결됨스프링과 JPA 기반 웹 애플리케이션 개발
안녕하세요 선생님.
안녕하세요 선생님. 개인적으로 여쭤보고 싶은 점이 있어서 질문을 남깁니다. 따로 프로젝트를 진행중인데 회원가입 시 이메일 인증 토큰을 메일로 발송하도록 구현했습니다. 메일을 발송해주는 요청이 4초 정도 소요되는 것을 확인했습니다. 하나의 요청을 처리하는데 4초나 걸리는 상황에서 만약에 여러 사람들이 회원가입을 요청하면 다음 요청은 대기시간이 길어지고 결국 처리하지 못하는 상황이 생기지 않을까? , 일꾼을 늘려서 처리하면 어떨까?라는 생각을 하게 되었습니다. 그래서 이러한 상황에서도 강의에서 알려주신 eventPublisher + @Async + ThreadPoolTaskExecutor을 하나의 해결법?으로 사용할 수 있는지 여쭤보고 싶습니다. 정말 배울 점이 많은 강의라 여겨 여러 번 공부했고 강의에서 알려주신 내용을 통해 프로젝트를 진행하면서 해결할 수 있는 문제들이 정말 많았습니다. 감사합니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
index에러? 질문입니다.
// vue.config.js module.exports = { devServer: { overlay: false } } 안에 넣었는데도 다른 질문처럼 index 에러가 뜨네요.. 실행하면 나오기는 하는데 저 에러 못 없애는지 궁금합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
상호 배제란?
SpinLock을 구현하다가 궁금해져서 질문 남깁니다. Mutex를 검색해보니 Mutual Exclusion, 즉 상호 배제의 약자더라구요. 검색해본 결과, 임계 구역에 접근하지 못하면 다시 대기 상태로 돌아가야 한다고 되어 있기도 하고, Mutex의 이름도 그렇고 SpinLock은 임계 구역에 하나의 스레드만 접근할 수 있도록 계속 재시도하는 방법인데, 이는 상호 배제가 맞는 것인지, 아닌 것인지 궁금합니다. 개념이 자꾸 헷갈리네요
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
Profile info edit하는 부분 관련하여
안녕하세요! 33강까지 수강하고 나서 테스트하는 중에 오류가 나서 질문드리고자 합니다. 로그인 후 해당 프로필을 만들고 다시 메세지를 변경하고 싶어서 바꾸고 난 후 edit을 누르는 순간 수정이 안되고 에러가 나는데요, 에러 화면은 다음과 같습니다. 혹시몰라 깃허브 주소도 첨부합니다. https://github.com/Jihyun-Choi/Django_Pinterest 이 오류로 인해 다음 강의를 수강하지 못하고있습니다. 해결하기위해 강의를 다시 듣고, 관련 오류에 대한 구글링을 진행했으나 해결하지 못했습니다. 또한 이전에 이와 비슷한 오류를 올린 질문과 답변을 참고해보았지만, 오류를 해결하지못해 질문 남깁니다.
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
MinMaxScaler
안녕하세요 교수님. 머신러닝강의에서 회귀분석을 할때 StandScaler()를 써주신 걸로 기억합니다. 회귀분석 강의에서 타겟값의 정규 분포 형태를 강조해주셨는데, MinMaxScaler를 써도 상관이 없는건가요? 강의 너무 잘듣고 있습니다 감사합니다 :)
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
도커의 장점?
강의에서 알려주신 도커의 장점들이 조금 헷갈려서 다시 질문드립니다. 도커와 컨테이너가 같은 개념처럼 번갈아 가면서 등장해서 이게 도커만이 가지고 있는 유일한 장점인건지, 아니면 컨테이너 기술이라 가질 수 있는 장점인건지 헷갈리네요 ㅎ; 지금까지 강의를 들으면서 내린 결론은 "도커는 쉽고 편한 컨테이너 기술 활용을 돕는 툴"이라고 생각되었는데요. 다른 컨테이너 기술들도 강의에서 다룬것만큼 가벼운 가상화 기능 기능 및 컨테이너 안에 다양한 실행환경을 추상화 할 수 있는 장점을 가질 수 있는게 맞는건가요? 그럼 도커가 컨테이너 기술 중에서도 가지고 있는 차별화 포인트는 쉬운 사용 (쉽게 다운로드) 및 오픈소스 환경 등일까요? 감사합니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
안녕하세요 질문입니다.
중간에 따라하다 프로젝트 해야하는데 시간이 얼마 없어 강의로 대충 소스 넘어가면서 이해하고 있습니다. 근데 강의 깃허브에서 받은거로 실행하고 싶은데 그대로 받은 소스에 npm run serve 로 하면 에러나더라구요. 그대로 받아서 실행하려면 방법이 따로 있나요? 그냥 다운받은 폴더에서 실행하니까 npm ERR! missing script: serve 이 떠서 질문 드립니다..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Monitor 방식과 SpinLock 등 방법들의 관계
lock 키워드와 Monitor는 임계 영역 자체를 만드는 방법에 대한 것이고, SpinLock, Context Switching, Event는 임계 영역을 사용하기 위한 순서를 결정하는 알고리즘이라고 생각해도 되나요? 그리고 Context Switching은 실행중인 스레드가 대기 상태로 돌아가고, 대기중이던 스레드를 실행하기 위해 메모리에 스레드의 상태를 저장 및 적재하는 일련의 과정이라고 말씀해주셨는데요, Context Switching을 사용하여 Lock을 구현하는 방법을 이르는 용어가 따로 있는지 궁금합니다.
-
미해결자바스크립트 비기너: 튼튼한 기본 만들기
주석 넣으면서 해보았습니다.
"use strict"; var html = []; //배열생성 html.push("<ul>"); //맨위에 <ul>태그 for (var i = 1; i <= 10; i++) { //1부터10까지 넣을 i html.push("<li id=id+i>" + "id" + i + "</li>"); } // html.push("</ul>"); //맨밑에 </ul>태그 document.body.innerHTML = html.join(""); //HTML에 그동안 작업했던 var html join("")으로 배열사라지면서 마크업됨 . 근데 선생님 질문이있습니다. html.push("<li id=id+i>" + "id" + i + "</li>"); 이부분에서 궁금한점이 있습니다. push로 하면 화면상으로 id1부터 밑으로 쭈르륵 id10까지 보여지는데요. id1 id2 id3 id4 id5 id6 id7 id8 id9 id10 html.unshift("<li id=id+i>" + "id" + i + "</li>"); push 말고 unshift로 해보니까 반대로 id10부터 id9,8,7,6,5순으로 아래부터 향하더라고요. id10 id9 id8 id7 id6 id5 id4 id3 id2 id1 이게 배열 순서와 연관이 되어있나요? push는 배열이 끝으로 추가되는 특징이고 unshift는 배열이 앞에서부터 추가되는 특징이랑 연관되어있을까요?
-
미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
twisted.internet.error.ReactorNotRestartable 에러
맥OS에서 실행 중입니다. twisted.internet.error.ReactorNotRestartable 에러가 계속 나는데 도대체 뭐가 문제인지 모르겠습니다. 스파이더는 하나의 파일에 하나의 클래스에 하나의 파스로 되어있습니다. 찾아보면 위에 것은 동시에 여러개를 돌리는 경우인데, 그렇지도 않은데 왜 자꾸 오류가 나는지 문의드립니다 감사드리며
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
전에 문의 드린 사람입니다!
조회 로직에 대해서 질문을 드렸었는데 강사님이 글을 못 읽으신 것 같아 재질문 드립니다 그러면 조건값은 항상 달라지니 이런 식으로 처리를 해주면 된다는 말씀이신가요? 그리고 서버에서는 이 쿼리 스트링의 값을 어떤 식으로 처리하게 되나요? 문득 든 생각인데 where 조건문을 통해서도 이 로직을 처리할 수 있을까 라는 생각이 들었는데 강사님의 의견은 어떠하신가요!? axios.get('https://apiserver.com', { params: { number: 유저의 입력값 date : 유저의 입력값 } })
-
미해결Flutter 응용 - 공공 API를 활용한 앱 만들기 (MVVM 패턴)
2장 ViewModel만들기- 데이터를 가져오는 코드 만들기 부분
안녕하세요, 2장 ViewModel만들기의 11:00 부분부터 처음에 데이터를 가져오는 코드를 작성하는 설명이 시작됩니다. 여기서 두가지 옵션이 있다고 말씀하셨고, 강의에서 시범을 보여주신 방법은 viewModel 클래스에서 StoreModel생성할 때 였습니다. 두가지 질문 드립니다. 질문1. StoreModel() {fetch()} 생성자가 main.dart에 적용되는 시점이 언제이기에, 여기의 내용이 main.dart의 build 부분에서 보여질 수 있는가요? main.dart에서 runApp의 Value항목에서 StoreModel 클래스를 가져오며 실행이 되는 것인가요? void main() { return runApp(ChangeNotifierProvider.value( value: StoreModel(), child: MyApp(), ));} 질문2. 처음에는 initState에서 해야한다고 생각해서 아래와 같이 작성을 해봤는데, 에러가 납니다. 만약 initState에서 StoreModel클래스의 fetch명령을 실행하려면 어떻게 해야하나요? 감사합니다.
-
해결됨C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
안드로이드로 빌드할때도....
객체를 파일로 저장하는 법 알려주셨는데요 안드로이드로 빌드할때는 방법이 달라지나요? 아니면 알려주신대로 하면 되나요?
-
미해결처음 배우는 리액트 네이티브
채팅채널 생성 구현 시 오류입니다.
안녕하세요. 바쁘신데 또 질문드려 죄송합니다. 채팅채널 생성 구현중인데 firebase.js 파일 저장만 하면 다음과 같은 오류가 나옵니다. 선생님 코드 다운받아서 한 줄 한 줄 비교해가며 봐도 뭐가 문젠지 못찾겠습니다. 오류 무시하고 채널 생성 버튼을 누르면 다음의 메시지가 출력됩니다. 두 개의 문제가 연결된건지는 잘 모르겠습니다. 문제의 파일이 담긴 주소는 이곳입니다. https://github.com/Schidshow/kbjChatApp 매번 신경써주셔서 너무 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Intellij로 프로젝트 생성 질문입니다.
안녕하세요. 강의 너무 잘 듣고 있습니다. 강의 도중에 Intellij에서 프로젝트 생성시 servlet폴더를 생성하는 것과 servlet폴더 안의 build.gradle을 생성하는 것의 차이는 뭘까요?? ㅜㅜ 정말 기본적인 내용 같지만 모르겠어서 질문을 올립니다. 추가) 혹시 몰라 저같은 실수하시는 분들을 위해 남깁니다. 초반에 강의 설명을 제대로 듣지 않고 servlet폴더 자체를 프로젝트로 생성했더니 메인 클래스가 실행되지 않아 오류해결을 위해 많은 시간을 보냈습니다. 프로젝트 생성시 꼭 build.gradle 으로 OPEN해주세요!