묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Entity와 dto
안녕하세요! jpa 지식이 얕아 질문드립니다. 유저의 주문 리스트를 뽑아올 때, 아래와 같이 서비스 클래스에서 userId를 이용해 먼저 레포 호출해서 엔티티를 만들고, 이 만든 엔티티를 모델매퍼로 다시 Dto로 바꾸지 않습니까?왜 엔티티를 먼저 만들었다가 Dto로 바꾸는지 이유가 궁금합니다.Dto와 Entity의 각각의 존재 의의와 목적은 무엇인가요?public UserDto getUserByUserId(String userId) { UserEntity userEntity = userRepository.findByUserId(userId); if (userEntity == null) throw new UsernameNotFoundException("User not found"); UserDto userDto = new ModelMapper().map(userEntity, UserDto.class); List<ResponseOrder> ordersList = orderServiceClient.getOrders(userId); userDto.setOrders(ordersList); return userDto; }
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한요청 드립니다:)
인프런 아이디 : bellejuyoung42인프런 이메일 : bellejuyoung42@naver.com깃헙 아이디 : bellejuyoung42@naver.com깃헙 Username : advanturetime 그리고 지금 파피콘 부분 하고있는데이렇게 넣었는데 아무리 해도 파비콘이 안나오거든요.ㅠㅠ콜솔창엔 에러가이렇게 나옵니당.. 뭐가 잘못된걸까요..?
-
미해결제품 관리자와 서비스 기획자를 위한 실전 노하우 - 아낌없이 드립니다!
강의 자료(ppt)
안녕하세요.혹시 강의에 사용하신 강의 자료 ppt를 다운로드 받을 곳이 있을까요?감사합니다.
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
감정다이어리 소스코드는 없을까요?
안녕하세요 🙋♂️감정 다이어리 하고있는데 혹시 깃헙이나 그런곳에 소스코드가 있을까요?따라하는데 오류 나면 찾는데 너무 오래걸려서요 혹시나해서 물어봅니다! 감사합니다
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
Drag and Drop 잘 따라했는데... 작동이 안됩니다.
index.js에서 React.StrictMode를 제거를 하여도 작동이 안됩니다...ㅠㅠㅠ 그래서 그냥 넘어가면서 공부하자 해서 handleEnd도 동일하게 작성한거 같은데 이제는 화면에 보이지도 않습니다... 혹시 문제가 무엇일까요...ㅠㅠㅠ import React from 'react';import {DragDropContext,Draggable,Droppable} from "react-beautiful-dnd";export default function list({todoData,setTodoData}) { const handComplete =(id)=>{ let newTododata = todoData.map(data => { if(data.id ===id){ data.completed = !data.completed; } return data; }) setTodoData(newTododata); } const handClick=(id)=>{ let newTododata = todoData.filter((data) => data.id !== id) setTodoData(newTododata); } const handleEnd=(result)=>{ if(!result.destination) return; //리액트 불변성을 지켜주기 위해 새로운 todoData 생성 const newTododata = todoData //1. 변경시키는 아이템을 배열에서 지워줍니다. //2. return 갑으로 지워진 아이템을 잡아줍니다. const [reorderedItem] = newTododata.splice(result.source.index,1); //원하는 자리에 reorderedItem을 insert 해줍니다. newTododata.splice(result.destination.index,0,reorderedItem); setTodoData(newTododata); } return ( <div> <DragDropContext onDragEnd={handleEnd()}> <Droppable droppableId="todo"> {(provided) => ( <div {...provided.droppableProbs} ref={provided.innerRef}> {todoData.map((data,index) =>( <Draggable key={data.id} draggableId={data.id.toString()} index={index} > {(provided, snapshot)=>( <div key={data.id} {...provided.droppableProbs} ref={provided.innerRef} {...provided.dragHandleProps} className={`${ snapshot.isDragging ? "bg-gray-400" : "bg-gray-100"} flex items-center justify-between w-full px-4 my-2 text-gray-600 border rounded `} > <div className='items-center'> <input type="checkbox" defaultChecked={false} onChange={()=> handComplete(data.id)}/>{" "} <span className={data.completed ? "line-through" : undefined}>{data.title} </span> </div> <div> <button className='px-4 py-2 float-right' onClick={()=>handClick(data.id)}>x</button> </div> </div> )} </Draggable> ))} {provided.placeholder} </div> )} </Droppable> </DragDropContext> </div> ); }
-
미해결장박사의 블록체인 이해와 구조
니모닉 지갑
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 해주신 강의를 응용해서 니모닉 지갑으로 만들려고 하는데요,필요한 모듈들을 미리 js 폴더에 넣어 주신것 같은데요,다른 라이브러리,... 예를들어 BIP39등을 추가하려면 BIP39의 무슨파일을 웹에서 가져와야하는건가요.터미널에서 npm 인스톨을 안하고 미리 파일로 저장되어있는것같아서 어떻게 파일을 가져와서 쓰시는지 궁금합니다...
-
미해결처음 만난 리액트(React)
안녕하세요 작동이 안됩니다 ㅜㅜㅜ
순서대로 Book.jsx Library.jsx index.js 입니다. 그런데 실행해보면 다음과 같은 에러가 나는데 찾아봐도 해결이 안돼서요!! ㅠ도와주세요! 감사합니다
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
DHCP와 ARP 동작 하는 부분에 궁금증이 있습니다.
인터넷 설정 자동화를 위한 DHCP 에서, DHCP가 IP주소, DNS, Subnet mask, Gateway 등을 여러 값들을 받아와서 설정의 불편함이 없다고, 이해했습니다.그리고, ARP req는 braodcast로 GW의 MAC Address를 받아온다고 이해해했습니다.질문이 두가지가 있는데요. 첫번째는, ARP request를 할 때, Source, Destination 주소들이 MAC 주소라면, Host와 GW까지는 TCP/IP 통신이 아니라, L2 Layer 통신이 되는 것인가요? 두번째 질문은, DHCP를 사용한다고 하면, DHCP 서버에서 Gateway MAC 주소까지 가지고 있으면, ARP Request를 하는 broadcast가 필요가 없어져서, 네트워크 효율이 더 좋아질 거 같은데, DHCP에 호출할 때 broadcast 호출을 하고, ARP에서 다시 braodcast를 하는 이유가 따로 있을까요?
-
미해결Node.js로 웹 크롤링하기
cheerio deprecated
const crawler = async() => { await Promise.all(records.map( async(r) => { const response = await axios.get(r.링크) if(response.status === 200){ const html = response.data const $ = cheerio.load(html) const text = $('.score.score_left .star_score').text() console.log(r.제목,'평점',text) } } )) }1-4 axios-cheerio로 첫 크롤링하기 강의중 const $ = cheerio.load시 cheerio에 빗금이 처지며 deprecated라는 표시가 뜹니다. 무시하고 그냥 해도 결과는 나오지만 구글링을 해봐도 deprecated대신 사용할수있는게 없어 그냥 해야하나 아니면 다른 방법으로 대체해야하나 궁금합니다.package.json은 아래와 같습니다."dependencies": { "axios": "^1.1.3", "cheerio": "^1.0.0-rc.12", "nodemon": "^2.0.20" }
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
안녕하세요. index.js 파일 오류입니다.
안녕하세요. 해당 오류는 구글링해도 이해하기가 조금 어려워 질문합니다.. nodemon index.js 라는 명령어에 대한 오류인데요.해당하는 index.js 에 대한 부분입니다...잘 이해가 가지 않는 오류입니다ㅜ 그리고 postman도 연결이 안되구요..
-
해결됨프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
파이썬 인터프리터 안보이는 오류 확인부탁드립니다.
설정에서 위 그림과 같은 순서로 진행했는데우측하단 5번 위치에서 파이썬 버전이 확인됩니다.영상에서 보인 것 처럼 왼측하단이 아닌 이 위치에 떠도 상관 없을까요?
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
bpdu 에 관하여 질문합니다!
bpdu에서 멀티캐스트를 통해 메세지를 교환한다고 하셧는데 L2에서는 멀티캐스트 정보도 브로드캐스트로 인식한다고 하셨는데 어떻게 멀티캐스트로 전송하나요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
오류 발생했습니다 ㅠㅠ
nullReferenceExeption 오류가 발생해서 제가 코드를 잘못 입력했는지 어떤 문제지 모르겠습니다 ㅠㅠNullReferenceException: Object reference not set to an instance of an objectManagers.get_Input () (at Assets/Scripts/Managers/Managers.cs:11)PlayerController.Start () (at Assets/Scripts/PlayerController.cs:12)
-
미해결리눅스 쉘 스크립트 마스터
하드 링크, 심볼릭 링크
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.좋은 강의 만들어 주셔서 감사합니다.지금 초반을 보고 있는데하드링크, 심볼릭 링크에 쓰임새는 알겠습니다.혹시 왜 만들어졌고, 어떤 이유에서 쓰이게 되는지 알수 있을까요? 감사합니다.
-
미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
15강 DTO ArticleForm 수정 후 새 데이터 입력 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 데이터 수정 시 수정한 데이터의 id를 받아오기 위해서 ArticleForm에 toEntity 메소드 return을return new Article(null, title, content)에서 return new Article(id, title, content)로 수정하였는데요, 그렇게되면 새로운 데이터를 생성하는 ArticleController의 createArticle메소드에서 에러가 납니다. 처음 데이터 생성 시 id는 자동생성을 하게 해두고 new.mustache에서 id값을 input으로 받아오지 않았어서 그런것이라고 생각되는데, 혹시 해결 방법이 있을까요?
-
해결됨따라하며 배우는 리액트 A-Z[19버전 반영]
nextJS typescript 부분 메인페이지 ui
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이 부분에서 저는 npm 설치 후에 index.tsx파일이 아래와 같은 형식으로 자동생성 되는데 강의영상에는 다르게 나오더라구요.. 혹시 이 부분이 어떤 차이인지 다름으로 인해서 문제가 되는지 알 수 있을까요??강의 영상 부분
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Cause: zip END header not found 에러
캐시도 날려보고 프로젝트 재시작도 해봤는데 안됩니다.. jdk 11인데 왜 안되는 걸까요
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
마지막에 말씀하신 내용이 잘 이해가 안갑니다.
안녕하세요.강의를 듣다가 마지막에 하신 말씀이 잘 이해가 안돼서 질문드립니다.복잡한 상태 관리 로직 분리하기 - useReducer의 22:31 부분에서"dispatch는 함수형 업데이트 그런거 필요 없이 호출하면 알아서 현재의 state를 참조해서 자동으로 해주니 useCallback을 사용하면서 dependency array를 걱정할 필요가 없다."라고 하셨는데 이게 무엇을 의미하는 말씀인지 말 모르겠습니다...
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
dispatch에서 const dispatch = useContext(DispatchContext); 가 console.log(dispatch)를 하면 null로 출력이 나옵니다.
안녕하세요 강사님,수업대로 코드를 작성해도 제목과 같이 원하지 않던 오류가 생겨 질문을 드립니다.아래와 같이 작성했을때, dispatch함수가 function이 아니라는 오류를 내뱉어, 원인을 찾았더니, useContext(DispatchContext)가 null인 원인이었습니다. 이를 어떻게 고쳐야 정상적으로 작동을 할지 잘 모르겠습니다.코드는 다음과 같습니다. import axios from "axios"; import { createContext, useContext, useEffect, useReducer } from "react"; import { User } from "../types"; interface State { authenticated: boolean; user: User | undefined; loading: boolean; } export const StateContext = createContext<State>({ authenticated: false, user: undefined, loading: true }); export const DispatchContext = createContext<any>(null); interface Action { type: string; payload: any; } const reducer = (state: State, { type, payload }: Action) => { switch (type) { case "LOGIN": return { ...state, authenticated: true, user: payload } case "LOGOUT": return { ...state, authenticated: false, user: null } case "STOP_LOADING": return { ...state, loading: false } default: throw new Error(`Unknown action type: ${type}`) } } export const AuthProvider = ({ children }: { children: React.ReactNode }) => { const [state, defaultDispatch] = useReducer(reducer, { user: null, authenticated: false, loading: true }) console.log("state", state); const dispatch = (type: string, payload?: any) => { defaultDispatch({ type, payload }); } return ( <DispatchContext.Provider value={dispatch}> <StateContext.Provider value={state}>{children}</StateContext.Provider> </DispatchContext.Provider> ) } export function useAuthState() { const state = useContext(StateContext); //if(!state) throw new Error("Provider is not found"); return state; } export function useAuthDispatch(){ const dispatch = useContext(DispatchContext); //if(!dispatch) throw new Error("Provider is not found"); return dispatch; } /** * * <AuthProvider> * <Component {...} /> => Component가 위의 children에 들어감 * </AuthProvider> * * */위는 context/auth 코드이고, 아래는 pages/api/login 코드입니다.import React, { useState, useContext, FormEvent} from 'react' import Link from "next/link" import axios from "axios" import InputGroup from "../components/InputGroup" import { useRouter } from 'next/router' import { useAuthDispatch, useAuthState, AuthProvider, StateContext, DispatchContext } from "../context/auth"; const Login = () => { let router = useRouter(); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [errors, setErrors] = useState<any>({}); const dispatch = useAuthDispatch(); //const dispatch = useContext(DispatchContext); const handleSubmit = async (event: FormEvent) =>{ event.preventDefault(); try{ const res = await axios.post("/auth/login",{password, username}, {withCredentials: true}); console.log("res: ",res); dispatch("LOGIN", res.data?.user) router.push('/'); }catch(error: any){ console.log(error || {}); //setErrors(error.response.data || {}); } } return ( <div className="bg-white"> <div className="flex items-center justify-content h-screen p-6"> <div className="w-10/12 h-2/4 mx-auto md:w-96"> <h1 className="mb-2 text-lg text-yellow-500 font-medium">로그인</h1> <AuthProvider> <form onSubmit={handleSubmit} className="h-1/2"> <InputGroup placeholder="Username" value={username} setValue={setUsername} error={errors.username} /> <InputGroup placeholder="Password" value={password} setValue={setPassword} error={errors.password} /> <button className="w-full py-2 text-xs font-bold text-white uppercase bg-gray-400 border border-gray-400 rounded"> 로그인 </button> </form> </AuthProvider> <small className="text-black"> 아직 아이디가 없나요? <Link href="/login"> <a className="ml-1 text-blue-500 uppercase">회원가입</a> </Link> </small> </div> </div> </div> ) } export default Login
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
몇가지 질문이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.