NIC를 사용한 송신은 i/o buffer, tcp/ip 를 거쳐서 이루어지고 수신은 direct로 이루어진다라고 이해를 했는데요. 송신은 direct로 이루어지지 않는건가요? 안된다면 왜 그런가요? NIC에 DMA가 지원이되어서 direct로 process까지 수신이 된다 라고 이해를 했는데 IOCP 기능으로도 똑같이 direct로 process까지 수신이 된다 라고 말씀해주신 것 같습니다. DMA가 지원되면 tcp/ip, i/o buffer는 사용하지 않지만 거쳐간다 하지만 IOCP 기능을 사용하면 거쳐가지않고 바로 process로 간다 라고 이해해도 괜찮을까요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요?네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?네 3. 질문 잘하기 메뉴얼을 읽어보셨나요?네 [질문 내용] 질문 그대로입니다.JPAMain에서 여러가지 해보던 중 Locker에 값을 넣어 놨는데 그 뒤로 create 모드 인데도 삭제가 안됩니다 drop table 이 안됩니다ㅜㅜ 근데 chat gpt 한테 물어보니 외부키값이 있으며 drop이 안됩니다 이런 식으로 나오더군요. 그렇게 따지면 1대 다 관계에서도 외부키값으로 여차저차 했는데 이 경우 삭제(drop table)은 잘만 되는데 왜 안될까요 ㅠㅠ
2 차원 배열 첫 주소를 포인터에 대입해서 출력할 때 강의를 보면서 들던 생각은 어째서 %d 로 값을 출력하는데 asterisk 를 사용하지 않는지? 그리고 어떻게 포인터에 indexing 을 배열처럼 사용할 수 있는지 궁금합니다. 그리고 포인터에 배열을 사용하지 않고 #include <stdio.h> int main() { int arr[2][3] = { 1,2,3,4,5,6 }; int* ptr = &arr[0][0]; for (int k = 0; k < 6; k++) printf("%d\n", *(ptr+k)); return 0; } 이 코드처럼 asterisk 를 사용하여 주소 값에 자료형만큼 더하는 것과 어떤 차이가 있나요?
https://aws.amazon.com/about-aws/whats-new/2018/07/amazon-s3-announces-increased-request-rate-performance/?nc1=h_ls 위 문서에 따르면 이제는 Key를 생성할 때 random value를 삽입해도 성능 개선에 도움이 되지 않는다고 하네요. 참고 부탁드립니다.
안녕하세요 큰돌 선생님. 늘 양질의 강의 감사드리며, 제 코드에 어느 부분이 도대체 문제가 되어 틀렸다고 하는지 찾아낼 수 없어 다시 한번 질문 올리게 되었습니다. 저는 동생의 위치를 1부터 n까지의 합 공식을 이용하여 별도의 queue에 저장 했고, 수빈이가 움직일 수 있는 3가지 경우마다 push , pop 을 이용해 수빈이의 위치와 동생의 위치가 같은지 체크했습니다. 그리고 다음 숫자( next )가 이미 방문했던 숫자여도 현재 동생의 위치와 같다 면 바로 그 당시의 위치를 출력하도록 처리했습니다. 나름 예외처리를 위해 신경썼는데, 고민하다가 결국 갈피를 못 잡았습니다. 답변 기다리고 있겠습니다. 항상 감사합니다. http://boj.kr/76e171772b6743b7a0cd05913ce5a894
에러 처리를 할 수 있는 방법들이 많아지니 어느 상황에 어느 코드를 작성해야하는지 생각이 많아져서 질문 남깁니다. 일단 제가 알고 있는 방법은 1. try,catch로 에러를 잡기 2.체크 에러를 런타임 에러로 변환해서 throw하지 않기 3. @ExceptionalHandler로 에러 처리하기 이렇게 세 가지를 강의를 통해 알게 됐습니다. 이러한 것들을 실무 때 어느 상황에서 써야 좋을 지 실무에서 오래 있던 김영한 이사님의 생각이 듣고 싶어서 질문 드립니다. 개인적으로는 그냥 interface의 구현체에서 try catch로 모든 에러를 잡으면 interface에서도 throw sqlExcpetion같이 메서드 이름에 적을 필요도 없으니 체크 에러를 런타임 에러로 변환할 필요도 없을 거라고 생각합니다. 그리고 @ExceptionalHandler의 사용 용도도 생각해봤는데 잘 모르겠습니다. @ExceptionalHandler를 사용하게 되면 체크 에러가 생기게 되면 메소드 이름에 throw를 해서 에러를 던져야하는데 그럼 체크 에러에 종속적이게 될 거라고 생각합니다. 그래서 try catch로 모든 걸 해결하면 되지 않을까? 라는 결론에 도달하게 됐습니다. 공부할수록 이 생각에서 확장이 안되는데 실무에서 김영한 이사님은 어느 식으로 하는 지 간단하게라도 알려주시면 감사할 것 같습니다.
안녕하세요 큰돌님 3-K를 강의듣기전에 풀어봤습니다. 플러드필을 사용하지 않고 풀어봤는데요 예제는 잘 통과하지만 시간초과가 났습니다. 그 이유를 생각해봤을때 얼음을 녹이고 다시 얼음을 녹이러 갈때 녹인 위치부터 탐색을 시작하는게 아니라 처음부터 탐색을 시작하기 때문인거같은데 제가 생각한게 맞을까요?? http://boj.kr/429e585816d54c2dafaa022e77f4c286
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 생성자를 만드는 이유는 뭔가요??
메소드 강의에서 3분 24초 쯤 void를 이용하는데 왜 갑자기 void를 쓰는지에 대한 설명이 없어서 헷갈려서 질문드립니다. 어떨 때 void를 쓰는지 ( 제가 알기론 반환 값이 없을 때 사용 ) 그리고 위의 부분들과 어떠한 점이 달라서 void를 쓰게 되었는지를 잘 모르겠습니다... 객체 듣다가 너무 어려워서 객체 파트만 2번째 듣는데 너무 어렵네요 ㅠㅠ
스프링 부트를 사용하여 프로젝트를 진행한 경험이 있습니다. 스프링 이론에 대한 전반적인 이해가 부족하여 이번 강의를 듣게 되었습니다. 스프링 부트에서 프로젝트를 진행할 때는 구현체와 인터페이스를 구분하여 클래스를 생성하지 않고 구현체만 생성해서 진행했습니다. 따라서 MemberService를 직접 MemberController에서 호출해서 사용했습니다. 이 때, new를 하지 않고 바로 메서드 사용이 가능했습니다. 이는 스프링 부트가 @Autowired를 하지 않아도 자동으로 빈등록을 해줘서 가능한건지 궁금합니다. 또한 매 프로젝트를 진행할 때마다 구현체와 인터페이스를 분리하여 진행하는 것이 좋은 개발인지도 궁금합니다! 마지막으로 구현체와 인터페이스를 하나의 패키지에 관리하는 것인지 아니면 구현체는 구현체끼리 인터페이스는 인터페이스끼리 관리하는 것인지도 궁금합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] public FrontControllerServletV5() { initHandlerMappingMap(); initHandlerAdapters(); } 기본 생성자로 두개의 메서드를 실행하고있는데 FrontControllerServletV5.java 같은 경우에는 따로 인스턴스화 하지않고있는데 서블릿이라서 매핑해준 url패턴으로 접속하면 알아서 인스턴스화되면서 기본생성자가 실행되는건가요?
강의에서 MemberService가 아닌 구현체인 MemberServiceImpl을 빈으로 등록한 뒤에 getBean을 통해서 호출할 때, 구현체가 아닌 인터페이스 타입으로도 검색이 되는 이유가 다형성 때문일까요? 그리고 인터페이스의 이름으로 빈이 호출이 안되는 이유는 인터페이스를 직접 빈에 등록하지 않았기 때문으로 이해를 하면 될까요? 아래는 강의관련 코드 입니다. 설정영역코드는 생략 하였습니다. package hello.core.scan; import hello.core.AutoAppConfig; import hello.core.member.MemberService; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import static org.assertj.core.api.Assertions.*; public class AutoAppConfigTest { @Test void basicScan() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); MemberService memberService = ac.getBean(MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); } } package hello.core.member; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository; @Autowired public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } //테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; } } package hello.core.member; import org.springframework.stereotype.Component; public interface MemberService { void join(Member member); Member findMember(Long memberId); }