안녕하세요. cascade는 동일한 aggregate 에 포함되는 경우에 넣는거겠죠? 저희 예제에서 delivery는 order에서 cascade로 포함했는데 만약 다른 테이블에서 delivery를 참조하고 있으면 order_delivery 라고해서 별도의 테이블을 만들어도 되겠죠? 데이터 중복이지만 ddd에서 바운더리 컨텍스트 그런 개념에서 보면 문제가 없는걸까요?
그 예전에 영한님께서 JSON으로 반환 할 때 쿼리를 통해서 얻은 값을 그대로 반환하지 말고 클래스로 묶어서 반환하라고 하셨던게 기억이 납니다. 쿼리를 통해서 얻은 결과가 예를들어 List<PersonDto> name : ~~~ age : ~~~ address: ~~ 이런식으로 되어 있을때 이 리스트를 그대로 반환하면 JSON 형식이 배열로 시작해서 그 후에 값을 수정 할 수 없다고 들었던거 같은데요!! 질문이 있습니다 저 List<PersonDto>를 감싸는 하나의 클래스를 만들때 예를 들어서 class PersonExmpleDto{ private ArrayList<PersonDto> persondto; ] 이런식으로 반환 할 때 클래스 이름을 어떻게 해야 할 지 모르겠습니다.... 쿼리를 통해서 얻은 List로 묶은 PersonDto를 하나의 클래스에서 반환하고자 할 때 클래스의 네이밍은 어떤식으로 하나요? class PersonListDto{ private ArrayList<PersonDto> persondto; } 이런식으로 하나요...??
안녕하십니까 강사님 ! 질문있습니다 :) 조금 더 개선한 방법 의 원리는 만약 인증이 들어왔을 때, Username 과 시리즈는 일치하지만 토큰이 일치하지 않으면 토큰이 해커에 의해 탈취되었다고 간주해서 모든 토큰을 삭제하는 원리인데, 조금 더 안전한 방법 도 Username 은 일치하지만 토큰이 다르면 똑같이 탈취되었다고 간주하고 모든 토큰을 삭제하면 동일하게 동작하지 않을까 하는 궁금증이 생겼습니다. 전자랑 후자 방법 둘다 해싱에 패스워드는 사용되지 않아서 복호화 된다고해도 계정이 탈취당하는 일이 없는데 굳이 시리즈를 이용하는 이유가 있을까요??
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 영한님 강의 아래 사용한 단축키에 대한 정보를 나타내는 자막? 같은건 어떻게 할 수 있나요?
안녕하세요 영한님. 영한님의 강의를 한번씩 보고 개인적으로 공부를 하면서 연습을 해오고 있는데. 수업 예제는 아니지만 궁금한 점이 생겨서 검색을 해도 잘 나오지 않아 질문을 남기게 되었습니다. --------------------------------------------------- 상품을 대여하는 기능을 작성해 보기위해 만든 클래스 입니다. 연관관계는 단방향 매핑이 좋다 말씀하셔서 단방향으로 구성을 해봤습니다. 이 클래스에 있는 user는 빌리는 사람의 클래스입니다. product 클래스 안에 상품의 주인인 User클래스를 매핑해 주었습니다. User클래스에는 매핑된 테이블이 없습니다. 이렇게 작성이 되어있고 만약 자신이 대여를 신청한 상품을 조회하고 싶은 쿼리문을 작성하고 싶은데 이렇게 작성을 했었습니다. 하지만 https://www.inflearn.com/questions/15876 이 질문의 글에 fetch 조인에 대상이 되는 곳에는 where절을 사용하면 안된다 말씀을 해주신 것을 보고 다른 방법이 떠오르지가 않아서요 .. 혹시 더 좋은 방법이 있다면 어떠한 방식으로 해결해 나가면 좋을까요? 수업예제와 다른 주제로 질문을 드려 죄송합니다.
19:00 시간에 보고 궁금한게 있습니다. JPA 실행해서 나온 sql 스크립트를 보고 수정할 부분이 있으면 수정해서 ddl 을 직접 작성하신다고 하셨는데, 수정된 ddl 에 맞게 JPA 에서도 코드를 수정해야하는걸까요? 아래 방식으로 개발이 진행되는 것이 맞는지 궁금하네요 JPA 코드작성 -> DDL 스크립트 확인 및 수정 -> DDL 직접 작성하여 DB에 반영 -> 수정된 ddl에 맞게 다시 JPA 코드 수정 -> 애플리케이션 실행 (뭔가 질문이 이상한 것 같기도한데; 이해가 어려운 부분은 편하게 말씀 부탁드립니다)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요, 최근 부하테스트를 진행하며 성능개선을 해보려하고 있습니다. 그 중 단순 DB 조회 API에 대해 테스트를 진행하고 있는데, 스레드 덤프를 확인한 결과 SessionImpl.doFlush()가 호출되는 것을 보고 트랜잭션이 끝나는 시점에 자동으로 flush가 호출되는 것을 발견했고, 때문에 readOnly 설정이란 것을 찾아서 설정하고 다시 테스트를 진행했습니다. 반복해서 테스트를 진행해 봤는데, readOnly를 설정하지 않았을때가 TPS가 높게 측정이 됩니다. 왜 그런지 알 수 있을까요.. 그림은 순서대로 readOnly를 설정하지 않았을 때와 설정했을 때 입니다. 테스트 대상 API의 코드는 아래 링크의 getMovieList() 입니다. https://github.com/hapHollys/booook/blob/main/src/main/kotlin/com/haphollys/booook/presentation/controller/MovieController.kt
물론 강의에서 사용하신만큼 로딩과 동시에 올라가지 않는다는 건 알겠는데 홀더 클래스가 가지고 있는 인스턴스는 어째서 바깥메서드에서 호출을 할 때 생성이 되는건가요? 제가 추측한 바로는 SettingsHolder라는 클래스가 innerClass인 동시에 private 이기 때문에 홀더 안의 인스턴스가 생성이 되지 않는 것 같습니다.
에러 없이 travis에서 잘 끝났는데 aws 무반응이시라는 분들은... travis.yml 파일에서 아래 내용처럼 신규 라인을 추가하시면 됩니다. deploy: provider: elasticbeanstalk edge: true <<- 이거 추가 region: "ap-northeast-2" 관련 레퍼는 아래 링크 참고하셔요 https://yayyz.github.io/2019/11/20/travis-ci-%EB%B0%B0%ED%8F%AC%EC%95%88%EB%90%A0%EB%95%8C.html https://forgiveall.tistory.com/571
안녕하세요 선생님 강의를 보다가 문제가 잘 이해가 가지 않아서 질문드립니다. PriorityQueue 문제 내용이 양의 정수 길이의 두 막대기 연결할 수 있다. x와 y의 비용을 지불한다 스틱 x + y => 이런식으로 연결하여 스틱이 하나만 남을 때까지 모든 스틱을 최소 연결 비용을 반환합니다. 인데요... 그 다음에 나오는 예시가 스틱 = [1, 8, 3, 5] 일때 1하고 3을 갑자기 더하고 그 더해진 값인 4하고 5를 더하고 이런식으로 작은 값부터 더해가시는데요... 위의 문제 내용중에 작은값부터 x 와 y를 정하여 라는 말도없는데 갑자기 이런식으로 더해가니까 이해가 되지를 않습니다..ㅠ 전반적으로 문제들이 앞뒤가 잘려있는 느낌이 듭니다. 설명 부탁드립니다.😥
좀 쓸데없는 곳에 꽂혀있는 거일 수도 있는데 new QHello("h")에서 "h"는 무슨 역할을 하나요 ? 조금 찾아보니까 static을 사용해서 QHello.hello하면 new QHello("Hello") 라고 하던데 문자로 엔티티를 찾는 용도였으면 강의에서 "h"로 넣기도 했으니까 아닌 것 같고.. intelliJ로 함수를 쫓아쫓아가보니까 한도 끝도 없어서.. 초보인 저에게는 잘 모르겠더라구요 new QHello("h")에서 "h"의 용도가 무엇일까요 ?
안녕하세요. 실무 프로젝트에서 git 경험은 없고 svn만 사용해봤습니다. 개발단계에서 svn인 경우 간략하게 아래 절차로 진행될 것 같습니다. - svn : 개발자 IDE tunck 싱크 -> 업데이트 or 커밋 -> 빌드/배포 git 경우 많은 PR이 나올 텐데.. 각각의 PR에 대해 누군가 한 명이 매번 수동으로 승인 처리를 하는지 개발단계에서 git으로 형상관리할 때 전반적인 프로세스가 어떻게 되는지 궁금합니다. 감사합니다
안녕하세요. 좋은 강의 감사합니다. 영상의 9분40초 쯤에 관한 질문인데요. 테이블은 양방향, 객체는 단방향x2개로 이루어진 구조이다보니 객체 관점에서는 연관관계 주인과 가짜 매핑 둘 다에 값을 변경해준다는 점은 이해했습니다. 이 내용 외적으로, @GeneratedValue의 IDENTITY전략은 persist() 시점에 곧바로 INSERT가 이루어진다고 했습니다. 그렇다면, 영상 9분40초 코드를보면, team객체 생성 후, member객체가 생성된 상태인데, member객체에 team값이 들어가고 INSERT가 수행됐음에도 불구하고, Team을 find하여 찾은 List<Member>에는 값이 들어있지 않습니다. 1차 캐시를 고려한다고 해도, INSERT가 되는 시점에서는 곧바로 1차 캐시 또한 반영이된다고 이해하고 있습니다. 그렇다면, Member가 INSERT되는 시점에서 team을 포함하여 1차 캐시에 등록이 됐을거라고 생각했습니다. 그럼 남은 원인은 트랜잭션이 반영되지 않아서라고 생각이되는데, 혹시 제가 생각한 추측이 맞을까요?