묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
N : N 문제를 중간 테이블 매핑 전략중 쿼리 질문
안녕하세요 현재 개발 중인 학생입니다. 현재 시스템에서는 레스토랑과 아이템 간의 관계를 모델링하는 데 있어 다대다 관계를 매핑하고고 있습니다. 이러한 관계는 중간 엔티티인 RestaurantStock을 통해 매핑되어 있으며, 하나의 가게가 여러 아이템을 가질 수 있고, 하나의 아이템이 여러 가게가 가질수 있는 구조입니다. 쿼리 로직은 Restaurant 엔티티를 기준으로, 해당 레스토랑에서 판매하는 아이템들을 조회합니다. 이 과정에서 Restaurant과 RestaurantStock, 그리고 Item 엔티티를 조인하여 필요한 정보를 한 번의 쿼리로 가져옵니다. 하지만, 이 접근 방식에 대해 팀원 중 일부는 N + 1 문제가 발생한다고 지적하였습니다.현재 레스토랑은 하나가 저장된 상태이고, 아이템은 2개가 저장된 상태입니다. 그런데 궁금한 점은 현재 이렇게 조회하게 되면 결과값이 2개 조회가 되는데 이것을 본 저희 팀원이 N + 1이라고 하는데 맞는지 궁금합니다.쿼리를 보지 않고 결과값으로만 보고 N + 1 이라고 이야기하는데 맞는지 궁금합니다.
-
해결됨깃헙 블로그(Github blog)로 차별화 된 나만의 홈페이지 만들기!
url공유시 썸네일 이미지
url공유시 썸네일 이미지를 지정하고 싶은데 자꾸 하얀 화면만 나옵니다. 제가 시도해본 내용은 /_inclues/open-graph.html 추가 <meta property="og:url" content="{{ site.url }}{{ page.url }}" /> <meta property="og:title" content="{{ page.og_title }}" /> <meta property="og:description" content="{{ page.og_description }}" /> <meta property="og:image" content="{{ site.url }}{{ page.og_image }}" /> <meta property="og:type" content="{{ page.og_type }}" /> <meta property="og:locale" content="en_US" />/_layouts/default.html 에 아래 내용 추가 <head> {% include head.html %} {% include head/custom.html %} {% include open-graph.html %} </head> /_posts/ 마크다운 파일에 아래 내용 추가 header: teaser: /assets/images/file.png og_image: /assets/images/file.png
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
해당 로그인 체크 로직에서 에러가 발생하지 않으려면
/** * @return null 로그인 실패 */ public Member login(String loginId, String password) { Optional<Member> byLoginId = memberRepository.findByLoginId(loginId); Member member = byLoginId.get(); if (member.getPassword().equals(password)) { return member; } else { return null; } // return memberRepository.findByLoginId(loginId) // .filter(m -> m.getPassword().equals(password)) // .orElse(null); } 복사하실 수 있게 코드 원본과 사진 첨부드립니다.밑에 주석처리한 부분이 이제 강의에서 stream으로 간소화한 로직인데요.stream을 사용하지 않은 로직으로 로그인에 실패했을 때, NoSuchElementException 에러가 발생하는 것을 확인했습니다.아마 optional 객체에 get() 메서드를 찍을 때, 발생하는 것 같습니다. 여기서 질문이 있습니다. stream의 filter를 이용하면, 왜 에러가 발생하지 않는 것인지 궁금합니다. stream을 통해 코드를 간소화시켰지만 두 코드의 동작 원리는 같다고 생각합니다. 단지 stream만 썼다고 위 코드는 에러가 발생하고, 아래 코드는 에러가 발생하지 않는 것이 이해가 잘 안되는 것 같습니다. (stream에 대한 이해가 부족한 탓일까요)만약 stream 처리를 하지 않은 로직을 사용한다고 했을 때, NoSuchElementException 에러가 발생되지 않게 하려면 어떻게 로직을 재구성 해야할까요? stream 사용 x
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 연결 오류가 떠요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]h2 데이터 베이스를 새로 생성하면서 이름과 패스워드를 설정했는데강의대로 따라가다가 Error : Wrong user name or password가 떠요설정한 이름과 패스워드를 아예 없애는 방법이 있을까요?아니면 속성에 name과 password를 적는 방법을 알려주시면 감사하겠습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 데이터베이스 설정관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다름이 아니라 다른 프로젝트를 하면서 test라는 이름의 DB를 이미 만들어 놔서 그런지는 몰라도 이러한 오류가 뜨더군요 이게 이전에 만들어 놓은 test라는 이름의 db파일때문인지 궁금합니다 또한 제가 이전에 작업했던 프로젝트도 h2데이터 베이스를 사용하느라 test라는 주소로 연결토록했는데 이전 프로젝트의 application properties를 testDB이런식으로 이름을 바꿔주면 제가 지금 사용할때 test라는 이름으로 h2 데이터베이스를 사용할 수 있을까요? 마지막으로 이미 생성된 test라는 DB파일이 있다면 해당 디비로는 연결이 되면 안되는 건가요? 하나의 디비 파일 연결을 (물론 테이블의 구성요소가 다르겠지만) 다른곳에서 사용할 수 없는 걸까요? 질문 하다 보니 너무 길어진 점 죄송합니다.
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
피벗테이블 NotImplementedError
제 생각에는 df_cafe 에는 숫자형식의 데이터만 있는게 아니라서 나는 에러라고 생각해서 pd.pivot_table(data=df_cafe, index="시군구명") , values=["경도","위도"]) 이렇게 했더니 일단 해결은 됐습니다. 그런데 이렇게 하드코딩? 으로 지정하는거 말고 숫자로된 데이터만 계산할 수 있도록 하는 방법은 없을까요?
-
해결됨장애 없는 서비스를 만들기 위한 Resilience4j - CircuitBreaker
Circuitbreaker 사용 주체
안녕하세요예를 들어백엔드 서버 A -> 백엔드 서버 B와 같은 구조가 있을 때백엔드 서버 B에 문제가 생기면 Circuitbreaker 상태가 OPEN으로 바뀔텐데그럼 이 Circuitbreaker 상태를 OPEN으로 바꾸는건백엔드 서버 A가 하는 건가요? 아니면 백엔드 서버 B가 하는건가요??
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Editor....를 활용한 패턴에 질문있습니다.
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요.Editor관련한 질문글들을 읽어보아도 제 머리로 이해가 안돼서 또 이렇게 Editor 질문 글을 하나 더 추가합니다... ㅠㅠ [해당 영상을 보지 않았더라면 짰을 코드]Post엔티티에 비즈니스 로직을 작성하고단순하게 PostEdit을 전부 넘겨 비즈니스 로직 change를 호출하여 더티체킹으로 마무리! 이렇게 했을 경우, 파라미터 순서에 무관하게 PostEdit이라는 수정을 위한 Dto 객체를 단 하나만 넘겨 수정을 할 수 있다고 판단했습니다. 물론 위 비즈니스 로직은 null값에 대처는 못하겠지만요! 하지만, 프론트 개발자와 상의하여 '수정 시, 모든 데이터를 넘겨준다는 전제' 에서는 가장 간단한 방법이라고 생각했습니다! [Editor를 작성해보며 느낀 의문점]Post의 toEdit을 통해 기존 가지고 있던 데이터를 PostEditor에게 넘김으로써 Builder에서 null값에 대응할 수 있다는 점 이외에는 또 다른 장점을 이해하지 못하고 있습니다. Request의 title혹은 content가 null일 경우 이를 해결하기 위한 방법을 제시해주는 것 말고는 되려 관리해야 할 것들만 늘어난 느낌이 해소가 되지 않습니다 ㅠㅠ 그래서 제가 이해한 것 까지의 내용들이 잘 이해한 것인지 그리고 추가적으로 제가 이해하지 못한 것들을 이해하고 싶습니다! findById로 수정하려는 엔티티를 가져옵니다.toEdit()을 통해 현재 수정하고자 하는 엔티티의 필드들을 PostEditor에게 넘겨 빌더를 만듭니다. 이는 수정하려는 엔티티가 현재 가지고 있는 필드들을 핸들링 할 수 있도록 해줍니다. (가령, title혹은 content의 null 처리)2번을 통해서 PostEditor가 현재 수정하려는 Post의 필드들을 주입 받았으면, Request로 받은 데이터를 통해 최종 build()를 해줍니다.변경사항을 모두 적용한 postEditor를 Post의 변경비즈니스 메서드 edit(postEditor)를 통해 더티체킹으로 변경해줍니다. [최종적으로 든 생각][Editor를 작성해보며 느낀 의문점] 에서 작성된 것들이 정확하다면,아예 첫 방법을 사용하되, 비즈니스 메서드에서 null 체크를 해주면 어떨까? 하는 생각이 들었습니다.이런 방식으로 진행한다면 문제가 있을까요? 긴 글에 시간 내어주셔서 감사합니다 !
-
미해결장애 없는 서비스를 만들기 위한 Resilience4j - CircuitBreaker
Retry 사용
안녕하세요resilience4j의 Retry는 보통 MSA 내에서백엔드(Spring boot) 서버 <-> 백엔드(Spring boot) 서버 간의 통신에서만 사용할까요? 아니면 백엔드 서버 <-> 카프카 서버, 백엔드 서버 <-> 엘라스틱서치 서버와 같은 경우에도 자주 사용하나요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
뭐가 틀린것인지 잘 모르겠습니다
n , m = map(int,input().split()) lst=[list(map(int,input().split())) for _ in range(n)] dy=[0]*(m+1) ch=[[] for _ in range(m+1)] for i in range(n): for j in range(lst[i][1],m+1): if dy[j] < dy[j-lst[i][1]]+lst[i][0] and (i not in ch[j-lst[i][1]]): ch[j]=ch[j-lst[i][1]] + [i] dy[j] =dy[j-lst[i][1]]+lst[i][0] print(max(dy))제가 짠 코드는 원래값이랑 리스트돌면서 이 시간만큼썼을때 더해지는 점수랑 비교해서큰값으로 바꿔주는것입니다.만약 리스트돌면서 이 시간만큼썼을때 더해지는 점수가 컸을때는 해당하는 문제를 푼것이 되니깐 ch에 그 index가 있는지 없는지를 비교해서 있으면은 안바꿔주고 없으면은 바꿔주는것입니다.만약에 없어서 바꿔주면은 ch에 그 index를 추가하는 방식으로 구현을했는데 왜 틀린것인지 모르겠습니다
-
미해결조코딩의 코딩 기초와 웹 풀스택 개발
livesurver가 작동이 안돼요.
안녕하세요, 강의를 보던 중 궁금한게 있어서 문의 드립니다. 라이브서버를 다운받고 'open with live surver' 를 눌렀는데 크롬에서 영상처럼 연동이 안되네요. 인터넷 찾아보면서 세팅설정도 바꿔보고 했는데도 안되네요. 뭐가 문제인지 알려주실 수 있으신가요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
A,B,C 나열하는 대신 *로 불러올 수는 없나요!?
SELECT CASE WHEN A=B AND B=C THEN 'Equilateral' ELSE 'OTHER'END, A,B,CFROM Triangles 이 구문을 SELECT CASE WHEN A=B AND B=C THEN 'Equilateral' ELSE 'OTHER'END, *FROM Triangles 이전 수업에 알려주신 방법처럼 아스타로 이렇게 쓸 수는 없는걸까요!? 전체 데이터를 뽑아와서 비교하고 싶은데 오류가 뜹니다..!
-
해결됨블렌더 기초 : 3D그래픽 여행 아이콘을 만들며 배우는 블렌더 애니메이션 기초 과정
렌더링 결과가 핑크색으로 나오는 현상 문의
안녕하세요. 수업 너무 재밌게 잘듣고 있습니다 :) 수업 내용을 따라서 만들고 렌더링하면, 결과물이 자꾸 핑크색으로 보여서 도움 요청드려봅니다. 핑크색 테두리도 있네요... 혹시 어느 설정을 확인해보면 좋을까요..?
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
NPU 관련 질문
안녕하세요 강의 잘 듣고 있습니다 😃 다름이 아니라 강의에서는 CNN을 통해 가속기를 만드는데요첫주차에 말씀 해주신 SNN은 현재 상용화가 많이 안 된 상태인지 궁금합니다.NPU 만들기 위해 현재 CNN이 base로 가장 많이 활용되나요?SNN이 안 쓰이는 이유가 있다면 무엇이 있을까요? 감사합니다 😁
-
해결됨언리얼 엔진 5 스파르타 클래스 - 심화편
스테이트 머신으로 Locomotion 제작 강의를 따라하는데 블루프린트 런타임 오류가 발생합니다
영상을 따라 한 뒤 마지막에 실행하면 캐릭터가 기본자세로 선체로 움직이고 이 오류들이 뜹니다블루프린트 런타임 오류: "Character Movement 프로퍼티를 읽으려던 중 None에 접근했습니다.". 노드: Set Velocity 그래프: EventGraph 함수: Execute Ubergraph Testanimationbp 블루프린트: testanimationbp블루프린트 런타임 오류: "Character Movement 프로퍼티를 읽으려던 중 None에 접근했습니다.". 노드: Set Velocity 그래프: EventGraph 함수: Execute Ubergraph Testanimationbp 블루프린트: testanimationbp
-
해결됨[리액트 2부] 고급 주제와 훅
[2.1장 컨택스트] 2.1.4 공급자와 소비자 / 에서 질문이 있습니다.
안녕하세요 선생님 react context를 이해하려고 시도하는 중입니다.const countContext = MyReact.createContext({ count: 0, setCount: () => {}, }); class CountProvider extends React.Component { constructor(props) { console.log("CountProvider construtor"); super(props); this.state = { count: 0, }; } render() { const value = { count: this.state.count, setCount: (nextValue) => this.setState({ count: nextValue }), }; return ( <countContext.Provider value={value}> {this.props.children} </countContext.Provider> ); } } const Count = () => { return ( <countContext.Consumer> {(value) => { console.log("CountComponent", value); return <div>{value.count}</div>; }} </countContext.Consumer> ); }; const PlusButton = () => { return ( <countContext.Consumer> {(value) => { console.log("PlustButtonComponent", value); return ( <button onClick={() => value.setCount(value.count + 1)}> + 카운트 올리기 </button> ); }} </countContext.Consumer> ); }; export default () => ( <CountProvider> <Count /> <PlusButton /> </CountProvider> );Count , Plus Button component return 문에 각각console.log("CountComponent", value); console.log("PlustButtonComponent", value);로그를 남겨봤습니다.사진에 표시 된 것 처럼 로그가 각 Component마다 2번씩 찍히는데 그 이유를 알 수 있을까요...?로그의 value 값이 다른게 힌트 같은데 해석을 하지 못하겠습니다.
-
미해결확률과 통계 기초
5.1 조인트 조건부확률 강의
뒤쪽부분 y라는 조건일때 평균 분산등 구할때 모두 기본조건이 y가 x의 파티션일때 성립하는거죠??x의기댓값 구할때 yi*E(x l yi) 에서 y가 파티션일때 성립하니까 뒤쪽 내용도 다 파티션 가정하는게 맞을까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
OrderProduct 테스트에 대해
안녕하세요 강사님먼저 강의에 대해 너무 감사드린다는 말씀 드리고 싶습니다.강의 내용 중 OrderProduct를 생성하는 부분의 책임이 Order에 있게 설계하는 부분에 정말 매력을 느끼고, 유사한 설계 방법들에 대해 공부하려면 어떤 키워드를 알아보면 좋을까요??또한 이 강의를 따라 공부해서 개인적으로 진행중인 프로젝트에 적용하면서 공부하고 있는데, 딱 Order와 OrderProduct같은 관계에서 OrderProduct를 강의에서처럼 생성자가 아닌 정적 팩토리 메소드를 통해 만들어보고자 하였습니다.하지만 여기에서 OrderProdcut의 정적 팩토리 메소드를 테스트하려면 Order가 필요하고, Order를 create하려면 또 OrderProduct가 내부에서 만들어지는 문제가 발생했습니다.이런 경우는 어떻게 해결할 수 있을까요??임의로 Order에 대해 mock으로 생성해서 해결하고는 있는데, 이게 일반적인 방법이 될 수 있을까요?감사합니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-M 질문
안녕하세요 큰돌님!회전에 대한 아이디어를 떠올리지 못해서4방향에 대해서 dfs 돌리면서 구현해 보았는데TC는 다 통과하는데 바로 틀렸다고 나와서 질문 드립니다 ㅠㅠ 어느 부분을 신경쓰지 못한 걸까요? 일단 저는 3가지 pair<int,int>형 배열을 사용하고3가지 함수를 구현 했습니다. 우선 3가지 pair<int,int> 배열입니다.pair<int, int> startPos[4] = { {0,0},{20,0},{0,0},{0,20} }; // 위,아래,왼,오 부터 시작할때의 시작 위치 pair<int, int> NextRow[4] = { {0,1},{0,1},{1,0},{1,0} }; // 각 방향에 대해서 다음 줄로 이동하기 위한 pos 양. ex) 위일 경우 한줄하고 다음 열로 가서 해야함 pair<int, int> NextPos[4] = { {1,0}, {-1,0},{0,1},{-1,0} }; // 한 줄에 대해서 다음 Pos로 가기 위한 이동 양. ex) 위일 경우 0번행부터(열고정) 끝 행까지 검사해야 한다.3가지 함수 프로토 타입입니다.void dfs(int cnt, int curIdx); void moving(int dirIdx, int PivotIdx, int InputIdx); void updataMaxRet(int findIdx);dfs : 최대 5번까지의 이동을 하기 위함. dfs에 들어가면 4방향에 대해서 이동한다.dfs에서 각 방향에 대해서 호출되는 함수로. 새로운 배열에 이동된 값들을 넣어준다.이동된 새로운 배열에 대해서 최대값 업데이트 코드 링크는 여기있습니다.http://boj.kr/d56849369aa34f00b3ffea60647a4816
-
해결됨독하게 시작하는 C 프로그래밍
[섹션10 연산자] 필수 실습 문제 합격, 불합격 판단하기
안녕하세요 강사님[섹션10 연산자] 필수 실습 문제 합격, 불합격 판단하기 문제 질문드립니다. 강사님께서는 printf 함수안에 조건(3항)연산자를 넣으셨는데요저는 nSelect이라는 문자열을 선언해서 nSelect에 합격, 불합격이라는 문자열을 저장해서 printf로 출력하는 방식으로 문제를 풀어봤습니다 nSelect이라는 변수에 문자열의 공간!?을 10byte로 선언하고 0으로 초기화 한뒤에 실행을 했더니 실행은 잘 되는데 nSelect이라는 변수에 빨간색 밑줄과 오류 코드가 L-value로 뜨더라구요 왼쪽 피연산자를 변수인 nSelect으로 선언했는데 오류코드가 왜 뜨는건지 모르겠고 오류코드가 뜨는 왜 점수를 80으로 입력하면 '합격', 70으로 입력하면 '불합격'이라고 실행이 잘되는데 왜 그런지 이유가 궁금합니다. 문제가 없는건가요? 일부러 오류를 내보려고 nSelect이라는 변수에 문자열의 공간!?을 1byte로 선언하고 0으로 초기화 한뒤에 실행을 했더니 일단 실행은 잘됩니다. "합격"이라는 글자는 한글이므로 한글자 당 2byte 총 4byte의 크기이고 "불합격"이라는 글자는 3*2 = 6byte라서 nSelect라고 선언한 문자열 변수에 공간에 없어서 실행조차 되지 않아야하는데 실행이 됩니다. 왜 실행이 되는 것일까요? 물론 하단 오류 목록에 '배열의 크기가 0보다 커야합니다.' '상수크기의 0 배열을 할당할 수 없습니다'라는 설명이 있긴하지만 실행은 되어서 의문입니다. 또한 8번째 코드의 L-vaule 오류는 여전히 나옵니다.nSelect 문자열의 크기 선언을 1byte로 하면 역시 실행은 잘되는데 여전히 L-value 오류 항목이 뜹니다 선언한 배열의 크기가 1byte인데 그보다 크기가 큰 "합격", "불합격"이 문자열에 대입되고 실행이 됩니다. 이유가 궁금합니다