훌륭한 강의를 설명해주셔서 감사합니다. 벌써 2주차를 끝내고 계속 복습중인데, 문득 궁금증이 생겼습니다. 만약 API 를 끌어왔을때 Cursor 가 잘못된 값을 추출한다고 가정했을때에는 그 가능성에 대비하기 위해 Cursor AI 한테 검토를 다시 해봐줘. 라고 말을 해야할까요? 아니면 Cursor AI 한테 애당초 시킬때 꼼꼼하게 제약들을 많이 걸어둬야할까요 ? 팁이 있으시다면 알려주시면 감사드리겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. H2 설치 및 삭제 여러차례 반복 및 구글링과 인프런에 등록된 F&Q 내용대로 해봐도 H2가 실행되지 않습니다. 저거 두 개 다 실행해도 작동이 안 됩니다.
안녕하세요. Order와 OrderItem엔티티에 있는 CASCADE에 대해 기본편을 복습해도 헷갈린 부분이 있어서 질문드립니다. em.persist(order)를 하면 CascadeType.ALL때문에 Delivery랑 OrderItem도 insert가 되는거 같은데, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; OrderItem에 있는 이 부분에 CASCADE를 적어준게 아니라 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); 왜 Order에 있는 여기에다가 CASCADE를 적어준것일까요? 어디에다 두어도 상관없을거 같은데, 특별한 규칙이 있는것인지 질문드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 ~ 강의 복습 중 궁금한게 생겨 여쭤봅니다 ! 도메인 설계 시 지금처럼 회원 - 주문 - 상품을 메인 도메인으로 잡지 않고 회원이 회원가입, 주문 기능을 수행하는 주체이기에 회원 속에 Embedded로 주문 클래스를 값타입으로 잡아 회원 속에 넣고 회원 - 상품을 메인 도메인으로 잡을 수도 있겠다는 생각이 들었는데, 스프링부트 1 예제처럼 주문과 배송 클래스를 하나의 엔티티로 규정한 이유는 주문과 배송에서 식별자 pk 값이 필요하다고 생각해서 한 것일까요 ? 회원 도메인이 회원 가입 관련 역할만 담당하는 도메인이라서 책임 분리를 위해 주문과 배송 클래스를 다른 엔티티로 규정했는지 라는 의문도 들었는데, 엔티티로 잡아야하는 기준에 대해 여쭤보고 싶어 질문 남깁니다 !
TOdo List 라는 툴도 설명해주셔서 감사드립니다. AI 가 생각보다 멍청하다 라는 말이 인상깊었는데요. 제가 궁금한 건 TODO List 를 작성해야하는 이유는 우리가 개발을 하다가 다시 다음 날 한다고 했을때, TODO List 를 설명하지 않고, 기억하고 있겠지 ? 라고 하면서 그대로 진행하는 것보다는 TODO List 로 한번 상기시켜주는 것이 좋다 라고 해석하면 될까요 ? 제가 아마 잘 못 따라간 것 같은데, 정확히 언제 쓰는게 맞는건지 조금만 더 구체적으로 설명해주시면 감사드리겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 데몬스레드를 true로 설정하여 작성한 코드 실행 결과가 main: main() start main: main() end Thread-0: run() start 이렇게 나왔는데, main함수가 종료되었는데 Thread-0이 실행되는 이유가 무엇인가요? "main: main() end" 이 문자열이 출력되었어도 자바 프로그램이 완전히 종료되는데는 시간이 조금 더 걸려서 그런건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 두번째 스케줄링 큐, CPU 코어 1,2 에서 스레드 B1이 B2 로 이미지가 바뀐거 같습니다.
웹소켓 켜고 커넥트 해서 채널 받았는데요. called join_channel 부터 안 되는데 왜 그럴까요? 계속 하다 보니 연결은 됐는데요. New client connected Received message from client: {"type":"join","channel":"kvisl10k"} Sending message to client: undefined New client connected New client connected 원래는 계속 Received message from client: {"type":"join","channel":"kvisl10k"} Sending message to client: undefined 여기까지만 나오고 안 된것 같은데 여러가지 확인하고 삭제하고 원복하고 하다보니 New client connected New client connected 이게 두번뜨고 연결이 되는데 왜 계속 sending ~ 여기까지만 나온걸까요?
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 3-7 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 개인 프로젝트 중 여러 테이블이 where절 조건에 있을 때는 어떤식으로 인덱스를 설계해야 하나요?? 코드의 어떤 로직이 이해가 안 되시나요? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 select o1_0.order_id, o1_0.city, o1_0.street, o1_0.zipcode, o1_0.created_at, o1_0.deleted_at, o1_0.delivery_id, o1_0.member_id, o1_0.name, o1_0.no, o1_0.payment_id, o1_0.tid, o1_0.total_price, o1_0.updated_at from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id join delivery d1_0 on d1_0.id=o1_0.delivery_id join payment p1_0 on p1_0.payment_id=o1_0.payment_id where d1_0.delivery_status=? and o1_0.created_at between ? and ? and o1_0.total_price>=? order by o1_0.total_price limit ?, ? orders테이블과 delivery 테이블 where절에서 조건이 걸려있습니다. 이럴 경우는 어떻게 해야 하나요?? 쿼리 조건이 좀 이상할 수 있지만 공부하는 겸 여러 조건들을 시도하고 인덱스 설계하는 중입니다. ㅎㅎ 제가 시도해본 인덱스들은, orders 테이블에 create_at, total_price 복합 인덱스와 total_price, created_at 복합 인덱스이며 첫 번째 인덱스는 속도가 느려졌고 두번째 인덱스는 속도가 빨라졌습니다. 인덱스 X desc 결과 첫번째 인덱스 desc 결과 두번째 인덱스 desc 결과 이후 delivery_status로 인덱스를 만들었더니 속도가 더 빨라졌습니다. -> where 절에 여러개에 테이블이 조건으로 있더라도 각 테이블마다 인덱스를 생성해주면 될까요?? 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니요 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요. 덕분에 잘 듣고 있는 수강생입니다. 수강기한이 무제한인데 왜 저는 수강기한이 있을까요? 이벤트일때 구매해서 그런건가요? 답변 주시면 감사하겠습니다.
안녕하세요. 토비님, 강의 잘 듣고 있습니다. 🙂 오늘은 강의 내용에서 좀 굉장히 의외인 부분을 발견해서 질문드립니다. 강의 #41. MemberApi와 웹 단위 테스트 에서 MemberRegisterRequest 가 domain 레이어에서 정의했던 클래스임에도, @RequestBody 파라미터 그대로 쓰셨는데, 이 부분이 많이 의외고 우려가 되었습니다. 저렇게 하면 MemberRegisterRequest 클래스의 코드 변경이 api 스펙 변경을 의미하는지가 코드리뷰 상에서 쉽게 보이지 않고 숨겨질 수 있다는 염려가 됩니다. 실제로 MemberRegisterRequest 에 필드를 추가해서 PR 을 올리면 코드리뷰어가 봤을 때 domain 레이어의 특정 모델에 필드가 추가됐을 뿐인 작은 변경으로 보일 것입니다. 그래서 그것이 어느어느 API 의 스펙에 영향을 주는지 알기가 너무 어려울 것 같습니다. 그래서 저는 API 의 스펙이 되는 Request, Response DTO 의 경우 반드시 클래스를 별도로 분리해야한다고 생각합니다. API 스펙은 server 마음대로 변경할 수 있는 서버만의 코드가 아니라 client 와의 계약 문서라고 보기 때문입니다. 그래서 Request/Response 같이 백앤드 엔지니어가 함부로 변경할 수 없는 영역과 맘대로 변경 가능한 영역을 분리해서, 어플리케이션과 도메인 로직의 변화가 API 스펙 변경으로 인한 장애 걱정으로 이어지지 않게 하는 것이 중요하다고 생각합니다. 이게 근데 단순히 클래스 분리만 해둬도 PR 에서 API 스펙이 어떻게 바뀌는지 쉽게 트래킹이 가능해지기 떄문에 이 부분 만큼은 번거롭더라도 실보다 득이 훨씬 많아서 꼭 분리해야한다고 생각해왔습니다. 이 부분에 대해서 어떻게 생각하시는지 궁금합니다.