1) 실제 로직 @Slf4j public class TrueComponent implements Component { @Override public String operation() { log.info("TrueComponent 가 실행되었습니다."); return "data"; } } 2) 추상클래스 @Slf4j public abstract class AbstractorDecorator implements Component { private Component component; public AbstractorDecorator(Component component) { this.component = component; } @Override public String operation() { log.info("AbstractorDecorator.operation() 실행"); String result = component.operation(); log.info("AbstractorDecorator.operation() 종료"); return result; } } 2) 자식 @Slf4j public class DecoratorTest1 extends AbstractorDecorator { public DecoratorTest1(Component component) { super(component); } @Override public String operation() { log.info("DecoratorTest1.operation() 실행"); super.operation(); log.info("DecoratorTest1.operation() 실행"); return "data"; } } 3) 자식 @Slf4j public class DecoratorTest2 extends AbstractorDecorator { public DecoratorTest2(Component component) { super(component); } @Override public String operation() { log.info("DecoratorTest2.operation() 실행"); super.operation(); log.info("DecoratorTest2.operation() 실행"); return "data"; } } 4) 테스트 코드 @Slf4j public class DecoratorPatternTest2 { @Test void abstractDecorator() { Component trueComponent = new TrueComponent(); DecoratorTest2 decoratorTest2 = new DecoratorTest2(trueComponent); DecoratorTest1 decoratorTest1 = new DecoratorTest1(decoratorTest2); DecoratorPatternClinet decoratorPatternClinet = new DecoratorPatternClinet(decoratorTest1); decoratorPatternClinet.execute(); } } 질문))) MessageDecorator, TimeDecorator 의 중복부분인 private Component component; public AbstractorDecorator(Component component) { this.component = component; } 해당 부분을 줄이기 위해서 추상메서드로 올렸는데 추상메서드로 올리고 코드를 실행하면 추상메서드의 log.info ("AbstractorDecorator.operation() 실행"); 이부분이 어쩔수 없이 중복으로 호출되는데, 코드를 줄이기 위해서 사용하기 때문이 중복으로 호출되는건 상관이 없는 건가요?
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 🙂 [1. 질문 챕터] : 필수과정! Xilinx Vivado 2022.2 설치 (~..) [2. 질문 내용] : Vivado 2025.2 리눅스 설치 후 에러 발생 및 해결방법 (에러 로그 : application-specific initialization failed: couldn't load file "libxv_ commontasks.so ": libtinfo.so .5: cannot open shared object file: No such file or directory) [3. 시도했던 내용, 그렇게 생각하는 이유] : sudo apt install libtinfo5 : libtinfo5 패키지 구버전 호환 문제로 실행 에러 발생, 설치 후 에러 해결 AI 만세
안녕하세요 스타터킷 제작 강의 수강중에 이제 실습 중입니다. 먼저 cot를 통한 클로드 코드와 웹 개발 스타터킷에 대해 공부하고 제 상황에 맞춘 킷을 개발하려고 기획을 짜고 있습니다 스택을 추천해달라고 하고 이후 다시 한 번 최신 공식문서 기반으로 버전 체크를 해봤습니다 이 때 26년도 1월에 나온 next.js 최신 버전 16.1.6과 15중 일단 현재는 AI가 가장 잘 이해한다고 권장하는 15로 버전설치를 하였습니다 최신으로 하는게 나을까요? 아니면 지금 선택이 맞는걸까요
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ 안녕하세요! 양질의 강의 덕분에 코딩 테스트 준비를 수월하게 할 수 있는 것 같습니다! 다름이 아니라 코테 사이트 네트워크 문제가 지속적으로 발생해서 공부하는데 어려움이 있습니다..ㅠㅠ 확인 한 번만 부탁드립니다! 감사합니다
7:45 에서 해당 코드대로 아래와 같이 작성했는데 TypeError가 발생하였습니다. grouped_by_city = df.groupby('City').mean() print("\nGrouped by City:") print(grouped_by_city) 에러 원인을 찾아보니 groupby().mean() 을 수행할 때 숫자가 아닌 컬럼이 함께 포함되었기 때문이라 아래와 같이 작성해야 된다고 합니다. data = { 'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'], 'Age': [25,30,35,40,45], 'City' : ['New York','San Francisco', 'Los Angeles', 'Chicago', 'Houston'], 'Salary' : [50000, 60000, 70000, 80000, 90000] } df = pd.DataFrame(data) df['Experience'] = [2,5,8,10,12] print("\nDataFrame after adding coulmn:") print(df) 제가 data를 잘못 작성해서 이런 오류가 발생한 것일까요?
앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
안녕하세요, 해당 강의 18:00분 경에 앨런님께서 말씀하신 '앱을 만들 때 주로 코드로 만든다'라는 말씀에 궁금증이 들어 질문 남깁니다. UIKit을 통해 앱을 제작하실 때, 스토리보드 대신 주로 이전 강의 섹션과 같이 주로 코드를 이용해 UI를 구성한다는 말씀이신가요? 스토리보드와 코드 둘 다 짧게나마 겪어본 제 입장에서는, 세그웨이를 수행하는 것 제외 스토리보드가 더욱 많은 이점이 느껴져서요. 대표적으로는 VC에 UI 관련한 코드가 없어 더욱 VC가 본인의 책임에 집중하게 된다는 생각도 들고, 코드로 UI를 짜다 보면 하나 둘 빼먹게 될 확률도 높아지는 것 같아서요(스토리보드에서는 이를 바로 에러로 잡아주지만, 코드는 잡아주지 않기도 하구요) 어떤 부분에 의해, 주로 코드로 UI를 구성하는 것을 선호하는지가 궁금합니다!
.claude/agents/prd-generator.md 생성하고 /exit 으로 나갔다가 터미널에서 다시 클로드실행해도 여전히 agents 목록에 안뜨더라구요. Create new agent 수동으로 만들었더니 서브에이전트 생성은 되긴한데 여전히 @agent-prd-generator 명령어는 안먹히구요. 프롬프트에 'prd-generator 서브에이전트를 활용해서'라는 문구를 추가해서 MVP PRD는 생성했는데, mcp 설치 후 CLI 껐다 켜도 settings 파일에 적용 안되는 것도 그렇고 변경 내용이 연동이 안되네요.. 혹시 사용 방법이 바꼈거나 확인된 버그 있을까요?
안녕하세요, 필기시험을 준비하며 강의를 잘 듣고있습니다. 강의를 항상 빨리듣기하고있어서 자세히 못보다가 오늘 눈에 들어오는 부분이있어서 글을 남깁니다. 위치 : 2과목 42페이지 차원 축소개념에서 차원의 저주에서 내용 : "데이터 공간이 희소해지며"는 공간이 아니라 데이터가 희소해진다는걸 잘못 줄인말인거죠? 수정이되어야, 이해하는데 도움이될거같아요.. 차원이 증가할수록 공간은 커지는데, 데이터 밀도가 감소되는거지요?
안녕하세요, 강사님. 강의와 관련된 질문은 아니지만, 실무에서 어떤 방식으로 협업하여 코드를 작성하시는지가 궁금해서 질문 드립니다. 일단, 저는 실무에서 협업해 본 경험이 없습니다. 실무에서는 어떻게 협업하는지 궁금해서 찾아 들어가보다가, 임베디드 갤러리라는 곳에서 다소 자극적이지만, 임베디드 회사 거르는 기준 이라는 글을 보게 됐습니다. 요약하면, 아래와 같은 회사는 안 좋은 회사라는 취지의 글이었습니다. Git 같은 형상 관리 도구를 쓰지 않는 회사 테스트 코드 안 짜는 회사 코드 리뷰 안 하는 회사 코드 포매터 안 쓰는 회사 어느 정도 이해되는 부분도 있고, 테스트 코드는 정말 작성할까? 싶기도 했습니다. GPT한테 물어보니, 심지어 리눅스 같은 큰 프로젝트도 포매터는 안 쓴다는 것 같습니다. (린터를 이용해서, 코드 리뷰 단계에서 스타일을 점검하지만) 그래서 드리고 싶은 질문은, 실무에서 Git 같은 형상 관리 도구를 사용하시나요? 테스트 코드를 작성하시나요? 린터, 코드 포매터를 사용하시나요? 코드 리뷰를 하시나요? 입니다. 강의 외의 개인적으로 궁금한 내용을 질문 드려 죄송합니다..
안녕하세요! 문제 조건이 '웅덩이는 겹치지 않는다' 이기 때문에 현재와 다음 상태를 비교하여 코드를 짰는데 왜 틀린지 모르겠습니다 #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, L; cin >> N >> L; vector<array<int, 2>> ar(N); for (int i = 0; i < N; i++) { int s, e; cin >> s >> e; ar[i] = {s, e - 1}; } sort(ar.begin(), ar.end(), [](const auto& a, const auto& b) { return a[0] < b[0]; }); int ret = 0; int start = ar[0][0]; int end = ar[0][1]; for (int i = 0; i < N - 1; i++) { auto& cur = ar[i]; auto& next = ar[i + 1]; if (next[0] - cur[1] >= L) { int diff = end - start + 1; ret += diff / L; if (diff % L != 0) ret++; start = next[0]; end = next[1]; } else { end = next[1]; } } int diff = end - start + 1; ret += diff / L; if (diff % L != 0) ret++; cout << ret << "\n"; return 0; }
현업에선 compose.yml도 .env와 마찬가지로 .gitignore에 추가하나요? 이런 경우, compose.yml도 .env 때와 마찬가지로 새로 작성하나요? 그리고 이 강의에선 compose.yml에 MySQL을 작성했는데, 만약 RDS를 사용한다면 MySQL에 관련된 것은 도커 컨테이너에 띄우지 않는다고 이해했는데 맞나요? 그리고 ECR 리포지토리도 삭제하지 않는다면 비용이 발생할까요?