6-4 캡슐화에서 서브타입이 슈퍼타입을 대체할 수 있는 것이 SOLID 원칙 중 리스코프 치환원칙이라고 하셨는데 제가 알고있는 리스코프 치환원칙은 서브타입은 슈퍼타입을 대체 할 수 있어야 하고 슈퍼타입에서의 행위를 서브타입에서도 동일한 결과값이 예상될 수 있어야한다로 알고있습니다! e.g) Collection의 add 메소드는 어떤 서브타입이여도 "추가"한다는 행위가 되어야한다 "서브타입이 슈퍼타입을 대체할 수 있다" 도 리스코프치환원칙의 특징이 맞지만 해당 원칙이 전하려는 주된 내용은 행위의 같은 예상 결과값으로 보여서요! 어떻게 생각하시는 지 궁금합니다!
안녕하세요 강사님, 강의 중 이 페이지가 도저히 이해가 안 돼서 추가적으로 (되도록이면 한글로) 풀어서 설명 부탁드려도 될까요? 질문드릴 내용과 제가 이해한게 맞는지 확인하는 부분 두 부분으로 나눠서 작성해두었습니다. [질문드릴 내용] First Class Support에 대해서 궁금합니다. 왜 First Class라는 용어를 사용하나요? Periodic checkpointing, Robust의 차이가 궁금합니다. 유추상.. Periodic checkpointing은 주기적으로 체크포인트를 지정해서 체크포인트 기준으로 다시 동작시키기 때문에 중복 처리를 할 수 있는데, Flink는 exactly once를 지원하기 때문에 무조건 한 번만 실행함을 보장하는 건가요? Backpressure는 데이터가 많이 들어와 병목이 생길 때 처리인데, Spark는 지원 범위가 좁고 Flink는 세밀하게 지원 가능한건가요? 추가로 fine-grained 용어가 무슨 뜻인지도 궁금합니다. [제가 이해한게 맞는지 확인 부탁드려요] maintain state across events: flink가 event 기반으로 동작하고, 이벤트간의 상태를 알고 있다는 뜻인가요? Spark이 Standalone하고 윈도우 사이에 연결이 없다: 추측상 데이터를 윈도우 단위로 잘라서 처리하고, 윈도우끼리 상태를 공유하지 않는다는 뜻 맞을까요? [설명 스크립트] Apache Flinke Better Fault Tolerancee-Consistency를 가지고요. Across Events 간의 maintain 합니다. 예를 들어서 유저 간의 세션 데이터를 다 계속 모아서 사용할 수가 있어요. 그에 반해서 Spark는 심플하고요. Standalone, 윈도우 간에 연결하는 게 없고요. Light, Stateful, Workload라고 생각하시면 됩니다. 스파크는 스테이트풀 스트림을 베이직 서포트만 한다 고 하는 거고요. Flink는 Across 이벤트별로 스테이트를 메인테인하기 때문에 First Class Support로 시작할 때부터 그런 식으로 만들었습니다. 체크포인트 측면에서도 Spark는 Periodically 체크 포인트를 하지만 Flink는 Robust, Exactly Once 체크포인트를 지원해서 아 주 작은,very low한 오버헤드를 가지고 있습니다 Backpressure 같은 경우는 데이터가 엄청나게 많이 들어오잖아요 그럴 경우에 어떻게 핸들할 건가 기본적인 것만 스파크는 서 포트를 하구요 fine-grained 하지않습니다. 그에 반해서 이제 Flink 같은 경우에는 백프레셔 메카니즘이 기본적으로 빌트인되어있기 때문에 Smooth flow control과 stability가 같이 들어 있습니다.
와 이 어려운 흐름을 단박에 이해시켜주시다니 너무 감사합니다... 강의내용에는 막힌점 없이 다 이해되었으나, 살짝 이야기가 나오다만 내용이 궁금하여 질문드립니다. TCP 통신 중 택배 박스인 패킷이 도착했다면, 택배차인 프레임이 사라진다고 하셨는데, 이 데이터 단위의 생명주기와 소멸 메커니즘에 대해 조금 더 자세히 알고 싶습니다. 일단 저 나름대로 몇 가지 시나리오를 떠올려 보았습니다. 타임아웃 기반: 프레임이 출발할 때부터 일정 시간이 지나면 자동으로 메모리에서 해제되도록 타임아웃 옵션을 물고 통신을 시작하는 것인지. 트리거: 패킷 수신을 인지하는 순간, 하위 계층에 있는 프레임(택배차)을 소멸시키는 특정 트리거를 보내는 것인지. 제가 생각해 본 이 경우의 수 중에 정답이 있는지, 혹은 전혀 다른 방식으로 프레임의 생명주기가 관리되는 것인지 궁금합니다!
안녕하세요 실습 중 컴파일 오류가 왜 발생하는지 이해가 안되어 질문 남깁니다. private final MemberRepository memberRepository; private final EmailSender emailSender; private final PasswordEncoder passwordEncoder; 해당 코드에서 EmailSender와 PasswordEncoder 부분에서 Could not autowire. No beans of 'EmailSender' type found. 컴파일 오류가 발생합니다. final을 제거하면 컴파일 오류가 발생하지는 않는데요 하지만 github 페이지에 올려주신 소스코드를 보면 현재 영상 시점과 코드 구조가 100% 일치하지는 않지만 스프링 빈 관련 설정을 따로 해준 것 같진 않아보입니다만.. 토비님 영상에서는 오류가 없고 제 코드에서는 컴파일 오류가 나네요. 어떤 시점에 따로 Spring Bean 관련 설정이 되어있는게 있다던가.. 아님 제가 빼먹은 부분이 있다면 알려주실 수 있으신가요? 문제가 되는 부분 전체 코드 첨부드립니다. 시간되실 때 확인 부탁드립니다. 감사합니다. package com.ggne.splearn.application.required; import com.ggne.splearn.domain.Email; /** * 이메일을 발송한다. */ public interface EmailSender { void send(Email email, String subject, String body); } package com.ggne.splearn.domain; public interface PasswordEncoder { String encode(String password); boolean matches(String password, String passwordHash); }
이거 하나로 종결-고품질 리액트와 스프링부트 65시간 풀스택 개발 강의(도커, AWS, GITHUB-ACTIONS)
Q. 수업 영상에서의 질문은 오로지 아래 이메일 주소로 아래 양식과 함께 질문 부탁드립니다. 그린 코딩 강사 이메일 주소: canesblack0107@gmail.com 이메일 제목 양식 예시[필수]: [인프런-00강좌 질문드립니다.] 안녕하세요. ~~ 질문드립니다.! => 제가 이메일 외의 인프런트에 질문 카테고리 페이지는 답변이 늦을 수 있습니다. 섹션5 최종프로젝트에는 게시글 작성 수정 이런내용은 빠져있는건가요? 원래 없는건가요?
안녕하세요! 애플 m1 계열 사용하시는 분들중, 2.4 실습환경 구축중에 cp ./tabby-v1.0.207/config.yaml ~/Library/Application\ Support/tabby/ 명령어 실행 시 cp: directory /Users/{사용자명}/Library/Application Support/tabby does not exist 오류 발생하시는 분들은 해당 경로에 tabby 폴더 생성하신 이후 다시 cp 명령어 실행하시면 됩니다. 폴더 생성 : mkdir ~/Library/Application\ Support/tabby (제 환경에서는 brew로 tabby 설치 이후에, 해당 경로에 폴더가 자동으로 생성이 안된 것 같습니다 😅 ) 오류 메시지로 알 수 있는 간단한 내용이지만, 혹시 해매는 분들이 계실수도 있으니 공유드립니다 😄
그래프 강의에서 LeetCode Maximum Depth of Binary Tree 문제 보니까 자동으로 인풋 배열을 TreeNode로 변환해 주던데, 해당 변환 관련해서도 외우는게 좋을까요? 강의에서 안다뤄 주셔서 보통 TreeNode로 자동 변환 되게끔 문제가 나오는지 궁금합니다.
안녕하세요 강사님 12865 재귀적으로 푸는 방법에 대한 질문이 있습니다. https://www.acmicpc.net/source/99314596 저는 위와 같이 문제를 풀었더니, 시간초과가 발생하더라고요 그래서 강사님이 푸신 코드를 보니 dp 배열을 2차원으로 두고 푸셨는데, 제 풀이법과 어떠한 차이로 시간 복잡도에서 차이가 나는걸까요? 아니면 로직이 잘못되었을까요? https://www.acmicpc.net/source/99312373 위 코드처럼 반복문으로 풀었을 때는 1차원 배열로 통과했는데, 재귀로 풀 때는 다르게 접근해야할까요..? dp를 가장 어렵게 느껴서 항상 풀이법에 대한 고민이 있습니다...!
A, B, C 이렇게 세 개의 테이블이 있는데요, A → B, B → C, C → A 이렇게 서로 참조하고 있는 구조입니다. 문제는 이렇게 되어 있으니까, 예를 들어 B를 지우려면 A가 걸리고, A를 지우려면 또 C가 걸리고, C를 지우려면 다시 A가 걸려서 결국 서로 물려서 삭제가 안 되는 상황이 생깁니다. 예를 들면 A = 학생(Student) → 어떤 수업(B) 에 참여하고, B = 수업(Class) → 그 수업은 교사(C) 가 담당하며, C = 교사(Teacher) → 교사는 자신이 가르치는 학생(A) 들의 리스트를 참조(관리용). 이 예시는 정확한 상황은 아니고 제가 생각해서 만들어낸 예시입니다 조금 안맞을수 있는데 만약에 이런 경우에 보통 어떻게 처리해야하나요?
안녕하세요 제로초님 강의에서는 css module 사용하셨고, 왜 그걸 사용하셨는지 이유를 말씀해 주셨는데요 저는 tailwind나 vanilla extract로 css를 작성해가며 수강하려하는데요 현 시점 기준 시장에서는 어떤 라이브러리를 좀 더 활발하게 사용하는지, 제로초님은 어떤걸 더 선호하시는지, 그리고 이유가 있으시다면 무엇인지 궁금합니다