묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
yolo augmentation 관련
안녕하세요 선생님, yolo를 학습할 때, augmentation이 적용되는 건가요? 제가 train.py부분 yolo.py부분 등 찾아봐도 augmentation이 적용된 곳을 못찾았습니다. 혹시 augmentation하는 부분이 있다면 위치좀 알려주시면 감사하겠습니다!
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
지마켓 크롤링
안녕하세요. 크롤링한 데이터에서 다시 크롤링하기 예제 중에 안되는 부분이 있는데 어떤 부분이 문제인지 모르겠습니다. 이전에 질문하기를 봤는데도 어떻게 해결하는지를 몰라서 질문합니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
강의에서 템플릿 특수화를 할때
강의에서 템플릿 특수화를 할때 Knight* 이나 Knight&와 같은 참조 타입이 아닌 객체 그대로를 받은 이유가 있을까요?? 호출할때 더 많은 메모리를 차지하지 않나요?
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
faker설치 안하신 분들은 설치하세용
첨에 오류떠서 faker설치하니까 정상동작 하네용. 루트 레벨(package.json이 있는 곳)에서 npm i faker 로 설치 하시고 강의 내용대로 진행하시면 진행 되네용.
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
Drop dataBase 누르니 오류메시지가 뜹니다.
user is not allowed to do action [dropDatabase] on [BlogService.] 위와같은 오류가 뜨는데요; 컴파스에서는 저렇게 오류가 뜨고 몽고디비 웹사이트에서는 dropDatabase가되네용... 이유는 모르겠지만 혹시 다른 분들도 동일하신 증상 있으시면 참고하시라고 남겨둡니당..
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
균형데이터라 해도 분류일 경우에는, Stratified KFold를 써야하는 게..
선생님~ iris데이터 같은 경우에는 레이블값 0,1,2각 전체 데이터에서 각각 50개씩 균형있게 들어가 있는 데이터 잖아요~? 이러한 균형 데이터라해도, 알고리즘이 '분류'일 경우에는, 교차검증시 Stratified KFold를 사용해야 하는 거지요~? 교차검증 K폴드 관련 이론 설명해주실 때 , 일반 KFold와 Stratified KFold 부분에서 'Stratified KFold'는 불균형한 분포도를 가진 레이블 데이터 집합을 위한 방식이라고 설명해주셨었는데요.. iris 같은 경우는 균형적인 분포도를 가진 데이터인데도 KFold를 하면 이렇게 이상하게 되니...
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
fontawsom 적용안됨 문제 질문드립니다 선생님
안녕하세요 선생님 질문이 있습니다 강의 8:00 쯤 #backtotop::after 폰트어썸 적용시 네모가 나오는데요 구글 검색을 해보니 오타나 cdn 폰트어썸을 임포트하면 이런 네모가 나올수도있다고 하더군요 어떻게 해결해야할지 도움을 구해도 될까요 ? 감사합니다
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
선생님~ 학습(학습/검증)-테스트 데이터분리관련
선생님~지금 강의에서는 데이터 수가 작아서그냥 학습데이터와 테스트데이터로 교차검증을 시행한 것이지만.. 원래 일반적(표준)으로는, 먼저 데이터를 train_test_split()으로 학습-테스트 데이터를 나누고, 또 학습데이터를 가지고 train_test_split() 해서 학습-검증 데이터로 나눠서, 교차검증을 실시하고 최적으로 학습된 모델로 , 최종으로 테스트데이터로 예측수행을 하면 되는 것이지요~?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
빌드 후 배포
안녕하세요 제로초님nextjs로 작업 후 빌드 후 배포했는데 개발환경(localhost)이랑 배포환경이랑 css가 차이가 나는데혹시 차이가 나는데 어떤게 문제일까요?예를들어 height값이 조금 다른거 같습니다. 개발환경에서는 스크롤이 안생기는데 배포환경에선 스크롤이 생기더라구요
-
해결됨스프링 핵심 원리 - 기본편
src/main/java 에 있는 @ComponentScan이 src/test/java 의 @Component도 자동 등록하나요?
완강하고 복습을 하고 있는데 문득 의문이 들어서 질문 드립니다.src/main/java 에 있는 @ComponentScan이 src/test/java 의 @Component도 자동 등록하나요? 이 질문이 나오게 된 것은 5:22 에서 "참고" 부분에 대한 설명을 하실 때, @ComponentScan에 Filter를 걸어서 Configuration 어노테이션이 있는 것들은 스캐닝 대상에서 모두 제외하겠다고 하셨습니다.그런데 AppConfig는 AutoAppConfig는 같은 패키지에 위치하니까 제외를 해야되는 건 이해했습니다.문제는 src/test/java 에 있는 @Configuration static class TestConfig { @Bean public DiscountPolicy rateDiscountPolicy() { return new RateDiscountPolicy(); } @Bean public DiscountPolicy fixDiscountPolicy() { return new FixDiscountPolicy(); } } 도 제외를 시키기 위함이다. 라는 설명이 있습니다. AutoAppConfig와 TestConfig는 서로 디렉토리 위치가 완전히 다른데도, TestConfig는 AutoAppConfig의 스캔 대상이 되는 건가요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
17분14초 쯤 질문 입니다
안녕하세요 강사님. 프로그래밍 쌩 초보자인데 수업 잘 듣고 있습니다. 다름 아니라 강의 마지막 즈음에 While 문 안에 choice = ChooseClass(); 에서 ClassType choice = ChooseClass(); 로 수정 하셨는데, 디버깅으로 확인해보니 choice가 None으로 자동 설정되는 것 같더라고요. 그래서 choice를 따로 ClassType.None 선언 없이 바로 None으로 설정되는가 해서 ChooseClass 내에 choice도 그냥 ClassType choice; 로 선언하려고 했는데 이건 안되네요. (아래 스크린샷 첨부했습니다) While 문 안에서 바로 ClassType choice를 써도 None으로 기본값이 설정되는데, ChooseClass에서는 None으로 선언해야되는 이유가 있나요? 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
db조회시에 상품 등록한게 뜨는데 웹 페이지 상에서는 상품등록 후 이런 에러 메시지가 뜨는데 무엇이 잘못된 걸까요?
h2 데이터베이스 상에는 상품 등록한 내용이 뜨는데 웹 페이지 상에서 상품 내용 입력하고 제출하면 그림과 같은 에러 메시지가 떠서 도움 요청드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
3.03 부분에서 따라하는데 계속해서 오류가나서 질문드립니다.
안녕하세요 강의를 따라가는데 계속해서 에러가 나서 강의를 따라가지 못하고 있습니다.. 어디가 문제인지 잘 모르겠습니다.. "C:\Program Files\Java\jdk1.8.0_271\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.2\lib\idea_rt.jar=2959:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_271\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\rt.jar;C:\Users\lee taek min\study\ex1-hello-jpa\target\classes;C:\Users\lee taek min\.m2\repository\org\hibernate\hibernate-entitymanager\5.3.10.Final\hibernate-entitymanager-5.3.10.Final.jar;C:\Users\lee taek min\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;C:\Users\lee taek min\.m2\repository\org\hibernate\hibernate-core\5.3.10.Final\hibernate-core-5.3.10.Final.jar;C:\Users\lee taek min\.m2\repository\org\javassist\javassist\3.23.2-GA\javassist-3.23.2-GA.jar;C:\Users\lee taek min\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\lee taek min\.m2\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar;C:\Users\lee taek min\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;C:\Users\lee taek min\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\lee taek min\.m2\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;C:\Users\lee taek min\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.4.Final\hibernate-commons-annotations-5.0.4.Final.jar;C:\Users\lee taek min\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;C:\Users\lee taek min\.m2\repository\net\bytebuddy\byte-buddy\1.9.5\byte-buddy-1.9.5.jar;C:\Users\lee taek min\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Users\lee taek min\.m2\repository\com\h2database\h2\1.4.200\h2-1.4.200.jar" hello.jpa.JpaMain 2월 18, 2021 10:54:57 오전 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation INFO: HHH000204: Processing PersistenceUnitInfo [ name: hello ...] 2월 18, 2021 10:54:57 오전 org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.3.10.Final} 2월 18, 2021 10:54:57 오전 org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found 2월 18, 2021 10:54:57 오전 org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {5.0.4.Final} 2월 18, 2021 10:54:57 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 2월 18, 2021 10:54:57 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: using driver [org.h2.Driver] at URL [jdbc:h2:tcp://localhost/~/test] 2월 18, 2021 10:54:57 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {user=sa} 2월 18, 2021 10:54:57 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false 2월 18, 2021 10:54:57 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init> INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 2월 18, 2021 10:54:59 오전 org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator initiateService WARN: HHH000342: Could not obtain connection to query metadata : null 2월 18, 2021 10:54:59 오전 org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2월 18, 2021 10:54:59 오전 org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl makeLobCreatorBuilder INFO: HHH000422: Disabling contextual LOB creation as connection was null 2월 18, 2021 10:54:59 오전 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions WARN: SQL Error: 90067, SQLState: 90067 2월 18, 2021 10:54:59 오전 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: Connection is broken: "java.net.SocketTimeoutException: connect timed out: localhost" [90067-200] Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:904) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at hello.jpa.JpaMain.main(JpaMain.java:9) Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:48) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:118) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:363) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:282) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:260) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:401) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:112) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:75) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:100) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:246) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ... 14 more Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.SocketTimeoutException: connect timed out: localhost" [90067-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:622) at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) at org.h2.message.DbException.get(DbException.java:194) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:439) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:321) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:173) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152) at org.h2.Driver.connect(Driver.java:69) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) ... 29 more Caused by: java.net.SocketTimeoutException: connect timed out at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) at java.net.Socket.connect(Socket.java:606) at org.h2.util.NetUtils.createSocket(NetUtils.java:103) at org.h2.util.NetUtils.createSocket(NetUtils.java:83) at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:119) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:435) ... 34 more Process finished with exit code 1
-
미해결홍정모의 따라하며 배우는 C++
My_ADD
헤더파일의 표본을 설명하시면 이름을 My_ADD로하셨는데 add함수의 인클루드 중복이 사라지는 건지 잘 모르겠습니다. add함수의 인클루드 중복을 없애려면 #indef add라고해야하는것 아닌가요? #ifndef My_ADD #define My_ADD int add(int a, int b) { return a + b } #endif
-
미해결예제로 배우는 스프링 입문 (개정판)
수행되는 쿼리 로그를 보고싶습니다
수행되는 쿼리 보는법은 없을까요?
-
미해결함수형 프로그래밍과 JavaScript ES6+
유명함수 recur를 이용하는 것이 성능상 이점이 있는 이유에 대해서 좀 더 자세한 설명을 듣고 싶습니다.
reduce 함수를 아래와 같이 수정하고 go함수를 실행시킬 경우 acc를 acc = acc instanceof Promise ? acc.then(acc => f(acc, a)):f(acc, a);로 작성한 구현보다 성능상 이점이 있다고 하셨는데 어떤 점에서 그런지 좀 더 자세히 설명해주실 수 있을까요? 특히 콜스택과 관련해서 어떤 차이가 있는지 잘 이해가 안 되네요. Promise에서 then은 매번 새로운 콜스택을 사용하면서 추가적인 로드가 발생하는 것인가요? 재귀함수를 호출하면서 생기는 약간의 추가 로드도 있을 것 같은데, then에서의 콜스택 사용과 비교했을 때에 성능상 이점이 크기 때문에 이렇게 구현해서 사용하는 것인가요? go, pipe, reduce에서 비동기제어편 약 5분 45초 이후에 설명된 부분입니다. const reduce = curry((f, acc, iter) => { if (!iter) { iter = acc[Symbol.iterator](); acc = iter.next().value; } else { iter = iter[Symbol.iterator](); } return (function recur() { let cur; while (!(cur = iter.next()).done) { const a = cur.value; acc = f(acc, a); if (acc instanceof Promise) { return acc.then(recur); } } return acc; })(acc); }); go( 1, (a) => a + 10, (a) => Promise.resolve(a + 100), (a) => a + 1000, console.log );
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
one-to-may 의 관계에서 side effet 로 oom 의 발생가능성
안녕하세요 김영한 개발자님 수업을 듣던중 one-to-may 의 관계에서 side effet 로 oom 의 발생가능성에 대해 고민을 하게되어 질문드립니다. 테이블이 category - product - display_info 순으로 one-to-may 관계를 맺고있을 때, 만약category 가 10개, product 테이블의 데이터의 갯수가 10만개, display_info 의 테이블의 데이터가 100 만개일때,각각의 category 가 가지고있는 product 의 display_info 의 갯수를 확인하고 싶은 need 가 있으면,아래와 같이 entity 의 메서드를 통해 받아올수 있다는것을 이해를 했습니다. List<Category> categories = categoryRepository.findAll();List<CategoryResult> categoryResults = categories .stream() .map(category -> { //데이터 커지면 통계쿼리 처리가 좋을수도 있음. List<Product> products = category.getProducts(); int count = products .stream() .map(product -> product.getDisplayInfos().size()) .reduce(0, Integer::sum); return new CategoryResult(category.getId(), category.getName(), count); }) .collect(Collectors.toList());return categoryResults; 그런데 걱정이 되는것은 실제 데이터가 많으면 많아질수록 batch size 를 설정한다 하여도 가져올수 있는 양은 한정적이고결국 categorise 의 products 에 쌓인 데이터들로 인해 oom 이 발생할것 같은데 어떻게 처리를 하면 되나요??( 보통의 webpage 를 생각해보면 이렇게 많은 데이터를 가져올 일이없고 paging 을 이용할것 같긴 합니다. )제가 생각하기에는 아래의 2가지 정도 해결책이 있어보입니다.(1) one-to-many 의 관계를 사용하지 않고 명시적으로 fk 를 이용해서 repository 에서 find 를 호출 하는 방법.을 사용해 봤는데 이방법은 batch size 셋팅을 한다하여도 당연하겠지만 in query 로 sql 이 호출되지 않았습니다.당연히 속도도 현저히 늘려서 엄청난 시간이 걸렸습니다. ( 3분 -> 50분 )( ps. 아래의 코드에서도 inquery 셋팅하는 방법이 있을까요? ) List<Category> categories = categoryRepository.findAll();List<CategoryResult> categoryResults = categories.stream() .map(category -> { long categoryId = category.getId(); List<Product> products = productRepository.findAllByCategoryId(categoryId); int count = products .stream() .map(product -> { Long productId = product.getId(); List<DisplayInfo> displayInfos = displayInfoRepository.findAllByProductId(productId); return displayInfos.size(); }) .reduce(0, Integer::sum); return new CategoryResult(category.getId(), category.getName(), count); }) .collect(Collectors.toList()); (2) count query 를 설정하는 방법위의 needs 의 경우 통계쿼리처리를 하면 되겠지만, 만약 통계 쿼리로 처리하지못하는 로직이 있으면 어떻게 처리를 할수있을까요? 마지막 질문으로 위와 같이 oom 의 위험에도 불구하고 one-to-many 관계를 써야하나요??서비스에서의 가장큰 위험은 예상되지않은 에러라고 생각이 되는데 이경우 어떤 테이블이 어떻게 데이터가 많아질지 모르는 상황에서 위의 상황이 발생할수 있다고 생각이 됩니다.그럼에도 불구하고 성능적인 측면에서 one-to-many 를 쓰지않으면 성능이 너무나도 좋지않아서 고민입니다.긴글 읽어주셔서 감사합니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
깜빡거림 문제 state 질문드립니다.
실습 내용과 동일하게 진행중인데 깜박거림이 해결되지 않습니다. 몇시간을 삽질 했는데 이상한 부분이 있어서 질문드립니다.콘솔을 찍어보면 이상한 화면을 두번 뿌리는 부분이 있어서 깜빡거림이 있는데 무엇이 잘못된건지 모르겠습니다. routes/index.js { path: "/news", name: "news", component: NewsView, //component: CreateLiteView("news"), beforeEnter: (to, from, next) => { //라우터가드 console.log(3); Bus.$emit("start:spinner"); store .dispatch("FETCH_LIST", to.name) .then(() => { console.log(6); next(); }) .catch((error) => console.log(error)); }, }, store/actions.js FETCH_LIST({ commit }, pageName) { console.log(4); return fetchList(pageName) .then(({ data }) => { console.log(5); commit("SET_LIST", data); }) .catch((error) => { console.log(error); }); }, components/ListItem.vue export default { computed: { listItems() { console.log("data"); return this.$store.getters.fetchedList; } } } mixin/ListMixin.js import Bus from "../utils/bus.js"; export default { mounted() { Bus.$emit("end:spinner"); }, }; 콘솔로그 순서로 보면 처음 뉴스페이지에서 새로고침시 3>4>5>6>data 가 찍히고 다음질문페이지로 넘어가면 3>4>5>6>data>data 가 두번 찍힙니다. 깜빡거린다고 말씀주신 부분은 고쳐지지 않네요 ㅠ store/index.js state: { news: [], ask: [], jobs: [], list: [], user: {}, item: {}, }, state 부분을 삭제 해봤더니 data도 하나 찍히고 정상이에요. state없이도 getters가 되는가 싶기도 하고 영문을 모르겠습니다. vue 개발자 도구에서도 vuex에 sate가 등록되어있습니다. 분명히 제거했는데.. ㅠ ---------------------추가---------------- 깃에서 13번 브랜치 받아서 돌려봤는데 동일하게 깜빡 거리긴 하네요. 마찬가지로 store에서 state를 없애니깐 엄청 잘됩니다.
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
def __init__(self)작성할때
self뒤에 다른 변수들이 올때가 있고 안올때가 있는데 어떤 차이가 있는지 모르겠습니다 ㅜㅜ
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
createBlog가 await하는 동안
createblog가 awiat 하는 동안 또 불리면 어떻게 되나요? 예를들어 여러명의 유저가 동시에 createBlog를 호출하게되면 계속 await하고 다음거 await 처리할때까지 대기 하고 있을 것 같은데... 이런 경우 어떻게 처리되나요??