묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 데이터 JPA
EntityGraph 에서 복합키 조회시 질문드립니다.
public class Product { @Id Long productId; String name;}public class Member { @Id Long uid; String name;}public class MemberInterest{ @Id Long sequence; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "uid", insertable = false, updatable = false, referencedColumnName = "wine_id") Member member; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id", insertable = false, updatable = false, referencedColumnName = "wine_id") Product product; int ratingPoint;} public class PurchaseHistory { @Id Long sequence; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "uid", insertable = false, updatable = false, referencedColumnName = "wine_id") Member member; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id", insertable = false, updatable = false, referencedColumnName = "wine_id") Product product; @ManyToOne(fetch = FetchType.LAZY) @JoinColumns({ @JoinColumn(name = "uid", referencedColumnName = "uid", insertable = false, updatable = false), @JoinColumn(name = "wine_id", referencedColumnName = "wine_id", insertable = false, updatable = false) }) MemberInterest memberInterest;} 안녕하세요 강사님 강사님의 여러 강의를 잘 듣고있습니다. 질문이 두가지 있는데요 위와 같은 관계가 있다고 가정할 때 아래와같이 구매이력을 EntityGraph를 통해 가져오려고 합니다. @Repositorypublic interface PurchaseHistoryRepository extends JpaRepository<PurchaseHistory, Long> { @EntityGraph(attributePaths = {"member", "product", "memberInterest"}) Page<PurchaseHistory> findByUid(String uid, Pageable pageable);} 하지만 실제로 동작시 MemberInterest 부분에서 N+1 문제가 발생하는데요 ToOne 관계이면, 패치조인이 되어 N+1이 발생하면안될것같은데 이 경우는 왜 발생할까요? 그리고 어떻게 해결해야할지도 궁금합니다. 답변기다리곘습니다 감사합니다.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
재질문 드립니다 ㅠㅠ
감사합니다 !! 2번질문은 해결되었습니다 (--)(__) 꾸벅 1번 답변해주신것 적용해보았는데 캡처에서 보시는것처럼.. 컬러값을 다 다르게 적용했는데 결과물은 다 첫번째 색상으로 나오네요. ㅠㅠ 소스코드 첨부해드립니다. /* reset CSS */ h1,h2,h3,h4,h5,h6 { font-weight: 500; margin-top: 0; } /* css */ body { margin: 0; font-family: 'Noto sans KR', sans-serif; font-weight: 300; background-color: rgb(255, 255, 255); line-height: 1.6em; font-size: 18px; } a { text-decoration: none; color: #333; } /* Dropdown Navigation */ .program { /* display: flex; justify-content: center; */ } .program .inner { width: 1150px; margin: auto; } .inner h1 { border-bottom: 1px solid #ddd; padding-bottom: 30px; margin-bottom: 30px; } .inner h2 {} .items { /* border: 1px solid red; */ display: flex; gap: 40px; } .item { flex: 1; position: relative; } .item-list { /* background-color: rgb(24, 97, 206); */ color: white; text-align: center; } .item-list h4 { /* top: 10px; //궁금 */ font-weight: 300; padding-top: 20px; } .item-list:nth-of-type(1) { background-color: rgb(24, 97, 206); } .item-list:nth-of-type(2) { background-color: rgb(125, 96, 231); } .item-list:nth-of-type(3) { background-color: rgb(50, 70, 161); } .btns {} .btn { display: inline-block; width: 80px; padding: 5px 8px; margin-bottom: 30px; background-color: rgb(31, 31, 31); color: white; border-radius: 3px; } .download { width: 200px; } .item-desc { position: absolute; background-color: white; display: none; border: 1px solid #000; padding: 5px 15px; } .item:nth-child(1) .item-desc { border: 4px solid rgb(24, 97, 206); } .item:nth-child(2) .item-desc { border: 4px solid rgb(125, 96, 231); } .item:nth-child(3) .item-desc { border: 4px solid rgb(50, 70, 161); } .item-desc ul { list-style: none; margin: 0; margin-bottom: 30px; padding: 0; background-color: #eee; } .item-desc ul li::before { content: '-'; margin-right: 5px; } .item { /* border: 1px solid #000; */ } <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>한글사이트 드롭다운 네비게이션</title> <link rel="stylesheet" href="../css/style30.css"> <!-- jQuery CDN --> <script src="https://code.jQuery.com/jquery-3.5.1.min.js"></script> <script src="../js/jquery.scrollTo.min.js"></script> </head> <body> <section class="program"> <div class="inner"> <h1>다운로드 전체보기</h1> <h2>인기 다운로드</h2> <div class="items"> <div class="item"> <div class="item-list"> <h4>한컴오피스 뷰어(Windows용)<br>(통합뷰어)</h4> <div class="btns"> <a class="btn" href="#none">일반용</a> <a class="btn" href="#none">기업용</a> </div> </div> <div class="item-desc"> <p> Lorem ipsum dolor sit amet cons </p> <ul> <li>Lorem ipsum dolor sit amet</li> <li>adipisicing elit. Asperiores voluptas ipsa</li> <li>Lorem ipsum dolor sit amet consectetur adipisicing elit.</li> <li>avoluptas ipsa</li> </ul> </div> </div> <div class="item"> <div class="item-list"> <h4>한컴오피스 체험판<br>(30일간 사용가능)</h4> <div class="btns"> <a class="btn download" href="#none">다운로드</a> </div> </div> <div class="item-desc"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Asperiores voluptas ipsa consectetur numquam. </p> <ul> <li>Lorem ipsum dolor sit amet consectetur adipisicing elit.</li> <li>adipisicing elit. Asperiores voluptas ipsa</li> <li>Lorem ipsum dolor sit amet consectetur adipisicing elit.</li> <li>adipisicing elit. Asperiores voluptas ipsa</li> </ul> </div> </div> <div class="item"> <div class="item-list"> <h4>한컴오피스 2020 가정 및 학생용<br>(제품키배송형)</h4> <div class="btns"> <a class="btn download" href="#none">다운로드</a> </div> </div> <div class="item-desc"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Asperiores voluptas ipsa consectetur numquam. </p> <ul> <li>Lorem ipsum dolor sit amet consectetur adipisicing elit.</li> <li>adipisicing elit. Asperiores voluptas ipsa</li> <li>Lorem ipsum dolor sit amet consectetur adipisicing elit.</li> <li>adipisicing elit. Asperiores voluptas ipsa</li> </ul> </div> </div> </div> <div class="temp"> <img src="../images/temp.png"> </div> </div> </section> </body> </html>
-
미해결반응형 웹사이트 포트폴리오(Architecture Agency)
12분10초 부모요소 따라 내려가는 셀렉터 선택
부모요소따라 selectoer 선택하는건 좋지 않다고 하셨는데용 여기서 의문점이 있습니다. 말씀해주시면 class로 계속 적게 되면 각각의 tag 에게 전부 class 를 부여 해주어야 하나요? 이 부분에 대해서 너무 답답합니다 ㅠㅠ 누구는 저렇게 부모요소따라 적어주면서 하라고 하시구 GOD딩웍스에서는 딱 클래스만 적어서 사용하라고 하구요 ㅠㅠ 어느것이 정답인가요 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradle 빌드에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] intellij community, spring initializr 를 설치하고 gradle을 빌드하는데 이처럼 에러가 발생합니다..ㅜㅜ 해결방법 알려주시면 정말 감사드리겠습니다ㅠㅠ Gradle could not start your build. > Could not create service of type CrossBuildFileHashCache using BuildSessionServices.createCrossBuildFileHashCache(). > Failed to create parent directory 'C:\Users\mvc1\.gradle' when creating directory 'C:\Users\mvc1\.gradle\7.2\fileHashes' * Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Exception is: org.gradle.initialization.exception.InitializationException: Gradle could not start your build. Caused by: org.gradle.internal.service.ServiceCreationException: Could not create service of type CrossBuildFileHashCache using BuildSessionServices.createCrossBuildFileHashCache(). Caused by: org.gradle.api.UncheckedIOException: Failed to create parent directory 'C:\Users\mvc1\.gradle' when creating directory 'C:\Users\mvc1\.gradle\7.2\fileHashes'
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
질문 있습니다.
혹시 문제 도전해서 30분 안에 풀면 강의보고 넘어가면 되나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
검색? 논리적읽기? 횟수
안녕하세요. 뒤늦은 질문일지도 모르지만 일단 질문드려봅니다 ㅜ 1) TestOrders에 NONCLUSTERED INDEX를 하나 만들고 CustomerID = 'QUICK';를 검색할때 하나의 Leaf Page에 QUICK들이 모두 모여있어서 한 페이지만 찾으면되는데, 그렇다고 해도 28개의 QUICK을 찾으려면 최소한 28번은 읽어야 하는게 아닌가요? 오히려 WITH(INDEX(Orders_Index01))를 사용한 경우는 SEEK으로 'QUICK'모음을 찾고 그걸 하나씩 검사하기 때문에 논리적읽기가 30인건 어느정도 이해하겠는데 SCAN으로 한 경우는 왜 20일까요? 2) 예를들어 100개의 데이터중 A라는 데이터가 5개 있고 name으로 검색 가능하다고 했을때 C#의 리스트에서 검색을 할때는 A가 몇개인지는 결국 100개를 다 돌려봐야 하는데 (INDEX를 사용하지 않은)SQL에서는 왜 논리적읽기가 100이 아닌가요? 전체를 순회하는건 스캔1에 포함이 되는건가요?
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
인터페이스를 쓰는 근본적인 이유
안녕하세요 강사님 강의를 듣다가 의문이 생겼습니다 약간 혹은 상당히 일반적인 질문이 될 것 같은데요 왜 인터페이스를 써서 Complete()이라는 함수를 PlayerScript에서 구현을 해야 하는 건가요? 강사님 설명을 듣고 이해는 됐는데 다른 한쪽으로는 그냥 저 Complete()라는 함수를 바로 PlayerScript 클래스에 구현을 해주면 안되는건가요? 아니면 기능별로 클래스를 나눠야 한다는 OOP의 기본 개념 때문에 쓰는 건가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
app.use(express.json()), app.use(express.urlencoded({extended:true})) 클라이언트에서 보낸 데이터 사용에 관한 질문입니다.
app.use(express.json()); app.use(express.urlencoded({ extended: true }));req.body에 클라이언트에서 보내느 json데이터와 form에서 전달된 데이터를 사용할때 필요한 거라고 알고있는데 body-parser라는것을 설치 하지 않고 express에서 자체적으로도 제공을 하는건지 궁금합니다. body-parser로 안해줘도 되는건가요?
-
해결됨따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker-compose 관련 질문입니다.
안녕하세요! 좋은 수업 항상 감사합니다!! 제가 express와 mysql을 이용해서 간단한 회원기능과 게시판 기능을 만들고 이를 docker 이미지로 만들고 있었는데, express에서 비밀번호 해시함수를 위해 bcrypt라는 라이브러리를 사용을 했습니다. 그런데 이 bcrypt에서 docker-compose up 을 하면 사진과 같은 에러가 자꾸 발생합니다. 열심히 구글링을 해봤지만 해결을 못해서 질문 올립니다... 구글링을 해보니 제 로컬 OS환경은 MAC이고 Docker는 Linux여서 이런 OS차이 때문에도 에러가 발생한다고 하더라구요. 도커 알기 쉽게 설명해주셔서 감사합니다 ㅎㅎ 에러 코드 입니다! my_server | node:internal/modules/cjs/loader:1183 my_server | return process.dlopen(module, path.toNamespacedPath(filename)); my_server | ^ my_server | my_server | Error: Error loading shared library /app/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: Exec format error my_server | at Object.Module._extensions..node (node:internal/modules/cjs/loader:1183:18) my_server | at Module.load (node:internal/modules/cjs/loader:981:32) my_server | at Function.Module._load (node:internal/modules/cjs/loader:822:12) my_server | at Module.require (node:internal/modules/cjs/loader:1005:19) my_server | at require (node:internal/modules/cjs/helpers:102:18) my_server | at Object.<anonymous> (/app/node_modules/bcrypt/bcrypt.js:6:16) my_server | at Module._compile (node:internal/modules/cjs/loader:1101:14) my_server | at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) my_server | at Module.load (node:internal/modules/cjs/loader:981:32) my_server | at Function.Module._load (node:internal/modules/cjs/loader:822:12) { my_server | code: 'ERR_DLOPEN_FAILED' my_server | } my_server | [nodemon] app crashed - waiting for file changes before starting...
-
해결됨실전 프로젝트로 배우는 타입스크립트
Chart.js 3.5.1 버전으로 차트를 렌더링 할때 destroy하고 다시 렌더링해야 하는 이슈
안녕하세요 강사님 :)저는 현재 Chart.js 3.5.1 버전으로 프로젝트를 따라가는 중입니다. 그런데 아래와 같은 코드로 할 경우에 서로 다른 나라를 클릭해서 차트를 렌더링하게 되면 차트를 destroy 해야한다는 에러메세지가 뜹니다. function renderChart(data: number[], labels: string[]) { const ctx = ($('#lineChart') as HTMLCanvasElement).getContext('2d'); Chart.defaults.color = '#f5eaea'; Chart.defaults.font.family = 'Exo 2'; Chart.register( LineElement, LineController, CategoryScale, LinearScale, PointElement, Filler ); new Chart(ctx, { type: 'line', data: { labels, datasets: [ { label: 'Confirmed for the last two weeks', backgroundColor: '#feb72b', borderColor: '#feb72b', data, fill: true, }, ], }, options: {}, }); } 그래서 이를 해결하기 위해 아래와 같은 코드를 작성했더니, 제대로 렌더링이 됐습니다. 그러나 제대로된 해결 방법인지 잘 모르겠어서 질문 드립니다. casetChart라는 변수에 any 대신 Chart 인스턴스의 타입을 넣어야할거같은데, chart.js 노드모듈 폴더의 index.esm.d.ts 파일을 봤는데 어떤걸 가져와서 넣어야하는지 모르겠습니다. 그리고 아래와 같은 방식으로 destroy 하는 게 맞는 방법인지 궁급합니다. let casesChart: any; function renderChart(data: number[], labels: string[]) { const ctx = ($('#lineChart') as HTMLCanvasElement).getContext('2d'); if (casesChart !== undefined) { casesChart.destroy(); } Chart.defaults.color = '#f5eaea'; Chart.defaults.font.family = 'Exo 2'; Chart.register( LineElement, LineController, CategoryScale, LinearScale, PointElement, Filler ); casesChart = new Chart(ctx, { type: 'line', data: { labels, datasets: [ { label: 'Confirmed for the last two weeks', backgroundColor: '#feb72b', borderColor: '#feb72b', data, fill: true, }, ], }, options: {}, }); }
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka connect와 jpa
안녕하세요. 강의 유익하게 잘 보다 궁금증이 있어 질문드립니다. order서비스 두개와 단일db일 때, 카프카 큐잉 메시지로 처리한다면, 웹 어플리케이션 레벨에서 jpa를 사용할 경우 엔티티 영속성에 대한 이슈가 있을 수 있을거라고 생각되는데 어떻게 사용되는지 해서 질문드립니다. 또한 해당 구조에서는 jpa의 update나 insert를 사용하지 않고 무조건 큐잉메시지를 통해서 처리되어야 할 것 같은데 jpa와 연관된 복잡한 실무에서 어떻게 사용될까요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
.env 파일 사용법
안녕하세요. 학습과 관련된 부분은 아니고 프로젝트를 하면서 막히는 부분이 있어서 질문 드립니다. ㅠ_ㅠ 현재 .env파일을 여러 서버에 공통으로 쓰기위하여 프로젝트 밖에서 사용하려고 파일 스트럭처를 구상중에 있었습니다. ConfigModule.forRoot({ // envFilePath: ['../../.env'], isGlobal: true, }); 현재 이런식으로 테스트 하여 해본결과 .env 파일을 가져오지 못하고 있는데. 혹시 방법 이 없을까요 ?
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
touch 라는 명령어로 파일이 안만들어져요...
window 환경이고, anaconda prompt 실행한 다음 touch 명령어 써서 모듈 파일 만들려고 하는데 인식할 수 없는 명령어라는 에러가 나면서 파일이 안만들어집니다.... 혹시 뭔가 다른 설정을 해야 해당 명령어를 사용할 수 있나요?
-
미해결빠르게 git - 핵심만 골라 배우는 Git/Github
이미지 자료 사용가능 여부
안녕하세요 강의를 들으며 혼자 블로그에 정리하고 있습니다. 다름이 아니라 강의 중 reset 명령어별로 이전 이력으로 돌아가는 것을 설명하는 이미지 자료가 유익한 것 같아 출처를 남기고 사용해도 되는지 궁금합니다. 추가로 요새는 git password 말고 git personal access token 을 쓰더라구요. 그 부분도 저~앞의 강의에 짤막하게나마 남겨주시면 좋을 것 같습니다. 좋은 강의 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
REST API 방식에서 국제화 처리
안녕하세요 선생님 항상 강의 잘 보고 있습니다.! 타임리프에서의 국제화 적용은 잘 이해했습니다. 저는 현재 친구들과, 간단한 프로젝트를 진행중인데, 그 프로젝트는 백엔드와 프론트엔드를 나누어서 REST API 방식으로 데이터를 주고받습니다. 공부 목적으로 진행하는 프로젝트라, 국제화 기능을 넣어보려고 하는데 REST API 방식에서는 국제화를 어떻게 적용시켜야 하는지에 대해서는 언급이 없으셔서 혼자 코드를 작성해 보았습니다. 혹시 부족한 부분이 있거나, 잘못된 부분이 있으면 지적해주시면 감사하겠습니다. @Controller@Slf4j@RequiredArgsConstructorpublic class MessageController { private final MessageSource messageSource; @GetMapping("/message") public ResponseEntity<?> message(Locale locale){ String result = messageSource.getMessage("hello",null, checkLocale(locale)); log.info("message = {}" ,result); return new ResponseEntity<>(result, HttpStatus.OK); } private Locale checkLocale(Locale locale){ Locale result = switch (locale.getLanguage()){ case "en" -> Locale.ENGLISH; case "ko" -> Locale.KOREA; default -> Locale.ENGLISH; }; return result; }}
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
reset_n 관련 질문
안녕하세요, 수업을 여러번 복기 하는 중, 의문점이 생겨 질문드립니다. data_mover_bram.v 코드 중, 사진으로 첨부한 부분을 보면 만약 reset_n이 주어지지 않고 바로 data_mover가 동작하게 된다면, addr_cnt_read가 initialize가 되지 않은 상태에서 increment 동작 (addr_cnt_read <= addr_cnt_read +1)을 하게 됩니다. 따라서 코드 진행 중에 문제를 발생시킬 것 같은데, 제 생각이 맞나요? (쓰레기 값 + 1 이 되겠죠...?) 추가적으로 lab22_main.c에서 HW에게 resent_n을 주는 코드를 찾지 못하였는데, 그럼에도 잘 작동하는 이유가 무엇일까요? 감사합니다.
-
미해결빅데이터분석기사 실기대비 (R 활용)
강의자료 코드 중 caret::confusionMatrix 부분 질문입니다
1. 강의자료 코드에 caret::confusionMatrix(test$y, p4) 로 코딩하셨는데 caret::confusionMatrix 도움말 설명보면 data, reference 순으로 입력하라고 합니다. 강의 설명대로 test$y, p4 만들어서 오분류표 생성했는데.. p4 중 1로 예측한 개수가 24개로 나오는데 이 개수를 바르게 예측한 입력순서는 confusionMatrix(p4, test$y)인 것 같습니다. 순서는 상관없는 것인지 알려주세요 2. ModelMetrics의 confusionMatrix와 caret의 confusionMatrix의 결과가 다르게 나오는데 무슨 차이입니까? 3. p3 <- (P1 +p2)/2 코드는 앙상블이 맞나요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
선생님 안녕하세요! 질문입니다!
강의 초반에 "각 문자열의 길이는 서로 다릅니다"라는 조건이 있으니 그건 염두에 두지 않아도 되는 문제다 라고 하셨는데요! 만약에 "같은 문자열의 길이가 들어올 수 있다"라는 조건이고, 가장 긴 문자열 길이를 가진 것들을 모두 출력하는 문제라고 새롭게 설정해보고자 입력값 srt에 "beautiful"과 같은 길이인 "wonderful"을 추가해보고 코드를 수정해보았는데요. 답으로 "beautiful"과 "wonderful"만 나오게 하고 싶은데 "teacher","beautiful","wonderful" 이 세가지가 나오네요 ㅠㅠ 어떻게 하면 제일 긴 문자열만 중복을 허용해서 출력할 수 있을까요? function solution(s) { let answer = []; let max = Number.MIN_SAFE_INTEGER; for (let x of s) { if (x.length >= max) { max = x.length; answer.push(x); } } return answer; } let str = ["teacher", "time", "hell", "wonderful", "beautiful", "good"]; console.log(solution(str));
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
안녕하세요. 같은 이미지에서 CUDA, CPU 각각에서의 피처맵 픽셀 값이 다른데 정확한 이유가 무엇인지 알 수 있나요?
안녕하세요 device = cuda, 혹은 cpu일 때의 피처맵 픽셀값이 다른데, 그 이유를 알 수 있을까요??
-
미해결제로부터 시작하는 암호화폐 오토트레이딩
'실제 전략 구동' 강의에서 차트 시간기준 문의
7:50 에 보면 차트를 30분 기준으로 얼러트 하시는데 BTCUSDT(바이낸스) 전략 백테스팅 2020.01.01~2021.1014로 해보니.. 30분은 10.84%, 1시간은 56.36%가 확인되었습니다. 4시간은 140.68%. 티라노님 강의 내용대로 30분에 대한 얼러트를 만들어서 활용해야 할까요?