inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

포인터 관련 질문

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.

  • python
  • java
  • c
  • 정보처리기사
댓글 2 좋아요 0 조회수 79

업캐스팅

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

그림처럼 코드작성했을때 c.getX()는 화살표로 표시한것처럼 Base의 getX() 실행하는게 맞나요?

  • python
  • java
  • c
  • 정보처리기사
sjkim 댓글 2 좋아요 0 조회수 101

2024년 3회 기출문제 1:00:09 C언어 포인터 문제

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요. 천천히 설명해주셔서 이해는 했는데, 조금 헷갈리는 부분이 있어서요. func에서 node = node->next->next를 보면 설명해주신대로면 그냥 &n2가 되고 반복문이 끝나는 거로 보이는데요. 제가 이해하기로는 지금 node는 &n1인 상태니까 &n1 = &n1->&n3(next)->&n2(next)니까요. 설명해주셨던대로 a=b라는 건 b의 값을 a로 넣는거기때문에. &n1의 값에 &n2가 덮어씌워진다고 생각을 했는데. 이게 포인터기 때문에 값이 덮어씌워지는게 아니라 node의 값만 변경되는건지.. 잘 이해가 안가서 설명좀 부탁드립니다.

  • python
  • java
  • c
  • 정보처리기사
정철 댓글 2 좋아요 0 조회수 143

24년 2회 기술 13:45

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

parr[0]: "주소를 담아야지" -> 이해했음 parr[1]: "주소를 담아야지" -> 이해했음 parr[1][1] -> 얘는 왜 갑자기 parr[1] 주소에 있는 값을 가지고 오나요? *(parr[1][1]) = 8 parr[1][1] = 8 위 두 식은 같은건가요? VS에서 찍어보면되는데 환경 세팅이 안 되어있어서 여쭤봅니다.

  • python
  • java
  • c
  • 정보처리기사
mark Kim 댓글 2 좋아요 0 조회수 66

Java 연산자 활용 질문 드립니다

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요 영상 내에 있는 커뮤니티가 보이지 않아서 그냥 글 남깁니다ㅠ 기출 2023년 2회 코드 해석 문제 11:05초 괄호 안에 보고 있는 것을 넣어 동전 개수 출력 하는 문제인데 출력 값 중 최소량의 코드가 정답이잖아요 m/1000 m%1000/500 m%500/100 m%100/10 이 출력값인데 최소한의 코드니 m/1000 a/500 b/100 c/10 은 안되는걸까요?

  • python
  • java
  • c
양불닭띠 댓글 2 좋아요 0 조회수 65

&&, || 연산자 우선순위 질문

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

&&, ||에서 &&이 더 우선순위가 높아서 먼저 계산된다고 하셨는데 실제 계산할때는 sql에서만 그렇게 된다고 보면 되나요? 코드에서는 앞에 ||가 있고 뒤에 &&가 있을때, 앞에 ||조건이 참이면 뒤에 &&조건은 실행되지 않는거 같아서요. ||조건이 거짓이어도 ||조건이 먼저 계산되서 질문 남깁니다.

  • python
  • java
  • c
  • 정보처리기사
신정명 댓글 2 좋아요 0 조회수 144

5강 IntelliJ 구성변수 설정 부분 끊기는데 알려주세요

해결됨

[말 한마디로 뚝딱!] AI와 함께 나만의 수익화 웹사이트를 만드는 법

깃 설치 화면과 병행으로 나오니 짤리네요. 2:11 ~ 2:16 지나면서 메인클래스 부분이 모듈없음 에서 cp JH로 바뀌었는데 뭘 선택하면 되는지요?

  • HTML/CSS
  • java
  • mysql
  • php
0213kyungsoo 댓글 2 좋아요 0 조회수 130

18:54부분에 swap 했을 떄

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

18:54부분에 swap 했을 때 return 값이 어떻게 5가 나오는지 과정이 궁금합니다ㅠ 어디 case에 속하는지도 모르겠구요ㅠ

  • python
  • java
  • c
  • 정보처리기사
정순탄 댓글 2 좋아요 0 조회수 94

24년 1회 C언어 기출 16:24 부분 질문

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

16:24부분에서 2번재 result가 p[i]에 t, i, s 넣어서 값을 구하는 것 까지 했는데 그 3가지 값을 구해서 정답으로 도출되는 과정까지가 이해가 안됩니다. 각 값이 나오면 뭐 더하는 건지, 아니면 각각 ascii 코드로 바꾸는 건지요...?

  • python
  • java
  • c
  • 정보처리기사
정순탄 댓글 2 좋아요 0 조회수 99

function 형식

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

let time=10 setInterval(function(){console.log(time)},1000) 강의 중 setInterval에 익명함수를 집어넣는다고 하셨는데 let time=10 setInterval(let aa=function(){console.log(time)},1000) 이 코드가 맞지 않나요? 그니까 먼저 익명함수 이름부터 선언해야하지 않나요? 그리고 여기서도 위에 함수는 change라고 이름을 붙여줬는데 밑에 함수는 이름도 없이 쓰는것이 왜 그런거인지 궁금합니다!

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
H Hun 댓글 1 좋아요 0 조회수 71

range(1,1)

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

range(1,1)이면, 1부터 1 바로 앞 숫자까지 라고 생각되는데, 그럼 1부터 0까지 니까 하나도 안돌아가는거 아닌가요?

  • python
  • java
  • c
  • 정보처리기사
이준우 댓글 2 좋아요 0 조회수 139

판매, 구매 목록등 판매자, 구매자 데이터를 불러오지 못합니다.

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

마이페이지에서 구매내역에서 seller, buyer의 _id, name 등 가져오지 못합니다. query { fetchPointTransactionsOfBuying(page: 1, search: "") { amount status statusDetail travelproduct { name seller { name } } } } graphQl 페이지에서 직접 header에 토큰 넣어도 불러오지 못하는데 어떻게 피그마에 있는 구매내역의 판매자 값을 불러올 수 있을까요? seller, buyer를 포함하면 API 요청은 되는데 에러가 떠 데이터 사용하지 못하고 제외하고 요청을 하면 정상적으로 사용할 수 있습니다.

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
초무 댓글 2 좋아요 0 조회수 80

무한 depth 구현 설계에서 질문이 있습니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 00a0z의 prefix(parentPath)를 가지고 모든 자손 댓글에서, 가장 큰 path(descendantsTopPath)를 찾는 과정인데요. 현재 childrenTopPath가 00a0z 00002 이지만 해당 댓글에 대댓글이 없고 00a0z 00001의 대댓글만 있는 상황에서는 00a0z 00002 자기 자신이 childrenTopPath 이자 descendantsTopPath가 되는걸까요? 00a0z 00002 와 00a0z 00001 00000 을 비교했을때 앞의 것이 더 큰 path라고 판단하면 되는걸까요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
fb1014 댓글 2 좋아요 0 조회수 240

django-component==0.139 실행 시 오류

해결됨

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

질문을 온전히 이해할 수 있도록, 모든 맥락을 전달해주세요. 질문은 질문자가 번거로워야 보다 좋은 답변을 얻으실 수 있습니다. 시행착오를 알려주시면 곧바로 원하는 문제에 집중할 수 있습니다. 오류 메시지는 일부만 알려주시기보다 전체 오류 메시지를 캡처해서 주시면, 오류 파악에 도움이 됩니다. 당신의 파이썬/장고 페이스메이커가 되겠습니다. ;-) 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. runserver 실행 시 하기의 오류가 발생합니다. Exception ignored in : <function Componentregistry.__del__ at 0x2af53d0bf9a0> Traceback (most recent call last): File " .venv/lib/python3.10/site-packages/django_components/component_register.py", line 267, in __del__ AttributeError: 'NoneType' object has no attribute 'on_registry_deleted' Watching for file changes with StatReloader #... 일단 겉으로 보기에는 문제 없이 작동은 합니다. settings.py는 django-components 설치 - 파이썬사랑방 튜토리얼 ( pyhub.kr ) 과 documentation을 보고 수정하였는데 위와 같은 문제가 발생하는 이유를 모르겠어서 혹시 아실까 싶어 질문드립니다. from email.utils import getaddresses import os, sys from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent from django.urls import reverse_lazy from environ import Env env = Env() ENV_PATH = Path(env.str("ENV_PATH", default=str(BASE_DIR / ".env"))) if ENV_PATH.exists(): with ENV_PATH.open(encoding="utf-8") as f: env.read_env(f, overwrite=True) SECRET_KEY = env.str( "SECRET_KEY", default="django-insecure-k-7_h!2*)6jefsxn6k^2@o%jb5tozyd*6^ga+ded==osow#%!!", ) # SECURITY WARNING: don't run with debug turned on in production! DEBUG = env.bool("DEBUG", default=True) ALLOWED_HOSTS = env.list("ALLOWED_HOSTS", default=[]) CSRF_TRUSTED_ORIGINS = env.list("CSRF_TRUSTED_ORIGINS", default=[]) # Application definition INSTALLED_APPS = [ # django apps "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", # third apps "crispy_forms", "crispy_bootstrap5", "django_bootstrap5", "django_components", "django_extensions", "django_filters", "django_htmx", "formtools", # will be deprecated, form wizard "imagekit", "taggit", "template_partials", # local apps "accounts", "board", "core", "pao", "simater", "dvmt", # Django clenup should be placed last "django_cleanup.apps.CleanupConfig", ] CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5" CRISPY_TEMPLATE_PACK = "bootstrap5" TAGGIT_CASE_INSENSITIVE = env.bool("TAGGIT_CASE_INSENSITIVE", default=True) if DEBUG: INSTALLED_APPS += [ "debug_toolbar", ] AUTH_USER_MODEL = "accounts.User" # Load customized user from accounts app LOGIN_REDIRECT_URL = "/" LOGIN_URL = reverse_lazy("accounts:login") from django.core.exceptions import ImproperlyConfigured EMAIL_HOST = env.str("EMAIL_HOST", default=None) if DEBUG and EMAIL_HOST is None: # EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend" else: try: EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend" EMAIL_PORT = env.int("EMAIL_PORT") EMAIL_USE_SSL = env.bool("EMAIL_USE_SSL", default=False) EMAIL_USE_TLS = env.bool("EMAIL_USE_TLS", default=False) EMAIL_HOST_USER = env.str("EMAIL_HOST_USER") EMAIL_HOST_PASSWORD = env.str("EMAIL_HOST_PASSWORD") DEFAULT_FROM_EMAIL = env.str("DEFAULT_FROM_EMAIL") SERVER_EMAIL = env.str("SERVER_EMAIL", default=DEFAULT_FROM_EMAIL) except ImproperlyConfigured as e: print("ERROR:", e, file=sys.stderr) EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", "django_htmx.middleware.HtmxMiddleware", "csp.middleware.CSPMiddleware", ] if DEBUG: MIDDLEWARE = [ "debug_toolbar.middleware.DebugToolbarMiddleware", ] + MIDDLEWARE ROOT_URLCONF = "config.urls" TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [ BASE_DIR / "core" / "templates", # BASE_DIR / "core" / "src-django-components", ], # "APP_DIRS": True, "OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", ], "loaders": [ ( "django.template.loaders.cached.Loader", [ # Default Django loader "django.template.loaders.filesystem.Loader", # Including this is the same as APP_DIRS=True "django.template.loaders.app_directories.Loader", # Components loader "django_components.template_loader.Loader", ], ) ], }, }, ] WSGI_APPLICATION = "config.wsgi.application" # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases DEFAULT_DATABASE_URL = f"sqlite:///{BASE_DIR / 'db.sqlite3'}" DATABASES = { "default": env.db(default=DEFAULT_DATABASE_URL) } # Password validation # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", }, { "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", }, { "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", }, { "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", }, ] # Internationalization # https://docs.djangoproject.com/en/4.2/topics/i18n/ LANGUAGE_CODE = env.str(var="LANGUAGE_CODE", default="ko-kr") TIME_ZONE = "Asia/Seoul" USE_I18N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/4.2/howto/static-files/ STATIC_URL = env.str("STATIC_URL", default="static/") STATICFILES_DIRS = [ # BASE_DIR / "core" / "static", # BASE_DIR / "core" / "src-django-components", ] STATIC_ROOT = env.str("STATIC_ROOT", default=BASE_DIR / "staticfiles") # django-components # - context variable를 resolve하는 방식이 변경 from django_components import ComponentsSettings COMPONENTS = ComponentsSettings( dirs=[ Path(BASE_DIR) / "core" / "src-django-components", ], ) # COMPONENTS = { # "dirs": [ # # BASE_DIR / "components", # default # BASE_DIR # / "core" # / "src-django-components", # ], # # "context_behavior": "django", # default # } STATICFILES_FINDERS = [ # Default finders "django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder", # Django components "django_components.finders.ComponentsFileSystemFinder", ] MIDDLEWARE += [ "django_components.middleware.ComponentDependencyMiddleware", ] # Media files MEDIA_URL = env.str("MEDIA_URL", default="media/") MEDIA_ROOT = env.str("MEDIA_ROOT", default=BASE_DIR / "mediafiles") # Default primary key field type # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" from django.contrib.messages import constants as messages_constants if DEBUG: MESSAGE_LEVEL = messages_constants.DEBUG INTERNAL_IPS = env.list("INTERNAL_IPS", default=["127.0.0.1"]) if DEBUG: # FORM_RENDERER = "core.forms.renderers.NoCacheDjangoTemplates" INSTALLED_APPS += [ "django.forms", ] DEFAULT_FILE_STORAGE = "django.core.files.storage.FileSystemStorage" ADMIN_PREFIX = os.environ.get("ADMIN_PREFIX", "might/") ## django default loggings : django.utils.logs.DEFAULT_LOGGING ## LOGGING settings LOGGING = { #... } ADMINS = getaddresses([env.str("ADMINS", default="")]) # Django-csp settings CSP_FRAME_ANCESTORS = env.list("CSP_FRAME_ANCESTORS", default=[]) CSP_DEFAULT_SRC = [ "'self'", ] CSP_SCRIPT_SRC = ["'self'", "'unsafe-inline'", "'unsafe-eval'"] + CSP_FRAME_ANCESTORS CSP_STYLE_SRC = [ "'self'", "'unsafe-inline'", ] + CSP_FRAME_ANCESTORS CSP_IMG_SRC = [ "'self'", "data:", ] + CSP_FRAME_ANCESTORS if not CSP_FRAME_ANCESTORS: CSP_FRAME_ANCESTORS = ["'self'"]

  • react
  • python
  • django
  • web-api
  • htmx
pplkjh2 댓글 2 좋아요 0 조회수 192

24년 2회 5:17 문제

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

(n[i]-1)%5 해도 되지 않을까요?

  • python
  • java
  • c
  • 정보처리기사
magical powers 댓글 2 좋아요 0 조회수 97

react-hook-form handleSubmit이 동작하지 않습니다

해결됨

아바타 커뮤니티앱 만들기 (React Native Expo)

❗ 질문 작성시 꼭 참고해주세요 에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다. 질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github 을 첨부해주세요. 개발중인 OS, ReactNative, Node 버전 등의 개발환경 을 알려주셔야합니다. 에러메세지는 일부분이 아닌 전체 상황 을 올려주세요. 일부만 보여주시면 답변이 어렵습니다. 에러 잘라서 올리시면 안됩니다! (에러 일부만 자르거나 일부만 복사하지말아주세요) function EmailInput() { const { control } = useFormContext() return ( <Controller name="email" control={control} render={({ field: { onChange, value } }) => ( <InputField label="이메일" value={value} onChangeText={onChange} placeholder="이메일을 입력해주세요." /> )} /> ) } // signup 페이지 마크업 부분입니다 const signupForm = useForm<FormValues>({ defaultValues: { email: '', password: '', passwordConfirm: '' } }) async function onSubmit(data: FormValues) { console.log(data) } return ( <FormProvider {...signupForm}> <View style={styles.container}> <EmailInput /> <PasswordInput /> <PasswordConfirmInput /> </View> <FixedBottomCTA label="회원가입하기" onPress={() => { console.log('onPress::::') signupForm.handleSubmit(onSubmit) }} /> </FormProvider> ) export default function FixedBottomCTA({ label, onPress }: FixedBottomCTAProps) { const inset = useSafeAreaInsets() return ( <View style={[styles.fixed, { paddingBottom: inset.bottom || 12 }]}> <CustomButton label={label} onPress={onPress} /> </View> ) } function CustomButton({ label, size = 'large', variant = 'filled', ...props }: CustomButtonProps) { return ( <CustomPressable style={({ pressed }) => [ styles.container, styles[size], styles[variant], pressed && styles.pressed ]} {...props} > <Text style={styles[variant]}>{label}</Text> </CustomPressable> ) } export const CustomPressable = ({ children, ...props }: PressableProps) => { const pressHandlerProps = Platform.OS === "android" ? { onPressIn: props.onPress || props.onPressIn } : { onPress: props.onPress }; // console.log('pressHandlerProps:::::', pressHandlerProps) return ( <Pressable {...props} {...pressHandlerProps}>{children}</Pressable> ) } node 20v hookform 7.55v ios android 동일 증상 react-native 0.76.9v 버전입니다. 하위 버튼 컴포넌트들에서 onPress 함수만 별도 분리하여 console 찍어봐도 동작하지 않고 signupForm.handleSubmit(onSubmit) 윗부분 console 만 실행되고 있습니다 차라리 터미널에 에러 코드라도 나타나면 좋은데 아예 아무런 반응이 없어서 해결에 애를 먹고 있습니다

  • javascript
  • react
  • react-native
  • typescript
  • react-query
댓글 1 좋아요 0 조회수 195

안녕하세요. 강의 난이도가 궁금합니다.

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 열심히 듣고 있는 학생입니다. 선생님이 올려주신 강의 난이도가 리트코드? 프로그래머스 기준 어떻게 될까요? 강의 문제를 다 풀수있다면 리트코드 미디움 정도는 쉽게 풀수있을까요?

  • java
  • 코딩-테스트
룰루랄라 댓글 2 좋아요 0 조회수 182

jpa batchsize 관련 문의입니다

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 이해가 잘 되었는 지 확인하고 싶어서 질문 드립니다 팀마다 100개의 맴버가 있고 팀이 400개가 있다고 가정하고 다음 명령을 실행 한다면 String jpql = "select t from Team t"; List<Team> result = em.createQuery(jpql, Team.class) .setFirstResult(0) .setMaxResults(3) .getResultList(); result.forEach(team -> { System.out.println("teamname = " + team.getName() + ", team = " + team); team.getMembers().forEach(member -> { //페치 조인으로 팀과 회원을 함께 조회해서 지연 로딩 발생 안함 System.out.println("-> username = " + member.getName() + ", member = " + member); }); }); 1.배치 사이즈를 적용하지 않은 경우 em.createQuery 실행으로 400개의 팀이 영속성 컨텍스트에 로딩된다 스트림에서 팀 내부의 맴버에 접근시 멤버를 영속성 컨텍스트에 로딩 하기위한 쿼리가 날아간다. 이 쿼리는 한 팀당 팀에 소속된 멤버를 로딩한다 따라서 1+400개의 쿼리가 날아간다 2. 배치 사이즈(100)을 적용한 경우 em.createQuery 실행으로 400개의 팀이 영속성 컨텍스트에 로딩된다 스트림에서 팀 내부의 멤버에 접근 하면 해당 팀의 멤버가 로딩되지 않은 것을 확인한다 영속성 컨텍스에 존재하는, 멤버가 로딩되지 않은 팀들의 id를 배치 사이즈 즉 100개 만큼 수집한다. 수집된 팀 ID들을 사용하여 하나의 IN 쿼리 를 날려 해당 팀들의 멤버들을 한 번에 로딩한다 이후 다른 팀의 getMembers() 가 호출되면, 아직 멤버가 로딩되지 않은 팀들의 ID를 다시 수집하여 IN 쿼리를 날리는 과정을 반복한다 총 1+4 만큼 쿼리가 날아간다 이 시나리오가 정확한지 알고 싶습니다!

  • java
  • jpa
이호준 댓글 1 좋아요 0 조회수 144

자원정리 이후 메인 스레드 종료

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 자원 정리 V6까지 완료했을때 클라이언트를 먼저 종료하면 서버 콘솔에 정상 종료됐다고 로그는 찍히는데 while문이 종료가 안되서 그런지 자바 스레드 자체는 종료가 안되던데 그냥 자원정리만 자동으로 하게 만들고 자바 종료 같은경우엔 직접하는건가요?

  • java
  • 네트워크
  • 객체지향
eovnfjfpa 댓글 2 좋아요 0 조회수 131

인기 태그

인프런 TOP Writers

주간 인기글