inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

스키마 호환성 질문

미해결

카프카 완벽 가이드 - 커넥트(Connect) 편

안녕하세요 https://www.inflearn.com/questions/1207899/%EC%8A%A4%ED%82%A4%EB%A7%88-%ED%98%B8%ED%99%98%EC%84%B1-%EC%A7%88%EB%AC%B8%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4 이 질문에 대한 추가 질문이 있습니다. BACKWARD에 대해 지원하는 신규 스키마 변경에서 기존 필드 삭제, 기본 값 가진 신규 필드 추가 이 부분은 sink쪽 스키마에서의 변경에 대한 내용인 것은 맞는건가요? 예를 들어 스키마 호환성 체크에서 새로 추가되는 컬럼이 기본 값을 가지고 있지 않으면 하위 호환성 오류다. 라는 문장이 있다면 "sink 쪽에서" 새로 추가되는 컬럼이 기본 값을 가지고 있지 않으면 하위 호환성 오류다. 라고 해석하는 것이 맞는지 질문드립니다.

  • kafka
  • 데이터-엔지니어링
이무 댓글 1 좋아요 0 조회수 151

black 설치

해결됨

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

안녕하세요 00-06 black 설치과정에 질문입니다. 라이브러리에 추가하고 black 패키지 추가하려고 하니깐 활성화가 안되어있습니다.. 어떻게 조치해야 될까요?

  • react
  • python
  • django
  • web-api
  • htmx
별다방 댓글 1 좋아요 1 조회수 240

업로드가 되지 않습니다.

미해결

워드프레스 자동 포스팅 프로그램 개발 강의 (ChatGPT API)

안녕하세요, 수강중인 학생입니다. 3.upload.py 부터 코드가 제대로 동작하지 않습니다. raise RemoteDisconnected("Remote end closed connection without" http.client.RemoteDisconnected: Remote end closed connection without response 이런 내용으로 인해 글이 올라가지 않는데 원인이 무엇일까요?

  • python
  • wordpress
  • openai
  • xmlrpcclient
  • chatgpt
조우진 댓글 3 좋아요 0 조회수 403

14분 50초 일대다 페치조인 질문

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); System.out.println("zzzzzzzzzzzzzzzzzzzzzzzzzzzz"); //비영속 try{ Team teamA = new Team(); teamA.setName("teamA"); em.persist(teamA); Team teamB = new Team(); teamB.setName("teamB"); em.persist(teamB); Member member1 = new Member(); member1.setUsername("member1"); member1.setTeam(teamA); em.persist(member1); Member member2 = new Member(); member2.setUsername("member2"); member2.setTeam(teamA); em.persist(member2); Member member3 = new Member(); member3.setUsername("member3"); member3.setTeam(teamB); em.persist(member3); Member member4 = new Member(); member4.setUsername("member4"); member4.setTeam(null); em.persist(member4); em.flush(); em.clear(); String query ="select t From Team t join fetch t.members"; List<Team> result = em.createQuery(query, Team.class).getResultList(); for (Team team : result) { System.out.println("team= " + team.getName() + "|members=" + team.getMembers().size()); } tx.commit(); } catch (Exception e){ tx.rollback(); e.printStackTrace(); }finally { em.close(); } emf.close(); } 이 코드를 실행시켰더니 14분 50초에 나오는 3줄이 나오는 것이 아닌 team= teamA|members=2 team= teamB|members=1 이렇게 나오는데 혹시 어떤 이유에서 그런것인지 궁금합니다.

  • java
  • jpa
서정원 댓글 2 좋아요 3 조회수 663

consumer 병렬처리를 알고 싶습니다.

미해결

카프카 완벽 가이드 - 코어편

안녕하세요. 해당 수업을 잘듣고 있습니다. 혹시 consumer에 대한 병렬처리방법에 대한 강의가 있을까요? 참고할만한 강의가 있을까요? 감사합니다.

  • kafka
  • 데이터-엔지니어링
  • 병렬처리
만년과장 댓글 1 좋아요 0 조회수 243

schema registry 포맷 지원

미해결

카프카 완벽 가이드 - 커넥트(Connect) 편

안녕하세요, schema registry를 사용할 때 avro를 사용해야한다고 말씀해주셨는데요, Json 포맷은 지원하지 않는건가요? 물론 avro의 경우 필드 정보가 payload에 빠지고 바이너리 형태이니 전송이 가장 빠르고 최적화된 포맷이라는 것은 알지만, Json 포맷도 설정을 통해 스키마를 지원할 수 있도록 할 수 있는데 schema registry의 지원 대상에서 제외되는 것인지 궁금합니다.

  • kafka
  • 데이터-엔지니어링
이무 댓글 1 좋아요 0 조회수 205

데이터가 많은 브로커에서는 ISR이 유지되기 어렵나요?

미해결

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

replication lag이라는게 존재하면, 데이터가 리더 파티션에 들어올 때 마다 약간의 지연 시간이 팔로워에서 발생한다는 건데, 그말인 즉슨 ISR이 거의 유지될 수 없다처럼 느껴져서요.. 이부분이 궁금합니다.

  • kafka
  • 데이터-엔지니어링
카데 댓글 2 좋아요 0 조회수 282

import pygame에서 계속 오류가 발생해요

미해결

파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)

cmd에서 import pygame했을 때는 오류없이 제대로 됐는데 Vs code에서 import pygame을 하면 이런 오류가 계속해서 발생합니다. 어떻게 해야되나요? Exception has occurred: ModuleNotFoundError No module named 'pygame' File " C:\Users\User\Desktop\PythonWorkspace\pygame_basic\1_create_ frame.py ", line 1, in <module> import pygame ModuleNotFoundError: No module named 'pygame'

  • python
  • pygame
  • gui
서민서 댓글 2 좋아요 0 조회수 3718

컨슈머 스태틱 그룹 멤버십

해결됨

카프카 완벽 가이드 - 코어편

안녕하세요, 스태틱 그룹 멤버십 관련 질문있습니다! 만약 group instance id를 동일 counsumer group에 속한 counsumer 중에 일부에만 할당하는 경우는 어떻게 되나요? 이 경우에도 스태틱 그룹 멤버십이 적용되는 건가요?

  • kafka
  • 데이터-엔지니어링
이무 댓글 1 좋아요 0 조회수 165

주문 조회V3 에서 쿼리가 4개 나온다고 하는데, 2개만 나옵니다.

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. @GetMapping("/api/v3/orders") public List<OrderDto> orderV3() { List<Order> orders = orderRepository.findAllWithItem(); for (Order order: orders) { System.out.println("order ref = " + order + " id = " + order.getId()); } List<OrderDto> result = orders.stream() .map(o -> new OrderDto(o)) .collect(Collectors.toList()); return result; } ... public List<Order> findAllWithItem() { return entityManager.createQuery( "select o from Order o" + " join fetch o.member m" + " join fetch o.delivery d" + " join fetch o.orderItems oi" + " join fetch oi.item i", Order.class) .getResultList(); } 이렇게 한 다음 v3 에게 요청을 넣었습니다. 그 결과 select o1_0.order_id, d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status, m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.username, o1_0.order_date, oi1_0.order_id, oi1_0.order_item_id, oi1_0.count, i1_0.item_id, i1_0.dtype, i1_0.name, i1_0.price, i1_0.stock_quantity, i1_0.artist, i1_0.etc, i1_0.author, i1_0.isbn, i1_0.actor, i1_0.director, oi1_0.order_price, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id join order_item oi1_0 on o1_0.order_id=oi1_0.order_id join item i1_0 on i1_0.item_id=oi1_0.item_id order ref = jpabook.jpashop.domain.Order@801a84d id = 1 order ref = jpabook.jpashop.domain.Order@7be83ead id = 2 다음과 같은 SQL 쿼리를 보냈구요. 그런데 4개가 아니라 2개라서 문의를 드립니다. 그런데 H2 DB에서 해당 쿼리를 입력하면 4개가 잘나옵니다. 또한 포스트맨으로 받은 요청도 2개가 출력됩니다. [ { "orderId": 1, "name": "userA", "orderDate": "2024-03-18T23:29:35.545094", "orderStatus": "ORDER", "address": { "city": "서울", "street": "1", "zipcode": "11111" }, "orderItems": [ { "itemName": "JPA1 Book", "orderPrice": 10000, "count": 1 }, { "itemName": "JPA2 Book", "orderPrice": 20000, "count": 2 } ] }, { "orderId": 2, "name": "userB", "orderDate": "2024-03-18T23:29:35.555094", "orderStatus": "ORDER", "address": { "city": "부산", "street": "2", "zipcode": "22222" }, "orderItems": [ { "itemName": "Spring1 Book", "orderPrice": 20000, "count": 3 }, { "itemName": "Spring2 Book", "orderPrice": 40000, "count": 2 } ] } ] 어떠한 것이 잘못되었는지 궁금합니다.

  • java
  • spring
  • spring-boot
  • jpa
ym Kim 댓글 1 좋아요 5 조회수 1297

retention.byte에 대해 질문있습니다.

미해결

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

안녕하세요. 카프카가 데이터를 삭제할 때 세그먼트, 즉 파일 단위로 삭제한다고 말씀해주셨습니다. retention.ms 는 active 세그먼트가 아닌 세그먼트가 해당 기간을 지났을 때 삭제한다는 것이 명료해서 이해가 갔는데, retention.byte는 조금 헷갈립니다. 세그먼트의 기본 크기가 1GB로 알고 있습니다. 만약 retention.ms 를 사용하지 않는다고 가정하면 (매우 큰값이라고 가정한다면) 세그먼트 삭제는 retention.byte에 의해 좌우될텐데요, retention.byte를 1GB보다 크게 주는 경우, 세그먼트는 영영 삭제되지 않는 것일까요?

  • kafka
  • 데이터-엔지니어링
카데 댓글 2 좋아요 0 조회수 281

AddressEntity delete

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 후반부에서 member의 addressHistory에 AddressEntity를 추가하는 것까지 알려주셨는데 member의 addressHistory에서 AddressEntity 값 하나를 삭제하고 싶을때 이런 방식으로 하는게 맞는지 궁금합니다. equals와 hashCode도 잘 고친건지도 궁금합니다. //Address의 equals, hashCode @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Address address = (Address) o; return Objects.equals(getCity(), address.getCity()) && Objects.equals(getStreet(), address.getStreet()) && Objects.equals(getZipcode(), address.getZipcode()); } @Override public int hashCode() { return Objects.hash(getCity(), getStreet(), getZipcode()); } //AddressEntity의 equals, hashCode @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; AddressEntity that = (AddressEntity) o; return Objects.equals(getId(), that.getId()) || Objects.equals(getAddress(), that.getAddress()); // } @Override public int hashCode() { return Objects.hash(getId(), getAddress().getCity(), getAddress().getStreet(), getAddress().getZipcode()); // } Member findMember = em.find(Member.class, member.getId()); List<AddressEntity> addressHistory = findMember.getAddressHistory(); addressHistory.remove(new AddressEntity("city1", "street", "zipcode"));

  • java
  • jpa
Kang 댓글 1 좋아요 0 조회수 242

HTML코드 및 강의 중간자료들

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

우선 강의중에 보여주셨던 HTML코드들에 대해서 행방을 알수가 없고 키를 강의마다 알려주신다는데 언제 알려주시는지 모르겠습니다. 그래서 완성되어있던 파일에 있는 HTML파일들을 끌어다가 다시 완성시켰는데 코드자체에 CSS,Js가 적용되지 않고 에러가 뜨기도 합니다. Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "!hasNotification" (template: "fragments.html" - line 129, col 24) 혹시 최신화된 코드나 강의 진행도에 따른 코드 접근 방법이 있을까요...? 물론 제가 옛날 강의를 듣는것이다 보니 감수해야 하는 부분이겠지만 하나하나 알아가다보니 강의를 듣는 시간도 늘어지고 지치기 시작하는거 같습니다 시간이 지나면서 바뀌는 부분에 대해서 조금이라도 안내를 해주시거나, 주의할 부분이라던가 아니면 참고할만한 내용들을 추가해주시면 감사하겠습니다.

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
최정식 댓글 3 좋아요 0 조회수 710

스프링 프로젝트 첫 실행부터 계속 오류가 나요 ㅠㅠ 제발 도와주세요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요 제목 그대로 start.spring.io 에서 강의 내용 따라 그대로 스프링 프로젝트를 생성하고 실행하여 첫 빌드를 하는데 계속 오류가 납니다.. 이틀 동안 너무 스트레스 받다가 도저히 혼자 해결이 안 되어 질문드려요. 제발 도와주십쇼 ㅠㅠ 1번 오류 세부 내용 Download https://services.gradle.org/distributions/gradle-8.6-bin.zip, took 23 s 799 ms Starting Gradle Daemon... Gradle Daemon started in 1 s 867 ms FAILURE: Build failed with an exception. * What went wrong: Multiple build operations failed. Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc-9b249c29-1a91-4470-b675-465ff91418e8) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc) Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\7b013786ef742a9c8c87e3aaf3d90280-d74ea8fc-73d7-4578-9c43-b8cd0558405c) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\7b013786ef742a9c8c87e3aaf3d90280) Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\1cb4a041ffa70c8710c09b3490f08d27-e5e2c8d8-9b10-4d94-aa86-5ed8eafd0641) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\1cb4a041ffa70c8710c09b3490f08d27) Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\09e5b33217636222c215e9ce4b40ac0d-888af752-9ab7-43e9-bc4d-c9089f87eee4) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\09e5b33217636222c215e9ce4b40ac0d) > Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc-9b249c29-1a91-4470-b675-465ff91418e8) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc) > Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\7b013786ef742a9c8c87e3aaf3d90280-d74ea8fc-73d7-4578-9c43-b8cd0558405c) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\7b013786ef742a9c8c87e3aaf3d90280) > Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\1cb4a041ffa70c8710c09b3490f08d27-e5e2c8d8-9b10-4d94-aa86-5ed8eafd0641) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\1cb4a041ffa70c8710c09b3490f08d27) > Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\09e5b33217636222c215e9ce4b40ac0d-888af752-9ab7-43e9-bc4d-c9089f87eee4) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\09e5b33217636222c215e9ce4b40ac0d) * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. CONFIGURE FAILED in 14s 2번 오류 세부 내용 C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc-9b249c29-1a91-4470-b675-465ff91418e8 -> C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc 3번 오류 세부 내용 Multiple build operations failed. Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc-9b249c29-1a91-4470-b675-465ff91418e8) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc) Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\7b013786ef742a9c8c87e3aaf3d90280-d74ea8fc-73d7-4578-9c43-b8cd0558405c) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\7b013786ef742a9c8c87e3aaf3d90280) Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\1cb4a041ffa70c8710c09b3490f08d27-e5e2c8d8-9b10-4d94-aa86-5ed8eafd0641) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\1cb4a041ffa70c8710c09b3490f08d27) Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\09e5b33217636222c215e9ce4b40ac0d-888af752-9ab7-43e9-bc4d-c9089f87eee4) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\09e5b33217636222c215e9ce4b40ac0d) > Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc-9b249c29-1a91-4470-b675-465ff91418e8) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\0a561266a2b57efc5da5664bb0d7e3fc) > Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\7b013786ef742a9c8c87e3aaf3d90280-d74ea8fc-73d7-4578-9c43-b8cd0558405c) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\7b013786ef742a9c8c87e3aaf3d90280) > Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\1cb4a041ffa70c8710c09b3490f08d27-e5e2c8d8-9b10-4d94-aa86-5ed8eafd0641) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\1cb4a041ffa70c8710c09b3490f08d27) > Could not move temporary workspace (C:\Users\tjmg7\.gradle\caches\transforms-4\09e5b33217636222c215e9ce4b40ac0d-888af752-9ab7-43e9-bc4d-c9089f87eee4) to immutable location (C:\Users\tjmg7\.gradle\caches\transforms-4\09e5b33217636222c215e9ce4b40ac0d) * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. 세팅 상태 start.spring.io 에서 자바 17 버전으로 프로젝트 생성했었고요. 그에 맞춰서 인텔리제이 설정도 다 했습니다. 지금 정말 이해가 되지 않는 건 제 데스크톱과 노트북의 환경 세팅을 완전 똑같이 해놨는데 데스크톱에서는 프로젝트 실행이 잘 되는데 노트북에서만 이 에러가 발생한다는 겁니다.. ㅠㅠ 제 데스크톱과 노트북의 환경 차이는 아무리 생각해봐도 데스크톱은 윈도우 10이고 노트북은 윈도우 11이라는 것밖에 생각이 나질 않습니다. .gradle 안에 캐시 폴더 지웠다가 프로젝트 다시 실행도 해봤고요.. .gradle 폴더 자체를 지웠다가 다시 실행도 해봤습니다. 인텔리제이도 여러 번 지웠다가 재설치하고 실행해봤고요. 해결 방법 좀 간곡히 부탁드립니다.. 스프링 공부하고 싶습니다 ㅠㅠ

  • java
  • spring
  • mvc
  • spring-boot
  • gradle
김민진 댓글 3 좋아요 0 조회수 5171

기본환경설정(2-1) 강의에서, Ctrl+F5 눌러도 Hello python!일 출력되지 않습니다.

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

안녕하세요. 이전강의들을 포함해서, "파이썬 기본 환경 설정(2-1) : 개발 환경 설정(Vscode) - Windows" 강의 내용을 그대로 따라서 했습니다. 그런데 해당 강의 동영상의 25:33에서처럼 Ctrl+F5 단축키를 누르거나 Run 메뉴에서 Run Without Debugging을 직접 선택해도, 강의에서처럼 Hello python!이 출력되지 않고 이렇게 Select debugger라고 나옵니다. 이때 무엇을 선택해야 하나요? 어떻게 하면 강사선생님처럼 Run Without Debugging을 실행할 수 있나요? 참고로 오른쪽 상단의 오른쪽 방향 세모 아이콘을 클릭하면 문제없이 실행하고 Hello python!이 출력됩니다. (저는 단축키 설정에 대해서 질문을 드린 게 아닙니다.)

  • python
defoogle 댓글 2 좋아요 0 조회수 619

자바 메모리 구조와 CPU에 대해 질문이 있습니다.

해결됨

김영한의 실전 자바 - 기본편

보통 메모리 구조라고 하면 코드, 데이터, 힙, 스택 영역으로 알고 있습니다. 근데 실행 프로그램이 자바 코드로 이루어져 있다면 메모리 구조는 메서드, 스택, 힙 영역으로 이루어지는건가요? 메서드 영역에 클래스 즉 코드들이 올라간다 했는데 그러면 CPU가 메서드 영역에 있는 자바 코드들을 하나씩 레지스터로 fetch해서 decode, execution 하는건가요? CPU가 클래스 코드들을 해석하면서 메서드 호출일 경우 스택 영역에 스택 프레임을 생성하고 인스턴스 생성일 경우 힙 영역에 인스턴스를 생성하는 건가요? 힙 영역에 인스턴스가 생성된다고 했는데 그러면 필드 코드는 여전히 메서드 영역에 존재하지만 인스턴스가 가지고 있는 필드 값들은 힙 영역에 존재하는 건가요? 감사합니다.

  • java
  • 객체지향
감바스 댓글 1 좋아요 1 조회수 433

분산 DB 에서 비관적 락을 통한 동시성 제어

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요. 분산락을 언제 쓰는게 좋을지 고민하다가 몇 가지 궁금증이 생겨 질문드립니다. 분산 DB 환경이 무엇을 의미하는지? 흔히 분산 DB 환경에서 낙관적, 비관적 락으로 동시성 문제를 해결하기 힘들다고 얘기하더라고요. 여기서 말하는 분산 DB 라는 것이 샤딩에 의해 여러 DB 서버가 있는 것인지, 동일한 데이터를 저장하는 DB 서버가 여러 대 있는 환경을 의미하는 것인지 모르겠습니다. 예를 들어, Ticket 이란 데이터를 저장하는데 동일한 ticket 데이터가 DB server 1, DB server 2 에 저장되어 있는 환경일까요?? 만약 분산 DB 가 샤딩인 경우 비관적 락으로도 동시성 이슈를 해결할 수 있을 것 같은데 맞을까요? 아래 그림처럼 ticketId = 1 인 티켓을 예매하기 위한 요청이 동시에 올 경우 입니다. 처음 x-lock 을 잡은 요청이 끝나야 뒤늦게 온 요청이 해당 티켓의 잔여 수량을 확인하고 예매 하기 때문에 샤딩으로 인한 분산 DB 에서는 비관적 락으로 동시성 이슈를 해결할 수 있을 것 같습니다. 동일한 Ticket 데이터가 여러 DB 서버에 중복되어 저장된 분산 DB 환경에서는 분산락을 사용해야 될 것 같습니다. 그러나, 샤딩은 동일한 Ticket 데이터에 접근하기 위해서는 동일한 서버로 접근하기 때문에 비관적 락으로도 충분히 해결 가능할 것 같아서 질문 드립니다!

  • java
  • spring
  • 동시성
차영호 댓글 2 좋아요 0 조회수 744

값을 안넘겨주면 똑같이 저도 에러가 나긴 하는데 왜 콘솔창에는 warn이 안뜰까요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의에서는 warn이 뜨고 name이 없다라는 콘솔문구가 뜨는데 저는 창을 들어가보면 에러는 똑같이 나는데 warn이 안뜨네여..

  • java
  • spring
  • mvc
  • spring-boot
댓글 2 좋아요 1 조회수 333

Mysql bin log 질문있습니다

미해결

카프카 완벽 가이드 - 커넥트(Connect) 편

안녕하세요, postgresql의 logical replication에서는 publication이라고하는 모듈을 통해 복제 대상 테이블을 정해놓는데요 이렇게 되면 WAL에는 대상 테이블의 변경 내용만 담기는 건가요? 그리고 mysql에는 publication과 같은 모듈이 없는 것 같은데 bin 로그에는 그럼 모든 테이블의 트랜잭션 로그가 담기는 건지 궁금합니다.

  • kafka
  • 데이터-엔지니어링
이무 댓글 1 좋아요 0 조회수 155

디비지움 소스 테이블 스키마 변경 질문

미해결

카프카 완벽 가이드 - 커넥트(Connect) 편

안녕하세요, 디비지움 소스 테이블 스키마 변경에 따른 자동 스키마 반영에 대한 질문이 있습니다. 소스 테이블에 변경이 있을 때 예를 들어 varchar 타입 컬럼에 default를 적용하는 변경을 수행하는 경우 sink 쪽에서 오류가 발생하는 것으로 알고 있습니다. 그런데 만약 디비지움에 스키마 레지스트리가 적용되어 있고, 스키마 호환성을 체크한다고 한다면 디비지움의 소스 테이블 변경 규칙은 무시될수도 있으며, 스키마 레지스트리 호환성에 따라 동작하게 되는 것인가요?

  • kafka
  • 데이터-엔지니어링
이무 댓글 1 좋아요 0 조회수 256

인기 태그

인프런 TOP Writers

주간 인기글