묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
오타?
2 퀴즈 강의에서 설명된 Create React App(CRA)과 Bit의 비교 중, Bit의 특징으로 언급된 것은 무엇인가요? 이거 오타 아닌가요? Bit -> Vite?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
노션 데이타베이스 연결 문제
노션데이터베이스를 API 생성하고 두개 데이터베이스 만든 후 Invoice-web으로 연결하고 .env.local에 데이터베이스키와 데이터베이스 id까지 입력했지만 오류가 발생합니다. 혼자 고치려고 이래저래 해봤는데 문제를 못 찾겠네요 ㅜㅜ
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
달라진 클로드코드 UI에서 release-notes가 안떠요
보시다 싶이 릴리즈 노트 명령어가 뜨질 않습니다..ㅠㅠ윈도우입니다
-
미해결국유재산법 해설
섹션 12 퀴즈 2번 문제의 완성도를 위한 일부 수정 필요
재산예약 계약에서의 "취소"와 "해지"의 차이점 문제는 "취소"를 "해제"로 수정하는 것이 완성도 측면에서 바람직해 보임
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
Verify domains to restrict who can publish GitHub Pages on them.
github > settings > Pages 에 이런 메시지가 있네요 Verify domains to restrict who can publish GitHub Pages on them.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Memory Pool에서 오버플로우 질문입니다.
이전에 StompAllocator에서 오버플로우를 대비하여 할당받은 페이지의 끝에 데이터를 위치하도록 하였는데, 라이브 서비스에서 메모리 풀을 사용할 때 데이터 뒤에 오버플로우 방지를 위해 가드를 붙이기도 하나요?
-
미해결국유재산법 해설
섹션 11퀴즈 3번 문항 오타
국유재산 관리 사무의 위임 또는 위탁의 "철회"에 대한 효력발생 문제 아닌가요?
-
미해결누구나 시작할 수 있는 네트워크 Step 3 (네트워크 만들기)
가상화지원 에러
Virtualized AMD-V/RVI is not supported on this platform.Continue without virtualized AMD-V/RVI?[ Yes ] [ No ]에러가 뜹니다. ova를 workstation pro 17 / virtualbox로 실행해도 위 에러가 뜹니다. 예전에 EVE-NG실습할 때도 나타났는데, 해결방법이 있을까요?https://alive-wong.tistory.com/11위 링크와 관련된 해결책 정보들을 시도해봐도 같은 에러가 나타납니다. Bios에서 가상화 기능을 enable시켜도 안되네요ㅠ. 계속 VMware Workstation 17 Player에서 실행 중인 GNS3가AMD-V/RVI 가상화 기능을 지원하지 않는 플랫폼이라고 뜨는데 방법이 있을까요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
이미지 캡쳐 후 클로드 코드 실행 후 터미널에 붙혀지지가 않는데 해결 방법 부탁드립니다.
이미지 캡쳐 후 클로드 코드 실행 후 터미널에 붙혀지지가 않는데 해결 방법 부탁드립니다.
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
클로드가 bash 쉘을 못 읽어요
클로드 코드를 윈도우 환경에 설치하고 node.js, 크롬, git 까지 설치를 완료했습니다. 그리고 나서 윈도우 cmd와 git bash, powershell 과 같은 터미널에서 node / npm / git / Claude 버전을 확인하면 잘 출력 되는데 클로드 코드 내부에서 버전을 확인하려고 하면 bash 쉘을 읽을 수 없다면서 안 됩니다. 일부러 사용자 계정도 하나 더 만들어서 영문으로 바꾸기도 했는데 왜 안될까요ㅠ환경변수 설정도 전부 맞춰서 했는데도 안됩니다
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
wsl 에 tmux 설치후 사용하려고 합니다.
안녕하세요!저는 윈도우os를 사용하고있는데 agent teams 를 분할창에서 사용하고싶어 wsl를 설치하고 거기에 tmux 설치 후 활성화해서 클로드를 실행했는데 창 분할이 안되네요. 요금제 max 쓰고 있고, 공식문서 보고 "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS"="1" 도 설정했는데(settings.local.json에 설정) 분할 창은 안뜨고 이렇게 진행이 됩니다. 이게 in-process 방식인것같은데,, wsl 환경에서는 tmux 써도 분할창으로 작업은 안되는건가요? 에이전트들끼리 진행할때 대화하는 내용을 보고싶습니다.
-
해결됨바닥부터 만드는 언리얼 에이전트 (Liu)
Rider대신 VS를 써도 괜찮나요?
단순 궁금증이지만 가능한지 여쭙고 싶습니다. Rider IDE 대신 VisualStudio2022를 사용해도 강의 진행이 가능한지 궁금합니다.
-
해결됨센서데이터를 수집하는 내가 만드는 ESP32 IoT 기기 - 초보자·아두이노 사용자
제조사측 문의시 대처하는 방법
JLCPCB에 주문을 넣으면, 어떤때에는 담당자가 이메일로 부품의 위치나 방향이 맞는지 물어보는 경우가 있습니다.아래는 그런 예시입니다. (제가 받은 이메일입니다.)Hi there,Sorry to bother you, but there is one thing that we want to confirm with you about your SMT order before proceeding.Since we are not so sure about the polarities of the components D6 D8 are correct or not. Could you please kindly check if the polarities and placements of the SMD components are correct in the below 2D picture? Is it okay to proceed with production?Your early reply will be highly appreciated, thank you so much!Best regards 번역기를 돌려서 내용을 살펴보면, 다이오드 D6과 D8의 방향이 정말 맞는지 확인해 달라는 내용입니다. JLCPCB는 부품의 위치와 방향 등에 대한 간단한 확인을 항상하며 (보통 다이오드나 칩의 방향) 주문자에게 문의 사항이 있을 경우, 위에서 처럼 이메일로 확인을 받습니다. 아래는 위의 메일과 함께 첨부된 사진입니다.각 각 보드에 보시면 왼쪽 아래에 D6, D8이 있고, 방향이 제대로 되어 있습니다.그래서 답변을 작성하고, 영어로 번역해서 아래와 같이 응답합니다.Yes, for D6 and D8, their polarities are correct. "+" is right and "-" is left in the attached figure. 그럼 아래와 같이 담당자로부터 답변이 오면서 조립을 진행합니다.Hi there,Thank you for your reply.Well noted, we will continue to proceed.Best regards 문의의 내용은 그때마다 조금씩 다를 수 있으나 대게 방향에 관한 것입니다.혹여나 담당자에게서 이메일이 왔는데 어떤 내용인지, 어떻게 해야 좋은지 잘 모르시겠으면 제게 도움을 요청하시기 바랍니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
H2데이터베이스 파일 생성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]H2 데이터베이스 파일 생성방법 강의자료에서는 저장된 설정이 server가 아닌 embedded로 되어있는데 어떤것을 따라야할까요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
[예제][3장][작전2] windows 에서 마지막 예제
... @Slf4j @Configuration @RequiredArgsConstructor public class LogProcessingJobConfig { private final JobRepository jobRepository; private final PlatformTransactionManager transactionManager; private final String BASE_PATH = "C:\\Users\\user\\Desktop\\batch\\section3\\flatfileitemwriter"; @Bean public Job logProcessingJob( Step createDirectoryStep, Step logCollectionStep, Step logProcessingStep ) { return new JobBuilder("logProcessingJob", jobRepository) .start(createDirectoryStep) .next(logCollectionStep) .next(logProcessingStep) .build(); } @Bean public Step createDirectoryStep(SystemCommandTasklet mkdirTasklet) { return new StepBuilder("createDirectoryStep", jobRepository) .tasklet(mkdirTasklet, transactionManager) .build(); } @Bean @StepScope public SystemCommandTasklet mkdirTasklet( @Value("#{jobParameters['date']}") String date ) { SystemCommandTasklet tasklet = new SystemCommandTasklet(); tasklet.setWorkingDirectory(BASE_PATH); String collectedLogsPath = "collected_ecommerce_logs\\" + date; String processedLogsPath = "processed_logs\\" + date; try { tasklet.setCommand("cmd.exe", "/c", "mkdir", collectedLogsPath, processedLogsPath); tasklet.setTimeout(3000); } catch (Exception e) { log.error("mkdirTasklet error: ", e); } return tasklet; } @Bean public Step logCollectionStep(SystemCommandTasklet scpTasklet) { return new StepBuilder("logCollectionStep", jobRepository) .tasklet(scpTasklet, transactionManager) .build(); } @Bean @StepScope public SystemCommandTasklet scpTasklet( @Value("#{jobParameters['date']}") String date ) { SystemCommandTasklet tasklet = new SystemCommandTasklet(); tasklet.setWorkingDirectory(BASE_PATH); String processedLogsPath = "collected_ecommerce_logs\\" + date; StringJoiner commandBuilder = new StringJoiner(" & "); for (String host : List.of("localhost")) { // Windows 환경에서 해당 코드를 적용하려면 ssh 관련 설정들을 찾아야 해서 주석 처리 // String command = String.format("scp %s:~/ecommerce_logs/%s.log %s\\%s.log", host, date, processedLogsPath, host); String sourcePath = BASE_PATH + "\\ecommerce_logs\\" + date + ".log"; String command = String.format("copy %s %s\\%s.log", sourcePath, processedLogsPath, host); commandBuilder.add(command); } tasklet.setCommand("cmd.exe", "/c", commandBuilder.toString()); tasklet.setTimeout(10000); return tasklet; } @Bean public Step logProcessingStep( MultiResourceItemReader<LogEntry> multiResourceItemReader, LogEntryProcessor logEntryProcessor, FlatFileItemWriter<ProcessedLogEntry> processedLogEntryJsonWriter ) { return new StepBuilder("logProcessingStep", jobRepository) .<LogEntry, ProcessedLogEntry>chunk(10, transactionManager) .reader(multiResourceItemReader) .processor(logEntryProcessor) .writer(processedLogEntryJsonWriter) .build(); } @Bean @StepScope public MultiResourceItemReader multiResourceItemReader( @Value("#{jobParameters['date']}") String date ) { MultiResourceItemReader<LogEntry> resourceItemReader = new MultiResourceItemReader<>(); resourceItemReader.setName("multiResourceItemReader"); resourceItemReader.setResources(getResources(date)); resourceItemReader.setDelegate(logFileReader()); return resourceItemReader; } private Resource[] getResources(String date) { try { String formattedBasePath = BASE_PATH.replace("\\", "/"); String location = "file:///" + formattedBasePath + "/collected_ecommerce_logs/" + date + "/*.log"; PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); return resolver.getResources(location); } catch (IOException e) { throw new RuntimeException("Failed to resolve log files", e); } } @Bean public FlatFileItemReader<LogEntry> logFileReader() { return new FlatFileItemReaderBuilder<LogEntry>() .name("logFileReader") .delimited() .delimiter(",") .names("dateTime", "level", "message") .targetType(LogEntry.class) .build(); } @Bean public LogEntryProcessor logEntryProcessor() { return new LogEntryProcessor(); } @Bean @StepScope public FlatFileItemWriter<ProcessedLogEntry> processedLogEntryFlatFileItemWriter( @Value("#{jobParameters['date']}") String date ) { String outputPath = Paths.get(BASE_PATH, "processed_logs", date, "processed_logs.jsonl").toString(); ObjectMapper objectMapper = new ObjectMapper(); JavaTimeModule javaTimeModule = new JavaTimeModule(); javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"))); objectMapper.registerModule(javaTimeModule); return new FlatFileItemWriterBuilder<ProcessedLogEntry>() .name("processedLogEntryJsonWriter") .resource(new FileSystemResource(outputPath)) .lineAggregator(item -> { try { return objectMapper.writeValueAsString(item); } catch (JsonProcessingException e) { throw new RuntimeException("Error Converting item to JSON", e); } }) .build(); } @Data public static class LogEntry { private String dateTime; private String level; private String message; } @Data public static class ProcessedLogEntry { private LocalDateTime dateTime; private LogLevel level; private String message; private String errorCode; } public enum LogLevel { INFO, WARN, ERROR, DEBUG, UNKNOWN; public static LogLevel fromString(String level) { if (level == null || level.trim().isEmpty()) { return UNKNOWN; } try { return valueOf(level.toUpperCase()); } catch (IllegalArgumentException e) { return UNKNOWN; } } } public static class LogEntryProcessor implements ItemProcessor<LogEntry, ProcessedLogEntry> { private static final DateTimeFormatter ISO_FORMATTER = DateTimeFormatter.ISO_DATE_TIME; private static final Pattern ERROR_CODE_PATTERN = Pattern.compile("ERROR_CODE\\[(\\w+)]"); @Override public ProcessedLogEntry process(LogEntry item) throws Exception { ProcessedLogEntry processedLogEntry = new ProcessedLogEntry(); processedLogEntry.setDateTime(parseDateTime(item.getDateTime())); processedLogEntry.setLevel(parseLevel(item.getLevel())); processedLogEntry.setMessage(item.getMessage()); processedLogEntry.setErrorCode(extractErrorCode(item.getMessage())); return processedLogEntry; } private LocalDateTime parseDateTime(String dateTime) { return LocalDateTime.parse(dateTime, ISO_FORMATTER); } private LogLevel parseLevel(String level) { return LogLevel.fromString(level); } private String extractErrorCode(String message) { if (message == null) { return null; } Matcher matcher = ERROR_CODE_PATTERN.matcher(message); if (matcher.find()) { return matcher.group(1); } // ERROR 문자열이 포함되어 있지만 패턴이 일치하지 않는 경우 if (message.contains("ERROR")) { return "UNKNOWN_ERROR"; } return null; } } } 윈도우즈에서는 scp 명령어 관련해서 windows 서비스에서 open-ssh-server 실행현재 사용하고 있는 사용자(windows 사용자) 가 관리자 권한을 보유 할 경우 programdata/sshd_config 파일 수정 필요기타 파일 권한 정리 필요로 인하여 scp 프로그램을 windows 환경의 intellij idea 에서 id, 비번치게끔 ide 콘솔에서 지원하지 않는거 같아. 그래서 제미니가 추천해준대로 실습 환경에서 scp 접속 단을 copy 로 그냥 퉁치는 것으로 바꿔놨어. 나처럼 windows 환경인 사람들이 있으면 혹시나 참고했으면 좋겠네. ObjectMapper, JavaTimeModule 같은 경우는 org.springframework.boot:spring-boot-starter-json 의존성 추가 필요
-
해결됨센서데이터를 수집하는 내가 만드는 ESP32 IoT 기기 - 초보자·아두이노 사용자
직접 만들어 봐야 내 지식이 된다
안녕하세요, 그린탐입니다. 이미 여러 수강생분들이 완강하신것으로 보입니다.그러나 강의를 끝까지 다 들었다고 내 지식이 되는 것은 아닙니다.반드시 직접 만들어보고 동작하는 것까지 직접 경험해 보셔야 내 지식과 경험이 되고, 그제서야 내가 아는 것이 됩니다.그래서 수강생 여러분들은 강의 내용을 그대로 따라서 직접 제작해 보시고, 주문 제작 후 보드구동까지 해보시기 바랍니다.처음 제작할 때 가장 어려운 부분은 "내가 만든 보드가 정말로 동작할까?"입니다. 그래서 처음 시작은 항상 이미 남이 만든 것을 따라하기 입니다. 맨처음 만들때는 강의 동영상과 자료를 통해서 얻은 KiCad 프로젝트 파일을 이용해서 그대로 따라서 제작해 보시기를 권합니다. 그런 후, 그 다음 버전을 제작할 때 각자의 필요에 의해서 추가하면 됩니다.또한 제작 시 가장 자주 부딪히는 문제는 부품 수급 문제입니다. 자주 사용되는 부품들, 저항이나 캐패시터는 제조사가 다량 보유하고 있으므로, 교체할 필요가 낮으나, 가장 잘 자주 재고가 떨어지는 것들은 스위치, LED, 커넥터 류 들입니다. 이 때에는 같은 기능을 하는 다른 부품을 검색해서 사용하면 됩니다.이때 KiCad에 새로운 부품을 라이브러리에 추가하는 방법을 강의에서 설명했으니 그대로 따라하시면 됩니다. 제작하시다가 어려운 점이나 잘 모르는 사항이 있으시면 본 게시판 혹은 디스코드, 아니면 개인적인 이메일로라도 문의 주시면, 가능한 빨리 답변드리겠습니다.제작 후 동작까지 성공하신 분이 있으시면 여기나 디스코드에 후기를 올려주시면 감사하겠습니다.
-
해결됨코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
노션 학습자료 문의
해외 주식에 이어 국내주식도 듣고 있는데요!노션 파일이 열리지 않아서해외 주식에서 파일 이메일로 보내 주신것처럼 국내주식도 이메일로 받을 수 있을까요?
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
unplugin-vue-components 질문드립니다.
현재는 vite.config.js, components.d.ts 설정을 따로 하지 않아도 어느정도 자동으로 되는거 같긴한데요. components.d.ts에 등록을 안해도 잘 동작하네요.main.js에서만 globalComponents만 잘 임포트 해주면 컴포넌트도 전부 정상적으로 인식이 되네요.(영상처럼 빨간색이 아닌 초록색) 질문1.unplugin-vue-components 이거를 현재 시점에서 사용할 필요가 있는지 궁금합니다.현 시점 실무에서 많이 쓸까요? 차라리 갠적인 생각으론 eslint만 잘 걸어놓고, 컴포넌트 내 import가 필요한걸 그 시점에 직접 넣는게 안전할거 같긴한데요.2.확장자가 .ts인데 혹시 typeScript를 사용할땐 components.d.ts가 필요한 설정인가요?요렇게 설정하니깐 파일내 인터페이스가 자동으로 생성은 되네요.Vue3도 가만히 보면 은근 방대한 양이네요. 강의 완주까지 얼마 안남은거 같네요. 좋은 강의 감사합니다.
-
미해결2026 코딩테스트 올인원 [JAVA]
DFS/BFS
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요!마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요.커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요.편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~안녕하세요. 제가 DFS/BFS부분이 많이 약해서 ㅠㅠ 질문입니다.lockers = [[1, 2], [3], [], [0]] 이런 이중행렬인데 인접리스트로 코드 변환 안하고 생각해도 괜찮다는 의미 인거죠…? 감사합니다.
-
미해결[LottieFiles 공식] After Effects로 만드는 Lottie 애니메이션 (수료증 발급)
음성 파일 두개가 들리네요
음성이 겹쳐서 들립니다