묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@EmbeddedId 관련 질문
안녕하세요 선생님, DDD 공부하면서 적용해보던 중 JPA 관련 궁금한 점이 생겨 질문드립니다. 애그리거트 루트에 해당하는 엔티티의 @Id 필드를 아래와 같이 작성하는 것보다, Member 엔티티 @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "members") @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String email; private String password; @Builder public Member(String email, String password) { this.email = email; this.password = password; } } 아래와 같이 값 타입을 만들어 사용하는 것이 의미상 명확하고, 다른 애그리거트에서 해당 애그리거트 루트의 Id를 참조할 때도 직관적이겠다 생각했습니다. MemberId 값 타입 @EqualsAndHashCode @NoArgsConstructor(access = AccessLevel.PROTECTED) @Embeddable public class MemberId implements Serializable { @Column(name = "member_id") private Long id; public MemberId(Long id) { this.id = id; } } Member 엔티티 @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "members") @Entity public class Member { @EmbeddedId @GeneratedValue(strategy = GenerationType.IDENTITY) private MemberId memberId; private String email; private String password; @Builder public Member(String email, String password) { this.email = email; this.password = password; } } 그런데 문제는 @Id에 해당하는 필드에 값 타입을 사용하면 @GeneratedValue가 정상적으로 동작하지 않았습니다. 찾아보니, @Id에 해당하는 필드에 값 타입이 쓰이면 복합키로 인식해 @GeneratedValue를 무시한다는 것을 알았습니다. 제가 여쭙고 싶은 질문은 다음과 같습니다. 1) 위와 같이 애그리거트 루트의 Id를 값 타입으로 만들어 사용할 때, auto_increment 기능 또한 사용할 수 있는 방법이 있는지 궁금합니다. 2) 선생님께서는 위와 같이 값 타입을 생성해 애그리거트 루트의 Id로 사용하는 것에 대해서 어떻게 생각하시는 지 궁금합니다. 항상 좋은 강의 감사합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
SPPNet 질문입니다.
강의 잘보고 있습니다. 원본 이미지에서 selective search를 진행해서 최대 2000개의 region proposal을 받고 conv를 통한 feature맵에 매핑한다고 이해를 했습니다. 그런데 원본 이미지에서 conv를 지나쳐오면서 w와 h와 완전히 줄어드는데 아무리 배율을 유지하고 2000개를 proposal했을 때 feature map 사이즈가 아무리 작아도 45 * 45는 되어야 하는데 맞는 건가요? 그리고 각 selective search로 나온 region proposal된 각각의 최대2000개 object가 마지막의 각각 svm과 regression을 통과하는 수를 합쳐서 최대 2000회가 맞나요? 마지막으로 강의 리뉴얼된 거로 새로 업로드하신다고 하셨는데 이론 부분까지도 리뉴얼이 완성된 건가요? 질문이 너무 많아 번거롭게 해드리는 거 같네요 ....ㅎㅎ
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
동일성 비교 실패
안녕하세요. 먼저 좋은 강의 만들어주셔서 감사하다는 말씀 드립니다. 동일성 비교를 제가 잘못 이해하고 있었던 것인지 모르겠지만 아래 코드가 동작하지 않습니다. 뭐가 문제일까요? 제가 이해했던 동일성 비교는 "같은 트랜젝션 내부에서는 보통 같은 영속성 컨텍스트를 가지고, 따라서 같은 컨텍스트에서 가져온 같은 id의 entity는 동일성 비교를 하여도 true를 반환한다" 라고 알고 있습니다. 그리고 이 내용을 이용해서 서비스에 있던 비즈니스 로직을 도메인으로 옮기는 작업을 하는 중이었습니다. 다음은 기존에 작성했던 코드 입니다. 이 유저가 팀의 생성자가 맞으면 팀을 삭제할 수 있다 Service.java // 유저 정보를 가져옵니다. User user = userRepository.findByEmail(SuccessAuthentication.getPrincipal(String.class)); // 삭제하려는 팀 정보를 가져옵니다. Team team = teamRepository.findById(teamDTO.getId()); // 이 유저가 팀 생성자가 아니면 Exception if (user != team.getUser()) throw new UnauthorizedException(ErrorCode.UNAUTHORIZED_VALUE); 이 코드는 정상동작하는 코드입니다. 그런데 여기서 팀에 대한 권한이 있는지 여부를 검사하는 것은 Team의 역할이라고 생각이 되서 다음과 같이 변경하였습니다. Service.java // .. 위 코드는 동일합니다. // team 이 user 에 의해서 삭제 됩니다. team.deletedByUser(this); Team.java public Team deletedByUser(User modifier) { // 팀의 생성자가 매개변수로 넘겨 받은 User Entity와 같은지 비교 후 삭제 if (this.user != modifier) throw new UnauthorizedException(ErrorCode.UNAUTHORIZED_VALUE); this.state = State.DELETED; return this; } 변경 전 코드에서는 Team 생성자가 맞을 경우 user != team.getUser() 이 코드 부분을 정상 pass 하였지만, 코드를 변경하고 나니 이 부분에서 걸립니다. => 유저가 팀 생성자라서 같은 id를 가지는 entity 객체임에도 같지 않다는 결과를 반환합니다. Service 에서 동작하던 코드를 Domain 으로 옮기고 this 키워드로 team의 user(생성자)를 참조하는 코드로 변경했을 뿐인데 동작하지 않습니다. 뭐가 문제일까요..?
-
해결됨RPA로 자동화 천재되기 (UiPath 응용편)
문의
이름이 중복되는건 안나오는거 같은데 리스트나오게 어떻게 해야되나요 영상에 나왔던 레코더 설정부분이 없어서 못했어요
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
이미지가 안 나와요
관지라모드에서 네트워크 쪽을 보니 받아온 이미지가 http://localhost:8080/uploads/basketball3.jpg로 request를 받아와서 사진이 재대로 안떠요
-
해결됨[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
confidence threshold에 관한 질문
안녕하세요. 이전 강의인 NMS에서도 궁금했는데, confidence 임계값이 어떻게 결정되는지 궁금합니다. IOU 같은 경우는 식으로 설명해주셔서 이해가 가는데, confidence 임계값인 경우에는 그런 것이 없더라구요. 좋은 강의 항상 잘 듣고있습니다. 감사합니다.
-
미해결RPA로 자동화 천재되기 (UiPath 응용편)
동일한 오류가 나와서 문의합니다
영상처럼 책제목과 가격을 뽑을려하는데 책제목은 되었지만 책가격에선 다른 날짜까지 딸려와 제대로 하기 힘듬 이럴때 어떻게 하는건지 아니면 UIPathx 자체적인 문제인지
-
미해결4시간 완성! 애프터이펙트 중급 강의
1화 속도조절 창
-안녕하세요 1화에서 속도를 조절할 수 있는 창을 열면 강의 에서 보이는 것처럼 똑같이 안뜨고 이렇게 뜨면서 흰색 그래프 수정이 안됩니다...! 혹시 이유를 알 수 있을까요?
-
미해결타입스크립트 입문 - 기초부터 실전까지
잘 되긴하는데 빨간줄이 나와서 거슬리네요
let arr = [ { gender: 'male', name: 'john' }, { gender: 'female', name: 'sarah' }, { gender: 'male', name: 'bone' }, ] var filetered = arr.filter(function(item){ if(item.gender ==='female'){ return item; } }); console.log(filetered);
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
default_batch_fetch_size의 원리가 궁금합니다!
안녕하세요 영한님! 페이징과 한계돌파 부분을 수강하면서 질문하고 싶은 내용이 생겨 남기게 되었습니다. default_batch_fetch_size=n 으로 지정할 경우, 컬렉션에서 n개씩 값을 가져오는 것으로 이해하였습니다. 코드로 그 과정을 살펴보면, List<OrderDto> result = orders.stream() .map(o -> new OrderDto(o)) 을 통해서 각각의 order를 순회하면서 OrderDto의 생성자를 호출하고, 생성자 안에서 orderItems = order.getOrderItems().stream() .map(orderItem -> new OrderItemDto(orderItem)) 이렇게 orderItem을 순회하면서 OrderItemDto를 만들고, public OrderItemDto(OrderItem orderItem) { itemName = orderItem.getItem().getName(); orderPrice = orderItem.getOrderPrice(); count = orderItem.getCount();} 최종적으로 OrderItemDto의 생성자 안에서 orderItem.getItem().getName() 를 호출하면서 orderItem과 그 안의 Item이 지연로딩되는 것으로 이해하였습니다. 그렇다면 JPA는 default_batch_fetch_size=n으로 인해 어떤 n개의 orderItem을 쿼리로 요청할지 결정해야 하는데, 이는 어떠한 방식으로 이루어지는 것인가요? 위와 같이 iteration을 돌면서 요청 보낼 orderItem의 id를 하나하나 모았다가 n개가 다 차게 되면 쿼리를 보내는 식인지, 아니면 다른 방식으로 결정이 되는 것인지 궁금합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
상속받은 ALBUM, BOOK, MOVIE 테이블 생성 SQL 확인 X, DB 업데이트 X
강의에서처럼 Book 클래스를 생성해서 값을 넣어줬을 때 ITEM 테이블이 생성되고 이 테이블에 값이 들어간 것까지SQL과 DB 확인이 되는데 상속받은 Album, Book, Movie는 테이블 생성하는 SQL 확인이 되지 않고, DB에서도 ITEM 테이블에만 데이터가 들어가고 BOOK 테이블에는 데이터가 없습니다.. 1. Item 클래스 2. Item을 상속받는 Book 클래스 3. INSERT 쿼리문 확인(Item 테이블에만 들어감) 4. DB에 저장된 모습
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
store, event bus, props&event 질문
각각 실무에서 어떤 방식으로 적용하는지 궁금합니다. store 같은 경우는 로그인한 사람의 정보에 대해 저장하는 것 같은데 event bus나 (props와 event)는 다른 컴포넌트에 전달하는데 차이점이 뭔지 궁금합니다. 실무에서 각각 어떤 상황에서 사용하는지 대략적인 분류를 말해주실 수 있으신가요?
-
미해결홍정모의 따라하며 배우는 C++
배열에서 링킹에러, 초기화에 대한 질문
Q1. 강의에서 선언된 배열의 범위 밖의 index를 선언하면 링킹에러가 뜬다고 설명하셨는데, 왜 컴파일에러가 아닌 링킹에러가 발생하는건지 궁금합니다. Q2. 배열을 초기화하지 않고 위 코드를 실행하면, 사진과 같이 -858993460이라는 고정된 값이 출력됩니다. 초기화하지 않으면 쓰레기값이 나오기 때문에, 실행될 때마다 다른 값이 출려될 거라 예상했는데 -858993460라는 수만 출력이 됩니다. 구글링해서 찾아봐도 다른 예시 코드에서도 -858993460만 출력되더라고요. 이러한 이유가 궁금합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
싱글 테이블 전략 @DiscriminatorColumn 애노테이션 생략 가능 여부
싱글 테이블 전략일 때 기본적으로 자동으로 @DiscriminatorColumn(name="DTYPE") 적용된다고 하셨는데 그러면 싱글 테이블 전략일 땐 @DiscriminatorColumn 애노테이션 자체를 생략해도 되는지 궁금합니다. 감사합니다.
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
61강 django_container_gunicorn 오류
django_container_gunicorn 생성 시 바로 죽으면서 container status 를 보면 Stopped for a few seconds with exit code 1 이게 뜹니다. start눌러도 계속 죽습니다. 그 후 502 bad gateway가 뜨면서 사이트 접속이 안됩니다. 볼륨설정도 하였고, 네트워크 설정도 다음과 같이 강의를 보고 하였는데 django_container_gunicorn을 들어가보면 CMD bash -c python manage.py migrate --settings=pragmatic.settings.deploy && gunicorn pragmatic.wsgi --env DJANGO_SETTINGS_MODULE=pragmatic.settings.deploy --bind 0.0.0.0:8000 ENTRYPOINT null 문제가 뭘까요? 볼륨을 설정했을때도 안했을때도 똑같습니다. 볼륨설정시 path in container는 WORKDIR이 /home/PycharmProjects/pragmatic/ 이라 저렇게 적었고(PycharmProject 레포지토리 안에 pragmatic프로젝트가 있음) 볼륨을 설정하지않고 만들어봐도 똑같은 현상이 나타납니다. 57강의 django_test_image:3 으로 컨테이너를 만들었을때는 작동이 되었는데.. 무엇이 문제일까요? 아, 그리고 컨테이너 로그를 보면 ModuleNotFoundError: No module named 'pragmatic.settings.deploy'; 'pragmatic.settings' is not a package 이 마지막줄에 표시되어있습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
왜 오답인지 혹시 알 수 있을까요?
import java.util.*; class Main{ public boolean isPrime(int n) { if(n==1) return false; for(int i=2;i<Math.sqrt(n);i++) { if(n%i==0) return false; } return true; } public ArrayList<Integer> solution(int n, String[] arr){ ArrayList<Integer> answer = new ArrayList<>(); for(int i=0;i<n;i++) { int temp = Integer.parseInt(new StringBuilder(arr[i]).reverse().toString()); if(isPrime(temp)) answer.add(temp); } return answer; } public static void main(String args[]){ Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String[] arr = new String[n]; for(int i=0;i<n;i++) { arr[i] = sc.next(); } for(int x: T.solution(n, arr)) { System.out.print(x+" "); } } }
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
포트에 질문이 있습니다
안녕하세요! 분명 저번시간에서 ip는 아파트 동, port는 몇호실 그런 개념이라고 말씀하셨고 포트는 자율적으로 부여할 수 있는 것처럼 들렸는데, http는 80 https는 443이런식으로 정해져 버리면 해당 사이트에선 포트를 자율적으로 선택하지 못하는건가요? 거의 반강제적으로 약속이 된거라고 보면 되는건가요?
-
미해결
반복문안에서 scanf의 쓰임을 잘모르겠습니다!!
#include<stdio.h> int main(void) { int i,n, a,max=0; scanf("%d\n", &n); for (i = 1; i<=n; i++) { scanf("%d", &a); if (a > max) max = a; } printf("%d", max); return 0; } 여기서 반복문안에 scanf가 들어가있으면 계속해서 무언가를 입력해야 되는거 아닌가요?? 최대값을 구하는 문제인데 왜 저렇게 구하는지 모르겠어요..ㅜ
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
데이터 바인딩 강의를 들으며 그대로 입력했는데 오류가 떠요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기 안녕하세요 제가 약간 이상한 오류들로 질문을 많이 드리는 것 같아 뭔가 죄송해요 질문 드렸던 내용들은 개복치개발자님 덕분에 해결했습니다. 제가 gradle module에도 바인딩 코드 입력했는데 코드를 다 입력하니 오류가 떠서요 ㅠㅠ 혹시 원인으로는 어떤 것이 있을 수 있을까요???
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
첨부파일 위치가 궁금합니다~
첨부파일은 어디서 확인하면 될까요...?