묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요 왜 저는 v3쿼리가 다르게 나오는 걸까요?
public List<Order> findAllWithMemberDelivery() { return em.createQuery( "select o from Order o" + " join fetch o.member m" + " join fetch o.delivery d", Order.class) .getResultList(); }이렇게 똑같이 했는데도 select o1_0.order_id, d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status, m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id조인이 이상하게 되고 있습니다@Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(fetch = LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "delivery_id") private Delivery delivery; private LocalDateTime orderDate; //주문시간 @Enumerated(EnumType.STRING) private OrderStatus status; //주문상태 [ORDER, CANCEL] @Id @GeneratedValue @Column(name = "member_id") private Long id; @NotEmpty private String name; @Embedded private Address address; @JsonIgnore @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>();@Id @GeneratedValue @Column(name = "delivery_id") private Long id; @JsonIgnore @OneToOne(mappedBy = "delivery") private Order order; @Embedded private Address address; @Enumerated(EnumType.STRING) private DeliveryStatus status; //READY, COMP잘못 연관 관계를 잘못 설정한걸까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ModelView 객체 여러개 생성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]MemberSaveControllerV3와 MemberListControllerV3에서 process 메서드가 실행될 때마다 새로운 ModelView객체를 생성하는데, 해당 컨트롤러로 들어오는 url은 같으므로 이를 싱글톤으로 만들면 메모리 관점에서 더 좋은것 아닌가요? 이를 따로 고려하시지 않은건지 아니면 다른 이유가 있는지 궁금합니다!
-
해결됨홍정모의 따라하며 배우는 C++
동적 2차원 배열 생성 시 연속된 메모리 할당 여부
안녕하세요. 강의를 듣고 난 후 메모리 상에서 row간에 인접한 주소를 가지는지, 즉 2차원 배열의 원소 전체가 메모리 상에서 연속되어 있는지 궁금하여 아래와 같이 작성한 후 실행해 보았습니다. int** matrix = new int* [row]; cout << intptr_t(&matrix[0]) << endl; cout << intptr_t(&matrix[1]) << endl; cout << intptr_t(&matrix[2]) << endl; cout << endl; for (int r = 0; r < row; r++) { matrix[r] = new int[col]; } cout << intptr_t(matrix[0]) << endl; cout << intptr_t(matrix[1]) << endl; cout << intptr_t(matrix[2]) << endl; ```x64로 빌드하였고, 각 row를 가리키는 포인터의 주소는 8 바이트씩 연속되어 있는것을 확인하였습니다. 하지만 각각의 row 의 첫 원소의 주소끼리는 간격이 일정하지 않았고, 여러 번 테스트를 해보니 row간의 주소가 증가하다 감소하는 경우도 있었기에 정적 배열과 달리 메모리가 연속되어있지 않다고 결론내렸습니다. 그런데 주소 사이의 간격이 과도하게 멀어지는것 같지도 않았기에 아래 그림과 같이 약간 느슨하게(?) 가까이 있는 느낌이 들었습니다. C++에서 new 키워드를 사용해서 메모리를 할당할 때에 무언가 법칙이 있는것 같은데, 위 코드처럼 연속적으로 메모리를 할당받는 경우에는 가능한 한 가까운 주소에 할당해주는 건가요?
-
미해결김영한의 실전 자바 - 기본편
다형적 참조의 오버라이딩
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른 분께서 올려주신 질문 글을 읽고 저 또한 같은 의문이 생겼지만, 그에 대한 답변이 저에게는 잘 와 닿지 않아서 제가 이해한 바를 적어봅니다. 상속 관계에 있는 객체의 메서드를 사용할 때는, 우선 메서드를 사용하는 변수의 참조값을 따라 인스턴스를 찾고, 인스턴스 내의 변수 타입과 동일한 클래스 타입부터 시작하여 메서드를 찾는다고 하셨습니다. 그리고 이렇게 메서드를 찾을 때는 자식 클래스에서 부모 클래스 방향으로 올라가는 것만 가능하고, 부모 클래스에서는 자식 클래스에 대한 정보가 없으므로 반대는 불가능하다고 말씀하셨습니다. 그런데 부모 변수가 자식 인스턴스를 참조하는 다형적 참조의 경우, 메서드를 호출하는 변수의 타입은 부모 클래스이므로 메서드를 부모 클래스에서 찾을 것이고, 부모 클래스는 자식 클래스에 대한 정보가 없는데 어떻게 자식 클래스에 해당 메서드가 오버라이딩이 되었는지 판단하는지 잘 이해가 되지 않았습니다. 제 식대로 내린 결론은 다음과 같습니다.다형적 참조에서는 변수의 타입은 Parent지만, 이 변수가 참조하는 것은 자식 인스턴스인 Child입니다. 호출된 메서드를 찾을 때는 변수의 타입과 같은 Parent에서 탐색하는 것은 맞지만, 오버라이딩 여부는 Child 인스턴스 내에서 별개로 확인하는 것이고 Parent 인스턴스와는 무관합니다.제가 이해한 방식이 맞나요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
import 안 됨 문의
안녕하세요!모듈 강의를 듣다가 import test_module 을 진행하였는데 오류가 나서 문의 드립니다.오류 : Import "test_module" could not be resolved인터넷에서 오류를 검색했는데 pyhton 경로를 제대로 잡지 않아 발생하는 오류여서 Ctrl + Shift + Ppthon:select Interpreter 을 선택하면 된다고 했는데 여러번 해보거나 파일의 경로를 수정해봐도 오류가 발생합니다.수정이 필요한곳이 있는지 확인 부탁드립니다.감사합니다.
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
유니티 에디터 버전
유니티 버전을 2019.1이 아닌 다른 최신버전인 2022.3 버전으로 사용해도 되나요?
-
미해결Airflow 마스터 클래스
trigger rule 설정 질문
안녕하세요. 트리거룰 기능 관련해서 질문드립니다. 강의에는 1개 이상 스킵, 컴플리트, 모두 컴플리트이런 식의 조건만 소개되어 있는데, 특정 테스크를 지정해서 설정하는 방법은 없나요?예를 들어, 5개 상위 테스크 중에 2,4번 테스크가 완료되는 경우에만 실행한다, 이런 식의 조건이 가능한지 궁금합니다. 별개로 airflow2 강의도 계획 중이신지 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberService 구현과 역할 분리
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 보면 MemberService의 경우 구현과 역할을 분리하지 않고 클래스 하나에서 전부 처리하는데 왜 역할과 구현을 따로 분리하지 않나요?
-
해결됨풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
장바구니 담기 버튼 누르면 404에러가 뜹니다
강의 여러번 돌려보고 커뮤니티 질문에도 찾아보고 구글링도 해봤는데 어디서 뭐가 잘못된 건지도 모르겠어서 질문 올립니다! 대체 어디서 잘못 된 걸까요,,,queryClient.tsimport request, { RequestDocument } from "graphql-request"; import { useQuery, useMutation, useQueryClient, QueryClient, QueryClientProvider, } from "react-query"; // any 타입 미리 만들어줌 type AnyOBJ = { [key: string]: any }; // Create a client export const getClient = (() => { let client: QueryClient | null = null; return () => { if (!client) client = new QueryClient({ defaultOptions: { queries: { // 캐시타임 : 이 시간 안에는 다시 상세페이지 들어가도 요청 안 함 cacheTime: 1000 * 60 * 60 * 24, staleTime: 1000 * 60, refetchOnMount: false, refetchOnReconnect: false, refetchOnWindowFocus: false, }, }, }); return client; }; })(); // 기본 url const BASE_URL = "/"; // restFetcher async로 요청 export const restFetcher = async ({ method, path, body, params, }: { // 메소드 타입 정의 method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; // url대신 path를 받음 path: string; // post나 put의 경우엔 body가 필요하므로 body?: AnyOBJ; // 파라미터 params?: AnyOBJ; }) => { try { // 기본 url + path let url = `${BASE_URL}${path}`; // RequestInit은 node에 기본적으로 정의되어 있음 const fetchOptions: RequestInit = { method, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": BASE_URL, }, }; // param이 오면 if (params) { const searchParams = new URLSearchParams(params); url += "?" + searchParams.toString(); } // body가 오면 if (body) fetchOptions.body = JSON.stringify(body); // url와 옵션들 요청 // 메서드와 path를 받아서 완성 const res = await fetch(url, fetchOptions); // 받은 것을 json으로 바꾸기 const json = await res.json(); return json; // 에러 출력 } catch (err) { console.error(err); } }; // graphqlFetcher export const graphqlFetcher = <T>(query: RequestDocument, variables = {}) => request<T>(BASE_URL, query, variables); // 쿼리 키 만들기 export const QueryKeys = { PRODUCTS: "PRODUCTS", CART: "CART", }; product/item.tsx 컴포넌트import { Link } from "react-router-dom"; import { Product } from "../../../graphql/products"; import { useMutation } from "react-query"; import { graphqlFetcher } from "../../../queryClient"; import { ADD_CART, Cart } from "../../../graphql/cart"; const ProductItem = ({ imageUrl, price, title, id }: Product) => { const { mutate: addCart } = useMutation(({ id }: { id: string }) => graphqlFetcher(ADD_CART, { id }) ); return ( <li className="products-item"> <Link to={`/products/${id}`}> <p className="products-item__title">{title}</p> <img className="products-item__image" src={imageUrl} /> <span className="products-item__price">${price}</span> </Link> <button className="product-item__add-cart" onClick={() => { addCart({ id }); }} > 장바구니 담기 </button> </li> ); }; export default ProductItem; 콘솔에 뜨는 오류나는 파일 올려드립니다..
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
미들웨어 확장 패턴 적용 이후 api 제한이 안되는 이슈가 있습니다
미들웨어 확장 패턴 적용 이전에는 api호출 횟수를 넘어서면 handler()함수에 적어넣은 부분이 잘 동작합니다하지만 적용 이후에는 왜 인지 동작하지 않습니다.어떤 이유일까요?
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
다음 강의는 언제 출시되는지 알 수 있을까요?
다음 강의가 너무 기대되는데 출시 예정은 언제인지 알 수 있을까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
localhost 충돌문제
diaryediter.jsonCreate(state.author, state.content, state.emotion);넣는 순간 충돌이 일어납니다. 주석 처리하면 저장 성공은 확인되지만 일기리스트에 추가가 안됩니다.넣으면 이런현상이 발생합니다
-
미해결비전공 기획자 및 관리자를 위한 IT 필수 지식
강의 너무 좋습니다 정말 ㅠㅠ
강의가 정말 좋습니다... 특히 캠이 있으니까 집중이 더욱 잘됩니다. 너무좋아요 ... 그리고 파일 공유 받고싶은데 시간 여유되실때 한번만 부탁드려도 될까요!?diding0222@naver.com 입니다 !
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
오류 처리 컨트롤러 직접 접근
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.sendError 나 Exception 발생 시 내부적으로 호출될 컨트롤러 (/error-page/404, /error-page/500) 을브라우저에서 url 을 직접 입력해서도 호출할 수 있는데이러한 접근은 보안 상에 큰 문제가 없을 것 같은데 굳이 막지 않아도 되는 걸까요?
-
해결됨웹플로우(Webflow) 시작하기 - 코딩 없이 자유도 높은 프로토타입 만들기
웹플로우로 게시판 구현 가능할까요?
안녕하세요 장피엠님!웹플로우를 활용해서 고객들이 게시판에 문의 사항을 남길 수 있는 페이지를 만들고 싶은데, 어떻게 하면 좋을까요? 간단한 로직 알려주시면 정말 감사하겠습니다. 도와주세요ㅠㅠ
-
미해결김영한의 실전 자바 - 기본편
자바 중급,고급편 내용
자바 중급, 고급편 강의는 대략적으로 어떤 내용의 강의인가요??
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
안녕하세요 선생님 질문드립니다.
나름 복습한다고 했는데 갑자기 기어가다가 걸음마 혼자 하라는 느낌입니다.. while(3-1) 강의 #예제 5번 중 i = 1while i <= 10:print('i : ', i)if i == 6:breaki += 1우리말로 옮겨 적으면..(선언) i는 1이다. (출력) 10 이하라면 i를 출력해라.{조건1} i에 1을 더했을 때(조건2) i가 6인 경우에는 출력에서 빠져나온다.(break){조건1} 을 빼고 이해 했습니다. 문제는i += 1 를 이해 못하겠습니다.{조건1} i 에 1을 더했을 때 로 읽는거 같은데#i += 1 코드를 적는 위치가 헷갈립니다.#i = 1while i <= 10:print('i : ', i)if i == 6:breaki += 1 예제와 같이 적으면i : 1i : 2i : 3i : 4i : 5i : 6으로 출력되고i = 1while i <= 10:print('i : ', i)i += 1if i == 6:break 이렇게 적으면i : 1i : 2i : 3i : 4i : 5 까지로 6이 비게 되는데1이 출력되는 이유와 출력시 6이 없는..이유가 궁금합니다.또 이렇게 적게 되면 우리말로 해석하게 되면 어떻게 되는지도 궁금합니다.순서대로 쭉쭉 읽을 수 있으면 좋겠는데 여기봤다가 저기봤다가 하니까 혼동스럽습니다 ㅜㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ModelAttribute에 대해서 궁금한점이 있습니다.
@GetMapping("/nonModelAttribute") public void getList(Page page) { } @GetMapping("/modelAttribute") public void getList(Model model,@ModelAttribute Page page) { }@Slf4j @Component public class PageArgumentResolver implements HandlerMethodArgumentResolver{ @Override public boolean supportsParameter(MethodParameter parameter) { // TODO Auto-generated method stub return parameter.getParameterType().equals(Page.class); } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { return null; } } 강의에서 위 두개가 같다고 하셨는데 위의 /nonModelAttribute의 요청의 경우 Page 객체의 경우에는 Argument에서 객체를 만들지않으면 아예 null이 들어오기때문에 ArgumentResolver를 통해서 객체가 생성이 된다는것을 알수있는데 /modelAttribute의 경우에는 해당 부분에서 객체를 생성하지않아도 객체가 생성이 되던데 두개의 차이점이 있는건가요?? 그리고 만약에 차이가 있다면 ModelAttribute의 객체는 어디서 생성이 되는건가요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
코드 볼 수 있을까요?
코드 부탁드립니당 ㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
m1 세팅 확인 부탁드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이렇게 진행했는데 오류가 계속 뜹니다.visual studio code는 세팅을 하고 설치하면 될까요?추가로 터미널에서 줄바꿈 기능은 따로 없는걸까요?