inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

앞으로의 방향

미해결

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

[질문 내용] 안녕하세요!! 우선 좋은 강의 만들어주셔서 너무 감사합니다! 이번 강의도 정말 잘 들었습니다!! 저는 자바 입문, 실전 자바 기본편을 듣고 이번 스프링 입문 강의를 완강했습니다. 이전에는 자바에 대해 책으로 공부하고 강의를 통해 이해하는데 큰 어려움이 없었지만 스프링은 처음이라 많이 헤매는 느낌을 받습니다. 궁금한 점은 헤매는 느낌을 받는 이유는 자바에 대한 이해가 부족해서 인지 스프링에 대한 이해가 부족해서 인지 알고싶습니다. 또한 제 계획은 24년도 상반기에 나올 자바 중급,고급 강의를 듣고 스프링 완전정복 강의를 듣고 토이프로젝트를 통해 실력을 향상시키는 것이 목표입니다. 이 방향성이 괜찮은지 아니면 어떤 방향으로 나아가야하는지 조언 부탁드립니다.!! 처음 자바를 공부하고 너무나도 헷갈리고 어려운 순간들이 많았는데 김영한 선생님의 강의를 듣고 나름대로 발전한 것 같아서 항상 감사하고 있습니다. 양질의 강의를 제공해주셔서 감사합니다 !! 24년도 잘 부탁드립니다!!

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

orderProvider 관련 질문이 있습니다.

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

선생님 안녕하세요. 완강 후 코드 뜯어보면서 복습 중입니다:) 주문 탭 클릭 시 곧바로 주문한 최신 리스트를 볼 수 있게하는 방법을 고민하다가 orderProvider를 들여다 보았는데요. 곰곰히 생각해보니 postOrder만 해서는 orderProvider(orderStateNotifier)의 상태가 업데이트가 안되는 거 아닌가 하는 생각이 들었습니다. 그래서 forceRefetch하는 것처럼, postOrder 함수 하단에 true 반환하기 전에 paginate()를 실행하여 주문 탭 클릭시 곧바로 최신 리스트 뜨도록 했습니다. Future<bool> postOrder() async{ try{ final uuid = Uuid(); final id = uuid.v4(); final state = ref.read(basketProvider); final resp = await repository.postOrder( body: PostOrderBody( id: id, products: state.map((e) => PostOrderBodyProduct(productId: e.product.id, count: e.count)).toList(), totalPrice: state.fold(0, (pre, next) => pre + (next.product.price * next.count)), createdAt: DateTime.now().toString())); paginate(); return true; } catch(e){ return false; } } 이렇게 하는 게 옳은 방법일까요? 그리고 굳이 forceRefetch를 통해서만 주문탭이 업데이트되게 하신 이유가 있을까요?

  • flutter
  • 하이브리드-앱
Hyunsang-Coder 댓글 1 좋아요 0 조회수 174

캘린더 스케쥴러 Today Banner설계 질문있습니다

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

안녕하세요. 플러터 강의 잘 보고 있습니다. Today Banner설계 강의 마지막부분에 home_screen으로 onDaySelected함수를 뺐는데 home_screen에서 이 함수를 정의를 하고 ~ chileren[ Calendar( selectedDay: selectedDay, focusedDay: focusedDay, onDaySelected : onDaySelected, ), ~ 위처럼 Calendar안에 onDaySelected를 파라미터로 넣었는데요, 이 함수가 실행되는 시점은 calendar.dart파일 안에서 TableCalendar를 리턴할때, onDaySelected : onDaySelected 이 부분에 의해 실행이 되는데 제가 이해하고 있는거로는 home_screen.dart가 stateful위젯이니까 그 안에 Calendar( selectedDay: selectedDay, focusedDay: focusedDay, onDaySelected : onDaySelected, ), 가 실행 되면 home_screen.dart안에 build함수가 다시 불려서 그림을 다시 그리는거로 이해하고 있습니다.(캘린더 날짜를 클릭하는대로 날짜가 바뀌는) 근데 home_screen에서 onDaySelected함수를 정의해서 Calendar() 안에 넣는데 어떻게 _HomeScreenState에 정의한 selectedDay의 값을 받아와서 그 밑에 TodayBanner안에 selectedDay매개변수에 넣어줄 수 있는지 이해가 안됩니다. 요약하자면 home_screen에 onDaySelected를 정의했고 Calendar()에 정의한 onDaySelected를 넣어서 Calendar내부에서 실행을 한건데 그럼 onDaySelected함수에 정의한 this.selectedDay = selectedDay; 이 부분은 calendar.dart에 있는 selectedDay에 들어가야하는거 아닌지, 어떻게 home_screen의 selectedDay에 값이 들어가게 되는지 알고싶습니다. 답변 부탁드리겠습니다.

  • flutter
  • 클론코딩
khs50851 댓글 1 좋아요 0 조회수 355

Bucket Provider 대신에 Riverpod 로 변경해보고 싶어요.

해결됨

Flutter 앱 개발 기초

안녕하세요. 3강 강의를 듣고 질문드립니다. 상태관리는 Riverpod 로 변경해보고 싶은데 잘 안됩니다. /// 버킷 클래스 class Bucket { String job; // 할 일 bool isDone; // 완료 여부 Bucket(this.job, this.isDone); // 생성자 } Provider 의 BucketService class BucketService extends ChangeNotifier { List<Bucket> bucketList = [ //Bucket('잠자기', false), // 더미데이터 ]; /// bucket 추가 void createBucket(String job){ bucketList.add(Bucket(job, false)); notifyListeners(); } /// bucket 수정 void updateBucket(Bucket bucket, int index){ bucketList[index] = bucket; notifyListeners(); } /// bucket 삭제 void deleteBucket(int index){ bucketList.removeAt(index); notifyListeners(); } } 이걸 Riverpod v2 기준으로 변경해보고 싶은데 매개변수를 그대로 사용하면서 할 수 있는 방법을 모르겠습니다. final bucketProvider = NotifierProvider<BucketNotifier, List<Bucket>>(BucketNotifier.new); class BucketNotifier extends Notifier<List<Bucket>> { @override List<Bucket> build() => []; /// bucket 추가 void createBucket(String job){ state = [...state, Bucket(job, false)]; } /// bucket 수정 void updateBucket(Bucket bucket, int index){ } /// bucket 삭제 void deleteBucket(int index){ //state = state.where((element) => element != index).toList(); // element 에는 index 가 없는데 어떻게 비교할 수 있을까? } }

  • flutter
Link 댓글 1 좋아요 1 조회수 239

firebase 관련오류

해결됨

Flutter로 SNS 앱 만들기

안녕하세요.. 사용자 인증 시 아래와 같은 예외가 발생합니다. FirebaseAuthException ([firebase_auth/too-many-requests] We have blocked all requests from this device due to unusual activity. Try again later.) 여기저기 찾아봐도 이유를 모르겠습니다 혹시, 이유를 아시면 답변 부탁드리겠습니다. 감사합니다.

  • flutter
  • android
  • firebase
  • dart
이주한 댓글 1 좋아요 0 조회수 674

3중 for문으로 변경해서 정답

미해결

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

import java.util.Scanner; public class 멘토링 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = scan.nextInt(); int[][] intArrArr = new int[n][m]; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ int temp = scan.nextInt(); intArrArr[temp-1][i] = j; } } System.out.println(solution(n,m,intArrArr)); } private static int solution(int n, int m, int[][] intArrArr) { int answer = 0; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ boolean flag = true; for(int k=0;k<m;k++){ if(intArrArr[i][k] >= intArrArr[j][k]){ flag = false; break; } } if(flag){ answer++; } } } return answer; } } input을 받을 때 학생이 행에 오도록 변경을 해서 등 수를 열로 변경해서 받으면 3중 for문으로도 가능합니다. 참고가 될까 싶어 올려봅니다 화이팅!!

  • java
  • 코딩-테스트
김대영 댓글 3 좋아요 2 조회수 1514

switch 문 break vs return

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Switch 문을 while 문 중간에 넣었을 때 break 는 중단되지 않았습니다. return 문은 프로그램을 종료시켰습니다. 왜 break 문은 쓸 수 없는지 궁금합니다! package method.ex; import java.util.Scanner; public class MethodEx4 { static Scanner sc = new Scanner(System.in); static int balance = 0; public static void main(String[] args) { while (true) { switch (chooseMenu()) { case 1 -> balance = deposit(); case 2 -> balance = withdraw(); case 3 -> checkBalance(); case 4 -> { printFooter(); return; // break 대신에 return 문 쓰기 } default -> printError(); } } } static int chooseMenu() { System.out.println("------------------------"); System.out.println("1.입금|2.출금|3.잔액 확인|4.종료"); System.out.println("------------------------"); System.out.print("선택: "); return sc.nextInt(); } static int deposit() { System.out.print("입금액을 입력하세요: "); int depositAmount = sc.nextInt(); balance += depositAmount; System.out.println(depositAmount + "을 입금하였습니다. 현재 잔액: " + balance + "원"); return balance; } static int withdraw() { System.out.print("출금액을 입력하세요: "); int withdrawAmount = sc.nextInt(); if (balance >= withdrawAmount) { balance -= withdrawAmount; System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " + balance + "원"); } else { System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다."); } return balance; } static void checkBalance() { System.out.println("현재 잔액: " + balance + "원"); } static void printFooter() { System.out.println("시스템을 종료합니다."); } static void printError() { System.out.println("잘못 번호를 입력하였습니다."); } }

  • java
  • 객체지향
침착한치킨다리 댓글 2 좋아요 0 조회수 1719

StreamBuilder 관련 질문입니다.

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

강의 중에 snapshot.data 를 콘솔에 찍는 부분에 관한건데요! hot reload시 케바케로 - flutter: null flutter: Latitude: 37.522327, Longitude: 126.921252 flutter: Latitude: 37.522327, Longitude: 126.921252 - 와 같이 현재 포지션이 두번 찍힐때가 있는데 이런건 어떤거때문인걸까요? 제가 생각하기로는 앱 로딩 시 빌드 함수가 실행되면서 getPositionStream()이 실행되나, 위치 잡아오기 전이라 null 반환 이후 위치 잡아오면 스트림에 입력되어 위/경도값 반환 이게 끝인거같은데 종종 보면 저 위/경도값이 두번 찍힐때가 있더라구요..! 이유가 궁금합니다.

  • flutter
  • 클론코딩
DJB 댓글 1 좋아요 0 조회수 225

구글맵 Using the Impeller rendering backend. 에러 뜨시는 분들!

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

Impeller라는 렌더링 백엔드가 현 앱과 호환되지 않는 경우에 발생할 수 있는 문제라고 합니다. info.plist에 <key>FLTEnableImpeller</key> <false/> 추가해주시면 해결됩니다~

  • flutter
  • 클론코딩
DJB 댓글 1 좋아요 0 조회수 1087

NotifierProvider 로 변경하고 싶어요

해결됨

Flutter 앱 개발 실전

안녕하세요. Riverpod 상태관리에서 StateNotiferProvider 대신에 NotifierProvider를 사용하는 것을 권장하신다고 하셨는데요. StateNotifierProvider 로 작성한 코드를 NotiferProvider 로 변경하고 싶은데 잘 안되어 문의 드립니다. contactStateProvier 코드로는 정상 동작됩니다. 이 코드를 NotifierProvider 로 변경해보려고 하는데 잘 안되네요. final contactStateProvider = StateNotifierProvider<ContactStateNotifier, ContactResultBase>( (ref) { final repository = ref.watch(restClientProvider); final notifier = ContactStateNotifier(restClient: repository); return notifier; }, ); class ContactStateNotifier extends StateNotifier<ContactResultBase> { final RestClient restClient; ContactStateNotifier({required this.restClient}) : super(ContactResultLoading()) { postContactList(); } postContactList() async { final resp = await restClient.postContactList( Crypto.AES_encrypt(Crypto.URLkey()), ''); state = resp; } } @RestApi(baseUrl: RetrofitURL.baseUrl) abstract class RestClient { factory RestClient(Dio dio, {String baseUrl}) = _RestClient; @POST(RetrofitURL.mLogin) @FormUrlEncoded() Future<LoginResponse> userLogin( @Field() String keyword, @Field() String userID, @Field() String password, @Field() String uID, @Field() String mfoneNO, ); @POST(RetrofitURL.contactData) @FormUrlEncoded() Future<ContactResult> postContactList( @Field() String keyword, @Field() String search, ); } final secureStorageProvider = Provider<FlutterSecureStorage>((ref) => const FlutterSecureStorage()); final dioProvider = Provider<Dio>((ref) { final dio = Dio(); final storage = ref.watch(secureStorageProvider); dio.interceptors.add(LogInterceptor()); dio.interceptors.add( CustLogInterceptor(storage: storage,), ); return dio; }); final restClientProvider = Provider<RestClient>((ref) { final dio = ref.watch(dioProvider); final repository = RestClient(dio); return repository; }); contactStateProvider 를 변경시도 해보다가 에러가 발생한 코드 final contactProvider = NotifierProvider<ContactNotifier, ContactResultBase>( () { final repository = ref.watch(restClientProvider); final notifier = ContactNotifier(restClient: repository); return notifier; }, ); class ContactNotifier extends Notifier<ContactResultBase> { @override ContactResultBase build() => ContactResultLoading(); final RestClient restClient; ContactStateNotifier({required this.restClient}) { postContactList(); } postContactList() async { final resp = await restClient.postContactList( Crypto.AES_encrypt(Crypto.URLkey()), ''); state = resp; } }

  • flutter
Link 댓글 1 좋아요 0 조회수 386

맥북에서 에뮬, 시뮬레이터 오류들

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

안녕하세요, 수업 잘 듣고 있습니다. 다름이 아니라 이번에는 제가 근무지 이동때문에 데스크탑(윈도우)이 아닌 맥북(m1)으로 코딩을 공부하는 중입니다. 현재 가장 최신인 giraffe버전인데, 맥북에서 시뮬레이터로 코딩하면 크롬에서 스웨거도 잘 뜨고, 자동로그인도 잘되어 splashscreen페이지에서 바로 rootTab으로 넘어갑니다. 그런데 그 외의 서버에서 보내오는 이미지나 텍스트 데이터들이 전혀 뜨지 않아 무한 로딩을 합니다ㅠ 그래서 에뮬레이터를 돌려보려고 하니 파일 경로중에 알맞지 않은 문자가 있다는데, 아무리 봐도 '_'(아래바) 제외하고는 전혀 특수문자나 공백은 없습니다.. 에뮬도 안켜지고, 시뮬레이션에 데이터도 안떠서 답답하네요; 도움 구할 곳이 없어 도움 구해봅니다 ㅠ 올 한해도 고생 많으셨고, 해피 크리스마스 입니다^^

  • flutter
  • 하이브리드-앱
김지현 댓글 2 좋아요 0 조회수 550

변수의 값과 리터럴

해결됨

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

변수타입 1 강의에서 7:20 쯤 설명하시는 리터럴에 대해 이해가 잘 되지 않는 점이 있습니다. 변수의 값은 변할 수 있지만 리터럴은 개발자가 직접 입력한 고정된 값이다. 따라서 리터럴 자체는 변하지 않는다. 라고 강의 내용과 강의자료에 설명이 되어있습니다. 위 내용이 무슨 뜻인지이해가 잘 안됩니다. 개발자가 변수에 입력한 값이 리터럴 이고,, 리터럴을 수정하면 변수 값이 변하는 것 아닌가요?

  • java
  • 객체지향
고양이 댓글 2 좋아요 0 조회수 363

GoRouter Redirection관련 질문이 있습니다..

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

안녕하세요? 강사님, 중급강의 섹션 13. [Go Router v7] GoRouter 이론 중 "Redirection" 파트에 관련된 질문인데요. 9_login_screen.dart 파일(LoginScreen 클래스)에 코딩된 "authState"는 router.dart파일에 코딩된 "authState"와 어떤 관계(?)인지를 모르겠습니다. 무슨말인가 하면 authState 변수는 LoginScreen 클래스내에서 별도로 선언을 해주지도 않았는데도 setStat를 이용해서 값을 ture, false로 바꿀 수 있는 것도 이상하고, 이렇게 LoginScreen 클래스에서 변경된 authState값이 router.dart파일에서 인식(?)이 되는것도 이상합니다. 제 질문이 조금 무식해 보이긴 한데... 제 질문 의도는 파악하셨으리라 생각되어서 답변 좀 부탁드리겠습니다...

  • flutter
  • 하이브리드-앱
임명훈 댓글 1 좋아요 1 조회수 269

querydsl Projection 성능 문제

해결됨

실전! Querydsl

안녕하세요 Querydsl Projection 을 활용해 DTO에 담는경우 성능 관련 질문이 있습니다. Querydsl에서 Projections.constructor를 활용해서 query를 작성하는경우 fetchJoin이 되지 않더라구요. 일대 다 관계에서 fetchJoin을 하지 않게되면 n+1 이슈가 발생할거 같은데 Projections을 활용하는 환경에서 성능개선은 어떻게 해야할까요?

  • querydsl
  • springboot
  • java
  • jpql
  • jpa
mincoding 댓글 2 좋아요 0 조회수 939

구글맵 지도 자체는 뜨는데 위치가 안뜨시는분들

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

API 및 서비스 여기서 Maps SDK for Android랑 iOS 여기서 DISABLE로 되어있어야 활성화 된겁니다! 처음에 ENABLE로 되어야 활성화인줄알고 했다가 계속 안떴었네요! 강사님 이거 자막에 달아주시면 좋을거같습니다 ㅜㅜ

  • flutter
  • 클론코딩
khs50851 댓글 4 좋아요 2 조회수 658

GeneratedMocks로 생성한 코드의 위치를 변경하고싶어요

미해결

Flutter 테스트 기초

GeneratedMocks로 생성한 코드들이 많아지면 복잡할 것 같아서 생성되는 파일의 위치를 자동으로 변경해주고 싶은데요, 예를들면 현재 코드가 있는 디렉토리에 generated라는 디렉토리 안에다가 생성된 파일을 저장해주고싶어요. 어떠한 설정을 해야할까요?

  • flutter
  • 소프트웨어-테스트
  • ui-testing
  • integration-tests
김창호 댓글 1 좋아요 0 조회수 249

Didupdatewidget

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

didupdatewidget과 setstate의 차이점을 알려주실 수 있나요? Setstate는 stateful위젯 안에서 변수를 변경하고 싶을때 사용하는건 알겠는데, didupdatewidget은 언재 사용하는지 잘 모르겠어요ㅜㅠ

  • flutter
  • 클론코딩
강원빈 댓글 1 좋아요 1 조회수 296

슬라이더를 누르고 있을때 재생안되는 방법

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

재생 중에 슬라이더를 조절할려고하는데 슬라이더를 누른채로 동작을 안하면 영상이 자동으로 재생되어 버립니다 슬라이더에서 손을 뗄떼까지 영상이 멈추게 할수있을까요 인프런강의처럼요 또 한가지 질문은 videioController 는 initializeController()안에서 아래 코드로 할당이되는데 videoController = VideoPlayerController.file( File(widget.video.path), 이부분은 deadcode가 아닐까요 if (videoController == null) { return CircularProgressIndicator();

  • flutter
  • 클론코딩
당근농부 댓글 1 좋아요 0 조회수 264

다형성1 과목 개념정리 질문입니다

미해결

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

[질문 내용] 제가 지금 이해한 내용으로는 Parent parent = new child(); 가 있을때 메모리에는 Child를 기준으로 상위 부모 클래스만 메모리에 적재되고 (편의상 Child 메모리라고 하겠습니다), parent의 참조 주소는 생성된 Child 메모리 안의 Parent 클래스를 참조하며, parent의 멤버변수는 Parent 클래스의 멤버변수만 가질 수 있고, 오버라이딩된 메소드가 존재한다면 무조건 오버라이딩된 메소드가 우선권을 가진다 라고이해했는데, 덧붙일 개념들이 혹시 있을까요? 아, 그리고 만약 오버라이딩된 메소드가 부모클래스에서 실행할 수 없는 메소드라면 어떻게되는지도 궁금합니다. (혹시, 오버라이딩된 메소드가 부모클래스에서 실행되지않을 가능성은 아예 없나요?)

  • java
  • 객체지향
김도현 댓글 2 좋아요 0 조회수 459

DDL 생성기능

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의 16분 즈음부터 @Table(name = "MBR") 같은 것들은 런타임에 영향을 주지만 @Column(unique = true) 같은 제약조건들은 런타임에 영향을 주지 않는다는 말이 왜 그런 건지 이해가 잘 안 가는데 조금 더 설명해주실 수 있을까요?? 둘 다 데이터베이스에 어떤 쿼리를 날려야 하는데 하나는 런타임에 영향을 주고 하나는 그렇지 않다는 게 이해가 잘 가지 않습니다.

  • java
  • jpa
966kmj 댓글 2 좋아요 0 조회수 598

인기 태그

인프런 TOP Writers

주간 인기글