안녕하세요 선생님 좋은 강의 해주셔서 감사합니다. 댓글 create 구현에서 findParent() 함수를 구현할때, .filter(Comment::isRoot) 이런 코드가 있는데, 애초에 parentCommentId 에 root 댓글이 아닌 댓글의 ID가 존재하면 안되는 것 아닌가요 ? 존재하면 안되는 경우를 filter 로 걸러주는 것 같아서 필요한 코드인지 의문이 들어 질문 남깁니다.
안녕하세요? 존경하는 토비님 작은 질문하나 드리겠습니다. 회원 애플리케이션 기능 추가의 25:00~26:00 에서는 MemberFinder 인터페이스를 정의하고 기존 MemberService에 혼재된 멤버 조회로직을 CQRS에 따라 구현클래스를 분리했습니다. 그리고 이를 MemberModifyService에서 사용하고 있습니다. 말씀 주신 것처럼 단순히 조회이고 변경이 없다는 가정하에 이처럼 인터페이스를 정의하고 이를 통해 사용을 하는 것은 잘 이해가 됩니다! 다만 저는 같은 계층에서 있는 서비스 빈이 서로를 의존하지 않는 방향으로 개발을 해오고 있었는데요. 그래서 토비님의 방식에 대해 공부하면서 같은 계층에서 인터페이스 포트를 통해서 호출하는 것은 괜찮을까 고민이 들었습니다. 만약 그게 설계적으로도 문제가 없다면 앞으로도 토비님의 방식으로 개발하고 싶은데요. 분명 토비님께서 오랫동안 고민하신 개발 원칙/기준이 있을 것 같아서 여쭤봅니다. 같은 계층에 있는 애플리케이션 서비스 빈이 서로를 의존, 또는 인터페이스를 통해 사용되는 경우 지켜야할 기준이나 원칙이 있을까요? *추신 저는 토스의 김재님의 [블로그]( https://geminikims.medium.com/%EC%A7%80%EC%86%8D-%EC%84%B1%EC%9E%A5-%EA%B0%80%EB%8A%A5%ED%95%9C-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%EB%A5%BC-%EB%A7%8C%EB%93%A4%EC%96%B4%EA%B0%80%EB%8A%94-%EB%B0%A9%EB%B2%95-97844c5dab63 )를 접해서 위와 같이 개발해오고 있었습니다. 저는 계층을 하나 두고 유틸성 빈을 만들고 이를 사용하게끔 했습니다. (블로그내용 아래 일부 발췌) > 네 번째 규칙 동일 레이어 간에는 서로 참조하지 않아야 한다. (다만, Implement Layer 는 예외적으로 서로 참조가 가능합니다.)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 항상 강의 잘 듣고 있는 학생입니다. 다름이 아니라 강의자료에 "OSIV ON 사진" 을 보시면 Filter Interceptor, View, Controller는 영속 상태임에도 불구하고 수정 불가능이라고 적혀 있습니다. 제가 지금까지 알고 있는 바로는 영속성 컨텍스트가 존재한다는 것은 데이터베이스 커넥션을 갖고 있다는 뜻이라 위 3개의 파트에서 데이터 수정이 발생하면 Flush를 통해 데이터 수정이 가능한거 아닌가요 ? 혹시 제가 사진의 내용을 잘 못 이해한건지 아니면 위 내용을 잘 못 이해한건지 궁금해서 질문 드립니다. 감사합니다. 무더위 조심하세요 !
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 혹시 나온지가 좀 된 강의인데 지금들어도 버젼이라든지 상관없을까요?
안녕하세요. bulk insert 관련해서 궁금한점이 있습니다. 사실상 데이터베이스를 다룰 때 IDENTITY를 거의 사용할 것이라고 생각합니다. 이럴 경우 bulk insert를 어떻게 처리해야 될 지 궁금합니다. 다른 질문에 답변을 봤을때 책에 나온 쓰기 지연같은 경우도 IDENTITY에서는 안되는 것이라고 알고 새로운 질문을 드립니다. IDENTITY 키를 가진 엔티티들 bulk insert를 하기 위해 JdbcTemplate가 최선이다 까지 이해했습니다. 예를 들어 상품을 등록할때 상품과 카테고리들 이미지들을 저장한다고 생각해보겠습니다.(각각 다른 테이블 및 1:N) 이런 경우 상품에 새로운 엔티티들을 만들고 save를 호출할 경우 IDENTITY를 가진 엔티티들이니 각 쿼리들이 따로 다 날라갑니다. 그래서 JdbcTemplate를 사용해 카테고리들과 이미지들을 batch insert할 경우 기존 엔티티에 정보를 어떻게 관리하는지 궁금합니다. jdbcTemplate로 bulk insert한 경우 id를 받아오지 못하는 것으로 알고 있는데, 이런 경우 jdbcTemplate으로 값을 넣은 후에 기존 상품 엔티티에서 카테고리 혹은 이미지들에 접근할 경우 lazy 기능이 동작하지 않을 것이라 생각되는데 실무에서는 bulkInsert하는 경우 lazy하는 값에 접근하지 않는다. 이런 약속을 정해놓고 개발하시는건가요? 아니면 batchInsert로 넣는 값들은 내부에서 가지고 있지 않고 추후에 조회할때 조인도 사용하지 않으시나요? 질문 의도는 결국 IDENTITY인 경우 batch insert를 어떻게 해야 좋은 것이고, 만약 jpa에서 처리가 안될 경우(JdbcTemplate 등을 사용) 영속성 컨텍스트와 어떻게 문제가 생기지 않고 처리하시는지 궁금해 질문드렸습니다. 제 짧은 생각으로는 어떻게든 영속성 컨텍스트 문제가 생길 것 같은데, 실무에서는 그럼 이런 엔티티는 드무니까 save 코드 주석으로 특정 lazy 값에는 접근하지 말라는 내용을 써놓고 컨벤션 느낌으로 개발하시는지도 궁금합니다. jpa, data jpa와 querydsl 강의를 모두 수강하였기 때문에 jpa에서만 국한되어 답변해주시지 않고 data jpa, querydsl, JdbcTemplate 혹은 다른 방법 어떤 내용을 포함해주셔도 공부하고 이해할 수 있습니다. 항상 좋은 강의 감사드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] @Repository 어노테이션을 처음 보는데 어느 강의에서 자세하게 볼 수 있을까요??
강의 영상 24분쯤 fetch join은 페이징 처리가 불가능하다고 말씀해주셨는데(사용하게 될 시 메모리에 임시로 모든 데이터 적재 후 페이징 처리로 설명), 페이징을 하지 않을 경우에도 Order rows가 1만건 이라면 1만건 모두 조회되는 것 아닌가요? 이럴 때도 메모리에 대한 문제가 있을 것 같은데 제가 잘못 이해한 것인지 설명 부탁드리겠습니다!
안녕하세요 선생님. 33분 대 자바 문제에서 제가 이해한 바가 맞는지 궁금해 질문 드립니다. ------------------------------------ 업캐스팅 되지 않은 상태로 obj가 태어났고 child() 생성자를 찾으러 올라갔고, 업캐스팅 여부와 상관 없이 새로 객체가 태어나게 되면 child()를 실행하기 전에 -> 자동으로 parent()로 올라가게 됩니다. parent() 안에 있는 this(500)으로 인해 parent(500)을 실행하게 되고, parent의 int x가 100에서 500으로 바뀝니다. 그리고 다시 child()로 돌아와서 this(5000) -> child(5000) -> child.x는 4000에서 5000으로 바뀌게 됩니다. 다시 메인으로 내려와서 system.out.println(obj.getX())를 실행하게 되고 child 클래스에는 getX가 없기 때문에 parent 클래스로 올라가서 getX()를 찾습니다. 그래서 return x로 인해 parent의 500을 답으로 돌려주게 됩니다. --------------------------------- [질문] 1. 제가 위에 적어놓은 풀이과정이 맞나요? 2. 업캐스팅 여부와 상관 없이, 업캐스팅 됐든 되지 않았든 새로 객체가 태어나게 되면 child()를 실행하기 전에 -> 자동으로 parent()로 올라가게 되나요? 3. 만약 Child obj2 = new Child(300) 이렇게 태어나게 되면 Child(int x)로 올라갔다가 -> 자동으로 Parent(int x)로 올라가게 되나요? 아니면 이 경우는 기본생성자 형태가 아니기 때문에 super로 부모를 명시해야 하나요? 4. system.out.println(obj.getX())를 실행할 때, child 클래스에 getX가 있었다면 메서드 오버라이딩으로 인해 parent 클래스로 올라가지 않나요? 질문이 너무 많은 거 같은데 죄송합니다.. 다시 한 번 개념을 정립하고 싶어 길게 질문드렸습니다. 답변 주시면 감사하겠습니다..
안녕하세요 선생님. 항상 강의 잘 듣고 있습니다! 다름이 아니고 빈칸 채우기 정렬 문제에서 2번에 nx가 아니고 5라고 써도 정답 처리가 될까요?? 문제에서는 a[]의 길이가 5이고 해당 문제에서는 이미 문제가 명시되었기 때문에 다른 배열이 올 수가 없는 상태이니 5라고 적어도 되지않을까 궁금합니다!
현재 Member 도메인 모델 확장 까지의 수업을 듣고 궁금한 것이 있습니다! 저희가 이번 수업을 포함하여 지금까지 요구사항(도메인) -> 도메인 모델(회원) -> 비밀번호 해시 라는 일련의 과정을 통해 비밀번호 암호화와 관련한 도메인 모델의 규칙, 속성, 행위 등을 뽑아냈기 때문에 비밀번호 암호화까지 도메인 로직에 포함된다고 이해했습니다. <인터페이스 위치를 결정하는 기준에 대해> 해당 답변에서도 PasswordEncoder를 어디에 둘지 결정할 때 사용한 기준은 도메인 모델을 이야기할 때 이게 등장하는가 라고 말씀해주시기도 했고요! 그렇다면 개발은 결국 요구사항을 토대로 진행되는 것이기에 모든 코드가 도메인 로직으로 분류되어야 하는 것 아닌가? 하는 의문점이 생겼습니다! 토비의 생각을 듣고 싶습니다!
안녕하세요.. 계속 제자리만 맴도는 것 같아 다시 질문드립니다.. ㅠㅠ 전력 계산 전력 제한은 50μW 미만 20% 마진을 적용하여 전력을 40μW로 결정하였고, 이에 따라 전류 I1=3.333 μA 으로 설정(Itotal = 10uA) BJT (Q1) 분석 BJT Q1만을 사용하여 Vcollector를 0V에서 4V까지 스윕하면서 I(Q1)=3.33 흐르는 VBE1 값을 확인하였습니다. 결과적으로 VBE1=517.82035 mV로 확인되었습니다. BJT (Q2[7:0]) + 저항 (R) 분석 BJT Q2[7:0]에 저항 R을 연결하고, R값을 스윕하여 Ic(Q1)=I(R)가 되는 지점의 R값을 확인했습니다. 결과적으로 R=17.39475 kΩ일때, 3.3333338μA가 흐르는 것을 확인하였습니다. PMOS W/L 및 이후 진행 여기서부터 진행이 막혔습니다. 계속 시도해 보았으나, PMOS3와 Q3를 추가하면 결과가 다시 달라지는 것 같아 혼란스럽습니다. PMOS의 Vd를 특정 값으로 가정하고 W를 결정하는 방식이 이해가 되지 않습니다. 왜 그런 방식으로 진행하는지, 그리고 어떤 기준으로 Vd를 정하는지 모르겠습니다.. 오른쪽 pmos는 항상 Sat 동작(Vth만 넘기면 되는데 이는 Vd=3.6정도), 왼쪽 pmos는 그렇지 않은 상태이며, Length또한 Pmos의 경우 높게 가져간다고 10um로 잡긴했습니다. Nmos도 마찬가지일 것같습니다. 왼쪽 PMOS Vd는 전압이 낮아지고, 오른쪽 PMOS Vd는 전압이 높아지는 상황에서 기준을 어떻게 잡아야 할지도 모르겠습니다. => 이부분은 같게 만들면 될것같네요 ! =>=> pmos W/L 바꿔보니 1V로 거의 고정(nmos 2u/2u 일때) =>=>=> nmos W/L에 따라 바뀌네요 회로를 전체적으로 합칠 경우, PMOS의 W/L, NMOS의 W/L, 그리고 R1, R2 등의 값을 전부다 다시 조정해야 하는지 알고 싶습니다. 다른 분들 것도 봤는데 결과를 좋은데 왜 저런 선택을 했는지에 대한 것은 없어 이해가 되질 않더군요..매번 처음부터 다시 시도하며 방향을 찾으려 했지만, 혼자서는 더 이상 나아가기 어려운 것 같습니다. 바쁘시겠지만 설계 순서를 알려주신다면 정말 큰 도움이 될 것 같습니다… 일단은 진행해보겠습니다 !! 기준을 조금 잡았습니다 !! 혹시 MOSFET은 tsmc 180nm 공정을 사용했는데, 해당 공정에서 BJT를 N+ diffusion/P-substrate/N-well or deep N-well으로 이렇게 만들어지는 즉 parastic BJT(?) 라는 게 맞는지 궁금합니다 ! 참고 : 수강생들 과제/7월2,3주차영상/나라발전블로그
안녕하세요. 8분쯤 양방향 연관관계 시 @JsonIgnore 어노테이션을 통해 순환 참조가 되는 것을 방지해야 한다고 알려주셨는데, 엔티티 하나하나 들어가서 직접 확인해야 하나요? ERD나 관계가 복잡해서 까먹을 경우 이렇게 하나씩 확인을 해야 하는지, 아니면 IDE 같은 걸로 도움을 받을 수 있는지 궁금합니다.
안녕하세요 강의 잘 듣고 있습니다. 섹션2 12번 강의에서 ( 관심사 기반의 뉴스 레터 발행 / 구독 모델 ) 에서 질문 있습니다. fanout exchange는 바인딩된 모든 큐에 메시지를 보내는 방식이므로 모든 큐에 메시지가 가는 것으로 알고 있습니다. 예를 들어 제가 java 라는 특정 topic을 구독하면 java queue 에 있는 메시지만 계속 소비할텐데, 그러면 나머지 spring queue나 vue queue 에는 메시지가 계속 쌓여 문제가 되는 것 아닌가요 ? 발행/구독 모델을 왜 fanout exchange로 구현하신 건지 궁금합니다.