묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
this 관련 문의드립니다.
node.js 교과서로 공부중에 궁금한것이 있습니다. 화살표 함수는 본인의 대한 this를 갖지 않는다는것인데요. 때문에 화살표 함수가 없던 시절에 메서드 내부에 콜백함수 안에서 this를 사용해 매서드 외부의 객체(friends)를 참조하기 위해서 매서드 내부에서 this값을 가지는 변수를 선언하고 콜백함수에서 그값으로 참조를 하였죠. const relationship1 = { name: "zero", friends: ["nero", "hero", "xero"], logFriends: function () { const that = this; // this는 relationship1을 가리킨다. this.friends.forEach(function () { console.log(that.name, that.friends); }); }, }; relationship1.logFriends(); 그리고 화살표 함수가 생긴 이후로는 이런코드를 작성하구요. const relationship2 = { name: "zero", friends: ["nero", "hero", "xero"], logFriends() { this.friends.forEach(() => { console.log(this.name, this.friends); }); }, }; relationship2.logFriends(); 그런데 궁금한것이 logFriends역시 함수인데 logFriends는 화살표 함수를 쓰지 않아도 this.friends로 메서드 외부에 friends에 접근 할 수 있다는 것이 신기하네요. 그래서 제가 함수 프로퍼티를 화살표함수로 만드는 시도를 했습니다. const relationship3 = { name: "zero", friends: ["nero", "hero", "xero"], logFriends: () => { console.log(this.friends); }, }; relationship3.logFriends(); 하지만 이렇게 하면 undefined가 출력되더군요. 두번째 코드의 logFriends가 함수 프로퍼티라 가능한건가요??
-
미해결최고의 프론트엔드 CSS Frameworks, UIkit
UIKIT snippets 설정
안녕하세요. 선생님, 강의 시청중에 궁금한 점이 있어 질문드립니다. vs code 에 uikit snippets 설치하여 강의 따라 하며 코딩중인데요. html 파일, css 파일에서 'uk' 입력하면 snippets 이 uk-xxx 목록 전체를 보여줍니다. 강의 화면에서는 styles. css 파일에서 ".uk" 로 입력 시작해도 snippets이 작동 하는 거 같아 질문드립니다. 다른 설정이 필요한 것인가요? 제 환경에서는 css 파일에서 "." 없이 uk를 입력하면 스니펫이 실행되나 ".uk" 로 시작하면 스니펫이 작동하지 않습니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Post 정보에서 태그 정보를 같이 받아오려고 합니다..
안녕하세요 제로초님 노드버드 강좌를 보면서 열심히 공부 중이며 노드버드에서 배운 부분을 조금씩 응용해보려고 하는 중에 질문이 있어서 이렇게 글을 쓰게 되었습니다. 우선 수업과 동일하게 Post table, Tag table이 M:N 다대다 관계를 설정하여 PostTag 라는 테이블이 생성되었습니다. 이것을 이용해서 게시글(Post) 정보를 한번에 불러올때 각 게시글마다 존재하는 태그들도 같이 받아오고 싶습니다. 제가 시도한 방법으로는 findAll 에서 include를 이용해서 받아오려고 했지만 실패했습니다. 제가 설정한 관계와는 맞지 않는 코드의 형태로 에러 메세지가 나오는 것 같습니다. sql 쿼리문의 조인에 대해 지식이 부족하다고 생각하여 조인 부분을 찾아보고 공부를 해도 sequelize 로 어떤식으로 풀어가야 할 지 모르겠습니다 ㅠㅠ 먼저 테이블 정보 입니다. 제가 작성한 코드 부분입니다. 마지막으로 에러메세지 입니다
-
해결됨데이터 사이언스 입문 부트캠프
안녕하세요. 강의 하나가 도중에 잘려있길래 문의드려요
좋은 강의 감사드립니다. 재밌어요 다만 ds807 비즈니스 분석 실무 - 비교분석 부분의 강의가 1분 28초인데요.. 이 파트 강의가 대부분 10분이 넘어가는데, 1분 30초밖에 되지 않아서 좀 짧다 싶었는데, 아니나 다를까 도중에 강의가 끊어지더라구요. 아마 편집이 잘못되었거나, 잘못된 파일을 올린게 아닌가 싶습니다. 최대한 빨리 수정해서 업데이트 부탁드립니다. 고생하세요~
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
#include wrl.h 헤더를 사용하면 에러가납니다
wrl.h 헤더를 사용했을때 계속해서 아래와 같은 에러가 뜨는데 혹시 방법이 있나요?
-
미해결입문자를 위한 파이썬 기초 따라잡기
/와 //
/ 와//둘 다 나누기로 몫이 나오나요? 코드 실행했을때 값이 다르게 나와서요
-
미해결R 프로그램 - 시즌 1
runif(10000) 실행 시 에러
runif(10000) 실행 시 에러가 나요. - reached getOption("max.print") -- omitted 9000entries 라고 뜨네요...
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 org.springframework.dao.InvalidDataAccessApiUsageException: id to load is required for 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 섹션6. 주문기능테스트에서 이런오류가 발생합니다. 왜 이런 오류가 발생하는지 모르겠습니다.. 오류를 보면 ItemRepository에서 public Item findOne(Long id){ return em.find(Item.class ,id);}이 함수가 오류가 난다고 합니다. loading; nested exception is java.lang.IllegalArgumentException: id to load is required for loading at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:374) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698) at jpabook.jpashop.repository.ItemRepository$$EnhancerBySpringCGLIB$$6ea5eb6b.findOne(<generated>) at jpabook.jpashop.service.OrderService.order(OrderService.java:25) at jpabook.jpashop.service.OrderService$$FastClassBySpringCGLIB$$ad373727.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698) at jpabook.jpashop.service.OrderService$$EnhancerBySpringCGLIB$$2d0884fb.order(<generated>) at jpabook.jpashop.service.OrderServiceTest.주문취소(OrderServiceTest.java:96) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Caused by: java.lang.IllegalArgumentException: id to load is required for loading at org.hibernate.event.spi.LoadEvent.<init>(LoadEvent.java:96) at org.hibernate.event.spi.LoadEvent.<init>(LoadEvent.java:64) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.doLoad(SessionImpl.java:2827) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.lambda$load$1(SessionImpl.java:2807) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.perform(SessionImpl.java:2763) at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load(SessionImpl.java:2807) at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3395) at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3357) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:311) at com.sun.proxy.$Proxy112.find(Unknown Source) at jpabook.jpashop.repository.ItemRepository.findOne(ItemRepository.java:25) at jpabook.jpashop.repository.ItemRepository$$FastClassBySpringCGLIB$$dc3fed7a.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ... 49 more
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
'나와 매칭이 되었는가에 대한 로직' 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 영상 잘 보고 있습니다. 다름이 아니라, '유저 리스트뷰 클릭 시, 매칭된 회원인지 확인하기 로직 수정' 2분짜리 영상에서 2분 18초 에for (dataModel in dataSnapshot.children){if(likeUserKey.equals(uid)){Toast.} else {Toast.}}이 로직을 var check = false;for (data in snapshot.children) { val likeUid = data.key.toString() if (likeUid == FirebaseAuthUtils.getUid()) { Toast.makeText(baseContext, "나와 매칭된 회원입니당 !!", Toast.LENGTH_SHORT) .show() check = true; break; }}if (!check) { Toast.makeText(baseContext, "나와 매칭된 회원이 아닙니다 ㅠㅠ", Toast.LENGTH_SHORT) .show() likeToken.setBackgroundColor(Color.RED)} 이와 같이 바꿔야 되지 않는가해서 질문드립니당
-
미해결입문자를 위한 파이썬 기초 따라잡기
에디터 모드 calc
에디터 모드에 작성한 calc가 실행된게 왜 쉘모드에서 보여지는 건가요?
-
해결됨[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
html에서 id 속성에 대해 간단한 질문..
어느 사이트에서든 어떤 태그 내의 id 속성값은 유일무이하게 해당 태그에서만 사용된다고 봐도 정말로 문제없나요? 이전에 html 실습하면서 공부했을 때 id속성이나 class속성이나 두개 사용하면서 크게 다른게 없다고 느꼈는데 이 영상을 보면서 id가 실무에서는 해당 태그에만 적용되도록 사용하는건지 정확히 알고싶습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
API객체바인딩 실패시 객체 생성문제에 질문있습니다.
API객체 바인딩 실패시, 실제 개발할때 해당 에러객체들을 그대로 사용하는것이 아니라 필요한 데이터만 뽑아서 새로운 객체를 만들어 사용한다고 말씀주셨습니다. 새로운객체를 만들때 해당 데이터들을 뽑는 방법은 어떻게 해야하나요?
-
미해결
동영상재생
video append of 156745b failed for segment #37 in playlist 0-placeholder-uri-0 이렇게 뜨면서 동영상 재생이 안되네요
-
미해결15일간의 빅데이터 파일럿 프로젝트
Hue 쿼리 실행 오류
Hue에서 아래 에러가 발생하면서, 테이블 생성 쿼리를 진행 할 수 없습니다. 에러 메세지> QueryError: Could not connect to server02.hadoop.com:10000 (code THRIFTTRANSPORT): TTransportException('Could not connect to server02.hadoop.com:10000',) 진행 강의 > "06-05. 탐색 파일럿 실행 3단계 - 데이터 탐색&처리1" 상황 설명 > 어제 Hue 설치까지 별다른 오류없이 진행을 했고, 모든 서비스를 종료를 했습니다. 오늘 다시 강의를 이어서 보려고, 클라우데라에서 모든 서비스를 시작했습니다. Hue 계정을 생성하고 접속하면, 아래와 같은 오류 메세지를 출력하고 있습니다. 쿼리를 실행해도 동일합니다. 클라우 데라에서 ThriftServer 포트는 9090인것 같은데, 왜 10000으로 접속하려는 걸까요? 클라우데라에서 ThriftServer 실행 상태도 양호인 것을 확인 했습니다. 다만 HBase의 connection health 상태가 concerning으로 표시되는데 연관이 있을까요?
-
미해결웹게임을 만들며 배우는 인터렉티브웹! JAVASCRIPT
캐릭터가 점프하면서 앞으로 나아가게 만들고있습니다
점프하면 앞으로 나가게는 만들었는데 방향이 left인 상태에서 점프를 up하면 right을 향한채로 뒤로 점프하게 됩니다. 계속 생각해보다가 도무지 모르겠어서 질문드립니다..! up에서 기본으로 방향이 right으로 향하는거 같은데 어떻게 해결해야할까요 if (key.keyDown["right"] && key.keyDown["up"]) { this.el.classList.add("jump_run"); this.el.classList.remove("run"); this.el.classList.remove("jump"); this.el.classList.remove("flip"); this.direction = "right"; this.moveY = this.moveY - this.jump; this.moveX = this.moveX + this.speed; setTimeout(() => { this.el.classList.remove("jump_run"); this.el.classList.add("run"); }, 300); } else if (key.keyDown["left"] && key.keyDown["up"]) { this.el.classList.add("jump_run_back"); this.el.classList.add("flip"); this.el.classList.remove("run"); this.el.classList.remove("jump"); this.direction = "left"; this.moveY = this.moveY - this.jump; this.moveX = this.moveX - this.speed; setTimeout(() => { this.el.classList.remove("jump_run_back"); }, 300); ////// 이하 CSS .hero_box .hero.flip { transform: rotateY(180deg); } .hero_box .hero.jump { animation: hero_jump 0.5s 1; } .hero_box .hero.jump_run { animation: hero_jump_run 0.5s 1; } .hero_box .hero.jump_run_back { background-size: 1498px 182px; animation: hero_jump_run_back 0.5s 1; } @keyframes hero_jump_run_back { 0% { transform: translate(0, 0); } 50% { transform: translate(-25px, -150px); } 100% { transform: translate(-40px, 0); } } @keyframes hero_jump_run_back_flip { 0% { transform: rotateY(180deg); } 50% { transform: rotateY(180deg); } 100% { transform: rotateY(180deg); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
전체 소스코드 제공...
html소스코드는 어디서 얻나요?ㅠ 깃주소가 있는지..ㅠㅠ 저희도 복붙좀ㅠㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Session Clear() 함수 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Session클래스내 Disconnect시 Clear함수를 안해주었을때 발생하는 문제가 있을까요??
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요 localhost:8080/hello 부분 질문드립니다.
안녕하세요 localhost:8080/hello를 요청하는 부분에서 매핑페이지가 없다고 오류가 나옵니다. // hello 서블릿 클래스 입니다. //서버는 8080포트라고 잘 뜹니다. //스프링부트 메인 클래스 입니다. 스프링부트 메인페이지가 최상단에 위치해야 한다고 하여 main 클래스를 확인해보아도 hello.servlet 으로 위치해있고 , 위치를 hello로 바꾸어도 결과는 똑같았습니다. webapp에 만들어놓은 정적 페이지를 요청했을땐 잘 실행이 됩니다. 그 이후에 response 등등 여러 클래스를 만들었던 url로 요청을해도 모두 매핑페이지가 없다고 뜹니다. 감사합니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
SocketAsyncEventArgs에 대해 질문드립니다
안녕하세요 강사님 질좋은 강의 제공해주셔서 항상 감사합니다. 저가 질문드릴거는 SocketAsyncEventArgs와 관련된 부분입니다. (SocketAsyncEventArgs를 소켓처리를 지원하기 위한 클래스라고 이해하고 있습니다.) 질문은 두가지 입니다. 1. args.Completed라는 것이 정확히 어떤 동작을 완료했을 때 발생하는지에 대한 것입니다. 이 후 강의를 보면 send와 receive에서도 args.Completed라는 것을 쓰는데, args.Completed가 의미하는게 클라이언트에서 conncet를 요청한 상황인지, 클라이언트에서 데이터를 보내거나 받는 상황인지 어떻게 구별하는건가요? 2. SocketAsyncEventArgs와 Socket의 관계가 어떻게 되는지 궁금합니다. SocketAsyncEventArgs이 어떤 소켓을 지원하는지 어떻게 알 수 있나요? RegisterAccept함수에서 _listenSocket.AcceptAsync(args)를 해주었기 떄문에, args는 _listenSocket 소켓의 소켓처리를 지원하는 클래스라고 생각하면 되나요? 그렇다면 RegisterAccept함수가 시행되기전인 Init함수에서 args가 어떤 소켓을 지원하는지는 알 수 없는 상태인건가요?
-
미해결Ethereum 실전! 초보자를 위한 Lottery Dapp 개발
migrations 내의 js파일에서 artifacts 객체를 불러올 수 없습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. const Lottery = artifacts.require("Lottery"); 에서 artifacts 객체를 선언할 수 없다는 메세지가 뜹니다. build폴더에 있는 Lottery.json파일에서 데이터를 가져오는 것으로 강의에서 설명이 되어있는데 ide에서는 import가 되지 않는 것으로 나와서 문의드립니다