학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요, 강사님! 강의를 듣다가 리포지토리 추상화 와 관련하여 실무적인 고민이 생겨 질문드립니다. ( java 학습 전에 안드로이드 kotlin 개발 중에 겪었던 문제) 현재 인터페이스를 통해 리포지토리를 추상화하고, 향후 데이터 저장소가 바뀌어도 MemberService 등 비즈니스 로직을 보호하는 설계를 공부하고 있습니다. 그런데 만약 외부 시스템이나 DB의 ID 규격이 바뀌어 데이터 타입 자체가 달라지는 경우 에는 어떻게 대처하는 것이 정석인지 궁금합니다. 1. 타입 불일치 및 형변환의 한계 예를 들어, 현재 우리 시스템의 도메인(Member) ID는 Long 인데, 나중에 도입할 외부 API의 ID가 2131293e-r1232... 같은 UUID(String) 형태라면, 물리적으로 Long 으로의 형변환 자체가 불가능합니다. 2. 이 경우 어떤 방식이 가장 권장되는 '정석'인가요? 방안 A: 도메인 모델은 우리 시스템의 기준( Long )을 유지하고, 리포지토리 구현체 내부에서 외부 ID(String)를 별도의 필드에 매핑(저장)하며 우리만의 PK를 새로 생성한다. 방안 B: 인터페이스와 도메인의 ID 타입을 처음부터 가장 범용적인 String 으로 변경하여 외부 규격에 맞춘다. 방안 C: 기타 실무에서 주로 사용하는 별도의 전략이 있는지 궁금합니다. 3. 고민의 요지 구현체 내부에서 '임의로 타입을 가공하거나 재조립'해서 서비스에 넘겨주는 것이 도메인의 순수성을 지키는 올바른 방향인지, 아니면 애초에 이런 타입 변경의 가능성까지 고려하여 인터페이스를 더 유연하게(예: Generic 사용 등) 설계해야 하는 것인지 강사님의 실무 노하우를 듣고 싶습니다!
어노테이션 뭐가 있는지 궁금했습니다. 스프링 공식 문서( https://docs.spring.io/spring-framework/reference/index.html )에 Annotation 검색해보니까 여러가지가 나오네요. 어떤 걸 봐야 어노테이션 전체를 볼 수 있나요? 어노테이션 페이지가 따로 없나요?
import { useId } from "react"; type CheckboxProps = Omit<React.ComponentPropsWithoutRef<"input">, "type"> & { type?: "checkbox"; parentClassName: string; }; export default function Checkbox(props: CheckboxProps) { const uuid = useId(); const { parentClassName, children, ...rest } = props; return ( <> <div className={parentClassName}> <input id={uuid} {...rest} /> <label htmlFor={uuid}>{children}</label> </div> </> ); } useEffect(() => { const randomText = Array.from( { length: 100 }, (_, index) => `Todo Item #${index + 1}`, ); randomText.forEach((text) => addTodo(text)); }, []); 대량 데이터 생성 후 테스트를 하는데 중복 키값이 생성되었는데요. uuid 부분인 것 같은데. 노트북 장비 사양 때문에 그런건지요? installHook.js:1 Encountered two children with the same key, 1770775434402 . Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.
강사님께서 {number} , {undefined} 이런 것들을 예시로 보여주면서 어떤건 렌더링되고 어떤건 오류는 안 나지만 렌더링 되진 않는다 얘기를 해주셨는데요 그 중에 [{1,2,3}] 처럼 배열로 되어 있는 건 배열로서 나타나는게 아닌 123 이렇게 숫자가 붙어서 렌더링이 되던데 이게 특별한 이유가 있는 걸까요?
취준생으로서 아주 유용하게 강의를 듣고있습니다. 그런데 테스트코드를 실행할 때 현재상황에서 기본설정된 junit6이 지원되지않는 상황이고 build.gradle 의존성에서 junit5로 지정변경하고 테스트 케이스를 작성하고 실행할때 junit5와 6이 버전충돌해서 테스트코드가 실행이 안됩니다. 어떻게 해결해야 할까요?
안녕하세요 저도 아래에 글 남기신 분과 같은 질문사항인데요 카카오개발자센터가 리뉴얼 되면서 Web 플랫폼 등록을 어디서 해야될지 모르겠습니다. 올려주신 리뉴얼 영상에서는 리다이렉트 URL 설정하는 부분만 나와있습니다. 그리고 앱 띄워서 로그인 버튼을 클릭하면 아무런 반응이 없는데 onClick 같은 요소가 존재하지 않아서 그런 것 같습니다. 확인해주시면 감사하겠습니다. {/* 카카오 로그인 버튼 */} <button className="w-full flex items-center justify-center gap-2 bg-[#FEE500] text-[#000000] py-3 rounded-lg hover:bg-[#FDD800] transition-colors font-medium"> <img src="https://developers.kakao.com/assets/img/about/logos/kakaolink/kakaolink_btn_small.png" alt="Kakao Logo" className="w-5 h-5" /> Continue with Kakao </button>
안녕하세요 강의 잘 듣고 있습니다. 해당 문제 테스트 케이스에 오류가 있는 것 같아 글 남깁니다! 연결된 네트워크 그룹이 여러 개일 때를 고려하지 않고 문제를 풀었는데 정답 처리 되었습니다..! 확인 부탁드립니다 감사합니다! import java.util.*; class Solution { List<List<Integer>> graph; public boolean solution(int[][] friends) { graph = new ArrayList<>(); for (int i = 0; i < friends.length; i++) { graph.add(new ArrayList<>()); } for (int i = 0; i < friends.length; i++) { for (int j = 0; j < friends[i].length; j++) { graph.get(i).add(friends[i][j]); graph.get(friends[i][j]).add(i); } } return bfs(0); } private boolean bfs(int start) { Queue<Integer> queue = new ArrayDeque<>(); queue.offer(start); int[] team = new int[graph.size()]; Arrays.fill(team, -1); team[start] = 0; // 시작 팀 while(!queue.isEmpty()) { int cur = queue.poll(); for(int next : graph.get(cur)) { if (team[next] == -1) { // 아직 미방문한 노드 team[next] = 1 - team[cur]; // 반대팀 배정 queue.offer(next); } else if (team[next] == team[cur]) { // 방문한 노드가 같은 팀이면 false 반환 return false; } } } return true; } }
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 코드의 어떤 로직이 이해가 안 되시나요? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 안녕하세요. 아직 수강전인데 수강을 해야만 백엔드 기술면접 실전문제집을 받을 수 있는건가요? (혹시 아직 여분이 있는걸까요?!)
선생님 안녕하세요. 편의적으로 연동해서 사용하는 것은 알겠지만 . Cursor와 Claude를 연동해서 사용하려고 하는데, 환경 설정 단계에서 계속 문제가 발생해서 질문드립니다. 현재 Cursor와 Claude CLI 설치, 확장 설치, 환경 변수 설정 등 여러 방법을 시도해봤는데 터미널에서 IDE 연동이 제대로 되지 않아 Cursor 내부에서는 Claude 패널이 보이긴 하지만, 터미널에서는 /ide 연결이 계속 실패하고 있어 환경 설정 단계에서 학습 진행이 멈춘 상황입니다. 그래서 질문드립니다. 강의를 진행할 때 반드시 Cursor와 Claude를 연동해서 사용해야 하는지 Cursor–Claude 연동은 나중에 익숙해진 뒤에 설정해도 괜찮은지 환경 설정에 시간이 너무 많이 소요되어 학습 진도가 전혀 나가지 않고 있어 조언 부탁드립니다. 감사합니다.
안녕하세요 선생님. Cursor에서 Claude IDE 연동 문제 때문에 문의드립니다. 현재 상황을 정리하면 다음과 같습니다. Cursor에서 Claude Code 확장 설치 및 활성화 완료 Cursor 좌측에 Claude 패널이 정상적으로 표시되고 응답도 생성됨 Claude CLI는 native 버전(2.1.37)으로 정상 실행됨 /doctor 결과도 native 실행 상태로 정상 표시됨 하지만 터미널에서: claude /ide 를 실행하면 계속 아래 메시지만 반복됩니다. Installed extension to Cursor No available IDEs detected. 또는 IDE selection cancelled 환경변수(PATH), npm 설치 제거, native 재설치, 프로필 충돌 제거 등 가능한 설정은 전부 점검하고 초기화까지 진행했지만 터미널에서 IDE 감지만 계속 실패하는 상태입니다. 다만 Cursor 내부 Claude 패널에서는 코드 분석과 응답이 정상적으로 동작합니다. 이 경우: Windows + Cursor 환경에서 /ide 감지가 안 되는 것이 정상적인 현상인지 강의 진행 시 터미널 IDE 연동 없이 Cursor 패널만 사용해도 되는지 추가로 확인해야 할 설정이 있는지 확인 부탁드립니다. 감사합니다.
안녕하세요 강사님 제가 알림기능을 만들려고 하는데 예를 들어 음식을 사고 영수증을 찍었을 때 OCR 기술을 이용하여 사진을 인식하여 유통기한이 임박했을때 알림이 오는 기능을 만들려고 생각중입니다. 이런 경우는 따로 ERD 를 이용해서 만들어야 할까요? 이런 기능 자체가 처음이라 질문드립니다. 그리고 알림 기능은 현업에서 파이어베이스를 쓰는 게 맞을까요?
https://www.youtube.com/watch?v=k1l4NJw5SF0 해당 유튜브 채널에서 설명하는 AI 프로젝트 팀을 만드는 방법이 서브 에이전트를 관련된 전문가로 만들어서 서브에이전트 체이닝을 통해 각 전문가 서브에이전트들이 하나의 프로젝트에 대해서 협업해서 업무를 보게끔 만들어내는 방식이 맞을까요?
안녕하세요 선생님. Cursor에서 Claude를 터미널로 연동하려고 설정 중인데 IDE 연결이 되지 않아 문의드립니다. 현재 상태는 다음과 같습니다. Cursor에 Claude Code 확장 설치 완료 터미널에서 claude 명령 실행은 정상 동작 하지만 /ide 명령 실행 시 → No available IDEs detected 메시지가 나오면서 Cursor가 감지되지 않습니다. 확장은 설치되어 있고, 사용 상태로도 설정해 보았지만 여전히 IDE 연결이 되지 않는 상황입니다. 혹시 Cursor에서 Claude CLI를 IDE와 연동할 때 추가로 필요한 설정이나 확인해야 할 부분이 있을까요?