묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
ddl-auto : none 옵션
조회용 샘플 데이터를 입력하면서 application.yml 파일의 ddl-auto : none 옵션으로 바꾸어주면, 실행 시에 데이터가 더이상 쌓이지 않아야 하는 것이 맞는지 궁금합니다. 저는, 실행할 때 마다 InitDb의 데이터가 쌓여서 저장이 되는데, 이게 맞는 건지 잘 모르겠습니다. 제가 생각한 바로는, 최초에 create 옵션일 때 데이터를 넣어두고, 이후에 none으로 바꾸게 되면 더 이상 데이터가 입력되지 않는 것이라고 생각했는데 혹시 제 생각이 맞다면, none 옵션 시에 insert 쿼리가 안나가게 하는 방법이 있을까요?참고로 제 스프링부트 버전은 2.7.1입니다.h2 데이터베이스는 2.1.214가 설치되어있음을 확인했습니다.
-
미해결AWS(Amazon Web Service) 중/상급자를 위한 강의
EB 질문
안녕하세요 ㅎㅎ 강의 잘 보고있습니다.강의를듣고 수업자료 말고 기존에 작성했었던 ,Django , python 을 배포하려고 하는데여강의에서 나오대로 했지만 심각이라는 메세지가 나오면서 502 에러가 발생했습니다.502 에러가 발생해서 아마 nginx 가 뜬거 같은데 서버가 안뜬게 아닌가 ?? 생각을 하고있는데여이럴때 어떻게 해야하면 될까요 ?및에 최근 이벤트를 보니 Environment health has transitioned from Degraded to Severe. 100.0 % of the requests are failing with HTTP 5xx. ELB processes are not healthy on all instances. Configuration update completed 74 seconds ago and took 75 seconds. ELB health is failing or not available for all instances. Impaired services on all instances.유형으로 이러한 에러가 발생하네여 현재검색하면서 이러한 자료를 보면서 해결해보려고 하고있습니다 ㅎㅎhttps://shinsunyoung.tistory.com/101찾아보면서 생각이 드는건데 환경 속성을 변경 한다던지.. 다른것을 편집하려고 할때 규칙이 따로 있을까요 ?? ㅎㅎ예를들어port 를 변경한다고 할때 이름을SERVER_PORT 로 적어야한다던지요 ㅎ
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
npm run build:prod 에러
ec2 instance connect 에서 npm run build:prod 시 에러가 뜹니다ubuntu@ip-172-31-7-125:~/raddit-clone-deploy/client$ npm run build:prod > client@0.1.0 build:prod > env-cmd -f .env.production next build info - Loaded env from /home/ubuntu/raddit-clone-deploy/client/.env.production Failed to compile. ./src/pages/_app.tsx 31:3 Error: Synchronous scripts should not be used. See: https://nextjs.org/docs/messages/no-sync-scripts @next/next/no-sync-scripts ./src/pages/index.tsx 42:5 Warning: React Hook useEffect has missing dependencies: 'observeElement' and 'observedPost'. Either include them or remove the dependency array. react-hooks/exhaustive-deps ./src/pages/r/[sub].tsx 28:7 Warning: React Hook useEffect has missing dependencies: 'authenticated' and 'user'. Either include them or remove the dependency array. react-hooks/exhaustive-deps info - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules info - Linting and checking validity of types .ubuntu@ip-172-31-7-125:~/raddit-clone-deploy/client$ ^C31:3 Error: Synchronous scripts should not be used. See: https://nextjs.org/docs/messages/no-sync-scripts 여기서 async 나 defer 추가하래서 client>src>pages>_app.tsx에서return <> <Head> <script defer src="https://kit.fontawesome.com/0d9816814b.js" crossOrigin="anonymous"></script> </Head> <SWRConfig value = {{ fetcher }}> <script defer src="https://kit.fontawesome.com/0d9816814b.js" crossOrigin="anonymous"></script>추가해보았지만 해결이 안되었습니다.선생님 소스코드 보니 integrity가 추가되었는데 이게 문제일까요? <script defer src="https://use.fontawesome.com/releases/v6.1.1/js/all.js" integrity="sha384-xBXmu0dk1bEoiwd71wOonQLyH+VpgR1XcDH3rtxrLww5ajNTuMvBdL5SOiFZnNdp" crossOrigin="anonymous"></script>
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
강의자료와 실제 생성 테이블이 다르고, Address가 값 객체일 수 없다고 생각합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 김영한님의 강의를 잘 보고 있습니다. 강의를 보던도중, 문득 의문점이 들어서 여쭤보고자 질문을 작성하게 되었습니다. 질문의 테마는 값 타입 컬렉션과 기본키라고 할 수 있겠네요.기본 지식테이블은 기본키가 있을수도, 없을수도 있다.제가 배운대로는, 테이블은 기본키가 존재할 수도 있고 존재하지 않을 수도 있다고 배웠습니다. 그리고 기본키를 두는 이유는 기본키가 겹치지 않도록 해서, 데이터 중복을 막고, 조회 시 효율 증가를 위해서라고 생각했습니다. 김영한님의 강의에서 말하는 값타입은 주소가 다르더라도 안에 있는 값이 모두 같다고 하신걸로 이해했습니다.그래서 자바 객체가 값타입으로 들어가는 경우에는 equals를 통해서 같은지를 비교한다는 것도요!! 김영한님의 강의 중 예제로 들어주셨던 Member의 favoriteFoods, addressHistory는 값 타입을 데이터베이스 테이블로 변환한 예시로 이해했습니다.그리고 강의 내용에서 JPA를 이용해서 Table 구조를 생성하는 걸로 이해했습니다. 여기까지가 제가 이해한 내용입니다. 저는 그래서 해당 구조로 데이터베이스를 만들어준다고 인지했고, FAVORITE_FOOD, ADDRESS는 각각 중복값이 들어갈 수없다고 생각했습니다. 문제상황하지만 테이블의 생성 내용을 보면, 기본키 설정 부분이 빠져 있습니다.외래키 매핑만 되어 있고 실제로 기본키 부분이 빠져있습니다.제가 만든, ADDRESS 테이블을 예시로 들면,이는, FAVORITE_FOOD 도 동일합니다. 정말 중복값이 들어갈 수 없는지 테스트해보았습니다.테스트를 위한 코드는 다음과 같습니다.Address address = new Address("newCity", "street", "10000"); Member member1 = new Member(); member1.setName("member1"); member1.setHomeAddress(address); member1.getFavoriteFoods().add("치킨"); member1.getFavoriteFoods().add("치킨"); member1.getFavoriteFoods().add("치킨"); member1.getFavoriteFoods().add("피자"); member1.getFavoriteFoods().add("족발"); Address oldAddress = new Address("oldCity3", "street", "10000"); member1.getAddressList().add(new Address("oldCity", "street", "10000")); member1.getAddressList().add(new Address("oldCity2", "street", "10000")); member1.getAddressList().add(new Address("oldCity3", "street", "10000")); member1.getAddressList().add(new Address("oldCity3", "street", "10000")); member1.getAddressList().add(new Address("oldCity3", "street", "10000")); em.persist(member1); 결과값은 다음과 같습니다.값을 보게되면, FAVORITE_FOOD의 경우는 Set 자료구조 사용으로 중복값이 들어갈 수 없는 것이고, ADDRESS의 경우는 중복값이 들어갈 수 있었습니다. 만약 값의 변경이 일어나는 경우에는 어떻게 될까? 하는 고민이 생겨, 중복으로 들어있는 내용의 값을 변경해보았습니다.Address address = new Address("newCity", "street", "10000"); Member member1 = new Member(); member1.setName("member1"); member1.setHomeAddress(address); member1.getFavoriteFoods().add("치킨"); member1.getFavoriteFoods().add("치킨"); member1.getFavoriteFoods().add("치킨"); member1.getFavoriteFoods().add("피자"); member1.getFavoriteFoods().add("족발"); Address oldAddress = new Address("oldCity3", "street", "10000"); member1.getAddressList().add(new Address("oldCity", "street", "10000")); member1.getAddressList().add(new Address("oldCity2", "street", "10000")); member1.getAddressList().add(new Address("oldCity3", "street", "10000")); member1.getAddressList().add(new Address("oldCity3", "street", "10000")); member1.getAddressList().add(new Address("oldCity3", "street", "10000")); em.persist(member1); em.flush(); em.clear(); Member findMember = em.find(Member.class, member1.getId()); System.out.println("================== Start 2 =================="); findMember.getAddressList().remove(oldAddress); findMember.getAddressList().add(new Address("newCity1", "street", "10000")); tx.commit(); 결과값은 다음과 같습니다.중복값을 한번에 지워준다면, 그래도 결과적으로는 ADDRESS값을 중복이 없는 값객체로 쓸 수 있겠다고 생각했지만, 모두 지우지 않고 중복값을 하나만 지웠습니다.물론 List의 특성 상 중복 값 한개만 지우는게 당연하지만요. 가설목표하던 테이블 구조로 실제로 만들어지지 않았다고 생각했습니다. -> 기본키가 없다.왜냐하면 생성하고자 하는 테이블 구조와 생성된 테이블 구조가 다르기 때문입니다.음식에서 중복이 생기지 않는 이유는 Set의 특성 때문이지 테이블 때문이 아니라고 생각이 들었습니다. 값 객체의 특성 상 중복을 허용하는 경우는 없다.좋아하는 음식의 경우 같은 음식이 두번 있을 이유는 없지만, 이전의 주소의 경우는 같은 주소에 두번 이사갈 수 있다.그렇다면 음식과 다르게 주소의 경우는 중복이 가능하고, 값을 추적할 수 있어야 하므로 Entity로 사용하는게 맞지 않을까요?이 부분은 김영한님깨서 설명해주신 부분과 일치하지만, 결론까지 도달한게 맞는지 궁금합니다. 두서 없이 길게 적은 것 같은데, 제가 생각한 가설이 맞는지가 궁금합니다. 그리고 나아가 가설까지 도달하는 방식에 문제가 있거나 고칠점이 있다고 피드백도 부탁드립니다. 읽어주셔서 감사합니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
decrease 쪽 메서드 안타는 이유,,?
콘솔 찍어봐도.. 여기까지 오질 않는 이유가 궁금합니다.. 느낌상으론 executorService 쪽에서 뭔가.. 안되는 느낌인데 ㅠ 원인을 모르겠네요
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
실제 쇼핑몰 사이트 결과와 셀레니움으로 접속한 결과가 다릅니다.
직접 접속하는 경우 상품 목록 셀레니움으로 접속한 경우 상품 목록둘다 주소가 똑같지만 네트워크 목록도 다르고 상품 목록도 다르게 뜨네요.왜 이런 현상이 일어날까요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
질문이요
[질문 내용]like문을 사용하는 방법이 인테넷에서 검색해보니 여러방법이 있더라고요 강의에서 사용한 가장위에있는mysql방법말고 다른방법을 사용해도 가능한가요?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
typeorm 0.3버전에 아직 seed기능 안나온걸까요?
$ yarn run seed yarn run v1.22.17 $ ts-node ./node_modules/typeorm-extension/dist/cli/index.js seed -d ./dataSource.ts query: SELECT VERSION() AS `version` typeorm-extension seed Populate the database with an initial data set or generated data by a factory. Options: -h, --help Show help [boolean] -r, --root Path to the data-source / config file. [default: "/Users/teetee6/code_react/sleact/hback"] -c, --connection Name of the connection on which run a query. [deprecated] [default: "default"] -f, --config Name of the file with the data-source configuration. [deprecated] [default: "ormconfig"] -d, --dataSource Name of the file with the data-source. [default: "data-source"] -s, --seed Specify the seed class to run. -v, --version Show version number [boolean] TypeError: connection.createQueryBuilder is not a function at CreateInitialData.run (/Users/teetee6/code_react/sleact/hback/src/database/seeds/create-initial-data.ts:40:8) at /Users/teetee6/code_react/sleact/hback/node_modules/typeorm-extension/src/seeder/module.ts:125:18 at Generator.next (<anonymous>) at fulfilled (/Users/teetee6/code_react/sleact/hback/node_modules/typeorm-extension/dist/seeder/module.js:5:58) error Command failed with exit code 1.4달전 즈음의 공지사항에 typeorm 0.3버전이 Seeding이 아직 호환 안된다고 되있던데아직 안나온 거겟죠,, /database/seeds/create-initial-data.tsConnection이 deprecated되었다던데 제가 못찾은 새로운 seed방법이 나온걸까요 검색해봐도 안나오는데 아니면 없는걸까요export default class CreateInitialData implements Seeder { public async run(factory: Factory, connection: Connection): Promise<any> { await connection .createQueryBuilder() .insert() .into(Workspaces) .values([{ id: 1, name: 'Sleact', url: 'sleact' }]) .execute(); await connection .createQueryBuilder() .insert() .into(Channels) .values([{ id: 1, name: '일반', WorkspaceId: 1, private: false }]) .execute(); } }
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
ts(2657) JSX에는 부모 요소가 하나 있어야 합니다 오류
54분 16초페이지대로 하고 있는데 왜 오류가 나는지 잘 모르겠습니다!간단한 코드인데 어딘가 잘못되었나요?? 아니면 버전이 잘못된건가요.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
jenkins에서 war 파일을 톰캣 배포 과정에서 connection timeout 발생 합니다.
안녕하세요. CI/CD 과정을 들으면서 막히는 부분이 있어서 문의드립니다. 환경OS: Mac OS (Intel)톰캣설치환경: local (9.0.70 버전)Jenkins 설치환경: Docker Container 저의 실습환경은 위와 같습니다.Jenkins에서 war 파일까지 빌드되고 실제 파일이 잘 떨어지는데 톰캣으로 배포하는 과정에서 네트워크 이슈인지 계속 connection timeout이 나와서 제 local ip 문제인지 실제로 브라우저에서 192.x.x.x:8088로 접속해보면 정상적으로 톰캣 화면이 나오긴 합니다.선생님이 말씀해주신대로 톰캣 url에서 제 이더넷 0번 아이피인 192.x.x.x로 기입해줬는데도 ㅠㅠ 계속 발생하네요 질문게시판에 혹시 저같은 케이스가 있는지 찾아보긴했는데 안보여서요
-
해결됨버그헌팅과 시나리오 모의해킹 전문가 되기
locate 명령어가 실행되지 않습니다
/var/lib/plocate/plocate.db: No such file or directorylocate 명령어 실행하면 위 에러 출력됩니다. 혹시 몰라서 mlocate 설치했는데도 동일한 에러가 출력됩니다. 어떻게 해결해야 하나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션(readOnly=true)와 스냅샷의 관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이번 질문 내용을 정리해보니 좀 길어서 미리 좀 죄송합니다.....질문은 1개입니다. 스냅샷과 @Transactional(readOnly=true)의 관계 질문입니다.질문 내용은 다음과 같습니다.스프링 트랜잭션 이해/트랜잭션 옵션 소개 11:04 쯤 보면JPA는 읽기 전용 트랜잭션(@Transactional(readOnly=true))일 경우커밋 시점에 플러시를 호출하지 않는다. ... 추가로 변경이 필요 없으니 변경 감지를 위한 스냅샷 객체도 생성하지 않는다.라고 들었는데 이때 갑자기 스냅샷의 관계에 대해 헷갈려 질문해봅니다.말 그대로MemberService.class 에 있는@Transactinal(readOnly=true)findMemberById()로 find 해왔는데 스냅샷이 생성이 안되면Member findMember = memberService.findMemberById(memberId);findMember.setUsername("변경된 username");의 코드가 동작했을 때 변경이 안된다는 건데그러면 되게 난감한 상황인 것 같아말이 안돼서 다시 생각해보았습니다. 그래서 제가 생각해보고 시도해봤는데,@Transactional(readOnly=true) findMember() 메서드 내에서는스냅샷이 생성이 안되고Member findMember = memberService.findMember(memberId); 에서findMember는 스냅샷 생성이 되어 있는 것이겠다가 결론입니다. 결론을 내보긴 했지만jpa를 배웠을 때find의 경우DB에서 조회해 오는 순간 스냅샷이 생성되어 있는 것으로 이해했어서왜 memberService.findMember() 에서의 트랜잭션이 commit 되고 나서스냅샷이 생성되는지는 모르겠네요.트랜잭션 readOnly=true일 경우 로직을 그렇게 작동하게 해놓은 건가.. 어쨌든.. 제 결론이 맞을까요 ? 아래는 실험해본 코드와생각해서 정리해본 1차캐시 이미지 입니다.find만 했을 경우 혹시 안에 변경감지가 되는지 보려고member.setUsername("1111"); 을 해봤습니다.지금 생각해보니(readOnly=true)라서 flush가 일어나지 않아 update 쿼리가 당연히 안 나가겠지만확인차 해봤다고 봐주시면 될 것 같습니다.// flush() 때문에 update 쿼리가 안 나가는 거면 내부에 스냅샷이 있을 수도 있겠네요. 어쨋든 이 결과 생각한 1차 캐시 및 스냅샷 이미지입니다.트랜잭션 시작, 종료 사이에 스냅샷이 비워져 있는지 확실하진 않아서저게 맞는 지가 핵심 질문입니다. 만약 비워져 있는 게 맞다면,부가적으로 따라오는 의문은 다음과 같습니다.changeMemberUsername() 메서드를 호출했을 때1차 캐시 및 스냅샷은 어떻게 동작하는가 입니다.일반적으로 find를 해온 후데이터를 변경하는 JPA이기 때문에@Transactional(readOnly=true) findMemberById() 로 들고온 결과는반드시 스냅샷이 있어야 된다는 게 제 생각이기 때문에다음과 같이 동작할 거라고 결론을 지어봤습니다.이렇게 스냅샷이 동작하는 게 맞을까요 ? 여기까지 읽어주셔서 정말 정말 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
카프카 sink connector 사용시 에러
안녕하세요. 카프카 관련 수업 듣는 중 오류가 발생하여 질문 드립니다.org.apache.kafka.connect.errors.ConnectException: Tolerance exceeded in error handler\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:206)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execute(RetryWithToleranceOperator.java:132)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertAndTransformRecord(WorkerSinkTask.java:501)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertMessages(WorkerSinkTask.java:478)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:328)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:232)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:201)\n\tat org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:185)\n\tat org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: org.apache.kafka.connect.errors.DataException: Converting byte[] to Kafka Connect data failed due to serialization error: \n\tat org.apache.kafka.connect.json.JsonConverter.toConnectData(JsonConverter.java:366)\n\tat org.apache.kafka.connect.storage.Converter.toConnectData(Converter.java:87)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertValue(WorkerSinkTask.java:545)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.lambda$convertAndTransformRecord$1(WorkerSinkTask.java:501)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndRetry(RetryWithToleranceOperator.java:156)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:190)\n\t... 13 more\nCaused by: org.apache.kafka.common.errors.SerializationException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (':' (code 58)): was expecting comma to separate Object entries\n at [Source: (byte[])\"{\"schema\":{\"type\":\"struct\",\"fields\":[{\"type\":\"int32\",\"optional\":false,\"field\":\"id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"user_id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"pwd\"},{\"type\":\"string\",\"optional\":true,\"field\":\"name\"},{\"type\":\"int64\",\"optional\":true,\"name\":\"org.apache.kafka.connect.data.Timestamp\",\"version\":1,\"field\":\"created_at\"}],\"optional\":false,\"name\":\"users\"},\"payload\":{\"id”:4,”user_id\":\"user4”,”pwd\":\"1234\",\"name\":\"username4”,”created_at\":1671277849000}}\"; line: 1, column: 433]\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (':' (code 58)): was expecting comma to separate Object entries\n at [Source: (byte[])\"{\"schema\":{\"type\":\"struct\",\"fields\":[{\"type\":\"int32\",\"optional\":false,\"field\":\"id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"user_id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"pwd\"},{\"type\":\"string\",\"optional\":true,\"field\":\"name\"},{\"type\":\"int64\",\"optional\":true,\"name\":\"org.apache.kafka.connect.data.Timestamp\",\"version\":1,\"field\":\"created_at\"}],\"optional\":false,\"name\":\"users\"},\"payload\":{\"id”:4,”user_id\":\"user4”,”pwd\":\"1234\",\"name\":\"username4”,”created_at\":1671277849000}}\"; line: 1, column: 433]\n\tat com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1840)\n\tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:712)\n\tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:637)\n\tat com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextFieldName(UTF8StreamJsonParser.java:1011)\n\tat com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:250)\n\tat com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:258)\n\tat com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:68)\n\tat com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:15)\n\tat com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4270)\n\tat com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:2734)\n\tat org.apache.kafka.connect.json.JsonDeserializer.deserialize(JsonDeserializer.java:64)\n\tat org.apache.kafka.connect.json.JsonConverter.toConnectData(JsonConverter.java:364)\n\tat org.apache.kafka.connect.storage.Converter.toConnectData(Converter.java:87)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertValue(WorkerSinkTask.java:545)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.lambda$convertAndTransformRecord$1(WorkerSinkTask.java:501)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndRetry(RetryWithToleranceOperator.java:156)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:190)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execute(RetryWithToleranceOperator.java:132)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertAndTransformRecord(WorkerSinkTask.java:501)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertMessages(WorkerSinkTask.java:478)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:328)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:232)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:201)\n\tat org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:185)\n\tat org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:833)\n발생 에러는 다음과 같은데,터미널에서 직접 produce 하는 도중 발생하였는데 payload 의 데이터가 잘못 전송 되어서 해당 오류가 발생 한 것 같아서 기존 users 테이블에 다시 insert 하는 방식으로 다시 사용했을 때 이전에 실패한 task 가 남아있어서 여전히 my_topic_users 테이블에 insert 되지 않았습니다.중간에 발생한 task 는 삭제하거나 임의로 건너 뛰거나 할 수 없는 것인가요?
-
미해결스프링 핵심 원리 - 기본편
@Autowired에서 에러 발생
package hello.core.scope; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Scope; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; public class SingletonWithPrototypeTest1 { @Test void prototypeFind() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); prototypeBean1.addCount(); assertThat(prototypeBean1.getCount()).isEqualTo(1); PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); prototypeBean2.addCount(); assertThat(prototypeBean2.getCount()).isEqualTo(1); } @Test public void singletonClientUsePrototype() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); ClientBean clientBean1 = ac.getBean(ClientBean.class); int count1 = clientBean1.logic(); assertThat(count1).isEqualTo(1); ClientBean clientBean2 = ac.getBean(ClientBean.class); int count2 = clientBean2.logic(); assertThat(count2).isEqualTo(2); } @Scope("singleton") static class ClientBean { private final PrototypeBean prototypeBean; @Autowired public ClientBean(PrototypeBean prototypeBean) { this.prototypeBean = prototypeBean; } public int logic() { prototypeBean.addCount(); return prototypeBean.getCount(); } } @Scope("prototype") static class PrototypeBean { private int count = 0; public void addCount() { count++; } public int getCount() { return count; } @PostConstruct public void init() { System.out.println("PrototypeBean.init " + this); } @PreDestroy public void destroy() { System.out.println("PrototypeBean.destroy"); } } } 위 코드에서 @Autowired 부분에서 Error:(43, 10) Autowired members must be defined in valid Spring bean (@Component|@Service|...)에러가 발생합니다. 스프링 빈으로 등록되어 있지 않아서 발생하는 오류라고 생각됩니다. 하지만 강사님 코드에서는 발생하지 않아서 제가 뭘 빠뜨린 것 같은데 그게 무엇인지 모르겠습니다.테스트는 돌려보면 잘 작동하고 통과가 됩니다.
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
제가 RW락을 제대로 이해한 건지 질문드립니다.
write-lock은 락을 건 스레드를 제외한 모든 스레드가 블로킹된다.write-lock 후에 read-lock을 잡는것은 허용된다.그 반대는 불가능하다.read-lock상태에서 값의 변경은 없어야 한다.제가 제대로 이해한 것인지 모르겠네요..ㅎㅎ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
eslint.....vscode..... 연동?
강의보고 따라하는데 설정은 알아서 하시라하셔서...구글링 해도 버전도 다르고 환경도 모든게 여기 따라하는거랑 달라서 어떻게 해야 될지 모르겠네요...코드 예뻐지게 하는 기능이라 하셨는데굳이 안 예뻐져도 진도 나가는데 문제는 없죠??우선 강의 내용 따라하고 vscode 마켓에서 eslint 설치만 한 상태임다
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
AWS서버 대체
AWS 서버를 사용하지 않고,Map을 띄울 수 있는 웹페이지 구현 방법이 있을까요? Map을 사용하려면 서버 구축이 필요한거 같더라고요..AWS 서버를 이용하지 않으려는 이유는 1년 후에도 사용하려는데 비용이 부담되어서 입니다..
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
next.js를 설치하면 자동적으로 @next/font가 index.js에 입력됩니다.
강의 41분 53초yarn dev로 로컬호스트 들어가니까 이런 오류가 뜨네요.해석해보니 @next/font는 next.js 13버전에만 쓸 수 있다 하는데next.js 13버전은 리액트 18에서만 쓸수 있다고 뜹니다. 그리고 next.js 설치 진행할때 타입스크립트와 eslint 설치하냐고 나오던데 타입스크립트 yes 하면 index.js가 타입스크립트로 나와서 다시 깔았습니다...next.js 설치하면 index.js에 이런 코드가 떠요.어떻게 해야되나요? 궁금합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
store.dispatch 오류
store.dispatch 오류const initialState ={ user:{ isLoggedIn: false, user: null, signUpData: {}, loginData: {}, }, post: { mainPosts: [], } }; export const loginAction = (data) =>{ return { type: 'LOG_IN', data, } } export const logoutAction = () =>{ return { type: 'LOG_OUT', data, } } //async action creator //action Createor const CHANGE_NICKNAME = { type: 'CHANGE_NICKNAME', data: 'boogicho', } // const initialState = { // user: { // isLoggedIn: false, // user: null, // signUpData: {}, // loginData: {}, // }, // post: { // mainPosts: [], // } // }; //action Createor const changeNickname = (data) => { return { type: 'CHANGE_NICKNAME', data, } }; changeNickname('boogicho'); //{ // type: 'ChANGE_NICKNAME', // data: 'boogicho', //} // store.dispatch(changeNickname('mighty tak')) // (이전상태, 액션) => 다음상태 const rootReducer =(state, initialState, action)=>{ switch (action.type){ case 'LOG_IN': return { ... state, user: { ...state.user, isLoggedIn: ture, user: action.data, }, }; case 'LOG_OUT': return { ... state, user: { ...state.user, isLoggedIn: false, user: null, }, }; } }; export default rootReducer; 수정후 오류 page: '/' } 60 | //} 61 | // > 62 | store.dispatch(changeNickname('mighty tak')) | ^ 63 | 64 | // (이전상태, 액션) => 다음상태 65 | const rootReducer =(state, initialState, action)=>{ 터미넝essfully in 74 ms (221 modules) ReferenceError: store is not defined at eval (webpack-internal:///./reducers/index.js:60:1) at ./reducers/index.js (D:\react-zero\front\.next\server\pages\_app.js:33:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./store/configureStore.js:9:67) at ./store/configureStore.js (D:\react-zero\front\.next\server\pages\_app.js:44:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./pages/_app.js:17:79) at ./pages/_app.js (D:\react-zero\front\.next\server\pages\_app.js:22:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at __webpack_exec__ (D:\react-zero\front\.next\server\pages\_app.js:130:39) ReferenceError: store is not defined at eval (webpack-internal:///./reducers/index.js:60:1) at ./reducers/index.js (D:\react-zero\front\.next\server\pages\_app.js:33:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./store/configureStore.js:9:67) at ./store/configureStore.js (D:\react-zero\front\.next\server\pages\_app.js:44:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./pages/_app.js:17:79) at ./pages/_app.js (D:\react-zero\front\.next\server\pages\_app.js:22:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at __webpack_exec__ (D:\react-zero\front\.next\server\pages\_app.js:130:39) warn - Fast Refresh had to perform a full reload. Read more: https://nextjs.org/docs/messages/fast-refresh-reload wait - compiling / (client and server)... error - ./node_modules/bunyan/lib/bunyan.js:77:0 Module not found: Can't resolve 'fs' Import trace for requested module: ./node_modules/redex/lib/RedexGlobal.js ./node_modules/redex/index.js ./components/AppLayout.js ./pages/index.js https://nextjs.org/docs/messages/module-not-found error - reducers\index.js (62:4) @ store error - ReferenceError: store is not defined at eval (webpack-internal:///./reducers/index.js:60:1) at ./reducers/index.js (D:\react-zero\front\.next\server\pages\_app.js:33:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./store/configureStore.js:9:67) at ./store/configureStore.js (D:\react-zero\front\.next\server\pages\_app.js:44:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./pages/_app.js:17:79) at ./pages/_app.js (D:\react-zero\front\.next\server\pages\_app.js:22:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at __webpack_exec__ (D:\react-zero\front\.next\server\pages\_app.js:130:39) { page: '/' } 60 | //} 61 | // > 62 | store.dispatch(changeNickname('mighty tak')) | ^ page: '/' } 60 | //} 61 | // > 62 | store.dispatch(changeNickname('mighty tak')) | ^ 63 | 64 | // (이전상태, 액션) => 다음상태 65 | const rootReducer =(state, initialState, action)=>{ store.dispatch부분은 어떻게 하죱?
-
해결됨핵심만 쉽게, 모두의 SQL 비법 레시피
Live SQL 에 My Tutorials 추가 방법
데이터셰프님이 강의에서 알려주시는 Live SQL 에 My Tutorials 추가 어떻게 하나요? .. 강의에서 따로 알려주시지 않는 것 같아서 질문 드립니다 !