inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

의존성 주입 질문있습니다.

미해결

Flutter 중급 1편 - 클린 아키텍처

안녕하세요~ 덕분에 클린 아키텍쳐 구조 잘 공부했습니다. 혹시 의존성 주입부분에서 질문이 있습니다. 제가 개인적으로 연습을 하면서 클린 아키텍쳐를 적용하고 있습니다. /di/provider_setup.dart 에서 한번에 의존성 주입 List<ChangeNotifierProvider> getProviders() { final dio = Dio(); SongRepository repository = SongRepository(dio); UseCases useCases = UseCases( getSearchSong: GetSearchSongUseCase(repository: repository), getSearchSinger: GetSearchSingerUseCase(repository: repository), getRecentlySongsList: GetRecentlySongsListUseCase(repository:repository), ); SearchViewModel searchViewModel = SearchViewModel(useCases: useCases); HomeViewModel homeViewModel = HomeViewModel(useCases: useCases); return [ ChangeNotifierProvider(create: (_) => searchViewModel), ChangeNotifierProvider(create: (_) => homeViewModel), ]; } main 에서 주입 void main() { // provider 호출 final providers = getProviders(); runApp( MultiProvider( providers: providers, child: const MyApp(), ), ); } context.watch <SearchViewModel>(); 은 잘 작동해서 뷰에 출력을 잘 하고있습니다. class _SearchScreenState extends State<SearchScreen> { @override Widget build(BuildContext context) { final searchViewModel = context.watch<SearchViewModel>(); final state = searchViewModel.state; ... } context.watch <HomeViewModel>();은 에러가 발생합니다. class _Body extends StatelessWidget { const _Body({Key? key}) : super(key: key); @override Widget build(BuildContext context) { final homeViewModel = context.watch<HomeViewModel>(); final state = homeViewModel.state; ... } 에러내용 ======== Exception caught by widgets library ======================================================= The following ProviderNotFoundException was thrown building _Body(dirty): Error: Could not find the correct Provider<HomeViewModel> above this _Body Widget This happens because you used a `BuildContext` that does not include the provider of your choice. There are a few common scenarios: - You added a new provider in your `main.dart` and performed a hot-reload. To fix, perform a hot-restart. - The provider you are trying to read is in a different route. Providers are "scoped". So if you insert of provider inside a route, then other routes will not be able to access that provider. - You used a `BuildContext` that is an ancestor of the provider you are trying to read. Make sure that _Body is under your MultiProvider/Provider<HomeViewModel>. This usually happens when you are creating a provider and trying to read it immediately. For example, instead of: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // Will throw a ProviderNotFoundError, because `context` is associated // to the widget that is the parent of `Provider<Example>` child: Text(context.watch<Example>().toString()), ); } ``` consider using `builder` like so: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // we use `builder` to obtain a new `BuildContext` that has access to the provider builder: (context, child) { // No longer throws return Text(context.watch<Example>().toString()); } ); } ``` If none of these solutions work, consider asking for help on StackOverflow: https://stackoverflow.com/questions/tagged/flutter The relevant error-causing widget was: When the exception was thrown, this was the stack: #0 Provider._inheritedElementOf (package:provider/src/provider.dart:343:7) #1 Provider.of (package:provider/src/provider.dart:293:30) #2 WatchContext.watch (package:provider/src/provider.dart:693:21) #3 _Body.build (package:what_do_you_want_to_sing/presentation/home/home_screen.dart:79:35) #4 StatelessElement.build (package:flutter/src/widgets/framework.dart:4949:49) #5 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4878:15) #6 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5) #7 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:19) #8 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21) #9 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:378:5) #10 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1175:15) #11 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1104:9) #12 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:881:7) (elided 4 frames from class _RawReceivePortImpl, class _Timer, and dart:async-patch) 저번에 이런 에러가 발생했을때, 의존성 주입이 안된 상태에서 context.watch() 를 해서 오류가 나 의존성을 추가해 해결했습니다. 하지만 이번에는 잘모르겠습니다. 의존성도 잘 주입되어서 view 단에서 잘 호출 하고 있는거 같은데.. 어떻게 해결해야할까요?

  • flutter
  • Flutter
  • android
  • ios
프래프프론트엔드 댓글 3 좋아요 0 조회수 1261

sdk 오류 문의입니다...

미해결

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

Android toolchain 부분에 오류가 발생하여 아래 명령어인 flutter doctor --android-licenses를 실행했을 때, 아래와 같은 에러가 발생합니다. JAVA_HOME 환경변수는 아래와 같습니다. 도움 부탁드립니다!

  • flutter
  • 클론코딩
  • Flutter
  • 클론코딩
황보광 댓글 1 좋아요 0 조회수 344

선생님 질문 있습니다.

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

이번 강의에서 질문이 있는 부분은 get /user 부분의 controller에서 User에 대한 리스트를 그냥 반환하지 않고 UserResponse라는 DTO를 통해 리스트를 반환하신 이유에 대해 궁금합니다. 스프링부트 프레임워크에서 강제하는 부분인건가요?

  • mysql
  • java
  • spring
  • aws
  • jpa
  • JPA
  • spring-boot
이종민 댓글 4 좋아요 7 조회수 770

CarouselImage문제

미해결

Flutter + Firebase로 넷플릭스 UI 클론 코딩하기 [무작정 플러터]

안녕하세요, home_screen.dart 페이지에서 movies이 부분도 빨간줄이 쳐져 있습니다. 어떻게 해결해야 할까요?

  • flutter
  • firebase
  • 클론코딩
  • Flutter
  • 클론코딩
김지현 댓글 1 좋아요 0 조회수 542

안녕하세요. stream관련해서 질문드립니다.

미해결

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

stream강의 처음코드에선 controller라는 변수에 streamcontroller()를 할당해주고 stream이라는 변수에 controller.stream을 할당해주고나서 stream을 사용할수있었는데요. 두번쨰 calculate 코드에선 해당작업을 하지않고도 listen을 할수있더라고요. 이 이유는 무엇인가요?? 또한 첫코드에선 broadcaststream을 사용해야 여러번 리슨할수있다고 하셨는데 두번째 calculate코드에서 제가 임의로 playcalculate().listen(( val ) {print('$ val ');}); 스테이트먼트를 두개만들어서 시험해봤을땐 broadcaststream과 같은 기능을 하더군요. 이는 Stream<int> playasync()async*{ yield* claculate(1); yield* claculate(1000); } 처럼 stream<>데이터타입을 가진 함수를 만들게되면 dynamic처럼 Single subscription streams와 Broadcas streams 어떤 종류로 써도 무방하게 만들어진것인가요??

  • flutter
  • 클론코딩
  • 클론코딩
  • Flutter
뭐하지이름 댓글 1 좋아요 0 조회수 334

generatedValue에서 sequence type 질문

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 만약 allocationSize = 50 으로 잡고 애플리케이션을 올렸는데요 값자기 그 id(pk) 값이 1~2 올라가다가 서버가 다운되서 다시 올리면 53인가 부터 시작이잖아요? 그럼 2~52 까지의 pk 값은 안쓰고 계속 올라가는게 맞을까요? 실무에서 궁금합니다.

  • JPA
  • jpa
  • java
thdi4564 댓글 1 좋아요 0 조회수 357

undo 메소드 작업중에서

미해결

코딩으로 학습하는 GoF의 디자인 패턴

예를 들어 LightOffCommand 클래스에서 Light를 가지고 있는데 undo() { light.on(); } 이렇게 사용하지 않는건 단일책임 원칙때문에 그런건가요?

  • 디자인-패턴
  • java
  • 디자인-패턴
churihyung 댓글 1 좋아요 1 조회수 383

서버쪽 /user/me api에서 에러가 나서 확인해보니..

미해결

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

서버쪽 bearer-token.guard.ts 쪽에서 토큰으로 유저정보 만드는 부분에 아래처럼 sub으로 유저정보를 검색하는데 sub이 user id이더라구요.. 그래서 user 값이 제대로 조회가 안되서 에러가 발생했었습니다. request.user = await this.userService.findByUsername(payload.sub); 일단 payload.username 으로 검색하게 하니 잘되는것 같습니다~

  • flutter
  • 하이브리드 앱
  • 하이브리드-앱
  • Flutter
이정석 댓글 1 좋아요 0 조회수 425

안드로이드 에뮬레이터 실행오류

미해결

Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)

강의대로 인스타그램 클론까지 작성후 앱을 실행해서 테스트를 진행하려고하는데 앱[Flutter]아이콘이 안보입니다.. 혹시몰라서 강의목차중 '안드로이드 에뮬레이터 설치 및 데모 앱 실행' 강의를 듣고 따라해보니 화면이 다르게 보입니다. 강의 화면은 데모앱이 실행되는데 제화면은 안드로이드가 실행되어버리며 강의에 나오는 앱[Flutter]아이콘이 안보입니다. *환경 : Windows 프로그램 : 안드로이드 스튜디오 *에뮬레이터 실행후 상단에서 선택후 실행시 아래와 같은 오류가 발생하네요..

  • flutter
  • ios
  • android
  • Flutter
타릭 댓글 1 좋아요 1 조회수 1046

sdk 오류 문의드립니다

미해결

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

인녕하세요 안드로이드 라이센스 추가시 오류가 나는데 해결방법 문의드립니다 기존에 c:/app/ 경로에 안드로이드 스튜디오가 깔려있었는데요 xl예물레이터는 실행시 오류가나서 일단 다른 디바이스로 실행 시켰습니다. 문의내용: 안드로이드 라이센스 추가시 오류 1.sdk 매니저에서 영상에 나온 항목 설치 ( Android SDK Command-line Tools 등등) 2.환경변수 설정 위 두가지 내용들 다 적용된것도 확인했는데 해결방법을 모르겠습니다 확인해봐야할 부분 알려주시면 감사하겠습니다

  • flutter
  • 클론코딩
  • Flutter
  • 클론코딩
신승현 댓글 1 좋아요 0 조회수 644

Basic Video Call을 통해서 영상 접속이 처음에만 되는 이유가 뭘까요?

미해결

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

코드를 그대로 따라하면서 작성했는데 이상하게도 영상 마지막 부분에서 나온 웹사이트를 통해서 시도해보면 채널 참가 첫 1회시에만 기능하고 채널 나가기를 누른 후 다시 참여할때는 emulator에서 아무리 기다려도 채널에 유저가 없습니다 가 뜹니다. 이유를 찾으려고 해봤지만,, 쉽지 않네요...

  • flutter
  • 클론코딩
  • Flutter
  • 클론코딩
lee si jun 댓글 2 좋아요 0 조회수 527

조건(where)을 포함한 일대다(1:N) 페이징 쿼리 질문

미해결

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

안녕하세요. 영한님 20만 수강생 진심으로 축하드립니다.^^🎉 프로젝트 도중에 막혀서 강의를 👀복습하던 중 질문드립니다..! (영한님 강의 덕분에 저도 이러한 고민을 하게되다니... 감사의 말씀 드립니다.😊) 페이징이 가능하고 item.name 으로 order 를 조회하려고 하면 어떠한 방식으로 코드를 작성 해야할까요? 일단 제가 생각한 방법은 다음과 같습니다. V3.1 적용 요구사항은 회원( member ), 결제( payment ), 배송( delievery ), 주문 상품( orderItem )을 포함해서 페이징이 되도록 주문( order )을 조회하고, 조건으로 상품 이름( item.name )으로 조회가 가능 해야 하는 것 입니다. orderItem 은 일대다 관계 이기 때문에 페이징이 불가합니다. 그래서 V3.1의 방법인 hibernate.default_batch_fetch_size 을 이용하여 IN 쿼리로 orderItem 을 조회하려고 합니다. 이렇게 하면 페이징이 가능하도록 order 는 조회할수는 있지만, item.name 을 조건으로 조회 할 수는 없습니다. V5 적용 그래서 V5에서 알려주신 방법을 사용했습니다. order 와 orderItem 을 분리한다. order 을 이용하여 orderItem 을 조회한다.(추가로 item.name 조건도 넣는다.) 조회한 결과를 하나의 List 으로 만든다. List 을 다시 Page 로 변환한다. public Page<AdminOrderListQueryDto> findOrdersByAdmin(Pageable pageable, OrderSearchCondition condition) { // 주문 전체 조회 List<AdminOrderListQueryDto> content = queryFactory .select(new QAdminOrderListQueryDto(order.id, order.status.stringValue(), order.safeKingPayment.amount, order.createDate, order.merchantUid, new QAdminOrderListPaymentQueryDto(order.safeKingPayment.status.stringValue()), new QAdminOrderListMemberQueryDto(order.member.name), new QAdminOrderListDeliveryQueryDto(order.delivery.receiver, order.delivery.status.stringValue())) ) .from(order) .leftJoin(order.safeKingPayment, safekingPayment) .leftJoin(order.delivery, delivery) .leftJoin(order.member, member) .where( orderBetweenDate(condition.getFromDate(), condition.getToDate()), deliveryStatusEq(condition.getDeliveryStatus()), paymentStatusEq(condition.getPaymentStatus()) ) .orderBy(order.createDate.desc()) .fetch(); // 주문 아이디 저장 List<Long> orderIds = content.stream() .map(o -> o.getId()) .collect(Collectors.toList()); // 상품명으로 검색 조건 Map<Long, List<AdminOrderListOrderItemQueryDto>> orderItemMap = findOrderItemMap(orderIds, condition.getKeyword()); // 주문객체에 주문 상품컬렉션 저장 content.forEach(o -> o.setOrderItems(orderItemMap.get(o.getId()))); // 주문상품이 null이 아닌 컬렌션으로 구성 List<AdminOrderListQueryDto> resultContent = content.stream() .filter(o -> o.getOrderItems() != null) .collect(Collectors.toList()); // List를 Page로 변환 PageRequest pageRequest = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize()); int start = (int) pageRequest.getOffset(); int end = Math.min(start + pageRequest.getPageSize(), resultContent.size()); if(start > end) { throw new OrderException("데이터가 없습니다. 관리자에게 문의하세요."); } return new PageImpl<>(resultContent.subList(start, end), pageRequest, resultContent.size()); } private Map<Long, List<AdminOrderListOrderItemQueryDto>> findOrderItemMap(List<Long> orderIds, String keyword) { // 주문 상품 검색(item.name 조건 포함) List<AdminOrderListOrderItemQueryDto> orderItems = queryFactory.select(new QAdminOrderListOrderItemQueryDto(orderItem.order.id, orderItem.id, orderItem.item.name)) .from(orderItem) .leftJoin(orderItem.item, item) .where( orderItem.order.id.in(orderIds), keywordContains(keyword) ) .fetch(); // Map 으로 변환 Map<Long, List<AdminOrderListOrderItemQueryDto>> orderItemMap = orderItems.stream() .collect(Collectors.groupingBy(orderItemQueryDto -> orderItemQueryDto.getOrderId())); return orderItemMap; } // 아이템이름 포함 조건 private BooleanExpression keywordContains(String keyword) { return hasText(keyword) ? item.name.contains(keyword) : null; } 이러한 방식을 사용하는게 맞을까요? 🤔 감사합니다.^^

  • spring
  • java
  • spring-boot
  • JPA
  • jpa
  • spring-boot
개발하는쿼카 댓글 1 좋아요 2 조회수 1248

안녕하세요 야생형 코스 관련 질문 드립니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. 오늘도 질문을 남기러 왔습니다. 자주 올려서 죄송합니다ㅠ 저는 이제 국비지원학원에서 JSP + SERVLET을 기반으로하는 팀 프로젝트를 마치고 스프링 강의에 들어갑니다. 학원 강의를 따라가기 위해, 김영한 강사님의 스프링 입문, 스프링 핵심 원리(기본편) 강의로 스프링을 예습을 해둔 상태입니다. 원래대로라면 다음 강의로 스프링 MVC 1편을 들을 예정이었지만, 강사님 조언에 따라서 야생형 코스를 밟고자합니다! 저 같은 상황이라면 바로 JPA 활용 1편으로 넘어가면 되는게 맞을까요? 학원 커리큘럼이 mybatis 기반이라 JPA를 선행학습하는게 맞나 고민이 생겨서 질문 드립니다 ㅠㅠ...

  • spring-boot
  • spring-boot
  • JPA
  • spring
  • jpa
  • java
  • 웹앱
댓글 1 좋아요 1 조회수 593

Integer.parseInt,와 Integer.valueof 의 차이가 궁금합니다.

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

int i = Integer.parseInt("93"); System.out.println(i); int i = Integer.valueOf("93"); System.out.println(i); 두 개다 93으로 출력이 되는데 둘 다 맞는 문법인가요? 문자를 정수로 바꿔준다는 기능은 똑같은거 같은데.. 차이가 뭔지 잘 모르겠습니다..

  • 객체지향
  • oop
  • java
cjygisa 댓글 1 좋아요 0 조회수 6124

DateTime selectedDate = DateTime(DateTime.now().year);

미해결

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

DateTime selectedDate = DateTime( DateTime.now ().year); 7분10초 쯤 여기서 00시부터 다시 시작 한다고 하셨는데 이런 식으로 코드 작성하게 되면 시간은 0으로 초기화 되는 건가요?

  • flutter
  • 클론코딩
  • 클론코딩
  • Flutter
알이육 댓글 1 좋아요 0 조회수 513

백엔드 개발자 커리큘럼이 어떻게 되나요?? (인프런강의)

미해결

강의가 다양해서 어느 순서로 공부해야하는지 잘 모르겠습니다. 인프런 내에서 들을 수 있는 강의로 커리큘럼을 짜주세요. 혼자서 개인프로젝트 만들 수 있는 수준으로 커리큘럼 짜고 싶습니다.

  • 백엔드
  • 자바
  • java
  • 스프링
쿠루 댓글 0 좋아요 0 조회수 555

38강 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 강의 잘 듣고 있습니다. 강의를 듣다 질문이 있어서 글 남깁니다! profiles 설정을 할때 인텔리제이 무료 버전이라 add vm options 를 -Dspring.profiles.active=local 로 설정하면 local로 설정할 수 있다고해서 이런식으로 일단 profiles를 local로 설정했는데 홈페이지 실행 후 접속하니 mysql에서의 정보가 그대로 남아있습니다. local설정을 잘 했는데 h2에 연결이 안되는거 같은데 원인이 무었일까요? 그리고 h2사이트에 접속해 강의 내용대로 connect를 하니 접속이 안됩니다...

  • java
  • spring
  • aws
  • spring-boot
  • jpa
  • mysql
  • JPA
오늘내일 댓글 1 좋아요 1 조회수 447

프로젝트 생성시 이름 제한?

미해결

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

안드로이드 스튜디오에서 프로젝트 생성시 이렇게 나오는데... 이게 안드로이드스튜디오 버전에 따라 다른걸까요? 이름 방식이 틀렸다라는것으로 이해되는데 ㅠㅠ 다르게 이름을 쓰니까 또 되긴하거든요... 또 추가로 안드로이드 스튜디오에서 iOS시뮬레이터를 구동했는데 재생버튼을 누르려고 보니 계속 No device selected라고 나오네요 ㅠㅠ 재부팅도 했는데 뭔가 잘못한걸까요 항상 감사합니당

  • flutter
  • 클론코딩
  • Flutter
  • 클론코딩
mbio 댓글 1 좋아요 0 조회수 354

[에러] GoRouter 적용, 401 에러가 뜹니다

미해결

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

안녕하세요/ data big 작성일 22.09.26 18:06 조회수 28 GoRouter 프로젝트에 적용하기 / Authentication 마무리하기 강의 단계에서 서버에서 401 Unauthorized 에러가 발생합니다. 라고 글이 검색되었는데, 저도 비슷합니다. 다만 저는 로컬호스트/유저/미 로그를 클릭하면 토큰이 없다고 나오고요, 부랴부랴 포스트맨에서 로그인 포스트 해보면 리프레시토큰/억세스토큰 잘 받아옵니다 다만 그 이후에 auth/token을 하면 잘못된 토큰이라고 나오네요. 저 역시 첫 에러는 user_me_repository.g.dart, 두번째로 가리키는 곳은 user_me_provider 입니다 final resp = await repository.getMe(); 네요 강사님 코드와 일치하는 것 확인했고, 혹시나 싶어서 강사님 코드 긁어서 붙여넣기도 해봤습니다. 저 역시 아이폰 시뮬레이터에선 splash_screen 에서 멈추고 무한 프로그레스 인디케이터만 돌고 있습니다. 추가합니다 (꼼수로 /splash가 아니라 /restaurant로 initialLocation 변경한 다음에 미리 만들어놓은 로그아웃 탭으로 가서 로그아웃하고 다시 로그인 하니 되네요.. 그리고 다시 /splash 원상복구시키니 됩니다. 다만 포스트맨에서는 여전히 잘못된 토큰이라고 나오네요. 고라우터 버전은 ^4.4.2 으로 맞춰놓고 따라가고 있습니다) 또 추가합니다 맨 위에서 언급한 다른 질문글과 에러 로그는 같은데, 이런 식?으로 우회하면 되는 건가요? 그냥 순간 안맞는 경우가 있는 건가요?

  • flutter
  • 하이브리드-앱
  • Flutter
  • 하이브리드 앱
추이 댓글 1 좋아요 0 조회수 378

DB 값 질문

해결됨

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요 코틀린강의부터 코프링까지 잘 듣고 있습니다. 바로 질문 드리자면,! 1.saveUserTest2라는 테스트케이스를 한 개 더 만들어서 모든 테스트를 진행 시킨다면, saveUserTest는 통과하지만 saveUserTest2는 DB데이터가 2개 가 있어서 통과되지 못 합니다. 이럴 때는 어떻게 해야 독립적으로 DB값을 가지게 할 수 있나요? @Transactional 쓰는 rollback된다고 얼핏 들은 거 같은데 잘 모르겠네요.. 2.실제 h2 DB에는 유저가 2명이 저장이 되어 있는데 테스트환경에서는 0명인 이유는 @SpringBootTest 어노테이션이 실제 실행환경과 완전히 독립된 환경을 만들어 주어서 그런 건가요? 감사드립니다.

  • refactoring
  • spring
  • spring-boot
  • kotlin
  • 리팩토링
  • java
차가운물 댓글 1 좋아요 1 조회수 485

인기 태그

인프런 TOP Writers

주간 인기글