inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

repository에 관하여

미해결

Flutter 중급 2편 - 실전 앱 개발 - 미국 주식 앱 (with 클린 아키텍처)

강사님 안녕하세요~ 항상 수업 잘 듣고 있습니다! 공부를 하다보니 궁금한 점이 생겨서 이렇게 질문을 남기게 되었습니다. mvvm 패턴을 통해 개발을 할 때에는 repository를 사용하게 되는데, domain layer에서 repository 추상클래스를 만들고 data layer에서 구현하여 사용하는 이유가 뭔지 궁금합니다 ㅠㅠ

  • flutter
  • ios
  • android
박용수 댓글 1 좋아요 0 조회수 378

synchronized 와 @Transactional

미해결

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

안녕하세요 재고관리시스템 강의를 복습하며 내용을 정리하는 중 의문이 생겨 질문을 드립니다. 가장 처음에 application code 레벨에서만 동시성을 해결하기 위해 syncrhonized 를 사용할 경우 해당 메서드에는 @Transactional 을 붙여서는 안된다고 설명해 주셨습니다. 실제로 이를 붙일 경우, 동시에 decrease 메서드가 호출되고 해당 로직 내부로 들어가는 것이 가능함을 확인하였습니다. 그런데 여기서 제가 의문이 들었던 것이 있습니다. @Transacitonal 을 사용할 경우 Spring AOP 에 의해 매 번 다른 proxy 인스턴스를 통해 target object 로의 호출을 하게 됩니다. proxy 객체에 대한 lock 은 서로 다른 프록시들 사이에 공유되지 않는다고 하더라도, 내부적으로 호출되는 target 객체에 대한 decrease 메서드는 결국 동일한 객체에 대한 호출을 하기 때문에, 공유되는 lock 에 대한 경쟁이 일어나는 것이 아닌가 생각이 들었습니다. 최종적으로는 target 객체에 대한 synchronized 메서드를 호출하는 것이라면, 단 하나의 스레드만 임계 영역에 들어갈 수 있어야 할 것 같은데, 그렇지 않음을 확인하였습니다. 왜 이런 일이 일어나는 것인지 이해가 잘 되지 않습니다 ㅠㅠ 이와 관련해서 어떤 키워드로 공부해보면 좋을지 추천 가능할까요..?

  • java
  • spring
  • 동시성
  • synchronized
  • @transactional
스빈스빈별 댓글 2 좋아요 0 조회수 1315

Service에 @Transactional(readOnly=true)는 필수적으로 넣어줘야 하는 것인지 궁금합니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 클래스 영역에서 트랜잭션을 걸어두는 것이 필수적인 내용인지 궁금합니다! 실무에서도 마찬가지로 동일하게 클래스 영역에 사용해서 적용하게 되는 것일까요? 저는 작업할 때 수정이 필요한 메서드에만 @Transactional을 선언해줬었는데 이렇게 처리했던 부분들이 잘못된 부분이었던 것인지 고민이 되어 질문드리게 되었습니다. 정리하자면 클래스단에서 무조건 '@Transactional(readOnly=true)' 를 작성해주는 것을 권장한다면 그렇게 해야하는 이유가 무엇인지 궁금하고, 무조건 걸었을 때 매번 '@Transactional(readOnly=true)' 값을 작성해줘야 하는데 매번 작성하지 않을 수 있는 방법은 없을지 궁금합니다. 감사합니다!

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
chaerin920 댓글 1 좋아요 0 조회수 722

영상중 오타제보입니다.

해결됨

Flutter 앱 개발 기초

1:32 CRUD -> CURD오타있어요.

  • flutter
Jessi Jung 댓글 1 좋아요 1 조회수 230

params 질문

미해결

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

안녕하세요 코드팩토리님 연휴 잘 보내고 계신가요 다름이 아니라 GoRoute( path: 'restaurant/:rid', name: RestaurantDetailScreen.routeName, builder: (_,state) => RestaurantDetailScreen( id: state.queryParameters['rid']!, ) 위의 부분에서 일단 임시로 queryParameters를 사용하고 있지만 현재 params란 키워드가 보이지 않더군요 queryParameters와 pathParameters가 있던데 무얼 사용하는게 좋을까요 감사합니다

  • flutter
  • 하이브리드-앱
dlckdals9467 댓글 1 좋아요 0 조회수 388

tailwindcss 라이브러리 받은 후 실행이 안됩니다.

미해결

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

npm i -D postcss autoprefixer tailwind npx tailwindcss init -p 모두 작업을 마치고 /** @type {import('tailwindcss').Config} */ export default { content: [ "./index.html", "./src/**/*.{js,jsx,ts,tsx}" ], theme: { extend: {}, }, plugins: [], } index.css @tailwind base; @tailwind components; @tailwind utilities; npm run dev 를 돌리면, node:internal/process/promises:246 triggerUncaughtException(err, true /* fromPromise */); [Failed to load PostCSS config: Failed to load PostCSS config (searchPath: C:/WebStudy/WebDevelement/React/fullstack-react/front): [Error] Loading PostCSS Plugin failed: Cannot find module 'tailwindcss' 라는 오류가 뜹니다. 원인파악이 어려운데 문의드립니다!

  • react
  • redux
  • node.js
  • 웹앱
  • mongodb
코딩도니 댓글 1 좋아요 0 조회수 1903

Pagination 에 parameter를 after, count 에 덧붙여 다른것을 추가 할수 있을까요?

미해결

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

안녕하세요. pagination 을 응용하면서 추가적인 조건이 생겨 parameter를 추가하고 싶습니다. 예를 들어 restaurant 화면에서 별점이 4점 이상인것만 가져오고 싶을때 하기 함수에다 추가해야 될것 같은데 잘 않되고 있습니다. 감사합니다. @GET('/') @Headers({'accessToken': 'true'}) Future<CursorPagination<RestaurantModel>> paginate({ @Queries() PaginationParams? paginationParams = const PaginationParams(), });

  • flutter
  • 하이브리드-앱
ldsik03 댓글 2 좋아요 0 조회수 481

아이폰 시뮬레이터를 안드로이드 스튜디오 보다 위로 띄우는 법

미해결

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

강사님 안녕하세요. 강의보면 아이폰 시뮬레이터가 항상 안드로이드 스튜디오 보다 화면 위로 올라와있는데, 이 부분 어떻게 설정하는 거인지 알 수 있을까요?

  • flutter
  • 클론코딩
보로미오 댓글 1 좋아요 0 조회수 649

분산 락 질문드립니다.

미해결

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

안녕하세요 강의 잘 들었습니다! 완강하고 나서 몇 가지 궁금증이 생겨 질문드립니다. 분산 락을 "분산" 락이라고 부르는 이유가 뭔가요? Redis가 인메모리 DB이다보니 서버마다 Redis를 가지고 있어 여러 서버에서 모두 가지고 있어 분산 락이라고 부르는 걸까요? Redis가 여러 서버에 분산되어 있다보니 서로 싱크를 맞추기가 쉽지 않을 것 같은데 이런 부분은 어떻게 해결할 수 있나요? 서로 싱크가 맞지 않는다면 synchronized 키워드의 문제점처럼 여러 프로세스에서 접근할 수 있어 정합성이 보장되지 않을 것 같아서요! Redis는 인메모리 DB라 휘발성인데 서버가 다운될 경우 복구는 어떤식으로 이뤄지는지 궁금합니다!

  • java
  • spring
  • 동시성
니나니노 댓글 1 좋아요 0 조회수 567

return에 BasicScreen()인가요?

미해결

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

안녕하세요. 1분 30초 부터 named 페이지를 설정해 주시는데 새로운 GoRoute를 만들고 path와 name은 named와 관련된 것으로 해주셨습니다. 그런데 return을 NamedScreen이 아니라 BasicScreen으로 해주셨는데 의도하신건지 궁금해서 질문 남깁니다!

  • flutter
  • 하이브리드-앱
Reach 댓글 1 좋아요 1 조회수 323

Rating pagination

미해결

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

다이나믹 에러가 아닌 저는 flutter: DioError [DioErrorType.other]: Invalid argument(s): Unsupported scheme '' in URI //http//127.0.0.1:3000/restaurant/5ac83bfb-f2b5-55f4-be3c-564be3f01a5b/rating/?count=20 이런에러가 나면서 평점 ui가 안보입니다 ,, ㅠㅠ

  • flutter
  • 하이브리드-앱
혁이 댓글 1 좋아요 0 조회수 246

리눅스 mysql 설치 오류 뜨시는 분들

해결됨

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

저도 설치할 때 아래와 같은 문제가 발생 했었는데요 Error: Problem: conflicting requests - nothing provides libcrypto.so .10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libssl.so .10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libcrypto.so .10( libcrypto.so .10)(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 ...... 아마존 리눅스 2023을 쓸 때는 el9 버전 레포지토리를 사용해주어야 한다고 합니다! [ wget dev.mysql.com/get/mysql80-commuity-release-e17-5.noarch.rpm rpm -ivh mysql-community-release-e17.5.noarch.rpm ] 이렇게 작성하던 부분을 [ sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm sudo dnf install mysql-community-server ] 이렇게 작성하시면 잘 설치 돼요! 출처: https://dev.classmethod.jp/articles/ec2-mysql-install-confilicting-requests-error-kr/

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
한지면 댓글 3 좋아요 8 조회수 5494

Geolocator.distanceBetween 값이 맞지 않는데 이유를 모르겠네요

미해결

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

위와 같이 코드 작성했는데, Geolocator.distanceBetween 함수에서 돌아오는 값이 너무 크네요... 도저히 모르겠습니다 알려주세요~

  • flutter
  • 클론코딩
hyeon 댓글 2 좋아요 0 조회수 475

페이지간 Route

해결됨

Flutter 앱 개발 기초

안녕하세요, 강의 잘 듣고 있습니다. 페이지가 별로 없으면 main.dart안에 여러페이지가 있어도 문제는 없을꺼 같은데, 많아질 경우, 다른 dart파일에 페이지를 추가로 만들고 페이지간 이동을 할 수 있을까요. 방법이 궁금합니다. 감사합니다. https://open.kakao.com/me/devstory로 문의주시면 더 빠르게 답변 받으실 수 있어요 :)

  • flutter
Namwoong Kim 댓글 1 좋아요 1 조회수 303

배운내용 정리 질문

미해결

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

안녕하세요 코드팩토리님 배웠던 내용들이 너무 많아 강의를 돌려보면서 보기가 조금 어려운데 출처를 밝히고 블로그에 내용을 기록해도 될까요

  • flutter
  • 하이브리드-앱
dlckdals9467 댓글 1 좋아요 0 조회수 292

redirect: authStateProvider._redirectLogic 빨간줄

미해결

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

아래와 같은 코드인데 redirect부분에서 빨간줄이 나는데 뭐가 문제일까요 import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:gorouter_practice/model/user_model.dart'; import 'package:gorouter_practice/screen/login_screen.dart'; import 'package:riverpod/riverpod.dart'; import '../screen/1_screen.dart'; import '../screen/2_screen.dart'; import '../screen/3_screen.dart'; import '../screen/error_screen.dart'; import '../screen/home_screen.dart'; final routerProvider = Provider<GoRouter>((ref){ final authStateProvider = AuthNotifier( ref: ref ); return GoRouter( initialLocation: '/', errorBuilder: (context,state){ return ErrorScreen( error: state.error.toString()); }, // redirect 주소가 잘못됐을때 올바른 주소로 연결 redirect: authStateProvider._redirectLogic, // refresh 새로고침, 상태가 변경할 때마다 redirect실행 refreshListenable: authStateProvider, routes: authStateProvider._routes ); }); class AuthNotifier extends ChangeNotifier{ final Ref ref; AuthNotifier({ required this.ref, }){ ref.listen<UserModel?>( userProvider, (previous, next) { if(previous!=next){ notifyListeners(); } } ); } String? _redirectLogic(GoRouterState state){ //UserModel의 인스턴스 or null final user = ref.read(userProvider); //로그인을 하려는 상태인지(location은 현재 위치를 가져옴) final logginIn = state.location == '/login'; //유저 정보가 없다 - 로그인한 상태가 아니다 // //유저 정보가 없고 //로그인하려는 중이 아니라면 //로그인 페이지로 이동한다. if(user == null){ //로그인을 시도하려는 상태면 null 반환 로그인페이지 위에 로그인페이지가 쌓이는걸 방지하기 위해 return logginIn ? null : '/login'; } //유저 정보가 있는데 //로그인 페이지라면 //홈으로 이동 if(logginIn){ return '/'; } //가려는 페이지로 보내줌 위의 로직은 일종의 필터 역할 return null; } List<GoRoute> get _routes => [ GoRoute( path: '/', builder: (_,state) => HomeScreen(), routes: [ GoRoute( //라우트안에 라우트를 넣으면 슬래시를 안넣어도됨 path: 'one', builder:(_,state) => OneScreen(), routes: [ GoRoute( //http://....../one/two 위의 페이지들이 다 깔림 //라우트안에 라우트를 넣으면 슬래시를 안넣어도됨 path: 'two', builder:(_,state) => TwoScreen(), routes: [ GoRoute( //http://....../one/two/three 위의 페이지들이 다 깔림 //라우트안에 라우트를 넣으면 슬래시를 안넣어도됨 //name으로 이름으로 이동 가능 중복x name: ThreeScreen.routename, path: 'three', builder:(_,state) => ThreeScreen(), ) ] ) ] ), GoRoute(path: '/login',builder: (_,state)=>LoginScreen()) ] ), //http://...../three -> 깔리지 않고 독립적으로 존재 GoRoute( path: '/three', builder:(_,state) => ThreeScreen(), ) ]; } final userProvider = StateNotifierProvider<UserStateNotifier,UserModel?>( (ref) => UserStateNotifier() ); //로그인한 상태면 UserModel 인스턴스 상태로 넣어주기 //로그아웃 상태면 null 상태로 넣어주기 class UserStateNotifier extends StateNotifier<UserModel?>{ UserStateNotifier(): super(null); login({ required String name }){ state = UserModel(name: name); } logout(){ state = null; } }

  • flutter
  • 하이브리드-앱
dlckdals9467 댓글 1 좋아요 -1 조회수 515

DTO에 Entity 포함

해결됨

실전! Querydsl

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. public class MemberTeamDto { private Member member; private Team team; @QueryProjection public MemberTeamDto(Member member, Team team) { this.member = member; this.team = team; } } 이런식으로 DTO에 엔티티를 직접 포함해도 되나요?? 실행은 잘되는거 같은데 이렇게 활용해도 되는지 궁금합니다

  • java
  • jpa
11 댓글 1 좋아요 0 조회수 1567

ios simulator 고정방법

해결됨

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

안녕하세요 강의하실때보면 ios simulator를 안드로이드 스튜디오에 고정시키신거 같은데 저렇게 어떻게하죠? 스튜디오 전체화면풀고 simulator를 올려놔도 스튜디오를 다시 클릭하면 가려지더라구요

  • flutter
  • 클론코딩
박지훈 댓글 1 좋아요 0 조회수 1004

대단하십니다!

해결됨

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

node.js 서버는 선생님이 직접 구현하신거에요? ㄷㄷ

  • flutter
  • 하이브리드-앱
동한 댓글 1 좋아요 0 조회수 336

실습1 - Dart 문법 Q9의 코드 관련 문의

해결됨

Flutter 앱 개발 기초

List<String> removeFruit(List<String> fruits, String target) { // 여기에 작성해 주세요. for(int i=0; i<fruits.length; i++){ if(target == fruits[i]) fruits.remove(fruits[i]); } return fruits; } 상기 처럼 새로운 변수를 선언하지 않고 target 변수와 일치하는 멤버를 삭제하고 다시 fruits를 돌려주는 방식으로 생각을 해봤습니다. 그런데 아래 테스트 코드의 사과 2번으로 이어진 부분에서 사과 멤버 1개가 삭제되지 않고 출력되어 오류가 발생되더라구요. assert(eq(removeFruit(["바나나", "사과", "딸기", "사과", "사과", "딸기"], "사과"), ["바나나", "딸기", "딸기"])); 어떤 논리적인 문제인 것 같은데 원인 찾는데 어려움이 있어 문의를 드립니다. 감사합니다.

  • flutter
frogmant 댓글 1 좋아요 1 조회수 266

인기 태그

인프런 TOP Writers

주간 인기글