[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 강의 자료의 버전 별 파라미터 차이에 관해 질문드립니다. HttpRequestHandlerV2는 process()에 Socket 파라미터를 받지 않고 멤버 변수를 쓰는데, HttpServerV1과 V3부터 최종 버전까지는 process()에 Socket을 받는 것으로 강의 자료에 나와 있습니다. 어떤 스타일을 따르는 게 맞을까요?
addReview()를 보면 리뷰 저장 이후에 포인트를 지급하는 로직이 함께 들어가 있는데, 제 기준에서는 포인트 지급이 리뷰 작성의 핵심 기능이라기보다 부가 기능처럼 느껴졌습니다. 그래서 이런 부분은 서비스 내부에서 직접 호출하기보다 이벤트를 발행하고, 별도의 핸들러에서 처리하는 방식으로 분리해도 괜찮지 않을까 궁금했습니다. (다만 제가 이걸 정말 "부가적인 책임"으로 봐도 되는지 조금 헷갈리기도 합니다.) 만약 실무에서는 이런 부가적인 로직을 서비스 메서드 안에 함께 둘지, 아니면 이벤트/이벤트 핸들러 형태로 분리할지를 어떤 기준으로 판단하시는지 궁금합니다. 또는 이런 경우 이벤트 외에 다른 방식으로 설계하시는 경우도 있는지 궁금합니다.
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 여기까지 이해하신 내용은 무엇인가요? 강사님 안녕하세요 :) 현재 4-9 낙관적 락, 비관적 락 강의를 수강하는 중이며, 단일 행에 대해 배타 락을 거는 방식을 학습한 후 관련 문의 드립니다. 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 코드의 어떤 로직이 이해가 안 되시나요? 어떤 개념이 헷갈리시나요? 만약 비관적 락(PESSIMISTIC_WRITE) 방식으로 한 테이블의 여러 행에 락을 걸어야 한다면, 아래 두 방식 중 어느 방식이 적절한지 궁금합니다. N번의 DB 조회를 방지하기 위해 아래 1번 방식을 고려했으나, 관련 케이스가 많지 않아 제가 놓치는 부분이 있는지 여쭤보고 싶습니다. 더불어 실무에서는 어떤 방식으로 접근하시는지도 궁금합니다. :) 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 1. IN절 조회 후 락 걸기 @Lock(LockModeType.PESSIMISTIC_WRITE) @Query("select p from Product p where p.productNumber in :productNumbers") List<Product> findAllByProductNumberIn(@Param("productNumbers") List<String> productNumbers); 만약 1번 방식이 적절하다면, 데드락 방지를 위해 ORDER BY 정렬이 필수인지 궁금합니다. 2. 루프를 돌며 조회 후 락 걸기 for (String productNumber : productNumbers) { Product product = productRepository.findByProductNumberWithLock(productNumber) .orElseThrow( ··· ); ··· } @Lock(LockModeType.PESSIMISTIC_WRITE) @Query("SELECT p FROM Product p WHERE p.productNumber = :productNumber") Optional<Product> findByProductNumberWithLock(@Param("productNumber") String productNumber); 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!
안녕하세요~ 강의 중 강사님께서 null을 되도록 허용하지 않는 것으로 보였습니다. 공감이 되었는데, CancelEntity.orderItemId 와 같은 곳에 -1 을 설정한 다거나 QnA.answer 에 Answer.EMPTY 를 설정하는 것은 어떤 장점이 있을지 궁금합니다. 저는 위와 같은 경우는 해당 필드를 nullable 로 하는 것이 이 필드는 없을 수 있다는 것을 더 명확하게 나타낼 수 있다고 생각했습니다. 좋은 강의 감사합니다!
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
안녕하세요. sum과 같은 집계함수를 나중에 select 에서 계산한다는 부분이 교재에 조금 헷갈리게 되어있는거 같아서요. 그러니까 sum, count 같은부분은 이미 group by 하고 난다음 select전에 집계함수가 미리 구해진 걸로 ai로 공부하다가 찾아보면서 알게되어서요.. 그렇게 미리 구해진 집계함수가 having이나 select에서 사용되는 거지 select 절에서 계산되는게 아니라고 알게 되었어요. 그거 때문에 성능도 빠른거라고.. 그런데 교재 7. 집계와 그룹핑에 p. 31에 보면 5번 select 절이 실행될때 집계함수 계산이 여기에 이루어진다고 나와있습니다. 수정이 필요한게 아닌가 싶습니다. 아.. 그래서 group by 가 없는 경우와도 헷갈렸었는데 그 경우도 select에서 집계함수가 계산된다기 보다 group by가 없어도 전체 데이터가 하나의 데이터로 implicit grouping으로 select 전에 계산되어지고 select에서는 보여주는 것만 관여하는게 되어서 흐름이 맞춰지더라구요... 개인적으로.. 공식문서에 https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html " This section describes aggregate functions that operate on sets of values"
전공자 겸 개발자로 일하고 있는 사회초년생 개발자입니다.. 정보처리산업기사를 2024년에 취득 후 기사딸 생각 없이 지내다가 필요해져서 급하게 필기 취득하고 1달이란 기간동안...어떻게 공부해야될지 모르겠는데 공부 계획같은것 좀 알려주심 감사하겠습니다.. 그리고 이론 pdf를 어디서 받는지를 못찾고있는데 위치도 알려주심 감사하겠습니다..
자바에서 클래스 필드 타입을 참조타입과 원시타입의 차이를 공부하던 중에 둘의 차이가 null 값이 필요하냐 필요하지 않냐로 배웠습니다.. 그런데 엔티티 pk의 경우에는 jpa에서 새 객체와 저장된객체를 구분할 때 null 을 본다고 들었습니다. 그래서 참조형 Long을 쓰는 구나 라고 생각을 정리했어요!! 헌데 코틀린으로 쓰신 코드에서는 Long타입을 선언하시고 0으로 초기화해주시는 이유가 궁금합니다! 코틀린에서는 nullable하게 할순있지만 기본적으로 null이 불가능하다고 들었긴한데.. 조금 헷갈립니다! 언어적인 부분에서 jpa가 다르게 동작하는것인지 아니면 제가 좀 미숙하게 이해한건지 궁금합니다!
안녕하세요, 좋은 강의 만들어주셔서 정말 감사합니다!! 이번에 신규 기능을 추가하면서 통계 데이터도 필요한 상황인데 통계 데이터에 사용되는 원본 데이터가 수정되는 케이스는 어떻게 설계하는게 좋을지 조언을 구하고자 질문드립니다. 통계 데이터는 유저가 조회하고, 데이터 조회 기간은 최근 7일/최근 한달/과거 한달(사용자 조정 가능)로 조정이 가능하고, 한 화면에 4가지 유형의 통계 데이터를 제공해야 해서 이를 위해 일별 통계 테이블을 사용하려고 했는데요. 그런데 원본 데이터가 언제든 수정되거나 추가될 수 있는 상황입니다. 그래서 수정한 사용자와 수정 일자를 따로 모아 배치를 돌리는 방향이 생각났는데 이렇게 설계해본 경험이 없어, 우선은 실시간 증분 업데이트를 진행하고 데이터 정확성이 필요해지는 상황이 필요하다면 그때 위와 같은 배치를 돌리는게 나을지 또는 다른 방향이 있을지 궁금하여 질문드립니다. 정산 데이터는 아니기 때문에 멱등성이 깨질 수 있는 상황은 감안하고, 기획 요구사항인 실시간성을 반영하는게 좋을지도 고민이 되어 질문드립니다!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요! 금년도 1회차 실기를 준비하고 있는 학생입니다. 매번 5점 10점 차이로 불합격하여 금번에는 요령없이 공부해서 꼭 붙고싶습니다,, 금번 필기시험 인정 만료일도 이번 1회차까지라 2026 1회차 실기시험일자까지 만이라도 연장이 가능할지 여쭤보고싶습니다. 남은 기간 열심히 공부해보려고합니다. 도움 받을 방법이 있을까요? 이메일 : abcd7037@naver.com
5:53에 나오는 업캐스팅 질의 드립니다. 제가 자바 강의를 통해 이해하기론, A s1 = new(B)(‘Y’) 에서 class B(char x)의 자식 생성자를 호출하기전에 부모 생성자를 호출해야 하는데, this()가 있어 부모 생성자를 먼저 호출 하지 않은건가요? (super()와 같은 기능을 하는건지 문의드립니다.) 만약, class B(char x)의 this()가 위와 같은 기능이라고 하면 부모 생성자는 호출하지 않아도 되는건가요? (this()에 따라 B()의 생성자를 호출 하는데 만약 super()가 없었으면 부모 생성자를 호출하지 않는건가요? ) 내용 문의드립니다.