묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Pytest와 Nox를 활용한 파이썬 테스트 자동화 완벽 가이드
nox 실행 에러 메세지
챕터 17 nox 테스트 중입니다. 테스트 환경은 윈도우11, 파이썬 3.11버전이고 공유주신 noxfile.py 의 tests 세션을 실행하던 중에 다음 에러가 발생하였습니다. session.install("-e", ".") 실행중에 에러가 난것으로 보이는데 setup.py 나 pyproject.toml 이 없다고 나오는데 공유주신 자료에는 안보여서요.현재 프로젝트 파일 구조는 my_pytest / mycalc/my_pytest / tests /my_pytest / noxfile.pymy_pytest / requirements-dev.txt 로 되어 있습니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
Design Valid I/F
HDL 22장 8분 쯤에Design Valid I/F를 Season1에서 했다고 했는데어디서 했을까요?
-
해결됨김영한의 실전 데이터베이스 - 기본편
[수정 건의] 문제3의 실행 결과
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요, 영한님. 중요한 내용은 아니지만, 강의자료 개선에 조금이나마 도움이 될까 해서 글 남깁니다.요약: 문제3의 [실행 결과]의 행 순서를 변경하는 것을 제안합니다. 본론:문제3: 회사 주요 이벤트 타임라인 만들기의 경우 '최신 이벤트가 가장 위에 오도록 내림차순으로 정렬'할 것을 요구하고 있습니다. 현재 강의록의 [실행 결과]에는 다음 사진과 같이 고객 가입 이벤트가 모두 상품 주문 이벤트 보다 아래에 위치하고 있고, "고객 가입 이벤트의 날짜는 쿼리 실행 시점의 created_at 값에 따라 달라질 수 있다" 고 명시되어 있습니다. 수강생들이 위 사진만 얼핏 보고 섣불리 접근한다면, "(고객 생성 일시)가 쿼리 실행 시점에 따라 달라지기는 하지만, 그래도 모든 상품 주문 이벤트 이후에 위치하는게 올바른 결과겠구나"라고 판단할 위험이 있다고 생각해서 다음과 같이 수정하면 어떨까 의견을 제시합니다.수정 이후: 모든 고객 가입 이벤트 행이 모든 상품 주문 행보다 위에 위치. 즉, 현재 [실행 결과]에서 두 이벤트의 위치를 맞바꿈. 수정 제안에 대한 근거는 다음과 같습니다.예제 데이터를 삽입할 때 users.created_at 컬럼의 경우 DEFAULT CURRENT_TIMESTAMP로 추가했음.수강생은 강의 오픈 날짜인 2025-08-01 이후에 쿼리를 실행하는 것이 보장되기 때문에 users.crated_at 컬럼의 값 또한 마찬가지로 보장됨.상품_주문 이벤트의 이벤트_날짜 중 가장 최근은 2025-06-17로 강의 오픈 날짜보다 이전임. 따라서 모든 상품_주문 이벤트 또한 마찬가지로 보장됨.따라서 모든 users.created_at 데이터는 orders.order_date보다 최근임이 보장됨. 아래 사진은 참고용으로, 수강생인 제 경우의 실행 결과입니다. 위에서 설명한 바와 같이 고객 가입 이벤트가 항상 상품 주문 이벤트보다 그 시점이 최근임을 확인할 수 있습니다.
-
미해결350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
개인앱을 해야하는 이유
10분으로 된 강의를 듣고 있었는데 개인 앱 개발을 접근해야 할 지 부분부터 짤려서 뒤에 내용이 있을 거 같은데 다음 수업으로 넘어갑니다.
-
미해결바이브 코딩으로 만드는 재미있는 재무제표 (커서 ai)
claude-4-sonnet으로 챗하였는데 해당 오류로 진행이 되지않습니다.
안녕하세요 교수님, Anthropic's latest models are currently only available to paid users. Please upgrade to a paid plan to use these models.검색 내용 claude-4-sonnet으로 챗하였는데 해당 오류로 진행이 되지않습니다. 다른 모드 (gemini -2.5- flash)로 진행하면 전혀 다른 경로로 진행되네요 ㅠ
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
CommentApiTest 중 오류가 발생합니다
섹션3 23강 댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 파트 수강 중create 테스트를 실행하는데 오류가 계속 발생합니다package kuke.board.comment.api; import kuke.board.comment.service.response.CommentResponse; import lombok.AllArgsConstructor; import lombok.Getter; import org.junit.jupiter.api.Test; import org.springframework.web.client.RestClient; public class CommentApiTest { RestClient restClient = RestClient.create("http://localhost:9001"); @Test void create() { CommentResponse response1 = createComment(new CommentCreateRequest(1L, "my comment1", null, 1L)); CommentResponse response2 = createComment(new CommentCreateRequest(1L, "my comment2", response1.getCommentId(), 1L)); CommentResponse response3 = createComment(new CommentCreateRequest(1L, "my comment3", response1.getCommentId(), 1L)); System.out.println("commentId=%s".formatted(response1.getCommentId())); System.out.println("\tcommentId=%s".formatted(response2.getCommentId())); System.out.println("\tcommentId=%s".formatted(response3.getCommentId())); // commentId=123694721668214784 // commentId=123694721986981888 // commentId=123694722045702144 } CommentResponse createComment(CommentCreateRequest request) { return restClient.post() .uri("/v1/comments") .body(request) .retrieve() .body(CommentResponse.class); } @Getter @AllArgsConstructor public static class CommentCreateRequest { private Long articleId; private String content; private Long parentCommentId; private Long writerId; } } 코드는 강사님 코드를 복붙을 해 봤는데도 아래의 오류가 지속적으로 발생합니다500 Internal Server Error: "{"timestamp":"2025-08-24T11:27:31.828+00:00","status":500,"error":"Internal Server Error","path":"/v1/comments"}"org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: "{"timestamp":"2025-08-24T11:27:31.828+00:00","status":500,"error":"Internal Server Error","path":"/v1/comments"}"at org.springframework.web.client.HttpServerErrorException.create(HttpServerErrorException.java:102)at org.springframework.web.client.StatusHandler.lambdadefaultHandlerdefaultHandler3(StatusHandler.java:89)at org.springframework.web.client.StatusHandler.handle(StatusHandler.java:146)at org.springframework.web.client.DefaultRestClient$DefaultResponseSpec.applyStatusHandlers(DefaultRestClient.java:698)at org.springframework.web.client.DefaultRestClient.readWithMessageConverters(DefaultRestClient.java:200)at org.springframework.web.client.DefaultRestClient$DefaultResponseSpec.readBody(DefaultRestClient.java:685)at org.springframework.web.client.DefaultRestClient$DefaultResponseSpec.body(DefaultRestClient.java:631)at kuke.board.comment.api.CommentApiTest.createComment(CommentApiTest.java:32)at kuke.board.comment.api.CommentApiTest.create(CommentApiTest.java:14)at java.base/java.lang.reflect.Method.invoke(Method.java:580)at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) DB를 봤을 때 parent_comment_id 가 NOT NULL이라 안 되나 싶다가도강사님은 pdf의create table comment (comment_id bigint not null primary key,content varchar(3000) not null,article_id bigint not null,parent_comment_id bigint not null,writer_id bigint not null,deleted bool not null,created_at datetime not null);sql문과 똑같이 만들었던걸 생각하면 아닌 거 같기도 하고 뭐가 문제인지 감이 안 옵니다 @Service @RequiredArgsConstructor public class CommentService { private final Snowflake snowflake = new Snowflake(); private final CommentRepository commentRepository; @Transactional public CommentResponse create(CommentCreateRequest request) { Comment parent = findParent(request); Comment comment = commentRepository.save( Comment.create( snowflake.nextId(), request.getContent(), parent == null ? null : parent.getCommentId(), request.getArticleId(), request.getWriterId() ) ); return CommentResponse.from(comment); } private Comment findParent(CommentCreateRequest request) { Long parentCommentId = request.getParentCommentId(); if ( parentCommentId == null) { return null; } return commentRepository.findById(parentCommentId) .filter(not(Comment::getDeleted)) .filter(Comment::isRoot) .orElseThrow(); } public CommentResponse read(Long commentId) { return CommentResponse.from( commentRepository.findById(commentId).orElseThrow() ); } @Transactional public void delete(Long commentId) { commentRepository.findById(commentId) .filter(not(Comment::getDeleted)) .ifPresent(comment -> { if (hasChildren(comment)) { comment.delete(); } else { delete(comment); } }); } private boolean hasChildren(Comment comment) { return commentRepository.countBy(comment.getArticleId(), comment.getCommentId(), 2L) == 2; } private void delete(Comment comment) { commentRepository.delete(comment); if (!comment.isRoot()) { commentRepository.findById(comment.getParentCommentId()) .filter(Comment::getDeleted) .filter(not(this::hasChildren)) .ifPresent(this::delete); } } }서비스의 경우에도 딱히 차이점을 발견하지 못했고 혹시나 싶어 복붙을 해도 마찬가지의 오류가 발생합니다
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
38강 editConfiguration에 active profiles 가 없어요
위와 같이 active profiles가 없는데 어떻게 하면 될까요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
SRAM 강의 TB 작성 후 waveform 확인시에 dout이 모두 don't care 처리 관련 질문드립니다.
SRAM 기본 모델링 코드 작성후, RTL view통해서 확인시에 dout 값이 모두 xxxxxx로 처리가 되는데, TB 작성에도 문제가 없어보여 고쳐야할 부분이 있는지 문의드립니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
커리큘럼 질문
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 안녕하세요. 코드팩토리님, 강의 너무 잘보고 있습니다. 커리큘럼에 대해서 질문이 있는데 강의 소개에서는 배포에 대한 부분이 언급이 되어있는데 현재 커리큘럼을 쭉 보면 배포에 대한 부분이 없는데 혹시 아직 추가가 안된건가요?
-
미해결바이브 코딩으로 만드는 재미있는 재무제표 (커서 ai)
인스톨 재실행방법
Jemini cli 를. 실행시 요구되는 안스톨버젼이 안맞을때 재설정하는 방법을 알려주세요
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
로컬 모니터링 구축에 대해 질문있습니다.
Actuator, 프로메테우스, Grafana를 통해 운영 서버 모니터링 대시보드를 구축하려고 합니다. (CloudWatch는 일정 용량 이후 비용이 부과되는 문제로 Prometheus를 선택했습니다.)근데 운영 서버에서 Actuator와 프로메테우스 서버를 띄우면 외부에서도 Actuator 가 제공하는 메트릭 정보뿐만 아니라, 프로메테우스가 수집한 정보를 9090 포트 번호를 통해 접근 가능하다고 생각하였습니다.처음에는 Actuator의 정보를 ADMIN 권한을 가진 관리자만 접근 가능하도록 설정하였지만, Prometheus 서버에서 접근이 불가능한 문제가 생겼습니다.Prometheus와 Grafana를 통해 모니터링을 구축할 때, 데이터에 대한 보안을 강화할 수 있는 방법이 뭐가 있는지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-O 문의 드립니다!
안녕하세요 강사님 강의 매우 잘 듣고 있습니다!제 방식대로 하다가 잘 안된 부분들은 강사님 로직을 참고해서 구현해봤는데요예시 문제는 올바르게 값이 나왔습니다.하지만 채점을 돌리면 3%쯤에서 오답으로 나오는데... 어느 로직에서 잘못됐을까요...?질문하기 게시판의 반례 예시는 다 맞았습니다..! http://boj.kr/43dc36e6e08c4f1985b78c9d306f4bf5
-
해결됨김영한의 실전 데이터베이스 - 기본편
코드성 테이블과 캐시에 대한 질문
안녕하세요, 영한님. 다른 수강생 분의 질문 글에 남겨주신 답변에다가 제 질문을 작성했는데 혹시 이에 대한 알람은 가지 않을까봐 질문글을 따로 올리고, 아래에 그 링크를 첨부하도록 하겠습니다..!!(현재 글은 추후 자체 삭제 예정입니다)질문 글 링크https://inf.run/Rywjc
-
미해결부트스트랩 5(Bootstrap 5) - 기초부터 웹 프로젝트 만들기
services-col mx-2 my-3
버전의 문제인가 싶어서 강사님 수업자료 다운받아서 CSS만, JS만, HTML만 해봤으나 원인을 찾지못하여 글 남깁니다. mx-2가 먹히지 않는것인지 이미지 사이에 공백이 없네요.
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
어플리케이션 , 도메인 계층질문
안녕하세요 토비님어플리케이션 계층의 port는 도메인과 외부의 연결을 위해 필요 하다고 알고 있는데jpa나 마이바티스 같은 기술 또한 도메인 외부의 내용이기에 인프라 계층으로 들어간다고 알고 있습니다그런데 의존성 역전을 위한 레파지토리 인터페이스를 어플리케이션 계층에 만들면 어플리케이션 서비스에서 도메인에 관련된 내용을 너무 깊게 관여하는 것 같아서 질문 드립니다어플리케이션과 도메인의 경계를 어디까지로 보는게 좋을까요
-
미해결FPGA의 기초
vivado 설치 관련하여 질문 합니다.
vivado의 경우 메모리가 부족하여 MobaXterm을 이용하여 설치 했는데 이걸 그냥 사용해도 될까요? 아니면 새로 깔아야 하나요?
-
미해결1시간만에 끝내는 spring boot rest api 서비스 개발
@Controller 요청하는 방식에 대해 궁금합니다.
질문있습니다!Controller에서 데이터를 클라이언트로부터 요청 받을 때 @RequestBody, @RequestParam, @PathVariable, Dto를 활용하는데, 어떤 경우로부터 클라이언트에게 데이터를 요청받았을 때 어떤 방식을 사용하는게 맞는지를 알고 싶습니다!
-
해결됨김영한의 실전 데이터베이스 - 기본편
실무에서 인덱스 설계는 보통 개발 어느 시점에 진행하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]영한님이 제시해주신 가이드라인을 보면서'모든 기능 요구사항을 기본적으로 구현한 후, 작성된 쿼리를 전반적으로 훑어보면서 인덱스를 설계' 하는 것이 가장 효율적일 것이라고 생각이 들었는데요.영한님은 실무에서 인덱스 설계는 보통 개발 어떤 시점에 진행하시는지 궁금합니다.
-
미해결UDS 진단통신을 통한 SW 업데이트(SW ReProgramming)
펌웨어 훼손 & 전자서명 훼손
펌웨어 훼손 & 전자서명 훼손에 관해서 추가 강의 제작해줄수 있는지 여쭤봅니다 펌웨어 훼손 & 전자서명 훼손에 관해서 uds 스퀀스가 어떤식으로 동작을 하는지 궁금 합니다
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
List.jsx에서 검색어를 입력 시 getAnalyzedData() 함수가 지속적으로 호출되는 이유가 뭔가요
안녕하세요. 강의 잘 보고 있습니다.웹 페이지 중 List영역의 검색창에 단어를 입럭할 때 마다 getAnalyzed() 함수가 호출되는 이유가 궁금합니다.저의 부족한 실력으로나마 추측을 했을 때, 검색창에 해당하는<input>태그에 입력이 발생할 때 마다 search라는 내부 state의 값이 바뀌게 되어 랜더링이 다시 진행되고, 이에따라 getAnalyzed()가 실행되는 것 같습니다.답변 기다리겠습니다. 감사합니다!