묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
showProgressDownLoading 함수
함수를 강의를 따라하며 작성하였고, 나머지 모든 기능이 정상 작동하고, 시작 버튼을 누를 시에 동영상도 저장이 되지만 progress bar 작동하지 않고 소프트웨어가 꺼짐 현상이 발생하는데, 어떤 방식으로 해결이 가능할까요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
데이터베이스 스키마 자동생성(create)인데 시작시 테이블 drop이 잘 안됩니다
질문 올리기 전에 하이버네이트랑 H2 데이터베이스를 모두 latest stable 버전으로 올렸더니 의외로 해결됐습니다 아마 옛날 버전에 버그가 있거나 버전 궁합이 잘 안맞아서 그랬던것 같습니다 혹시나 저랑 같은 문제를 겪으시는 분들을 위해 질문은 남겨봅니다! ============= 제목이랑 같은데요, persistence.xml에서 <property name="hibernate.hbm2ddl.auto" value="create" /> 을 적용하고 메인함수를 실행하면 db를 싹 비운 처음에는 잘 되는데, 두번째부터는 처음에 모든 테이블을 drop하고 실행하는데 이 drop이 제대로 작동하지 않는 것 같습니다. === 로그=== ..중략... 2월 15, 2022 3:57:47 오후 org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect Hibernate: drop table Category if exists Hibernate: drop table category_item if exists Hibernate: drop table Delivery if exists Hibernate: drop table Item if exists Hibernate: drop table Member if exists 2월 15, 2022 3:57:48 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@65eb76cd] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. 2월 15, 2022 3:57:48 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " drop table Category if exists" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " drop table Category if exists" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString(SchemaDropperImpl.java:375) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings(SchemaDropperImpl.java:359) at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata(SchemaDropperImpl.java:241) at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop(SchemaDropperImpl.java:154) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:126) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:112) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:144) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) 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 jpabook.JpaMain.main(JpaMain.java:10) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "CATEGORY" because "FKPIG62MG2IH4HQIRYCP0RFUBY3" depends on it; SQL statement: drop table Category if [90107-210] at org.h2.message.DbException.getJdbcSQLException(DbException.java:651) at org.h2.message.DbException.getJdbcSQLException(DbException.java:496) at org.h2.message.DbException.get(DbException.java:227) at org.h2.command.ddl.DropTable.prepareDrop(DropTable.java:97) at org.h2.command.ddl.DropTable.update(DropTable.java:121) at org.h2.command.CommandContainer.update(CommandContainer.java:174) at org.h2.command.Command.executeUpdate(Command.java:252) at org.h2.server.TcpServerThread.process(TcpServerThread.java:408) at org.h2.server.TcpServerThread.run(TcpServerThread.java:191) at java.base/java.lang.Thread.run(Thread.java:834) at org.h2.message.DbException.getJdbcSQLException(DbException.java:651) at org.h2.engine.SessionRemote.readException(SessionRemote.java:637) at org.h2.engine.SessionRemote.done(SessionRemote.java:606) at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ... 15 more 2월 15, 2022 3:57:48 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " drop table Delivery if exists" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " drop table Delivery if exists" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString(SchemaDropperImpl.java:375) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings(SchemaDropperImpl.java:359) at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata(SchemaDropperImpl.java:241) at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop(SchemaDropperImpl.java:154) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:126) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:112) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:144) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) 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 jpabook.JpaMain.main(JpaMain.java:10) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "DELIVERY" because "FKQP0F0WCL9U3NIQYKUYM5MW22I" depends on it; SQL statement: 중략... Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" already exists; SQL statement: create table Member ( member_id bigint not null, createdBy varchar(255), createdDateTime timestamp, lastModifiedBy varchar(255), lastModifiedDateTime timestamp, city varchar(255), street varchar(255), zipcode varchar(255), name varchar(255), [42101-210] at org.h2.message.DbException.getJdbcSQLException(DbException.java:521) at org.h2.message.DbException.getJdbcSQLException(DbException.java:496) at org.h2.message.DbException.get(DbException.java:227) at org.h2.message.DbException.get(DbException.java:203) at org.h2.command.ddl.CreateTable.update(CreateTable.java:88) at org.h2.command.CommandContainer.update(CommandContainer.java:174) at org.h2.command.Command.executeUpdate(Command.java:252) at org.h2.server.TcpServerThread.process(TcpServerThread.java:408) at org.h2.server.TcpServerThread.run(TcpServerThread.java:191) at java.base/java.lang.Thread.run(Thread.java:834) at org.h2.message.DbException.getJdbcSQLException(DbException.java:521) at org.h2.engine.SessionRemote.readException(SessionRemote.java:637) at org.h2.engine.SessionRemote.done(SessionRemote.java:606) at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:252) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ... 15 more ====== 혹시 해결방법이 무엇인지... cascade를 추가로 붙이면 삭제가 되던데 그렇게 할 수는 없을까요??
-
미해결Vue.js 시작하기 - Age of Vue.js
개발자도구에서 Components는 보이는데 Events는 안보여요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Components외에 다른 탭이 아무 것도 안보입니다. 아무래도 뷰 개발자 도구 버전이 업데이트 되어서 그런것 같은데 혹시 방법이 있을까요?
-
미해결코딩으로 학습하는 리팩토링
블로그에 공부한 내용 포스팅해도 괜찮을까요?
안녕하세요 선장님! 열공하기 위해서 이번 리팩토링 강의 구매하였습니다. 리팩토링 수업을 들으면서 해당 내용들 정리하여 제 개인블로그에 포스팅해도 괜찮을까요? 항상 좋은 강의 감사합니다 :)
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
함수 마지막 부분
왜 코드 마지막 부분에 For 문을 써야하나요 ???그냥 print(result) 하면 안되나요 ? 크롤링 어렵네요 ㅜㅜ
-
미해결홍정모의 따라하며 배우는 C언어
12:37 strncpy() 함수 질문
char dest[100] = ""; char source[] = "Start programming!"; strncpy(dest, source, 5); 를 출력하였을 때 정상적으로 Start가 출력 된것은 이미 dest[]에 '\0'가 들어있어서 그런것이다 라고 하셨는데 덮어쓰기 되는 함수라 dest의 값이 '\0' 에서 Start로 덮어 씌워지면서 '\0'이 사라지고 문제가 발생해야하는 것 아닌가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@modelattribute , setter관련 질문
혼자 개인 프로젝트를 진행하는데 궁금증이 생겨 질문드립니다. @modelattribute를 사용해서 바인딩하려면 dto에 setter가 구현이 되어있어야 하는걸로 알고있습니다. 그런데 혼자 프로젝트를 끄적이다가 한dto는 setter를 구현안했음에도 바인딩이 되길래 궁금증이 생겨 질문드려요! --------fundingDto를 입력받는 폼------------ <form class="validation-form" novalidate th:action th:object="${fundingDto}" method="post" enctype="multipart/form-data"> <div class="mb-3"> <label for="restaurantName">가게이름</label> <input type="text" class="form-control" id="restaurantName" placeholder="restaurantName" th:field="*{restaurantName}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="menu">메뉴</label> <input type="text" class="form-control" id="menu" placeholder="menu" th:field="*{menu}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="information">가게정보</label> <input type="text" class="form-control" id="information" placeholder="information" th:field="*{information}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="introduction">가게소개</label> <input type="text" class="form-control" id="introduction" placeholder="introduction" th:field="*{introduction}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="notice">가게 공지사항</label> <input type="text" class="form-control" id="notice" placeholder="notice" th:field="*{notice}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="discountPrice">할인가격</label> <input type="text" class="form-control" id="discountPrice" placeholder="discountPrice" th:field="*{discountPrice}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="price">가격</label> <input type="text" class="form-control" id="price" placeholder="price" th:field="*{price}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="minFundingCount">최소펀딩수</label> <input type="text" class="form-control" id="minFundingCount" placeholder="minFundingCount" th:field="*{minFundingCount}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="maxFundingCount">최대펀딩수</label> <input type="text" class="form-control" id="maxFundingCount" placeholder="maxFundingCount" th:field="*{maxFundingCount}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="startDate">펀딩 시작 날짜</label> <input type="datetime-local" class="form-control" id="startDate" placeholder="startDate" th:field="*{startDate}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="endDate">펀딩 종료 날짜</label> <input type="datetime-local" class="form-control" id="endDate" placeholder="endDate" th:field="*{endDate}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="mainImage">메인 이미지</label> <input type="file" class="form-control" id="mainImage" placeholder="mainImage" multiple="multiple" th:field="*{mainImage}" th:errorclass="field-error" required> </div> <div class="mb-3"> <label for="imageFiles">이미지</label> <input type="file" class="form-control" id="imageFiles" placeholder="imageFiles" multiple="multiple" th:field="*{imageFiles}" th:errorclass="field-error" required> </div> <button class="btn btn-primary btn-lg btn-block" type="submit">펀딩 등록</button> </form> ------------------------------------------------------------------------- fundingDto @Getter @Builder @AllArgsConstructor public class FundingDto { private Long id; private String restaurantName; private String menu; private String information; private String introduction; private String notice; private Integer discountPrice; private Integer price; private Integer minFundingCount; private Integer maxFundingCount; private Integer nowFundingCount; private MultipartFile mainImage; private List<MultipartFile> imageFiles; private List<Image> imageList; @Enumerated(EnumType.STRING) private FundingStatus fundingStatus; @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm") private LocalDateTime startDate; @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm") private LocalDateTime endDate; public void setMainImage(MultipartFile mainImage) { this.mainImage = mainImage; } } 다른 dto는 @setter를 달아주지않으면 null이 바인딩 되는데 이 객체는 왜 바인딩이 성공하는지 잘 모르겠어요.. 그리고 한가지 더 질문이 있는데 @modelattribute 를 사용함에 있어 @Setter를 사용하지 않고는 사용이 불가능한가요? @Setter를 되도록 사용하지 않는게 좋다고 들어가지고 질문드립니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
drf의 업로드 업데이트 관련 여러가지 질문입니다
안녕하세요 강사님. 강사님 강의를 토대로 학습하며 개인적으로 진행하고있던 프로젝트에서 문제점이 발생하여 이렇게 질문드립니다. 현재 상황은 다음과 같은 모델이 존재하고, 리액트에서 formdata객체에 모든 데이터를 append해서 post요청을 통해 중첩된 시리얼라이저를 활용한 modelviewset에 create함수를 호출하는 형태로 코드를 작성했습니다. 1)최초에 portfolio 모델을 구성하고 관계를 설정할때, portfolioupload 모델은 유저가 동적으로 필드를 채워나가기 때문에 하나의 컬럼에 총 5가지 필드가 만들어지게 제작하게 되었습니다.(이미지, 텍스트, 비디오, 임베드, 그리드 등의 5가지 선택지가 있고 유저는 그중 한가지를 초이스 하여 필드를 채워나가는 형식/behance의 포트폴리오 업로드 형식을 벤치마킹하려고 노력했습니다) 그렇기 때문에 현재와 같은 portfolio 모델을 구성하게 되었는데, 보다 더 나은 방법이 있었을지 궁금합니다. 2)portfolio 모델과 같이 여러 가지 관계를 형성하고 있는 데이터를 불러와서 리액트에서 사용하려다 보니, 중첩된 시리얼라이저가 필수인것 같아 다음과 같은 시리얼라이저를 작성했습니다. 그러다 보니 query 수가 많아져서 요청이 길어지는 성능 이슈가 발생했습니다. 현재는 django auto prefetch라는 라이브러리를 통해 개선했지만, 저런 데이터구조를 불러올 때 더 좋은 방법이 있을지 궁금합니다. 3)create 함수를 구현할 때 중첩된 객체를 받아서 현재의 코드보다 조금 더 간결하게 구현해 보려고 했었습니다. 따라서 리액트에서 아래와 같은 함수를 통해 중첩된 object를 보내봤지만 drf에서 멀티미디어 콘텐츠를 읽어내지 못했습니다. 아마도 콘텐츠 타입이 aplication/json 때문일 거라 생각했기 때문에 parser를 바꿔보는 등 여러 가지 방법을 시도했고, 모든 게 다 실패해서 현재와 같이 formdata 객체에 모든 데이터를 append 해서 보내는 형태가 되었습니다. 이 과정에서 portfolio 모델에 post 요청을 보내는 데이터의 구조와 drf에서의 데이터 처리가 어떤 방향으로 가는 게 지금보다 더 좋은 생각이었는지, 혹은 중첩된 object를 drf에서 받아서 처리할 방법이 있는지 궁금합니다. function formData(formData, filesIgnore = []) { let data = new FormData(); let files = filesIgnore; Object.entries(formData).forEach(([key, value]) => { if (typeof value === 'object' && !files.includes(key)) { data.append(key, JSON.stringify(value) || null); } else if (files.includes(key)) { data.append(key, value[0] || null); } else { data.append(key, value || null); } }) return data; } 4) portfolio 모델에서의 update를 구현하려고 보니, react에서 기존 데이터를 보여주기 위해 portfolioserializer를 통해 데이터를 불러오고 유저가 진입한 upload url에 pk가 포함되었는지를 검사해서 미리 input 필드에 데이터를 채워주는 형태의 방법을 사용했습니다. 이런 상황에서 불려와진 image는 storage의 url 형태였고, 유저가 이미지의 순서 변경이나 삭제를 할 경우 추적할 방법이 없어서 데이터의 변경이 안되는 이슈가 발생했습니다. 위 상황에서 저는 get 요청을 할 때 멀티미디어 콘텐츠가 불려와져야 할까? / put 요청으로 보내는 serializer에 해당 정보가 담겨있어야 할까? 라는 고민을 했고 첫 번째 방법은 방법 자체를 찾을 수 없었고, 두번 째 경우는 해당 정보를 어떻게 담아서 어떻게 처리할지 감이 잡히질 않아서 질문을 드리게 되었습니다. 사실 접근 방법이 이게 맞는지조차 의문이 들기에 보통 이런 혼합 데이터의 게시물 수정을 어떻게 구현하시는지 궁금합니다. 5) 업로드 시에 가로 1920px 이상의 이미지들의 resize가 필요해서 찾아보니 백엔드에서 업로드 시에 실행하는 게 보편적이라는 답변을 받았는데, 업로드의 속도를 줄이려면 업로드할 이미지들의 미리 보기 기능에 사용된 image onload 함수에 포함하는 게 더 좋은 방법이 아닌가에대해 고민하게 되었습니다. 어떤 접근 방법이 더 나은 방향인지 궁금합니다. 6)해당 프로젝트는 강의에서 설명 해주신 azure를 통해 배포 / 테스트 중입니다. 포트폴리오 같은 데이터를 업로드할 때 아무래도 이미지, 비디오 등의 데이터량이 많기 때문에 간혹 업로드 용량이 상당해지는 경우가 생기게 되었습니다. 이와 같은 경우에 용량의 총합이 100mb가 넘어가게 되면 데이터 업로드가 안되는 현상이 발생했고, 로컬에서는 정상작동하기에 아마도 서버의 문제일 것 이라고 예상하게 되었는데, 서버가 작아서 발생하는 문제인 건지 아니면 어떤 다른 문제점 혹은 제한을 풀 수 있는 명령어가 존재하는지 궁금합니다. 강사님 강의를 토대로 약 9개월 정도 혼자서 진행한 프로젝트입니다. 상당히 많은 시행착오가 있었고 그때마다 구글링과 강의 다시 보기를 통해 해결해왔었는데, 혼자서 적지 않은 기간을 하다 보니 어떠한 코드 작성에 있어서 구현이 되고안되고 보다는 접근 방법이나 이게 정말 맞는지? 라는 문제가 여러가지 발생했습니다. 그런 부분들이 혼자서는 해결되지 않아 이렇게 질문드립니다. 만약 설명이 부족하거나 질문들에 이해가 안 되시는 점 있으시면 바로바로 추가하겠습니다.
-
미해결블록체인3.0 NFT GAME
미국 블록체인 게임
규제 동향에 대해 궁금한데요. 1. 우리나라는 블록체인기반 게임 제작이 사실상 힘든 것으로 설명을 주셨고 그렇다면 미국에서는 자유롭게 만들수 있나요?
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
코딩문의
강사님, 유익하게 수업 잘 듣고있습니다! 다른게 아니라 코딩을 할 때 헤더 부분이나 본문에 들어가는 텍스트들을 사용자가 설정하여 바꾸어 설정하도록 만드는 페이지를 짜야하는데 이럴때는 어떤 코드를 이용하여 짜야할지 모르겠어서요 form태그는 아닌것같고 헤더부분은 li로 묶어서 그냥 p태그로 넣어놓으면 개발할때 변경가능하게 되는건지,,, 문의드립니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
typecast 강의 관련 질문입니다.
template<typename T, typename... U> struct Length<TypeList<T, U...>> { enum { value = 1 + Length<TypeList<U...>>::value }; }; int32 len1 = Length<TypeList<Mage, Knight>>::value; 위 코드에서 Length<TypeList<Mage, Knight>>가 처음 호출되게 되면 T = Mage, U = Knight가 되어 value = 1(Mage) + Length<(Knight=>)TypeList<U...>>::value가 된다고 알고있습니다. 그런데 template<typename T, typename... U> struct Length<TypeList<T, U...>> { } 로 Length 구조체 자체가 T,와 가변인자 U를 받는데 어떻게 value = 1 + Length<TypeList<U...>>::value 에서 가변인자 U...하나만 받을 수 있는지 궁금합니다. 재귀호출이 되려면 Length<TypeList<Mage, Knight>>::value; 처럼 TypeList에 T에 해당하는 것과 U에 해당하는것을 모두 넣어야하지 않나요?
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - NFT
ganache-cli 실행 후 truffle console 에서 accounts 가 조회가 안됩니다.
truffle console 에서 instance 생성 후 mint 하려고 하는데 accounts is not defined 라고 나오네요. cli 계정 목록에 접근하려면 어떻게 해야 하나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
질문 있습니다!!
선생님 저는 왜 enum안에 색이 하얀색으로 나오는건가요??
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
논문 구현에 관해 질문있습니다.
블로그나 깃허브를 보면 논문을 직접 구현 해보신 분들이 꽤 있는것 같습니다. 그래서인지 논문을 구현하는것이 필수인지, 아니면 읽고 이해를 하는 선에서 넘어가도 되는지 궁금합니다. 만약 구현을 해야한다면, 기준이 있는지도 궁금합니다.
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
typeorm One-to-one 관계설정
제로초님 유저개인정보를 담고있는 User Entity와 그외 기타정보를 담고있는 Profile Entity 를 One - to - One 관계로 연결시켜주고자하는데 /user.entity.ts @OneToOne(() => Profile, (profile) => profile.User, { cascade: true, }) @JoinColumn() Profile: Profile; 유저 엔티티를 이렇게 하고, /profile.entity.ts @OneToOne(() => User, (user) => user.Profile) User: User; 프로파일 엔티티를 이렇게 설정해줬는데, 유저를 생성할때 Profile이 같이 자동생성이 되지않습니다. 혹시나해서 profile에도 cascade:true를 넣어봤는데, 디비 오류가 나네요. OneToOne관계에서 유저를 생성할때 자동으로 profile이 생성되게할려면 어떻게 해야하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
디스패처 서블릿의 생성과정에서 질문드립니다!
저번질문을 너무 두서없이 남겨서 하루동안 정리하고 다시 재작성합니다. 공부를 하면서 디스패처서블릿의 실행과정을 다음과 같이 정리했는데 이 내용이 맞는지 궁금해서 질문드립니다 내장 WAS기준 Springboot 1. 스프링 부트 실행 -> 2. springApplication.run으로 WebapplicationContext가 생성 프로젝트의 ComponentScan이 일어난다. run내부적으로 비어있는 ApplicaitonContext를 생성하고 refresh를 통해서 스프링컨테이너(루트컨텍스트가 생성 여기서 스프링 부트는 스프링도 마찬가지, mvc 구조에서 사용될 Converter나 리졸버 들을 @EnableautoConfiguer로 등록) -> 3. 서블릿 컨테이너 만들어지고(WAS) @EnableAutoConfiguation에 의해 -> 4. 서블릿 컨텍스트를 만든다(웹어플리케이션이 등록) -> 5. 서블릿 컨텍스트가 생성이 되고(톰켓 카타리나) -> 6. 서블릿 컨텍스트에 대한 초기화 작업이 시작된다 깡spring에서는 web.xml로 작업하던 것(Java코드로 설정하는 것 또한 지원)이 Java코드 작성으로 변경(ServeltContextInitializer의 OnStartup 메서드를 이용해서 리스너를 등록하고, 필터를 등록, ContextLoader의 서블릿 컨텍스트 생성 이벤트가 발생하고 ContextLoaderListener에 의해서 RootApplicationContext인 Spring IoC 컨테이너가 주입된다.) -> 7. 서블릿 컨텍스트에 대한 초기화및 생성 및 RootWebApplication( 프로젝트에서 생성한 스프링 컨테이너) 주입이 완료 되어 ServletContextListener contextInitialized 메서드 실행된다. -> 8. 나머지 설정인 WebMvcConfigurer에 대한 (Cors 라던지 ArgumentResolver 라던지) 자동설정 이외의 커스텀 값을 추가로 넣어준다 -> 9. 서버가 listen하기 시작 -> 10. 요청이 오면 dispatherServlet객체가 생성이 된다. ( => ? 그전에 webapplicationContext의 빈에 들어가 있는데 왜 지금 생성되는 것인지 궁금합니다) -> 11. 객체가 생성이 되면서 webapplicationContext에 있던 mvc설정 값들을 넣어주어 초기화를 시켜준다. 초기화 메서드는 initStrategies사용 이 과정이 맞는지 궁금해서 질문 작성했습니다 감사합니다 음 제가 궁금한걸 잘못 작성 한것 같습니다. 디스패처 서블릿 보다는 스프링부트든 스프링이든 서버에는 서블릿 객체들이 올라가고 사용자 정의로 작성한 applicationContext에 등록된 @controller나 @service 들이 서블릿컨테이너의 컨텍스트에 올라가는 것이라고 이해했는데 이 동작과정이 잘 와닿지 않아서 질문드렸습니다 추가적으로 이런 applicationContext등록 과정에서 컨텍스트를 따로 2개로 분리하여 작성하는 경우도 봐서 왜 그런지 굼금했습니다
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
Unable to detect adb version 오류 관련하여 문의 드려요.
Unable to detect adb version 오류 관련하여 문의 드려요. 설정 따라가면서 설치 중인데 에뮬레이터 실행하는 과정에서 오류가 발생하네요. 구글링해서 나온 방법으로 처리를 해봐도 해결이 안되네요. [ Device Manager ] 에서 [ create device ] 후에 정상적으로 생성된 것처럼 보이는데 실행 아이콘을 누르면 "java.lang.RuntimeException: Unable to create Debug Bridge: Unable to start adb server: Unable to detect adb version" 이라는 팝업창이 뜹니다. 그리고, 상단 device 선택 콤보박스에는 Loading Devices.. 라고만 뜨고 에뮬레이터가 올라오지 않네요. 혹시 해결방법 알고 계시나요?
-
미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
hpa 관련하여 궁금합니다!
안녕하세요!설명을 너무 잘해주셔서 벌써 HPA 부분까지 듣고 있습니다. HPA는 보수적으로 확장이 돼서 갑자기 트래픽이 몰릴때의 대안 보다는 linear하게 늘어날때 적합하다 라고 말씀 주셨었는데요. 그러면 갑자기 오는 트래픽에 대한 대응으로는 어떤 방법을 사용 할 수 있는건가요? 감사합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
TypeError: Images.map is not a function 업로드 파일저장완료후 웹에 보여지는 부분 오류가 나옵니다.
TypeError: Images.map is not a function FileUpload src/components/utils/FileUpload.js:42 39 | </div> 40 | )} 41 | </Dropzone>> 42 | <div style={{ display: 'flex', width: '350px', height: '240px', overflowX: 'scroll'}}> | ^ 43 | {Images.map((image, index) => ( 44 | <div key={index}> 45 | <img style={{ minWidth:'300px', width:'300px', height: '240px'}}View compiled ▶ 17 stack frames were collapsed. (anonymous function) src/components/utils/FileUpload.js:20 17 | .then(response => { 18 | if(response.data.success) { 19 | console.log(response.data);> 20 | setImages(...Images, response.data.filePath) | ^ 21 | } else { 22 | alert('파일을 저장하는데 실패했습니다.'); 23 | }View compiled This screen is visible only in development. It will not appear if the app crashes in production. 파일업로드 후 웹에 보여지는 부분이 오류가 납니다. 몇시간째 원본코리 비교 중인데요.. Images.map. <== type 오류가 나네요.. FileUpload.js 소스 import React, { useState } from 'react' import Dropzone from 'react-dropzone' import { Icon } from 'antd'; import axios from 'axios'; function FileUpload() { const [Images, setImages] = useState([]); const dropHandler = (files) => { let formData = new FormData(); const config = { header: {'content-type': 'multipart/fomr-data'} } formData.append("file",files[0]); axios.post('/api/product/image',formData , config) .then(response => { if(response.data.success) { console.log(response.data); setImages(...Images, response.data.filePath) } else { alert('파일을 저장하는데 실패했습니다.'); } }) } return ( <div style={{ display:'flex', justifyContent:'space-between'}}> <Dropzone onDrop={dropHandler}> {({ getRootProps, getInputProps}) => ( <div style={{ width:300, height:240, border: '1px solid lightgray', display:'flex', alignItems: 'center', justifyContent:'center' }} {...getRootProps()}> <input {...getInputProps()}/> <Icon type = "plus" style={{ fontSize:'3rem'}} /> </div> )} </Dropzone> <div style={{ display: 'flex', width: '350px', height: '240px', overflowX: 'scroll'}}> {Images.map((image, index) => ( <div key={index}> <img style={{ minWidth:'300px', width:'300px', height: '240px'}} src={`http://localhost:5001/${image}`} /> </div> ))} </div> </div> ) } export default FileUpload 소스코드는 이상없는거 같은데 오류가 나네요.. {success: true, filePath: 'uploads/1644901338521_스크린샷 2022-02-15 오후 1.49.37.png', fileName: '1644901338521_스크린샷 2022-02-15 오후 1.49.37.png'} FileUpload.js:42 Uncaught TypeError: Images.map is not a function at FileUpload (FileUpload.js:42:1) at renderWithHooks (react-dom.development.js:14803:1) at updateFunctionComponent (react-dom.development.js:17034:1) at beginWork (react-dom.development.js:18610:1) at HTMLUnknownElement.callCallback (react-dom.development.js:188:1) at Object.invokeGuardedCallbackDev (react-dom.development.js:237:1) at invokeGuardedCallback (react-dom.development.js:292:1) at beginWork$1 (react-dom.development.js:23203:1) at performUnitOfWork (react-dom.development.js:22154:1) at workLoopSync (react-dom.development.js:22130:1) at performSyncWorkOnRoot (react-dom.development.js:21756:1) at react-dom.development.js:11089:1 at unstable_runWithPriority (scheduler.development.js:653:1) at runWithPriority$1 (react-dom.development.js:11039:1) at flushSyncCallbackQueueImpl (react-dom.development.js:11084:1) at flushSyncCallbackQueue (react-dom.development.js:11072:1) at scheduleUpdateOnFiber (react-dom.development.js:21199:1) at dispatchAction (react-dom.development.js:15660:1) at FileUpload.js:20:1
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 인터셉터 호출에서 afterCompletion에서 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 스프링 인터셉터 호출에서 afterCompletion에서 질문이 있습니다. 첫 화면 실행 결과 로그 출력 결과입니다! (1) preHandle 출력결과 h.login.web.interceptor.LogInterceptor : LogInterceptro REQUEST [e725f1cc-7508-4e39-9d2a-9183f6f70096][/][hello.login.web.HomeController#homeLoginV3Spring(Member, Model)] (2) postHandle 출력결과 h.login.web.interceptor.LogInterceptor : LogInterceptro postHandle [ModelAndView [view="home"; model={}]] (3) afterCompletion 출력결과 h.login.web.interceptor.LogInterceptor : LogInterceptro RESPONSE [e725f1cc-7508-4e39-9d2a-9183f6f70096][/][hello.login.web.HomeController#homeLoginV3Spring(Member, Model)] afterCompletion : 뷰가 렌더링 된 이후에 호출된다. 여기서 질문이 있습니다. 결국 afterCompletion이 어떤 기능을 하니? 라는 질문이 들어왔다면 정상 흐름일 때는 뷰가 렌더링 된 이후에 호출된다. 예외가 발생할 시 어떤 에러가 발생했는지 로그로 확인할 수 있다. 에서 정상 흐름일 때 '뷰가 렌더링 된 이후에 호출된다.' 라고 한 것은 - 최종 결과물을 화면에 띄워준다는 것을 의미하는 것인지? - 아니면 정상 호출되었다는 것을 확인할 수 있다고 하는 것인지? 헷갈림에 작성하게 되었습니다.