섹션 3. 17강. 23:00 질문 있습니다. printf("입력된 문자열: %s\n", str); 이 아니라 printf("입력된 문자열: %c\n", str)라면 어떤식으로 출력이 될까요? myString[]에서 this is string은 알파벳 하나하나 주소를 갖는건가요? 아니면 통째로 주소를 갖는 건가요?ㅜ 갑자기 헷갈려서 남깁니다.
안녕하세요 선생님, 지금 클로드코드 pro 버전을 사용 중 입니다. 다만 수업을 진행 시 토큰이 부족하여 고민했던 부분이 구글 계정을 여러개 하여 4개월 무료를 진행해 antigravity를 사용하고 있습니다. antigravity 내에 Claude Sonnet 4.5(Thinking) 모델로 진행하고 있는데. 수업 내용 진행 시 큰 차이점이나 오류나, 제약되는 내용이 있는지 궁금합니다..!!
선생님 제가 정말 완전 노베이스에서 하는데, 왜 모든 값들을 출력할 때 출력문 구조가 System.out.println("d1 == d2: " + (d1 == d2)); 이렇게 되어있는데 출력은 +를 뺀 내용만 출력을 하는건가요? d1 == d2: false +의 경우는 " "에 있는 내용도 아니고 단지 두개의 식을 이어주는 역할이라고 생각하면 될까요?
super()가 없어지면 기본 생성자를 호출 해야한다는건 이해 했습니다. ElectricCartesla-new ElectricCar("Tesla",2021,75); 라는 변수가 있기때문에 자식 기본생성자인 부분은 건너뛰고 2번쨰인 ElectricCar로 바로 넘어가는건가요? 이후에 부모기본생성자 출력하고 남은 Capacity를 출력하는 순서... 이렇게 이해하면 되는건가요?
안녕하세요. 51강에서 터미널 명령어에 ll 넣어서 진행하시는데 저는 이런 오류 메세지가 발생합니다. zsh: command not found: ll 그래서 ls -al 이런식으로 하는데 동일한건지요? 그리고 cursor CLAUDE.md 명령어로 cursor실행하셨는데 저는 또 이런 에러메세지가 발생합니다. 제가 많이 부족한데 설명 부탁드립니다!! zsh: command not found: cursor
08_chatServerSelector 소스코드의 마지막 부분인 브로드캐스팅하는 함수 sendMessageAll에서 오류를 발견했습니다. 제공하여주신 소스 코드를 작성하고, 여러 클라이언트를 실행시켜보았습니다. 연결은 문제가 없었지만, 쓰기 부분에서 문제가 발생했습니다. private static void sendMessageAll(Selector selector, SocketChannel sender, String msg) throws IOException { ByteBuffer msgBuffer = ByteBuffer.wrap((msg + "\n").getBytes()); for (SelectionKey key : selector.keys()) { Channel channel = key.channel(); if (channel instanceof SocketChannel) { SocketChannel target = (SocketChannel) channel; target.write(msgBuffer); // <- 문제 지점 } } } msgBuffer를 반복문을 통하여 타겟 클라이언트 채널에 쓰기를 할 때에, 첫 클라이언트에게만 메시지가 보내지는 것 을 발견하였습니다. 이유는 write호출시 msgBuffer의 position이 마지막으로 이동이 되어서, 다른 클라이언트 소켓 채널에게는 빈 msgBuffer가 쓰기가 되어서 메시지가 보내지지가 않았습니다. 해결방법) msgBuffer의 값을 할당받는 부분을 반복문 안쪽으로 이동시켜 매 이터레이션 마다 값을 받게 코드를 수정하였습니다. // 브로드캐스팅 함수 private static void sendMessageAll(Selector selector, SocketChannel sender, String msg) throws IOException { for (SelectionKey key : selector.keys()) { Channel channel = key.channel(); if (channel instanceof SocketChannel) { SocketChannel target = (SocketChannel) channel; ByteBuffer msgBuffer = ByteBuffer.wrap((msg + "\n").getBytes()); target.write(msgBuffer); } } }
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 코드의 어떤 로직이 이해가 안 되시나요? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 안녕하세요 항상 강의 잘 보고 있습니다 ! 딩코딩코님 혹시, 로컬에서 테스트 한 결과를 이력서에 써도 괜찮을까요? 서비스를 배포를 할 생각이긴한데, 똑같은 환경을 2개 만들어서 배포를 하고 테스트를 하려니 비용이 많이 나올 것 같아서 어떻게 해야될지 고민하고 있습니다 ㅜㅜ 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 4-8 여기까지 이해하신 내용은 무엇인가요? 외래키 제약조건으로 인해 발생한 데드락 문제를 해결하기 위해 INSERT 하려는 테이블에 외래 키를 제거한다. 2. 어려움을 겪는 부분 외래키를 만약에 제거한다면, 어플리케이션 레벨에서 직접 관리한다고 했는데, 구체적으로 어떻게 관리를 하는 건지 궁금합니다! INSERT 하려는 테이블과 연관된 테이블들을 먼저 조회( findXXX() )를 하고, 만약에 없다면 예외를 발생시켜서 트랜잭션을 롤백시키는 방식으로 처리하나요? 실무에서 주로 어떻게 해결하는지 궁금합니다. 그리고 외래키를 사용하지 않는 첫 번째 방법은 이미 테이블이 생성된 시점( INSERT 하려는 테이블에 외래키가 추가되어 있는 상황)에서도 적용할 수 있는건가요? 예를 들어, 이미 테이블에 데이터가 추가되어 있는 상황에서 첫 번째 방법을 적용하려면, 테이블 구조를 아예 바꿔야 할텐데 이 경우에는 두 번째 방법인 쿼리 순서를 바꾸는 걸 대안으로 사용하는 건가요?
강의에선 되게 단순하게 큰 틀 위주로 알려주시는 것 같아서 개인적으로 더 자세한 의미나 추가적인 개념이 궁금할 때 검색해보는 편인데, DI라는 것이 클래스 간의 결합도를 낮추고 객체의 유연성을 높이기 위해 빈 객체를 만들어 주입하는 것을 의미한다고 정리했습니다. 이게 맞게 정리한건지 궁금합니다. 또 추상 클래스와 인터페이스 간의 차이점은 찾아봐도 이해가 어렵길래 선생님의 친절한 설명이 필요할 것 같아서 추가로 여쭤봅니다!
안녕하세요 영한님. 강의 정말 잘 듣고 있습니다. common_code_detail 은 pk로 natural key(group_code, code) 를 사용하는 것이 정형화되어 있다고 하신 부분을 이해했습니다. 서비스를 운영하다 보면 code의 값을 수정할 경우가 생길 가능성이 있을 거 같은데요. 예를 들면, 다음과 같은 요구사항이 있을 거 같습니다. group_code가 ORDER_STATUS 인 code에 대한 변경 요청. SHIPPING 을 두가지 상태로 확장(SHIPPING_START, SHIPPING_COMPLETED) 변경 전의 SHIPPING은 SHIPPING_COMPLETED로 취급한다. 설계 1편의 "pk는 immutable해야한다" 라는 3번째 규칙이 있었는데요. 공통 코드 테이블의 경우에는 3번째 규칙을 유연하게 적용해야하나? 하는 생각이 들었습니다. 공통 테이블은 natural key를 사용하니 어느정도 허용을 한다고 보면 될까요? 아니면, 기존 키는 삭제하지 않은 채로 그대로 두고 새로 만들어서 규칙을 지키는 방향으로 하시는지 궁금하네요. 실무에서 이런 케이스들은 어떻게 다루시는지 궁금합니다. 감사합니다.
이번 강의의 수업자료 pdf 보니, 제목 클릭 시 링크위치가 각 챕터가 아닌, 마지막 페이지 정리 내 제목들로 이동합니다. 9. 논리적 모델링 - 실습.pdf 파일 제외하곤 모든 파일의 목차들이 다 마지막 정리로 이동하더라고요. 그동안 영한님 강의들 자료에는 각 챕터로 쉽게 이동 하기 좋았거든요. 이부분이 개선 가능할까요? 이 상태여도 학습은 가능한데, 건의드립니다. 감사합니다.
안녕하세요! 현재 70. MCP 서버 설치 강의를 듣고 따라하는 중인데요, settings.local.json에 permissions > allow 규칙에 "mcp__shadcn"을 등록했는데 클로드가 계속 "mcp__shadcn__*" 관련 명령어를 허용할건지 질문을합니다. 제가 적용한 순서는 클로드 종료 터미널에서 shadcnui 설치 클로드 시작 로그인 기능 구현 요청 프롬프트 실행 첫 번째 질문 나왔을 때 바로 setting.local.json 파일에 "mcp_shacn" 추가 후 저장 이후 첫 번째 질문에 "yes, and don't ask again ~~" 옵션 선택 settings.local.json 수정 후 바로 클로드에 반영안되는건가요? 클로드 껐다 켜면 이전 컨텍스트 날아갈 것 같아서 계속 질문에 답하고 있는데,, 껐다 켜도 되나요?
/permissions의 workspace를 설명하실 때, ../로 상위 디렉토리를 참고할 수 있다고 하셨는데, permission 에서 참고하는게 있나요? 그냥 권한설정인데.. 추가로 설명하실 때 A라는 프로젝트를 참고해서 B라는프로젝트를 개발할 때 사용한다고 하시면서 해당 프로젝트의 코드베이스를 참고할 수 있다고 하셨는데요, 이 말이 이해가 안됩니다. permissions는 그냥 권한 설정아닌가요?
-- Weekly 리텐션 -- 핵심 : event_date => event_week으로 변경하면 됨 -- 2024-06-30(일) => 2024년 26주차. 2024-06-24(월)도 같은 26주차 -- 데이터를 전처리(가공)하기 위해서 WEEK 함수를 사용할 수도 있고, DATE_TRUNC(일자, 자를 기준) -- DATE_TRUNC : 2024-06-30 => 2024-06-24 -- WEEK : 26. 2024년 26주차! 주차 별 date를 직관적으로 알기 어렵다고 생각하는 편(개인 생각) -- (깨알 지식) WEEK vs ISO_WEEK -- 주 번호를 계산할 때 사용할 수 있는 함수 -- WEEK : 일요일이 주의 첫 날로 간주. 1월 1일이 속한 주가 1주차 -- ISO_WEEK : 월요일이 주의 첫 날로 간주. ISO 8601 국제 표준에 따라 정의. 목요일이 속한 주를 기준으로 주 번호를 지정 -- 목요일이 속하면 그 주의 4일 이상이 포함되기 때문 -- 연도의 첫 목요일이 있는 주부터 1주차 -- 2022년 1월 1일(토요일) WEEK : 2022년 1주차. ISO_WEEK 2021년 52주차. -- 첫 목요일은 2022-01-06. 2022-01-03~2022-01-09가 2022년 1주차 WITH base AS ( SELECT DISTINCT user_id, user_pseudo_id, event_name, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime FROM advanced.app_logs WHERE event_date BETWEEN "2022-08-01" AND "2022-11-03" ), first_week_and_diff AS ( SELECT *, -- DATE_DIFF(event_date, first_date, DAY) AS diff_of_day DATE_DIFF(event_week, first_week, WEEK) AS diff_of_week FROM ( SELECT # 일자별로 중복 제거 DISTINCT user_pseudo_id, -- DATE_TRUNC DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week, DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week FROM base ) ), user_counts AS ( SELECT diff_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM first_week_and_diff GROUP BY diff_of_week ) SELECT *, ROUND(SAFE_DIVIDE(user_cnt, first_week_user_cnt), 2) AS retention_rate FROM ( SELECT diff_of_week, user_cnt, FIRST_VALUE(user_cnt) OVER(ORDER BY diff_of_week ASC) AS first_week_user_cnt FROM user_counts ) -- SELECT -- diff_of_week, -- COUNT(DISTINCT user_pseudo_id) AS user_cnt -- FROM first_week_and_diff -- GROUP BY diff_of_week -- ORDER BY diff_of_week # Monthly 리텐션 쿼리 작성해보기! 지금 코드가 각 diff_week마다 남은 유저들을 전체 유저로 나눠서 아 몇주차쯤 되면 얼마나 남아있는지를 계산한 거 같은데 생각해보니까 예를들어 지금 기간이 11월 3일까진데 한 10월 중순에 들어온 유저 같은 경우엔 diff_week가 한 3 이상인 부분부턴 아예 데이터가 없는거 아닌가요? 데이터가 11월 3일까지 밖에 없으니까요 분모로 사용하는 diff_week=0인 지점에서의 값은 그런 경우들까지 전부 포함된거고 그걸 그대로 모든 retention week마다 분모로 사용하면 위 예시 같은 경우 10월 중순 user들은 한 3주차쯤엔 전부 이탈하는 것 처럼 집계되는거 아닌가요? 그 경우 diff_week가 커질수록 실제 리텐션 보다 과소평가 되는게 아닌가 하는 의문점이 들어 문의 남깁니다
안녕하세요 '커스텀 커맨드 고급: 동적 파라미터' 강의 교안 자료중 [공식 문서] 사용자 정의 슬래시 명령어 페이지가 존재하지 않아 공유드립니다. 프론트매터 참조가 필요하신 분들은 아래 링크에서 확인하실 수 있습니다. https://code.claude.com/docs/ko/skills#frontmatter-reference