inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

JPA 연관관계 질문입니다.

미해결

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

안녕하세요! 강의는 다 들었는데 JPA 공부를 하다가 궁금한점이 있어서 질문을 남겨봅니다. 현재 User 와 UserLoanHistory 는 1:N 관계이고, User쪽에 cascade 옵션이 걸려 있는데요. 그러면 User 가 삭제되면 UserLoanHistory 가 삭제될 때 User 와 연관관계가 있는 히스토리의 개수만큼 delete 쿼리가 나갈거 같은데요. 뭔가 비효율적인거 같다는 생각이 들어서 찾아보니 1:N 에서 N 쪽에 @OnDelete(action = OnDeleteAction.CASCADE) 옵션을 주어서 디비단에서 해결하는 방법이 있는거 같긴한데 이걸 쓰는게 맞을지 고민이 되서 질문드립니다. 이 옵션은 왠지 위험해 보이는데... 그럼 cascade 옵션을 안쓰고 respository 에서 deleteAllInBatch 로 N 쪽을 지우고 1을 따로 지우는게 나을지... 질문을 정리해보자면 1:N 관계에서 1을 삭제시 delete 쿼리가 N개 만큼 나가서 비효율적일거 같음 N쪽에 @OnDelete 옵션을 줘서 디비에 외래키 cascade delete 옵션을 주는게 나을지? 수동으로 N쪽을 삭제하고 1 을 삭제하는게 나을지? 어떤쪽이 더 좋은 선택인지 고민인데 좋은 의견 주시면 감사하겠습니다.

  • kotlin
  • spring-boot
  • java
  • spring
  • refactoring
opensesame 댓글 1 좋아요 1 조회수 992

findOne 에러코드

미해결

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

회원가입 TEST부분에서 findOne 부분을 스택틱으로 선언하라는 에러코드가 뜨는데요 MemberService 부분에서 public Optional<Member> findOne(Long memberId) { return memberRepository.findById(memberId); } 잘정의했습니다!

  • MVC
  • java
  • spring
  • spring-boot
이우연 댓글 1 좋아요 0 조회수 307

권한요청드립니다.

미해결

Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex

인프런 아이디 : 인프런 이메일 : 깃헙 아이디 : 깃헙 Username:

  • vuex
  • vuejs
  • es6
  • javascript
댓글 1 좋아요 1 조회수 265

Merge 사용시 임시테이블 사용 가능 유무 문의

해결됨

SQL Server 컨설턴트가 알려주는, 쿼리 능력 레벨업(고급 T-SQL 쿼리)

실무에서 MERGE를 사용해보려고 임시테이블에 MERGE를 적용하였더니 오류가 계속 발생 하였습니다. 혹시 MERGE는 임시테이블에서는 사용할 수 없는 건가요?

  • sql
shchoi 댓글 1 좋아요 0 조회수 347

ssh 서버 실행 시 에러

미해결

Jenkins를 이용한 CI/CD Pipeline 구축

안녕하세요? ssh 서버 실행 시 Conflict, The container name "/docker-server" is already in use by container "4a08bbeafb65" 라고 에러가 나오네요. 명령어는 아래와 같이 입력했고 docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgorup:/sys/fs/cgroup edowon0623/docker:latest /usr/sbin/init docker ps 라고 입력 시 아무것도 안나오는데 docker ps -a 입력하면 위의 4a08bbeafb65 가 Created 상태입니다. 인터넷 찾아보니 삭제하고 해보라고 해서 해 봐도 안되네요. 윈도우 10 사용자입니다. 위 그림은 실행 상황입니다. 두 번째 그림은 docker desktop 에서 실행하려고 할 때도 같은 메시지가 나옵니다.

  • cicd
  • sonarqube
  • ansible
  • kubernetes
  • jenkins
diaman75 댓글 2 좋아요 0 조회수 551

Cannot read properties of undefined (reading 'getters') 에러

미해결

Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념

강의 내용을 따라가면서 vscode 에서 에러는 안뜨지만, 위와 같이 view 가 안뜨고, AskView 에서만 error 가 콘솔됩니다. vue 2 이고 스토어 속성 모듈화 이전에도 view 표시가 안되었습니다.

  • javascript
  • vuejs
lkj26 댓글 1 좋아요 1 조회수 1109

PaginationListView에서 제네릭 관련

해결됨

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

안녕하세요. 코팩님! [고급 캐시관리] 파트의 PaginationListView와 PaginationWidgetBuilder에서 제네릭을 처리하는 부분에 있어 타입 추론이 명확하게 되지 않는 부분이 있습니다. class PaginationListView<T extends IModelWithId> extends ConsumerStatefulWidget { final StateNotifierProvider<PaginationProvider, CursorPaginationBase> provider; final PaginationWidgetBuilder<T> itemBuilder; ... @override ConsumerState<PaginationListView> createState() => _PaginationListViewState<T>(); } class _PaginationListViewState<T extends IModelWithId> extends ConsumerState<PaginationListView> { ... 여기서 _PaginationListViewState 클래스는 ConsumerState<PaginationListView>를 상속 받으면서 정확하게는 ConsumerState<PaginationListView<dynamic>>을 상속하게 됩니다. 이로 인해 State클래스 내부에서 호출하는 itemBuilder는 PaginationWidgetBuilder<dynamic>으로 동작하여 실제 사용하는 코드 부분에서 itemBuilder 파라미터에 빌더 작성시 일반적으로는 아래와 같은 에러가 발생합니다. type '(BuildContext, int, RestaurantModel) => Widget' is not a subtype of type '(BuildContext, int, IModelWithId) => Widget' 이에 builder Function 앞에 강의 내용처럼<RestaurantModel>을 선언하여 에러를 회피할 수 있지만, 이럴 경우 빌더에 전달되는 파라미터는 전부 dynamic으로 추론되는 것을 확인했습니다. 그리고, 새로운 익명함수를 정의하는 형태라 그런지 앞에 <RestaurantModel>가 아닌 아무 의미 없이 <ABC>를 적어도 빌드나 실제 앱 동작에 아무런 문제가 없습니다. 그래서 빌더 함수 내부에서 model. 을 입력하더라도 dynamic 이기 때문에 실제로 목표로 하는 모델의 속성들이 자동완성 제안이 되지 않고 런타임에서 대입됩니다. class _PaginationListViewState<T extends IModelWithId> extends ConsumerState<PaginationListView<T>> { ... 위와 같이 State 클래스에서 선언한 제네릭 T를 이용해서 PaginationListView<T>의 ConsumerState 임을 명시했을 때, State클래스 내부의 itemBuilder가 PaginationWidgetBuilder<T>로 잘 동작했습니다. 타입이 명확하므로 builder Function에 <RestaurantModel>을 쓰지 않아도 정확한 타입을 전달해줬습니다. 마찬가지로 final StateNotifierProvider<PaginationProvider, CursorPaginationBase> provider; 이 부분도 제네릭을 명시해야 실제 해당 뷰의 모델에 맞는 프로바이더만 주입 가능하기 때문에 더 나을 것 같습니다. dynamic이 넘어오는게 의아해서, 혼자 이리저리 해보면서 궁금증을 해결했는데 강의에 괜찮은 피드백이 될까 싶어서 글 남깁니다 :) 좋은 강의 감사드립니다. 내용이 좋아서 시간 가는 줄 모르고 꾸준히 듣고 있네요!

  • Flutter
  • 하이브리드 앱
Tykan 댓글 1 좋아요 3 조회수 244

CI/CD제가이해한게 맞을까요

미해결

React + API Server 프로젝트 개발과 배포 (CI/CD)

안녕하세요. 해당 강의 들은 이후 제가 이해한 바로는 git main브랜치가 변경 된다면 action이 발동되어서 푸시한 내용이 자동으로 홈페이지에 적용되는것으로 이해했는데요. 코드를 수정 후 푸시를 해보았을때 자동으로 ec2코드에서 변경이 되지 않습니다. 이건 private repo라서 그러는 것일까요 ?

  • cicd
  • SPA
성민최 댓글 1 좋아요 0 조회수 360

stockApi 질문 드립니다.

미해결

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

getListings는 http.Response를 반환하고 impl에서 null을 필터링하고, getCompanyInfo 는 dto클래스를 반환하고 impl에서 필터링해 주었습니다. 전자와 후자 차이는 로컬 캐시를 사용하냐 안하냐로 이해해도 될까요?

  • ios
  • Flutter
  • android
atomom 댓글 1 좋아요 0 조회수 202

SRP

미해결

[React 1부] 만들고 비교하며 학습하는 React

선생님 이 특수화라는 방법을 이용해서 List컴포넌트가 적어도 3가지일을 하고 있는듯이 보이는데 이것은 SRP에 위배되는 것이 아닌가요? 프런트 엔드 개발에서 조건부 렌더링이 필수불가결하다고 하지만 지양하는게 좋은건지 그냥 맘편히 사용해도되는건지 잘 모르겠습니다.

  • MVC
  • react
Yoon Geon-ung 댓글 1 좋아요 0 조회수 264

vagrant up 시 오류

미해결

대세는 쿠버네티스 (초급~중급편)

이런식으로 vagrant up 중 진행이 되지 않고, 완전히 꼬임이라고 표시가 계속 됩니다.. 어떻게 해결할 수 있나요?

  • docker
  • kubernetes
lee.sihyun 댓글 2 좋아요 1 조회수 502

DPRAM 구현하고 핀 할당 방법 문의

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하십니까? BRAM 영역에 DPRAM을 구현하고, DPRAM의 왼쪽은 FPGA 외부와 인터페이스를 하고, 오른쪽은 FPGA 내부 PS영역에 연결하고 싶습니다. 이를 위한 PIN MAPPING 방법에 대해서 알고 싶습니다. 지금 영상을 보면서, DPRAM 구성을 해 보고 있는 상태입니다.

  • bram
  • fpga
  • dpram
  • pin
  • 임베디드
  • map
jobaek78 댓글 1 좋아요 1 조회수 666

강의자료 PDF파일 부탁드립니다~

미해결

마케터를 위한 구글 애널리틱스 실무

안녕하세요 교육 잘 듣고있습니다 PDF 보면서 같이 들을려고하는데 alex@minted-lab.com PDF자료 보내주시면 감사하겠습니다~

  • 퍼포먼스 마케팅
  • Google-Analytics
  • 디지털 마케팅
reechew Kim 댓글 1 좋아요 1 조회수 205

db sequelize 동기 처리 질문

미해결

[리뉴얼] React로 NodeBird SNS 만들기

db.sequelize.sync() .then(() => { console.log('db 연결성공') }) .catch(console.error) 선생님 여기서 비동기처리하는 async가 아닌 동기 sync를 사용하 그후에 then을 사용하는 이유가 있을까요 보통 async하고 나서 then 처리하는 방식은 많이 봤는데요 문득 강의 진행중 궁금해서 질문드립니다. 선생님 추가로 회원가입 완료되면 초기화면 으로 돌아가는 로직 구현하는곳에서 문제가 있는데 useEffect(() => { if (signUpDone) { Router.push('/') } }, [signUpDone]) 회원가입 완료되면 signUpDone 이 ture로 변해서 이제 다시 회원가입 화면으로 접근이 안되는데 따로 또 액션 만들어 주어야하는건가요 선생님이 만드신 사이트는 정상 작동하던데 어떤 방식으로 구현하셨는지 궁금합니다. 아니면 강의 후반에 이 로직문제 해결하는게 나오나요?

  • express
  • react
  • nodejs
  • redux
  • Next.js
uphoon 댓글 1 좋아요 0 조회수 292

3-5 연속된 자연수의 합

미해결

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

문제를 직접 풀며, 강의에서 진행되었던 코드를 순서를 조금 변경하면 가독성있고, 조금 더 간결한 코딩을 완성할 수 있지 않을까 하여 강사님 확인을 받고싶어 남깁니다. --강의 solution 메서드 public static int solution (int n) { int answer = 0, sum=0, lt = 0; int m = n/2+1; int[] arr = new int[m]; for(int i =0; i<m; i++) arr[i] = i+1; for(int rt = 0; rt<m; rt++) { sum+= arr[rt]; if(sum == n) answer++; while(sum>=n) { sum-=arr[lt++]; if(sum==n) answer++; } } return answer; } --학생 작성 solution 메서드 public static int mySolution (int n) { int answer = 0, sum = 0, lt = 1; for(int i =1 ; i<=n; i++) { sum+=i; while(sum>n) sum-=lt++; if(sum==n) answer++; if(i>(n/2)) break; } return answer; } sum을 먼저 체크하여 lt를 차감 후 answer에 합산하는 순서가 조금 더 간결하지 않을까요?

  • 코테 준비 같이 해요!
  • java
최예은 댓글 1 좋아요 0 조회수 170

피해 받는 비율 계산 과정이 이해가 안 갑니다.

미해결

[따라하면 취업되는 게임기획]MORPG 게임밸런스 기획

전투 공식에 대한 설명 중 방어력을 구하는 과정에서 [2번 스텝] 피해 받는 비율 = {(방어력 + 방어상수)/(방어력 + 방어상수)}-{방어력/ (방어력+방어상수)} 에서 [3번 스텝] 피해 받는 비율 = 방어상수/방어력+방어상수 으로 된다고 설명해주셨는데 괄호 순서대로 계산하면 수식을 풀기전인 1 - (피해흡수량) 과 같지 않나요? '피해 받는 비율 = 1 - (방어력 / (방어력+방어상수))' 에서 어떻게 '피해 받는 비율 = 방어상수/방어력+방어상수' 으로 계산되는지 구체적인 계산 과정이 궁금합니다.

  • 게임기획
숲지훈 댓글 1 좋아요 0 조회수 888

여러 엔티티 중 일부만 detach 했을 경우 발생하는 에러에 대해 궁금합니다

미해결

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

안녕하세요 detach 관련 코드를 이리저리 수정해보던 중 @Test void batch() { Member test1 = new Member(10L, "test1"); Member test2 = new Member(20L, "test2"); em.persist(test1); em.persist(test2); em.detach(test1); em.detach(test2); test1.setName("test11"); test2.setName("test22"); em.flush(); } 와 같이 엔티티 두개를 모두 detach로 준영속 상태로 만들 경우 테스트가 정상적으로 살행이 됐으나 @Test void batch() { Member test1 = new Member(10L, "test1"); Member test2 = new Member(20L, "test2"); em.persist(test1); em.persist(test2); em.detach(test1); // em.detach(test2); test1.setName("test11"); test2.setName("test22"); em.flush(); } 처럼 하나만 detach를 했을 경우 처럼 non-threadsafe access 라는 에러가 뜨는데 구글링 해본 결과 영속성 컨텍스트의 thread-safe 관련 내용이 나오는데 혹시 이와 관련이 있어서 발생하는 현상인지 궁금합니다.

  • JPA
  • java
KoorunG 댓글 1 좋아요 0 조회수 300

인기 태그

인프런 TOP Writers

주간 인기글