제가 객체지향 처음배울때 이해하기 쉬웠던 비유를 적어놓을게요 클래스는 설계도와 같습니다 안에 어떤 데이터와 기능이 들어갈지 정의만 합니다 건축에서 건축 설계도와 같습니다 어떤 자재와 공간이 있을지 정의만 합니다 ( 설계도를 그려놨다 해서 실제 건축물도 생기는건 아닙니다 ) 객체는 건축물과 같습니다 설계도를 바탕으로 실제로 구현된 대상입니다. (네, 객체는 클래스를 기반으로 만듭니다) 즉, 객체는 클래스를 기반으로 구현된 구체화된 실체입니다. 그래서 클래스 정의 -> 객체 생성 이 절차를 따릅니다. 한 설계도를 기반으로 여러 건축물을 만들수 있듯이 클래스 하나를 설계하면 여러 객체를 만들수 있습니다 클래스 = 설계도 객체 = 구체화된 실체 감사합니다.
Car car = new Car(); car.ShowInFormation(); class Car { public string brand; internal string model; string color; Car car = new Car(); car.ShowInFormation(); class Car { public string brand; internal string model; string color; public Car() { brand = "현대"; model = "소나타"; color = "검정"; } public void ShowInFormation() { Console.WriteLine($"브랜드는 {brand}"); Console.WriteLine($"모델은는 {model}"); Console.WriteLine($"색깔은는 {color}"); } } 2분10초 쯤 왜 car.ShowInFormation은 호출이 되고 Console.WriteLine(car.ShowInFormation()라고하면 호출이 안되죠? 동영상에는 이유가 안 나오는거 같아요
3분 43초경, 책임을 나누는 부류에서 "누가 해당 메서드의 변경을 유발하는 사용자인가"가 기준이 된다고 하셨는데, 메서드의 변경을 유발한다는 게 해당 메서드를 누가 호출하느냐? 어떤 사용자가 이 메서드를 사용하냐? 이렇게 이해하면 되나요? 메서의 변경을 유발한다는 의미가 해당 메서드를 이용한다는 의미인지? 정확히 메서드의 변경을 유발한다는 점이 무슨말인지 모르겠습니다.
빌드를 잘하고 테스트를 하고 있는데 일단 저는 HLOD레이어를 두가지로만 해서 테스트 해봤는데 이런식으로 멀리 있는 메시들이 마테리얼이 날라간 체로 보이네요. 그리고 중간부분만 날라가는 현상이 있습니다. 이게 빌드 및 Hlod 적용이 된건가요? 그리고 왜 마테리얼이 날라가는 것처럼 보이는지 모르겠네요
import type { Preview, ReactRenderer } from "@storybook/react-vite"; import { withThemeByClassName } from "@storybook/addon-themes"; import "../src/index.css"; import "@fontsource/pretendard/400.css"; import "@fontsource/pretendard/500.css"; import "@fontsource/pretendard/700.css"; const withThemeBackground = (Story, context) => { // context.globals에서 현재 선택된 테마 정보 가져오기 const { theme } = context.globals; // 테마가 변경될 때마다 HTML 문서에 데이터 속성으로 현재 테마 설정 // 이를 통해 CSS에서 [data-theme='dark'] 같은 선택자로 스타일 적용 가능 document.documentElement.dataset.theme = theme; // 다크 테마일 경우 body에 dark 클래스 추가, 아니면 제거 if (theme === "dark") { document.body.classList.add("dark"); } else { document.body.classList.remove("dark"); } // 원래 스토리 컴포넌트 반환 return Story(); }; const preview: Preview = { parameters: { controls: { matchers: { color: /(background|color)$/i, date: /Date$/i, }, }, a11y: { test: "todo", }, }, // ADDED decorators: [ withThemeBackground, withThemeByClassName<ReactRenderer>({ themes: { light: "", dark: "dark", }, defaultTheme: "light", }), ], }; export default preview; 위와같이 설정해서, 해당 버튼이 추가됐습니다. 해당 버튼을 통해 바꾸면 컴포넌트의 다크모드 색상만 변경되는데, 왜 배경색은 같이 안바뀔까요? index.css에 추가적인 설정을 해줘야 할까요? 스토리 내부 body클래스에 dark가 추가됨은 확인했습니다. 즉, 해당 버튼을 누르면 Storybook의 컴포넌트 뿐만 아니라 Backgrounds와 함께 변경이 되었으면 좋겠는데, 현재는 개별적으로 2개의 버튼으로 밖에 설정이안되는데 위 하나의 버튼으로 함께 변경되게 설정이 가능한가요? 현재는 아래와 같이 컴포넌트만 다크모드로 변경이 됩니다. https://ui.vueless.com/?path=/docs/1010--docs&globals=theme:light 위 사이트 느낌처럼 적용가능하고싶은데, 설정을 잘못하였는가 해서 가능한지 여쭤보고싶습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 강의 수강 중 질문이 생겨 여쭤봅니다. MemberServiceV1에서 memberRespository.update(fromId, fromMember.getMoney() - money); validation(toMember); memberRespository.update(toId, toMember.getMoney() + money); 해당 코드가 있습니다. 트랜잭션을 사용하지 않아서 테스트 코드에서 예외가 발생하며 memberA는 8000원, memberEx는 10000원이 된다고 말씀하셨는데, 근본적인 원인은 validation(toMember); 의 위치 문제가 아닐까 생각이 드네요 ..! validation(toMember); memberRespository.update(fromId, fromMember.getMoney() - money); memberRespository.update(toId, toMember.getMoney() + money); 이렇게 순서를 바꾸면 검증을 먼저 수행하고 이체를 하니 테스트 코드에서 둘 다 1만원으로 변동이 되지 않던데, 단순히 트랜잭션 이해를 위한 설명으로 생각하면 될지 싶어 여쭤봅니다 !
강의에서 구성한 그래프를 보면 retriever로 조회한 document들을 그대로 context로 넣는것으로 보이는데요. 여기에서 document의 page_content만 추출하는 과정은 필요 없나요? lang smith를 보면 아래와 같이 프롬프트가 구성되어있는데 page_content만 넣도록 해야하는것이 아닌가 의문이 들었습니다.
안녕하세요. 강의에선 zeorx로 PDF -> Markdown 변환 후 UnstructuredMarkdownLoader로 split해서 document chunk를 얻는데요 혹시 UnstructuredPDFLoader를 통해서 한번에 load_and_split 하는것과는 어떤 차이가 있을까요? UnstructuredLoader에서 요구하는 것이 패키지 외에도 pdf2image 모듈등이 있는것 같아서 실제로 시도해보지는 못했습니다.