안녕하세요, 아래에서 Add 0이 출력되는 부분 관련 여쭙습니다. 아래 부모 코드 블록에서 n이 0인 경우에는, 0을 return하는데 class Sum { int sum(int n) { // 5 if (n <= 0) { return 0; } else { return n + sum(n - 1); } } } n = 1 일 때, 1 + sum(0)에서 sum(0)이 재정의된 자식의 메서드를 호출하여, "Add 0"이 출력되는 것인지, 왜 부모의 sum(0)의 값인 0을 return하는지, 헷갈려서 질문을 드립니다...!
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 강의 3회차를 복습하면서 궁금한 점이 생겨 질문드립니다. 인기글 섹션 마지막에, 모든 서버와 컨테이너를 실행 해둔 상태에서 테스트 코드로 직접 호출해 기능을 검증하셨는데요. 실무에서도 E2E 테스트나 시나리오 테스트 를 이러한 방식으로 진행하는지 궁금합니다. 개인적으로는 서버와 컨테이너를 매번 띄우고 테스트하는 과정에서 실수할 여지도 있고, 관리도 어려워 보인다는 생각이 들었습니다. 모듈 내부의 단위 테스트나 통합 테스트는 직접 작성해봤지만, 인기글처럼 여러 모듈 간의 상호작용을 테스트해 본 적은 없어 실제 현업에서는 어떤 식으로 검증하는지 궁금해 질문드립니다. 미리 답변 감사드립니다!
강의와는 관련이 없는데, 개인적인 질문이 있습니다. 저는 자바 스프링 신입 개발자를 준비하고 있는 학생입니다. 지금까지는 MVC 패턴만 사용하고, 모놀리틱 아키텍처를 사용해서 배포를 진행하고 프로젝트를 해왔습니다. 제가 알기로는 학습적으로나 포트폴리오적으로나 필요성을 느껴서 하는 공부가 제일 좋다고 들었습니다. 근데, 최근에는 어떤 필요성을 느끼지 못하면서 대규모 시스템 강의,헥사고날 아키텍처가 중요하다고 하니 강의 등을 듣고 있습니다. 왜냐하면, 본격적인 취업은 내년이고 시간이 좀 남았습니다. 그래서 해당 강의들을 들어두면 언젠가 개인 프로젝트나 현업에서 사용할 수 있지 않을까하고 듣고있습니다만, 제가 사용했던 MVC 패턴의 장단점 등 기본적인 것들도 알지 못하는 상태에서 계속 진도 나가듯이 이런 저런 강의를 듣고 하는게 괜찮을까요? 즉, 아직 기본도 잘 모르면서 계속 새로운 걸 배우는 과정들이 괜찮을까하는 걱정이 드네요. 하지만, 한편으로는 CS지식이 너무 방대해서 기초를 다 잡아두고 다음 단계로 넘어간다는 것도 솔직히 엄두가 안납니다. 그래서 우선은 쭉 이것저것 배워두고 나중에 필요하면 다시 찾아보면서 공부하면 되지 않을까 싶은데, 토비님은 어떤 방향이 더 괜찮다고 생각하시나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 아직 끝까지 듣지 않았는데 궁금해서 질문 드립니다. volatile을 사용한 뒤에 메인에서 t1.start() 바로 뒤에 t1.join()이 오게 위치를 변경해주면 t1.start() 가 끝난뒤에 t2.start()가 시작이 되서 balance 값이 변경된 상태로 t2 스레드가 검증에서 false값이 걸리는줄 알았는데.. 이렇게 해도 문제가 발생하는데 그 이유가 궁금합니다.
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의 잘 보고 있습니다. 복습하던 중에 궁금한 부분이 있어 질문을 남깁니다. 현업에서 대규모 시스템을 만드는 경우에 헥사고날 아키텍처 + MSA를 사용한다는 것으로 알고 있는데, MVC 패턴이 아니라,헥사고날 아키텍처를 대규모 시스템에서 더 선호하고 사용하는 이유가 무엇인가요?? 추가적으로 이건 강의와는 관련이 없는데, 개인적인 질문이 있습니다. 저는 자바 스프링 신입 개발자를 준비하고 있는 학생입니다. 지금까지는 MVC 패턴만 사용하고, 모놀리틱 아키텍처를 사용해서 배포를 진행하고 프로젝트를 해왔습니다. 제가 알기로는 학습적으로나 포트폴리오적으로나 필요성을 느껴서 하는 공부가 제일 좋다고 들었습니다. 근데, 최근에는 어떤 필요성을 느끼지 못하면서 대규모 시스템 강의,헥사고날 아키텍처가 중요하다고 하니 강의 등을 듣고 있습니다. 왜냐하면, 본격적인 취업은 내년이고 시간이 좀 남았습니다. 그래서 해당 강의들을 들어두면 언젠가 개인 프로젝트나 현업에서 사용할 수 있지 않을까하고 듣고있습니다만, 제가 사용했던 MVC 패턴의 장단점 등 기본적인 것들도 알지 못하는 상태에서 계속 진도 나가듯이 이런 저런 강의를 듣고 하는게 괜찮을까요? 즉, 아직 기본도 잘 모르면서 계속 새로운 걸 배우는 과정들이 괜찮을까하는 걱정이 드네요. 하지만, 한편으로는 CS지식이 너무 방대해서 기초를 다 잡아두고 다음 단계로 넘어간다는 것도 솔직히 엄두가 안납니다. 그래서 우선은 쭉 이것저것 배워두고 나중에 필요하면 다시 찾아보면서 공부하면 되지 않을까 싶은데, 쿠케님은 어떤 방향이 더 괜찮다고 생각하시나요??
안녕하세요 영한쌤! 질문드립니다! 쓰레드별로 공유 자원에 대해 효율적인 연산 처리를 위해 캐시 메모리를 사용한다고 하셨습니다! 이러한 문제가 메모리 가시성 문제를 일으킬 수 있어 volatile 키워드로 캐시가 아닌 메인 메모리에 직접 접근할 수 있었습니다. 이번 예제의 경우, volatile이 없었던 가장 기본 BasicInteger는 volatile을 사용하지 않았어도 어느정도 값 수정이 되었는데 이는 캐시 메모리를 사용하지만 컨텍스트 스위칭이 발생하면서 캐시메모리가 메인메모리로 반영하고 다시 이를 읽어오니 반영이 된건가요? (이전에 interrupt를 boolean flag + volatile로 해결하던 예제에서는 컨텍스트 스위칭이 발생할 시기가 확정적이지 않다고 하셨는데 그거에 비해 꽤 많이 연산이 이뤄진것같습니다...)
4:20 이부분에서 for문을 이용해서 modelName1[]에 있던 문자열을 myCar.model[i] 배열로 복사하는것인데 for문 실행으로는 NULL문자를 제외한 문자열들만 복사가 되기 때문에 for문 바깥에서 myCar.model[i] = '\0'; 이라는 코드로 NULL 문자를 마저 복사해주는 게 맞나요?? 제가 이해한 것이 맞는지 질문드립니다
next 15, app router를 알아갈수록 어째.. 제 취향에 안맞거나 제 서비스에 적용하기에 불리한 점들이 많은데요 저만 그런건지 궁금하기도 해서, 특정 프레임워크에 대한 평가나 여론을 알아보는 팁 같은게 있으신지 궁금합니다. 지금은 유튜브 검색해서 상위노출 영상 몇개에 의존하는데 모수가 부족한 느낌입니다 정석적으론 각 프레임워크 공식문서를 보고 그 특성들을 이해해 자기 서비스에 맞는걸 스스로 판단하는 것이겠지만, 그래도 집단지성에 기대고 싶네요ㅎ
14:19 정적 메서드에서 정적 변수 처리 부분에서 그 전 강의에서 초기화는 한번만 진행해준다고 배웠었는데 지금 이 부분과 혼동됩니다ㅠ 몇강에서 초기화는 한번만 해준다고 배웠는데 혹시 어디인지 아실까요..? 초기화 부분에 대해 설명 부탁드립니다!! 0으로 바꿔주는게 초기화가 아닌 재할당으로 생각하면 되는걸까요?
next 공식문서에서 서버 fetch를 권장하고 있지만 필터옵션이 다수 포진된 페이지에서도 서버 fetch를 해야할까 의문점이 듭니다. 필터 버튼 하나 누를때마다 다시 fetch 해야하니까 route.push나 replace 할 수 밖에 없는데 이게 과연 좋은 방법인가 의구심이 듭니다. 리액트 쿼리를 사용하는게 더 나을지, 서버 fetch를 사용하는게 나은지 선생님의 의견이 궁금합니다. 추가로 window.history.replaceState webAPI를 사용하면 단순 url만 변경하고 페이지 로드나 컴포넌트 리렌더링은 일어나지 않는걸로 알고 있는데요. 근데 리액트 쿼리로 클라이언트 fetch 할 땐 window.history.replaceState 로 url만 변경해도 다시 fetch가 되더라구요?? 어떤 원리로 동작하게 되는지 궁금합니다!
강의에서 말씀해준 내용도 그렇고, next 공식문서에서도 서버 fetch를 권장하고 있지만 필터옵션이 다수 포진된 페이지에서도 서버 fetch를 해야할까 의문점이 듭니다. 필터 버튼 하나 누를때마다 다시 fetch 해야하니까 route.push나 replace 할 수 밖에 없는데 이게 과연 좋은 방법인가 의구심이 듭니다. 리액트 쿼리를 사용하는게 더 나을지, 서버 fetch를 사용하는게 나은지 선생님의 의견이 궁금합니다. 추가로 window.history.replaceState webAPI를 사용하면 단순 url만 변경하고 페이지 로드나 컴포넌트 리렌더링은 일어나지 않는걸로 알고 있는데요. 근데 리액트 쿼리로 클라이언트 fetch 할 땐 window.history.replaceState 로 url만 변경해도 다시 fetch가 되더라구요?? 어떤 원리로 동작하게 되는지 궁금합니다!