묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Java/Spring 주니어 개발자를 위한 오답노트
JPA 양방향 연관관계 관련하여 질문 드립니다.
안녕하세요. 지식공유자님 강의 잘 듣고 있습니다. 순환참조 관련 설명을 해주시면서 외래키를 직접 들고 있는 편이 낫다고 하셨습니다. 실제로 최근에 최범균님의 JPA 강의를 들으면서 연관관계를 사용하지않고 저렇게 외래키를 들고 있는 코드를 보았는데요. 제가 여태껏 배운 것과는 많이 달라서 몇 가지 의문점이 듭니다. 외래키를 저렇게 직접적으로 들고있을 시엔 ORM을 사용함에도 불구하고 다시 데이터베이스에 가까운 엔티티 설계로 돌아간 것이 아닌가 하는 의문입니다.양방향 연관관계를 사용하지 않을 경우 그에 따라 orphanRemoval나 cascade 옵션을 사용하지 않음에 따라 추가적인 로직 작성이 필요하지 않나요?? 그에 따른 추가작업이 생길 수 있는데 혹시 제가 잘못 생각하고 있는 것인지 여쭙고 싶습니다양방향 연관관계를 걸었을때와 외래키를 직접 들고있는 것 중 CRUD 성능에 크게 차이가 있을까요?혹시 현업에서는 어떻게 하고 있을까요? 팀마다 다를까요?
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
thread의 PC register 질문
안녕하세요! Thread 강의를 수강하다가 PC register에 대한 질문이 있어서 남깁니다!Process & Thread 강의에서 제가 이해한 바로는, Multi Process에서는, CPU 내부에 있는 PC register에는 다음에 진행해야 할 Process의 코드 주소값이 저장되어 있다.Multi Process & Multi Thread에서는, 각 Thread가 PC register를 가진다.입니다. 제가 궁금한 점은"Multi Thread에서는 각 Thread가 독립적인 PC register를 갖고 있다" 하셨는데(TCB에 저장), CPU가 가지는 PC register와는 구체적으로 어떤 차이가 있나요? CPU의 PC register는 각 TCB에 적힌 여러 PC register 중, CPU가 지금 처리해야 할 TCB의 PC register를 들고 있는 것인가요?PCB, TCB에는 각 프로세스, 쓰레드의 Context가 저장되는 곳인 것 같은데, 이 안에 PC register(다음 실행할 코드의 주소값) 또한 포함되어 있는 건가요?"Multi Process, Single Thread에서, CPU가 가지고 있는 PC register는 다음으로 처리해야 할 Process의 코드 주소값(PC register)을 가지고 있는 것이고,Multi Process, Multi Thread에서는, CPU가 가지고 있는 PC register는 다음으로 처리해야 할 Process 내부의 Thread의 코드 주소값(PC register)을 가지고 있다"고 이해해도 될까요?입니다!
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
활용-8 앱 / 디테일화면 만들기 (활용앱 67강) 질문있습니다.
안녕하세요. 앨런님 강의 잘 듣고 있습니다. 좋은 강의 감사합니다. 활용앱 67강 듣고 질문 드립니다. 영상의 좀 마지막 부분인데 뷰컨트롤러에서 테이블뷰 셀의 Member데이터를 DetailViewController로 넘기고 여기로 넘어온 Member데이터를 다시 DetailView에 넘겨서 셀 클릭시 다음 화면에 데이터를 표시하도록 구현을 했는데 궁금한것은 loadView함수가 viewDidLoad보다 먼저 실행이 되는걸로 알고있는데 loadView로 그럼 현재 DetailViewController의 view를 갈아 끼우고 viewDidLoad를 불러서 데이터를 DetailView에 전달하는데 그럼 데이터를 전달한 후에 한번더 view = DetailView로 정보가 저장된 뷰를 다시 끼워주는게 맞는거아닌지.. 이렇게 안해도 데이터가 잘 표시되는 이유가 궁금합니다!
-
미해결은종쌤과 자바로 디자인 패턴 쉽게 시작하기
Observer 예제는 push인가요 pull 인가요?
Observer 강의를 봤는데본 예제는 push인가요 pull 인가요?둘 중 어떤 것으로 이해해야할지 헷갈립니다.옵저버들이 전달받은 객체에서 getNumber()를 호출하니까 pull일까요~?!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
에러 핸들링과 db 조회 시 await을 붙이는 경우와 안붙이는 경우가 궁금합니다.
에러 핸들링의 경우 그냥 throw로 에러를 던져주기만 하는데 await을 붙여 에러를 받아야되는 이유가 궁금합니다. async checkSoldout({ productId }) { const product = await this.productRepository.findOne({ where: { id: productId }, }); if (product.isSoldout) throw new UnprocessableEntityException('이미 판매가 완료된 상품입니다.'); }@Mutation(() => Product) async updateProduct( @Args('productId') productId: string, @Args('updateProductInput') updateProductInput: UpdateProductInput, ) { // 여기서 에러를 받았을 때 await을 붙여야 정상동작을 하는데 이유가 궁금하네요. await this.productService.checkSoldout({ productId }); return this.productService.update({ productId, updateProductInput }); } 제가 실험삼아 db를 업데이트 할 때 await을 빼고 로직을 수행해 봤는데 정상적으로 동작하는 듯 보입니다. 이게 왜 동작하는 건지 모르겠네요...// async await을 모두 제거했습니다. update({ productId, updateProductInput }) { const newProduct = { id: productId, ...updateProductInput, }; return this.productRepository.save(newProduct); }@Mutation(() => Product) async updateProduct( @Args('productId') productId: string, @Args('updateProductInput') updateProductInput: UpdateProductInput, ) { await this.productService.checkSoldout({ productId }); // 리턴을 받을 때도 기다리지 않고 바로 진행했습니다. return this.productService.update({ productId, updateProductInput }); }이 때 서버를 돌리고 쿼리를 실행해보면 정상적으로 수행이 되는데(출력해보면 pending 상태입니다...) 이해가 잘 안되네요..
-
해결됨[React 1부] 만들고 비교하며 학습하는 React
TabLabel의 Key 관련 문의드립니다.
안녕하세요.강사님께서 TabLabel을 아래와 같이 작성하셨는데, Key에 []가 들어가 있는 경우는 처음 보아서요.const TabLabel = { [TabType.KEYWORD]: "추천 검색어", [TabType.HISTORY]: "최근 검색어", };Key를 배열로 선언하신 것인가요? 이와 관련된 문법은 어디서 찾아볼 수 있을까요?
-
해결됨따라하며 배우는 리액트 A-Z[19버전 반영]
AxiosError 도와주세요...
import axios from '../../api/axios'; import React, { useEffect, useState } from 'react' import { useParams } from 'react-router-dom' export default function DetailPage() { const { movieId } = useParams(); const [movie, setMovie] = useState({}); useEffect(() => { async function fetchData() { const request = await axios.get(`/movie/${movieId}`); // setMovie(request.data); console.log(request); } fetchData(); }, [movieId]) // if (!movie) return null; console.log(movie); return ( <section> <img className='modal__poster-img' src={`https://image.tmdb.org/t/p/original/${movie.backdrop_path}`} alt="modal__poster-img" /> </section> ) } 안녕하세요, 위와 같이 디테일페이지 코드를 영상을 보면서 하고 있는데.. 콘솔에서 리퀘스트를 불러올 때 에러가 뜹니다.Uncaught (in promise) AxiosError {message: 'Request failed with status code 404', name: 'AxiosError', code: 'ERR_BAD_REQUEST', config: {…}, request: XMLHttpRequest, …} 디테일 페이지에서만 위와 같은 에러가 왜 뜨는 건지 모르겠어서 문의글 남깁니다 ㅠㅠ
-
미해결[React 1부] 만들고 비교하며 학습하는 React
reset() 함수 작성 관련 문의드립니다.
안녕하세요.저는 아래와 같이 Controller에서는 Store의 reset()함수를 호출만하고, Store에서 상태를 변경하는 방식으로 작성했는데요.// Controller.js export default class Controller { constructor(store, { searchFormView, searchResultView }) { this.store = store; this.searchFormView = searchFormView; this.subscribeViewEvents(); } subscribeViewEvents() { this.searchFormView // .on("@reset", () => this.reset()); } reset() { console.log(tag, "reset"); this.store.reset(); // 작성한 부분 this.render(); } }// Store.js export default class Store { constructor(storage) { console.log(tag, "constructor"); if (!storage) throw "no storage"; this.storage = storage; this.searchKeyword = ""; this.searchResult = []; } // 작성한 부분 reset() { this.searchKeyword = ""; this.searchResult = []; } }강사님 풀이는 다음과 같이, Controller에서 store의 상태값을 직접 넣어주는 식으로 작성을 하셨더라구요.// Controller.js ... reset() { console.log(tag, "reset"); this.store.searchKeyword = ""; this.store.searchResult = []; this.render(); }둘 다 기능상의 차이는 없는 것 같은데, 혹시 둘 중 선호되는 방식이 있는지 궁금합니다.
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
팬툴 도형 수정 관련 질문 입니다.
네모도형을 팬툴로 수정하다가 계속 이어서 다른 도형을 그렸는데 저렇게 같이 잡히고 위에 도형에는 색상도 스트록도 안생깁니다.
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
팬툴 관련 질문 입니다.
도형은 모서리에 라운드를 줄 수 있는데팬툴로 만든 도형도 라운드를 줄 수 있나요?
-
해결됨[React 1부] 만들고 비교하며 학습하는 React
storage를 동적으로 변경하는 경우 코드 변경 사항 문의드립니다.
안녕하세요.storage를 동적으로 변경하는 경우 현재 기준으로 어떤 부분의 코드를 변경하는 것이 좋을지 문의드립니다.현재 코드에서는 아래와 같이 정적인 데이터(storage.js)를 main.js에서 주입해주는데요.// main.js import Store from "./store.js"; import storage from "./storage.js"; function main() { const store = new Store(storage); new Controller(store, views); } 만약 storage 데이터를 ajax를 통해 동적으로 받아온다면, main.js와 Controller.js는 그대로 두고 Storage.js와 storage.js 파일만 변경하면 되나요?즉, 아래 코드 주석처럼 하면 될까요? 또한, AJAX 요청은 Controller와 Storage 중 어느 부분에 작성하는 것이 일반적인가요?// Controller.js // 변경 없음 export default class Controller { constructor(store, { searchFormView, searchResultView }) { this.store = store; this.searchFormView = searchFormView; this.searchResultView = searchResultView; this.subscribeViewEvents(); } subscribeViewEvents() { this.searchFormView .on("@submit", (event) => this.search(event.detail.value)) // } search(searchKeyword) { this.store.search(searchKeyword); } }// storage.js // 데이터를 빈 배열로 변경 const storage = { keywordData: [], historyData: [], productData: [], }; export default storage;// Store.js export default class Store { constructor(storage) { if (!storage) throw "no storage"; this.storage = storage; this.searchKeyword = ""; this.searchResult = []; } search(keyword) { this.searchKeyword = keyword; this.searchResult = // 여기서 AJAX 요청을 통해 storage.js의 상태 관리? 아니면 Controller에서 AJAX 요청? } }
-
해결됨스프링 핵심 원리 - 기본편
AppConfig에서 Bean 등록을 반드시 해야하는가?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.App에서는 application.getBean("OOO", OOO.class)와 같이 빈요소를 참조해서 쓰고 있지만MemberRepository나 DiscountPolicy의 경우 Bean을 등록하여도 이를 빈 저장소를 경유해서 사용하지 않고 직접적으로 바로 사용할 수 있을 것 같은데, 그렇다면 저 요소를 굳이 빈으로 등록할 필요가 있는지 의문입니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
나도코딩님 랜덤짓는법 어디서 배웠죠??
랜덤 짓는법 어디서 배웠는지 못찾겠네요 ㅠ그리고 Math Random 클래스와 Random변수? 가 어떻게 다른건가요
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
수강문의
강좌를 구매한 상황이라서, 수강전문의에 등록이 안되어 이렇게 질문남깁니다!지금 현재 React.Js,TypeScript만을 공부한 상황이고, Next.js와 Redux에 대해서는 따로 공부한 적이 없습니다. 이 강좌로 Next.js와 Redux도 같이 배울 수 있을까요?아니면 저 2가지를 따로 공부해야하는 부분일까요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
안녕하세요 axios DIP 사례의 화살표가 잘 이해가 되지 않아 질문드립니다
안녕하세요. 항상 좋은 강의 감사합니다. 강의에서는 다루지 않았지만 교재의 axios DIP 사례의 화살표가 잘 이해가 되지 않아서 이렇게 질문드립니다.getData의 경우에는 httpClient를 인자로 받고 내부에서 사용하기 때문에 httpClient 을 수정해야할 경우에 getData 함수도 수정이 필요하기 때문에 의존성을 갖는다는 것이 이해가 갑니다. 하지만 axios와 fetch는 해당 api에서 httpClinet를 사용하는 것도 아닌데 어떻게 httpClient에 의존성을 갖는지, 화살표 방향이 잘 이해가 되지 않습니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
dropdown이 기능하지 않아요 ㅠ
nav-bar에 dropdown 관련해<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">js가 작동하지 않는 것인지, 클릭시 #만 붙고 drop-item들을 보여주질 않습니다;;선생님과 똑같이 해서 해도 기능하지 않아서라이브러리도 전부 점검해보았는데, 답을 찾기 어려워 질문 남깁니다 ㅠjustify-content-end이 부분도 css 적용이 안되고 있습니다. 제가 어느 부분을 놓쳤을까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 후, loginHome으로 리다이렉트 되지 않고 걍 home으로 리다이렉트 됩니다.
[로그인처리하기 - 쿠키사용] 강의 중에서 문제가 있어 문의드립니다.위 화면캡처에서 위에 2줄은 회원가입 시 로그가 출력된 것이고, 3번째 줄은 로그인 후 ID가 출력된 것입니다. (강의에서의 로그를 약간 수정했습니다.)그런데 로그인이 완료된 후 loginHome이 아닌 home으로 리다이렉트 됩니다. home으로 리다이렉트된 후이렇게 확인되는데, 제가 보기에는 회원가입도, 로그인도 잘 이루어진 것 같습니다. 정말 잘 이루어졌다면... 문제는 loginHome으로의 리다이렉트 문제일 것 같습니다. 우선 HomeController의 @GetMapping("/")는 강의와는 다르게homeLogin메서드의 매개변수를 3개로 하였습니다. 제가 짠 코드에서는 (memberId가 존재는 하지만) 실제 로그인id 역할을 하는 것은 email이기 때문입니다. memberMvcRepository.findByEmail은 아래와 같습니다.코드를 여러 번 고쳐봤지만 원인은 찾지 못했습니다. (구글링은 어떻게 질문해야 할 지 몰라...조금 찾다가 포기했습니다)제가 위에 말씀드린 부분 중에서 loginHome으로 리다이렉트 되지 않는 이유가 있을까요? (김영한님 다른 강의 내용까지 섞여 있는 코드이기에 코드를 구글드라이브에 공유하기 전에 먼저 문의를 드려봅니다...)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
integration Test 시 회원가입 메소드에서 DB와 연동되지 않는 문제가 발생합니다.
안녕하세요. 강의를 따라 진행하던 중, jdbc를 이용해서 새로운 integration 테스트를 진행하면, 회원가입 함수가 pass 되긴 하나, DB에 갱신되지 않습니다. 예를 들어 "spring"을 등록하고자 하면, DB에 없는데도 테스트는 통과되었으나 디비에는 갱신되어있지 않고, 계속 회원가입 함수를 써도 fail이 나지 않습니다.spring이 이미 등록되어있으면, 거기서는 또 fail이 발생합니다.다른 분들이 질문하신걸 이미 다 찾아보고, 하루 이상 시간을 써도, 코드를 다시 다 확인하고 다시 써봐도 해결되지 않습니다.Test의 회원가입 함수 등록시 디비에 연결되지 않을 경우의 수가 무엇이 있을까요? localhost 사이트에 들어가서 회원가입()과 동일한 로직으로 회원가입을 하면 또 정상적으로 등록됩니다.
-
미해결AutoCAD 2022 2D 기초 다지기
20:34 각도
20:34 에 @50<67.5 인 이유가 뭔가요? 135를 왜 반으로 나누는 지 잘 모르겠어요.. 180-135 해서 45로 생각했었는데.. 헷갈려서요ㅜ
-
미해결Data Engineering Course (1) : 빅데이터 하둡 직접 설치하기
start-dfs.sh가 작동하지 않습니다.
강의에 있는 모든 스크립트를 오타없이 작성하였고 namenode format까지 정상적으로 끝냈는데 그 다음 순서인 start-dfs.sh가 동작하지 않습니다. 해당 명령어를 치고난 후 아무일도 발생하지 않고, jps로 봐도 동작하지 않습니다. 해당 쉘 스크립트 파일을 열어보니 비어있습니다. 뿐만아니라 sbin디렉토리에 있는 모든 쉘 파일들이 아무것도 입력되어있지 않은 빈파일들인데 이게 맞나요?