묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결배달앱 클론코딩 [with React Native]
push 적용중 에러
The Swift pod `FirebaseCoreInternal` depends upon `GoogleUtilities`, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies. "react": "17.0.2","react-native": "0.68.2", 사용중입니다 저런 에러가 pod intsall할때마다 나는데요 왜 그런지 알수가 없습니다.
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
강사님 강의외 질문 하나만 드려도될까요?
리액트+스프링부트 조합으로 사이드 팀프로젝트를 진행중입니다. 리액트 개발환경은 CRA명령어를 통해 구축했습니다 근데 이게 local 서버에서는 router url을 주소창에 직접입력하거나,새로고침해도 잘실행되는데요 예를들어 배포서버URL/login 같이 router url을 직접입력하거나 새로고침하면 404에러가 납니다. 구글링을 해본결과 webpack.config.js devserver 서버 사이드 설정을 하라는글이 있습니다. 근데 저희가 CRA로 개발환경을 구축해서 webpack.config.js 파일이 없는데 그러면 해결방법이 webpack을 eject해서 서버사이드설정을 하는방법밖엔 없나요? 아니면 백엔드서버에서 따로 서버사이드 설정을 할 수 있나요?
-
미해결쉽고 자연스럽게 배워보는 Javascript 입문 - 코드스쿼드 마스터즈 코스 레벨1
동영상 권한 문제
밑에 있는 라이브코딩영상이 권한이 없다면서 이렇게 뜹니다.. 왜 이런거죠??? 잘보고있는데 갑자기 못보고있습니다 ㅠㅠㅠㅠ
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Transactional 내부에서 save가 발생하는 경우 처리방법 질문드립니다
@Entity @Datapublic class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id;} @Data @Entitypublic class Order { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id; @Column(nullable = false) Product product;} @Service @RequiredArgsConstructorpublic class OrderService { private final OrderRepository orderRepo; private final ProductRepository prodRepo; @Transactional public void CreateOrderV1(){ Product product = new Product(); prodRepo.save(product); Order order = new Order(); order.setProduct(product); orderRepo.save(order); throw new RuntimeException("order 에러"); }} Product와 Order를 생성하는데 예외가 발생하면 Product와 Order 둘 다 롤백하겠다는 의도의 비즈니스 로직을 가정해보겠습니다. Repository는 JpaRepository를 상속받아서 사용하고 있습니다. DB는 MySQL을 사용하고 있고, IDENTITY 전략으로 키를 생성하는데, 위 CreateOrderV1 함수를 실행하면 에러가 발생합니다. Order는 Product를 참조하고 있기 때문에 결국 product의 save 쿼리가 DB에 전달되야 키 값을 알 수 있기 때문으로 생각했고, 아래처럼 CreateOrderV2를 생성했습니다. @Transactionalpublic void CreateOrderV2() { Product product = internalService.CreateProduct(); Order order = internalService.CreateOrder(product); throw new RuntimeException("order 에러");} @Service @RequiredArgsConstructorpublic class InternalService { private final ProductRepository prodRepo; private final OrderRepository orderRepo; @Transactional(propagation = Propagation.REQUIRES_NEW) public Product CreateProduct(){ Product product = new Product(); return prodRepo.save(product); } @Transactional public Order CreateOrder(Product product){ Order order = new Order(); order.setProduct(product); return orderRepo.save(order); }} InternalService의 CreateProduct는 결국 쿼리가 DB에 날아가야하기 때문에 REQUIRES_NEW로 트랜잭션을 분리시켜줬습니다. 그런데 이렇게 하면 CreateOrderV2에서 런타임 에러를 뱉기 때문에 롤백이 수행될 텐데, DB 테이블을 보면 order는 롤백이 됐지만 product의 경우 롤백이 되지 않습니다. 이런 현상은 결국 강의에서 원했던 상황인 '회원 데이터는 저장되고, 로그 데이터만 롤백되는' 상황에는 부합하지만, 위 예제 코드에서는 Product에 의존하는 Order를 위해서 CreateProduct 코드에 REQUIRES_NEW를 사용했기 때문에 product까지 롤백되기를 원하는 비즈니스 로직의 의도대로 동작하지 않는다고까지는 이해했습니다. 그런데 이러한 비즈니스 로직을 어떻게 처리해야할지 고민하다가 질문글 올립니다! 이렇게 Product에 의존적인 Order를 가정할 때 @Transactional 혹은 다른 방법으로든 해결할 수 있는 방법이 있을까요? 엔티티매니저를 주입 받아서 prodRepo.save 직후에 em.flush 를 호출도 해봤지만 의도대로 동작하지는 않았고(@Transactional 내부에서 em.flush 호출 관련해서 어떤 식으로 동작하는지 알아보기 위해 구글링은 해봤는데 정확한 정보는 찾기 어려웠습니다ㅠㅜ) 결국 CreateOrderV2 내에서 Product product = internalService.CreateProduct() 호출 이후 try catch로 감싸서 예외 발생 시 catch 문에서 prodRepo.delete(product) 를 호출해줘서 수동으로 롤백처럼 동작하게끔 처리하는 방법까지밖에 생각이 나지 않았습니다..ㅠ
-
해결됨탄탄한 백엔드 NestJS, 기초부터 심화까지
PositiveIntPipe 생성할때 @Injectable() 사용한 이유
안녕하세요! 강의 잘듣고있습니다.!! PositiveIntPipe pipe를 만들때도 의존성 주입을 해야하기 때문에 @Injectable()를 사용하신건가요?? 만약 맞다면 사용한 이유가 궁금합니다.!!( @Injectable 를빼도 작동이 잘되고 파이프도 의존성을 주입해야하나? 라는 궁금증이 있어서 남깁니다!) 감사합니다!
-
미해결풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
마지막날 강의에서 카트에 담긴 상품 삭제가 안되시는 분들은 참고해주세요~
client/src/graphql/cart.ts 파일에서 DELETE_CART 부분 수정이 필요합니다! [변경전] [변경후] products.ts 뺄 때랑 같은 이유로 오류가 나더라구요~ 오류나시는 분들은 참고해주세요~!
-
미해결[개념은 호옹~, 실습 빡] SQL 데이터 분석, 활용!
뻥튀기 문제
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 훈련 2번에서 배송완료 주문수가 뻥튀기 되더라구요. 그래서 다른분질문 올리셨던 것 참고해서 distinct로 쓰니까 해결되긴했는데 이 부분이 잘 이해가 안 됩니다. 중복되는 것을 없애는 것은 알겠는데 저는 이렇게 풀었는데요 JOIN이 3개 이상이 되면 뻥튀기 가능성이 있다고 보면 되는 건가요?? distinct를 쓰기로 결정하는 기준이 잘 와닿지 않네요..
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
order을 넣고 나니깐 오류가 발생합니다!
order 부분 전까지는 잘 작동하였는데 order 넣고 나니깐 포스트맨에서 받아 올 때 오류가 발생합니다 ㅠㅠ 똑같이 따라한 것 같은데 어디가 잘못된걸까요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
Test코드에 @Transaction 동작 문의
안녕하세요 , 영한님 강의 항상 잘보고 있습니다. 프로젝트를 진행하면서 궁금한 점이 생겨 혹시 도움을 받을 수 있는지 해서 문의남겨봅니다.. Service 에 @Transaction 어노테이션이 있는데 JPA repository save 를 호출하고 의도적으로 exception 을 발생시켰는데요, Test 클래스의 @Transaction 여부에 따라 결과가 제대로 확인되지 않는 점을 발견했습니다. Test 에서 findById 로 rollback 된 회원의 아이디를 조회하려고 하면, @Transaction 어노테이션이 테스트에 없다면 기대한대로 회원이 조회되지 않는데, @Transaction 을 붙이면 서비스에서 exeption 이 발생했는데도 rollback 이 되지 않은건지 테스트클래스에서 회원이 조회가 됩니다. 영속성 컨텍스트를 초기화하거나 @Transaction(readonly=true) 로 해도 마찬가지였고 , 서비스 트랜잭션 propagation 은 REQUIRES_NEW 로 트랜잭션을 분리했을 때는 롤백된 것이 확인되었는데요. 트랜잭션과 서비스가 하나의 트랜잭션으로 묶이면 서비스에서 발생한 exception 에 대한 rollback 은 일어나지 않고 마지막에 테스트가 끝날 때 rollback 이 발생하는 것인가요? 열심히 검색을 해봤는데, 힌트를 찾기 어려워 도움을 구합니다.. 물론 Test에서 findById 를 하는데 @Transactional 이 필요하지는 않지만, 그래도 붙였을 때 영향을 미치는 것이 궁금하여 문의 남깁니다.
-
해결됨코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
슬랙 초대 부탁드립니다.
acejsy@gmail.com 초대 부탁드립니다!
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
SQL문 질문
선생님 채팅방 강퇴를 구현중인데, 강퇴한사람이 해당 방 맴버가 맞는지 그리고 강퇴권한(isOwner OR isManager)이 있는지 체크하려는 sql문을 작성중입니다. SELECT `rm`.`UserId` AS `rm_UserId`, `rm`.`RoomId` AS `rm_RoomId` FROM `room_members` `rm` WHERE `rm`.`RoomId` = ? AND `rm`.`UserId` = ? AND `rm`.`isOwner` = ? OR `rm`.`isManager` = ?이렇게 sql을 짜도 될지 모르겠습니다.roomId와 userId에 인덱싱이 걸려서 먼저 처리되고 isOwner OR isManager 둘중 하나인지 확인하려고하는데, 마지막에 or 때문에 풀쿼리들어갈까봐 걱정됩니다. 저렇게 짜도 괜찮을까요?? typeorm으론 이렇습니다. const isManager = await this.roomMembersRepository .createQueryBuilder('rm') .select('rm.UserId') .where('rm.RoomId = :RoomId AND rm.UserId = :UserId', { RoomId, UserId }) .andWhere('rm.isOwner = :isOwner OR rm.isManager = :isManager', { isOwner: true, isManager: true, }) .getOne();
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
array in object... 는 어떤 식으로 재귀가 가능할까요..?
안녕하세요. 강의 덕분에 함수형 프로그래밍이 너무 재밌는 사람입니다..! 감사합니다! 최근에 fxJS 를 통해서 뭔가 만들어보자 라고 생각해서 Hacker News API 를 이용해서 여러함수들을 실행해보고있는데요! 밑의 스크린샷을 보면 객체안에 comments 배열, 또 객체 안에 comments 배열 ... 로 결국엔 하나의 HTML 표현하려고 합니다.뭔가 deppflatten 과 재귀를 사용하면 될것같다! 하고 여러 시도를 해봤는데, 도무지 좋은 정답이 생각이 안나네요..! 이와 같은 문제에 있어서 어떤 느낌으로 해결할 수있을까요??!
-
미해결부트스트랩 5(Bootstrap 5) - 기초부터 웹 프로젝트 만들기
모바일가로모드일경우와 문맥에 변화없는 클래스이름을 넣는 이유
1. 모바일(세로)에서는 정상적으로 나오는데 모바일회전해서(가로)일 경우에는 이상하게 나오는데요. 2.<div class="col-md-3 d-none d-md-block letsgo"> <div class="card card-body letsgo-card"> 클래스에 letsgo 와 letsgo-card를 넣는 이유가 무엇인가요? 위에 있는 클래스를 없애도 문맥에는 전혀 영향이 없는데요. 이유가 궁금합니다. 좋아요댓글 달기 수정한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결C# 윈폼_ 응용프로그램 개발(.NetFramework)
App.config 파일은 없는데 어디에서 추가하나요?
App.config 파일로 변경이라는데 어디에서 어떻게 변경 하면 되는지요? 수강중에 내용이 없어서 질문하기 위해서 자꾸 동영상 강의를 중단 하게 됩니다.
-
미해결타입스크립트 입문 - 기초부터 실전까지
react에서 axios 응답 데이터에 대한 타입 정의 질문
axios data 형식이 위 사진처럼 들어오는데요. 이런 경우 타입 지정을 어떻게 해야하면 좋을까요? 밑에는 제가 잘못 예상한 타입 작성이에요 axios data 배열 첫번째 요소를 제외한 이후 요소들을 useState에 담아 관리할려고 하는데 이 부분까지 참고해서 적합한 타입 지정을 알려주시면 감사하겠습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
8분쯤
1) ETag사용시 클라이언트가 캐시 메커니즘을 모른다고 하셨는데 그러면 Last-Modified사용시에는 클라이언트가 캐시 메커니즘을 알고있는건가요? 2) 혹시나 아는거라면 캐시 메커니즘을 안다고 하는게 정확히 무슨뜻인가요?
-
미해결프론트엔드 날개달기: Vue, React 배우기 전에 꼭 알아야하는 지식
화살표 함수의 this 질문드립니다!!
화살표 함수의 this는 상위의 스코프를 가리킨다. 이런 개념이잖아요?? 그래서 obj안에 obj를 만들어 거기에서 화살표함수를 통해 함수를 만들고 호출하였습니다. 상위 스코프이기에 test가 출력이 될 거라고 생각했는데 window가 출력이 되더라구요.. 왜일까요?ㅠㅠ const test = { name : 'test1', foo : { bar : ()=> { console.log(this) } } } test.foo.bar()
-
해결됨코딩으로 학습하는 GoF의 디자인 패턴
팩토리 메소드 패턴이 커맨드 패턴을 이용해서 만든 패턴이라고 볼 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 기선님, 항상 강의 잘듣고 있습니다. 다름이 아니고 커맨드 패턴 코드를 보다보니 팩토리 메소드 패턴에서 봤던 코드와 유사한 느낌이 들었는데 혹시 팩토리 메소드 패턴이 커맨드 패턴을 사용해서 만들었다고 볼 수 있을까요??
-
미해결[개념은 호옹~, 실습 빡] SQL 데이터 분석, 활용!
훈련4번과 훈련5번문 무슨 차이인가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 4. 호크가 구매한 모든 상품의 총 구매 가격은? 5. 호크가 결제한 총 금액은? 둘이 같은 말 아닌가요??
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
제로초님 너무 답답하여 질문드려요ㅠ
제로초님 안녕하세요 고민을 몇시간쨰 해보고 있는데 해결을 못하겠어서 처음으로 글을 올려봐요ㅠㅠㅜ 노드버드 하기전에 배포프로세스를 익히고자 CNA로 테스트 레포를 만들고 따라하고 있었는데요 그냥 sudo yarn start로 했을 때는 잘되서 ip 주소로도 접속이 가능한데 이런 에러가 나는데 왜이러는걸까요??ㅠ