묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
준영속상태의 초기화
선생님 준영속상태의 초기화를 하실때(37분 20초에서 ) Member refMember = em.getReference(Member.class, member1.getId()); 를 해주셨는데 getReference도 find와 같이 문장이 실행되는 순간 영속성컨텍스트에프록시 객체를 올린다음에 초기화시 컨텍스트에서 엔티티를 뒤지고 없으면 db로 가서 끌고온다음에 또 영속성컨텍스트에 올려서 확인을 하는게 맞는지요? 이게맞다면 member1은 em.flush와 em.clear를 통해 영속성컨텍스트에는 존재하지 않으며 db에는 올라가있고 -> getReference코드를 실행시켜서 일단 초기화되지 않는 프록시 객체를 만들었고요 -> detach를 통해서 refmember를 준영속 상태를 만들어주었습니다. 영속성컨텍스트에는 제가 생각할땐 아무것도 없는 상태인데 detach가 왜가능한건가요? 프록시객체가 초기화되어서 엔티티를 만들어낸 것도 아니고 초기화되기전 프록시객체 자체도 영속성컨텍스트에 올라가있는건가요? em.persist(refMember)을 써준것도아니고 ... 프록시객체도 엔티티라고 치고 올린다음에 그안에 참조값을 실제 엔티티생성과 동시에 채워주는건가요? 그리고 두번째로 refmember 자체가 초기화되기전에 만약 team테이블과 연관이 있으면 refmember을 초기화하는순간 member와 team까지 다불러오는건가요? 이건 fetch 속성과 관련이 없는건가요? 이쯤오니 너무 헷갈립니다ㅜㅜ 제 질문을 이해하셨을지 모르겠습니다... 지저분한글 읽어주셔서 감사합니다 선생님 항상 감사합니다.
-
미해결빠르게 git - 핵심만 골라 배우는 Git/Github
저는 21년 2월에 수강하고 있는데 왜 master인가요?
toler@DESKTOP-G9DLPBU MINGW64 /d/1.STUDY/3. git_tutorial (master) $ 위와같이 뜨더라구요. 버전이 2.30 이고 21년 2월 17일 기준으로 받았는데 이건 왜이런건가요?
-
쉽고 자연스럽게 배워보는 Javascript 입문 - 코드스쿼드 마스터즈 코스 레벨1
자바 기반 웹개발자 준비생인대요.
삭제된 글입니다
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
app.get app.post 질문
안녕하세요! 제가 아직 뒷 부분을 아직 안 들어서 그러긴한데 app.get과 app.post둘다 주소가 '/'이거라서 localhost:3000에 접속하자마자 app.get에서 res.sendFile을 처리했으니 응답으로 index.html이 뜬다고 잘 이해했습니다. 또한 get메소드는 서버 자원을 가져올때 post메소드는 서버에 자원을 새로 등록할때라고 4장에서 공부했습니다. 그런데 미들웨어는 위에서 아래순으로 실행되니 app.get에서 resSendFile로 응답을 끝냈으므로 다음 post메소드는 실행이 안 될것같은데 그러면 같은주소에 두개의 메소드는 잘 사용을 안하는것인가요? 아니면 이후 내용에서 post메소드를 get보다 위에 적어 사용을하나요? 아니면 제가 이해를 잘못한것일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Transactinal 어노테이션 에러.
안녕하세요. @Transactinal 어노테이션이 import되지 않습니다. build.gradle에 implementation 'org.springframework.boot:spring-boot-starter-jdbc'runtimeOnly 'com.h2database:h2' 추가가 되있는데도 되지 않습니다..ㅜ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
질문있습니다.
안녕하세요 존경하고 친애하는 제로초님. 궁금한점이 있어 질문을 남깁니다. 프론트: nextjs _app.tsx에서 useEffect를 이용하여 서버에게 먼저 me정보를 먼저 불러옵니다. 서버에서 unauthorized 응답을 내려주면 router를 이용해서 로그인페이지로 이동을 할려고 합니다. 정상적으로 이동은 하나 메인페이지가 랜더링이 된 이후에 로그인 페이지로 이동합니다. 원하는건 메인페이지가 랜더링이 되기전에 로그인 페이지로 이동시키게 하고 싶어서요....flow_app.tsx useEffect를 이용해서 서버에게 해당유저 정보 요청 => 401로 응답이 온다면 로그인페이지로 이동아참 로그인은 로컬로그인은 없고 OAUTH 로그인만 있습니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
void OnHitEvent() 오류
플레이어 OnHitEvent()는 잘 작동했었는데, 몬스터 OnHitEvent()가 잘 안되어서 (디버깅으로 확인 해보니 몬스터 OnHitEvent()으로 안들어 오는 현상 확인.) 애니메이션에 문제가 있나 다른 애니메이션으로 넣어봤더니 플레이어 OnHitEvent()까지 작동이 안되기 시작했습니다. 혹시 Base Controller와 PlayerController와 MonsterController 사이에 Init의 문제가 있을까 싶어서 몬스터 AI#1 강의를 계속해서 돌려봤는데 스크립트에는 문제가 없었습니다. 메일로 파일 보내드리니 확인부탁드립니다.. ㅠㅠ 혼자 해결해 나가보고싶어서 계속해서 해봤는데 잘 되질 않아 죄송합니다. 항상 감사드립니다!
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
visualcode 사용에서 zsh가 python을 찾지못하는거같아요..
안녕하세요 파이썬 초급과정을마치고중급과정을 듣게되었습니다. 제가 초급때는 atom으로 강의를 다 들었는데 개인적으로 다른것도 병행하고있어서 현재 윈도우에서 WLS 사용하여 우분투에서 작업할떄는 visualcode가 잘작동하다가 최근에 zsh(oh-my-zsh)라는 터미널이 가독성이좋다고하여 바꿨는데 다른건 다 실행이되는데 코드 작성후에 ~.py 파일을 F5나 화살표를눌러서 컴파일하면 아래 사진처럼 zsh가 파이썬을 찾을수없다고뜨네요.. 구글링도해보고 zshrc 관련파일도 수정도다해보았는데 그냥 우분투나 zsh에서는 잘실행되는파이썬이 유독 visualcode에서만 해당오류가나와서 너무답답하네요 ㅠ 질문이 너무 복잡하긴하지만 혹시 해결방법좀 알려주실수있나요? wls에 zsh까지사용하다보니 stackoverflow에서도 찾기가힘들어서 질문드립니다..
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
do-while 문에서 while() 조건에 복수 조건을 설정하려면 어떻게 해야하나요?
예를 들어 게임 내에서나 텍스트로 정답을 입력하였을 때, Y 대신 y나 yes, YES 등의 답변을 하는 유저가 있다고 가정할 경우 do-while문에서 복수 조건 설정이 가능한지 궁금합니다! do { Console.WriteLine("저는 귀여운가요? (Y/N)"); answer = Console.ReadLine(); } while (answer != "Y"); Console.WriteLine("정답입니다!");
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest 코드 질문이요!
강사님께서 시키는대로 다 했는데 왜 오류가 나는지 모르겠습니다. 혹시 몰라 오류 내용 모두 올립니다 ㅠ java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 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.run(ParentRunner.java:363) 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:220) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:609) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:588) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426) at org.springframework.boot.SpringApplication.run(SpringApplication.java:326) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:123) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) ... 24 more Caused by: 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:176) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:127) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1847) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784) ... 40 more Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ... 57 more
-
미해결인터랙티브 웹 개발 제대로 시작하기
3D 입체감 표현 관련하여 질문드립니다.
우선 강의가 너무 재밌어서 하루 하루가 즐겁습니다. 감사합니다. stage에 perspective를 넣으면 시점마다 차이나는 3D가 표현되는 점과 따라서 회전하는 요소인 door-body에 직접 perspective를 넣어 일관된 시점으로 보이게 하는 부분은 이해하였습니다. 질문 1) stage가 아닌 door에 perspective를 넣었더니 door-body에 넣은 것처럼 일관된 시점의 3D가 나옵니다. 회전하는 주체의 부모 엘리먼트인데 왜 stage처럼 작동하지 않는 것일까요?? 질문2) stage에 perspective를 사용할 때 door에 preserved-3d를 넣어주지 않아도 이전 카드 뒤집기와 달리 정상적으로 3d가 작동하는 이유는 무엇일까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의이해에 관해 문의드립니다.
먼저 양질의 강의 무료로 수강할수 있게 해주심에 감사드립니다. 자바 문법을 한번 떼고 mysql로 db를 잠시 다뤄보고 강의를 듣고 있습니다. 강의를 들으며 제대로 이해를 한다기보단 코드를 따라 타이핑한다는 느낌을 강하게 받을 때가 많이 있습니다... 모르는 내용들을 찾으며 수강하다보니 수강 기간이 늘어지기도 하구요... 본 강의를 먼저 듣고 기본편 강의를 수강하면 혹 스프링을 이용한 개발의 이해에 더 도움이 될 수 있을까 질문드립니다. 감사합니다.
-
해결됨작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
61강 django_container_gunicorn 컨테이너의 볼륨 설정
현재 61강을 보는 중인데 궁금한 점이 있어서 질문드립니다. django_test_image:3에 기반해서 만든 장고 구니콘 컨테이너를 삭제하고 django_test_image:4를 만들고, 컨테이너를 다시 만들때 57강에서 말씀하신 것처럼 유지가 되기 때문에 볼륨설정을 안해도 되는건가요? django_test_image:3을 기반한 컨테이너때는 nginx와 동기화를 한걸로 알고 있는데 한번 동기화를 했기 때문에 django_test_image:4를 기반한 컨테이너에선 볼륨설정을 따로 안해도 되는건지요? 그리고 강의대로 했을때 502 gate way 에러나 접속을 했어도 사진을 올리면 그 사진이 보이지 않는데다시 만들어야 하나요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
nodemon이 잘 되다가 안 되는데 구글링으로 해결이 어렵습니다ㅠㅜ
Error: Cannot find module 'C:\Users\Tmax\Desktop\연습\node_react_begin\index.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15) at Function.Module._load (internal/modules/cjs/loader.js:725:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } [nodemon] app crashed - waiting for file changes before starting... 위와 같은 에러 코드가 나오는데 어제까지만 해도 잘 되던게 안 되니 당황스럽습니다...ㅠㅜ 혹시 server 폴더를 따로 만들고 package.json 파일을 아래처럼 수정했는데 제가 뭘 잘못한게 있을까요...? npm run start는 잘 되고 npm run backend만 안됩니다ㅠㅜ "scripts": { "start": "node server/index.js", "backend": "nodemon server/idex.js", "test": "echo \"Error: no test specified\" && exit 1", "dev" : "concurrently \"npm run backend\" \"npm run start --prefix client\"" },
-
미해결OpenCV 강좌 - 컴퓨터 비전
계속 에러가 뜹니다
https://www.cvlecture.marearts.com/forum/opencv-lecture/chapter-0-opencv-build-option-3-python-easiest-way 여기서 하시는거 다 따라서 하고 마지막에 import cv2 하면 ImportError: DLL load failed while importing cv2: 지정된 모듈을 찾을 수 없습니다.계속 이렇게 뜹니다. 기존에 있던 파이썬 파일 다 지우고 다시 해봐도 계속 에러떠서 질문 드립니다.
-
미해결웹 게임을 만들며 배우는 React
npm -i @pmmmwh/react-refresh-webpack-plugin 에러납니다ㅠ
아위 그림과 같이 에러나는데 대체할 수 있는 방법이 있을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요. 값 타입 컬렉션에 대해서 궁금한 점이 있습니다.!
영한님 안녕하세요. 좋은 강의 항상 잘 듣고 있습니다. 정말 감사합니다. 다름이 아니라 값 타입 컬렉션을 공부하던 중에 조금 이해 안가는 부분이 있어서 질문드립니다. 값 타입 컬렉션의 대안으로 일대다 관계를 고려한다고 하셨는데, @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) @JoinColumn(name = "MEMBER_ID") private List<AddressEntity> addressHistory = new ArrayList<>(); 이런 경우라면 한명의 MEMBER가 하나의 addressHistory라는 list에 여러 address를 가지고 있기 때문에 1:1 관계가 아닌가요?? 결국 MEMBER는 한개의 addressHistory (쉽게 말해 주소록)을 가지고 그 하나의 주소록 안에 여러 address들이 포함되어 있는 것 같은데 어떻게 해서 oneToMany 관계가 성립되는지 궁금합니다. 감사합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
더보기 버튼이 안 보입니다
안녕하세요 선생님 좋은 강의 잘 듣고 있습니다 이미지를 8개 이상 업로드 한 후 제가 더보기 버튼 만들기 #1과 #2를 들었는데 코드를 다 작성하고 보니까 나중에 더보기 버튼이 사라졌습니다 제가 작성한 코드는 아래와 같습니다 웹에서 더보기 버튼을 누르지도 않았는데 왜 더보기 버튼이 사라졌는지 파악이 안 되네요ㅜㅜ ============================================================================================ ============================================================================================= routes 에 있는 product.js 코드 const express = require('express'); const router = express.Router(); const multer = require('multer'); const { Product } = require('../models/Product'); // Product var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads/') }, filename: function (req, file, cb) { cb(null, `${Date.now()}_${file.originalname}`) } }) var upload = multer({ storage: storage }).single("file") router.post('/image', (req, res)=> { // 가져온 이미지를 저장 해주면 된다. upload(req, res, err => { if(err) { return req.json({success: false, err}) } return res.json({success: true, filePath:res.req.file.path, fileName: res.req.file.filename }) }) }) router.post('/', (req, res)=> { // 받아온 정보들을 DB에 넣어 준다. const product = new Product(req.body); product.save((err) => { if(err) return res.status(400).json({ success: false, err}) return res.status(200).json({ success: true}) }) }) router.post('/products', (req, res)=> { // product collection에 들어 있는 모든 상품 정보들을 가져오기 let limit = req.body.limit ? parseInt(req.body.limit) : 20; let skip = req.body.skip ? parseInt(req.body.skip) : 0; Product.find() .populate("writer") .skip(skip) .limit(limit) .exec((err, productInfo)=> { if(err) return res.status(400).json({ success: false, err}) return res.status(200).json({ success: true, productInfo, postSize: productInfo.length}) }) }) module.exports = router; ============================================================================================= LandingPage.js 에 있는 코드 import React, {useEffect, useState} from 'react' import { FaCode } from "react-icons/fa"; import axios from "axios"; import {Icon, Col, Card, Row, Carousel} from 'antd'; import Meta from 'antd/lib/card/Meta'; import ImageSlider from '../../utils/ImageSlider'; function LandingPage() { const [Products, setProducts] = useState ([]) const [Skip, setSkip] = useState(0) const [Limit, setLimit] = useState(8) const [PostSize, setPostSize] = useState(0) useEffect(() => { let body = { skip: Skip, limit: Limit } getProducts(body) }, []) const getProducts = (body) => { axios.post('/api/product/products', body) .then(response => { if(response.data.success) { if(body.loadMore) { setProducts([...Products, ...response.data.productInfo]) } else { setProducts(response.data.productInfo) } setPostSize(response.data.PostSize) } else { alert("상품들을 가져오는데 실패 했습니다.") } }) } const loadMoreHandler = () => { let skip = Skip + Limit let body = { skip: skip, limit: Limit, loadMore: true } getProducts(body) setSkip(skip) } const renderCards = Products.map((product, index)=> { return <Col lg={6} md={8} xs={24} key={index} > <Card cover={<ImageSlider images={product.images}/>} > <Meta title={product.title} description={`$${product.price}`} /> </Card> </Col> }) return ( <div style={{ width: '75%', margin: '3rem auto'}}> <div style={{ textAlign: 'center'}}> <h2>Let's Travel Anywhere <Icon type="rocket" /></h2> </div> {/* Filter */} {/* Search */} {/* Cards */} <Row gutter={[16, 16]} > {renderCards} </Row> <br /> {PostSize >= Limit && <div style={{ display: 'flex', justifyContent: 'center'}}> <button onClick={loadMoreHandler}> 더보기 </button> </div> } </div> ) } export default LandingPage ============================================================================================= ImageSlider.js에 있는 코드 import React from 'react' import {Icon, Col, Card, Row, Carousel} from 'antd'; function ImageSlider(props) { return ( <div> <Carousel autoplay> {props.images.map((image, index) => ( <div key={index}> <img style={{width: '100', maxHeight:'150px'}} src={`http://localhost:5000/${image}`} /> </div> ))} </Carousel> </div> ) } export default ImageSlider
-
미해결포토샵 기본기 하루 5분, 3주 만에 끝내기
레이어의 내용을 직접 편집할 수 없으므로 브러쉬 도구를 사용 할 수 없습니다
제목과 같은 경고문이 뜨는 데 이떻게 해야 한나요ㅜㅜ
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
강사님 creact-react-app . 하실때 질문있습니다.
강사님 강사님께서 npx creact-react-app . 을 하셨을때 yarn.lock 과 serviceWorker.js가 생성되는데 제 컴퓨터에서는 저 두개 대신 reportWebVitals.js가 생성되네요 어떤 차이인지 궁금합니다. 혹시 이부분이 제가 전에 deploy를 시도 했을때 문제가 생기는 부분인가 싶습니다.