[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 강의 수강 중 질문이 생겨 여쭤봅니다. 요구사항 분석을 확인하면 '상품 등록'이 있습니다. 상품 등록은 회원이 직접 상품을 등록하는 것일텐데 도메인 모델 설계 부분에서 Member 엔티티와 Item 엔티티 간 연관관계가 없는 이유가 궁금합니다. Member 엔티티가 Item을 등록하는 기능도 있으니 Member 엔티티와 Item 엔티티 간 연관관계도 설정해주어야 하지 않나요 ?!
안녕하세요 🙂 "도메인 모델을 직렬화 했다가, RDB에 저장했다가" 하는 경우도 JPA와 도메인모델 분리가 필요한 경우라고 생각되는데 어떻게 생각하시나요? 도메인모델이 생성되었을때 영구보관이 필요한게 아니라, 어느정도 상태머신이 진행된 후 영구 보관이 필요하여 그전에는 레디스나 다이나모 같은 저장소에 보관하다가, 이후에 RDB에 영구보관을 하는 경우가 좀 더 자세한 예시일 것 같아요. 이 경우 JPA에서 DB 성능등을 이슈로 양방향맵핑을 하는 경우 순환참조로 인한 직렬화 이슈가 생기기 때문에 어떻게 해결할 수 있을지 고민하다가 이때 모델 분리를 선택한 경험이 있습니다. -- 무조건적인 지향을 하는게 아니라 필요에 따라 기술을 선택할 수 있게 강의를 진행해주시는 점 너무 많이 배우고 있습니다. 감사합니다.
안녕하세요 강의 수강 중 궁금한 것이 생겨서 질문 드립니다. 강의에서 Claude에게 우리 로컬에 있는 스프링(인텔리제이) 파일 구조를 묻고 Claude는 권한을 물은 뒤 구조를 분석해줬는데 여기에서 Claude에도 제트브레인 관련 플러그인(JSON 파일)을 설정해주어서 Claude에게 질문을 했을 때 Claude MCP 서버가 제트브레인 MCP로 요청을 해서 내용을 받은 것이라고 이해했고 제트브레인 MCP 서버는 강의에서 인텔리제이에 MCP 서버 플러그인을 설치해서 내 로컬의 파일 구조를 상호작용을 통해 알 수 있을 거라고 추측하고 있는데(맞게 이해했는 지는 잘 모르겠네요ㅎ..) 그러면 제트브레인의 MCP는 Claude MCP 서버가 주는 요청이 내 로컬의 인텔리제이 IDE의 내용이라는 것을 어떻게 알 수 있는 걸까요? 강의 내용과는 무관할 수 있는데 궁금해서 질문 남깁니다. 감사합니다!
안녕하세요~ 어뷰징 방지에 대한 질문을 드리고 싶습니다. 현재, 어뷰징 방지를 위해 분산락을 잡고 해당 유저가 특정 게시물에 대한 조회수를 10분 동안 1만 올릴 수 있도록 설계해주셨는데요. 레디스의 키-벨류 로도 충분히 위와 같은 어뷰징 방지를 설계할 수 있지 않나요? SETNX (key=유저+게시글, value=1, TTL=10분) 만약 이 값이 이미 존재한다면 조회수를 올리지 않는 방식으로 구현해도 충분할 거 같은데, 분산락으로 이 로직을 구현하신 이유가 궁금합니다. 감사합니다!
JwtAuthFilter에서 /connect 경로의 토큰 검증도 이루어진다면 interceptor는 구현할 필요는 없는건가요? 동일하게 subscribe, disconnect도 JwtAuthFilter에서 검증이 이루어지니까 interceptor 코드는 필요 없는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. '1.프로젝트 환경설정.pdf' 강의자료내 5페이지 에 있는 gradle 명령어에 오류 가 있어 제보 합니다. 강의자료 5페이지에 있는 내용중 아래의 이미지에 표시한 gradle 명령어를 그대로 복사했을때 동작하지 않습니다. ./gradlew dependencies —configuration compileClasspath 하이픈(-) 하나가 누락된것으로 보이는데 아래와 같이 정정 요청 드립니다. :-) AS-IS ./gradlew dependencies —configuration compileClasspath TO-BE ./gradlew dependencies -—configuration compileClasspath
토비님, 항상 좋은 강의 감사드립니다. 강의 내용을 학습하던 중 궁금한 점이 생겨서 질문드립니다! 강의 코드에서 MemberRegisterRequest 가 domain 패키지 안에 직접 정의되어 있고, 이 동일한 객체를 adapter 계층의 컨트롤러에서 @RequestBody 로 직접 받는 것을 확인했습니다. 제가 접해온 일반적인 계층형 아키텍처에서는, 웹 계층을 위한 DTO를 별도로 두고 서비스 계층에서 이를 도메인 객체로 변환하여 도메인 계층이 웹 DTO에 의존하지 않도록 분리하는 방식을 주로 사용했습니다. 그래서 강의에서 보여주신 설계 방식에 대해 궁금한 점이 두 가지 있습니다. 이처럼 요청(Request) 자체를 도메인의 일부로 보고 domain 패키지에 포함시키는 설계 가 갖는 이점은 무엇인지 궁금합니다. 이러한 설계가 계층 간의 결합도를 높일 수 있다는 우려 에 대해서는 어떻게 생각하시는지, 그리고 어떤 상황에서 이러한 실용적인 접근이 더 효과적이라고 판단하시는지, 토비님의 설계 철학이나 기준 에 대해 여쭙고 싶습니다. 감사합니다.
depth가 3이상인 댓글을 삭제했을 때 부모의 부모까지 삭제가 이루어져야 하는 경우가 있지 않나요? <삭제된 댓글> ---- depth 1 ㄴ <삭제된 댓글> ---- depth 2 ㄴ <삭제되지 않은 댓글> ---- depth 3 위 구조에서 depth 3의 댓글이 삭제되면 depth 1의 댓글도 삭제되어야 하지 않나요? 현재 delete 함수의 로직은 그렇게 작성되지 않은 것으로 이해했는데, 제가 이해한게 맞는지 궁금합니다. 감사합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 회원 등록을 모두 한 후에 회원 조회을 하면 Whitelabel Error Page 가 나옵니다. 어디가 문제인지 도저히 모르겠습니다. 코드 구글드라이브 링크 첨부하겠습니다. 도움 부탁드립니다! https://drive.google.com/file/d/1lv8SJTWHjyc_gJBVFh0PFG0BTv3y_SPK/view?usp=sharing
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 강의 수강 중 질문이 생겨 여쭤봅니다. 강의에서는 사용자에게 입력받은 BookForm form의 데이터를 새로운 객체인 Book book = new Book();에 할당하고 있습니다. (5분 54초) 강의 중 '임의로 만든 엔티티이지만 식별자 pk를 가지고 있기에 준영속 엔티티이다' 라고 말씀하셨는데, 준영속 엔티티의 기준이 궁금합니다. 이미 DB에 persist된 객체의 참조가 아닌 식별자 값만 공유하더라도 준영속 엔티티가 되는 것일까요 ? Book book = (Book) itemService.findOne(form.getId()); 이렇게 DB에서 참조를 직접 조회하지 않고 단순히 id값만 DB에서 가져와서 할당해도 준영속 엔티티의 기준이 되는지 궁금해서 여쭤봅니다 !
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 영한님 저는 영한님 수업을 정말 잘 듣고있는 대학생입니다. 이번 spring강의를 들으면서 개인 velog에 학습겸 포스팅을 하고싶은데 주된내용이 영한님이 알려주시는 코드인지라 이런것들을 포스팅 해도되는지 여쭙고싶습니다. 인프런 강의보니까 모든 코드와 영한님이 만드신 pdf파일은 퀄리티가 상당하여 함부로 velog에 작성해도되는지 조심스럽습니다. 혹시 약간의코드와 배운 지식을 학습차원에서 게시해도 되는지 여쭈어봐도 될까요?
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의에서 만든 count 함수의 count 개념은 전체 게시글 수인 total count의 개념이 아니라 페이지의 번호를 위한 count인거죠?
SystemDeathJobConfig 예제 실행 명령어가 > ./gradlew bootRun --args='--spring.batch.job.name=recordSystemKillJob inputFile=/path-to-kill-batch-system/system_death.jsonl' ... SystemDeath[command=destroy, cpu=99, status=memory overflow] SystemDeath[command=explode, cpu=100, status=cpu meltdown] SystemDeath[command=collapse, cpu=95, status=disk burnout] ... 로 되어 있는데 job.name이 recordSystemKillJob -> systemDeathJob으로 바껴야 할 것 같습니다🫡 JsonRecordSeparatorPolicy 예제도 함께 바꿔야 할 것 같아요🫡
[ 작전명: 분산 서버 로그 처형 작전] [상황설명] : 코드 작성 후 최종 실행시, 비밀번호 입력 프롬프트 없이 아래 에러 발생 org.springframework.batch.core.step.tasklet.SystemCommandException: Execution of system command failed with exit code 255 at org.springframework.batch.core.step.tasklet.SystemCommandTasklet.execute(SystemCommandTasklet.java:129) ~[spring-batch-core-5.2.2.jar:5.2.2] [환경] : mac, intellij [분석] : 터미널에서는 scp localhost 하면 비밀번호 프롬프트가 잘 떴으나, 배치실행시에만 에러가 발생 [추가시도] ssh-keygen -t rsa -b 4096 으로 키쌍 생성 후 ssh-copy-id -i ~/.ssh/id_rsa.pub localhost 공개키를 등록 후 ssh localhost 하여 비밀번호 없이 접근 확인 이후 정상 처형 확인 완료
@Test create 메소드 실행시 500에러 발생하였습니다. (게시판에 올라와잇는 해결방법은 다 해봤는데 해결되지 않았습니다.) 강사님 소스코드 다운받고 돌려도 동일하게 발생합니다.. org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: "{"timestamp":"2025-07-15T14:25:26.527+00:00","status":500,"error":"Internal Server Error","path":"/v1/articles"}" at org.springframework.web.client.HttpServerErrorException.create(HttpServerErrorException.java:102) at org.springframework.web.client.StatusHandler.lambda$defaultHandler$3(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.article.ArticleApiTest.create(ArticleApiTest.java:27) at kuke.board.article.ArticleApiTest.createTest(ArticleApiTest.java:16) 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)
안녕하세요, 강사님. 올려주신 강의를 열심히 듣고 있습니다. 제가 코드를 따라하고 있는데 MemberService에서 주입한 emailSender와 passwordEncoder에 Could not autowire. No beans of 'PasswordEncoder' type found. 라는 오류가 뜹니다. 찾아보니 해당 인터페이스가 빈으로 등록되지 않아서 생긴 오류라고 하는데 어디서 빈으로 등록한건지 못찾겠습니다. 급한대로 두 인터페이스에 @Component를 해봤는데 MemberService의 오류는 사라졌지만 MemberResisterTest에 NoSuchBeanDefinitionException 문제가 뜹니다. 원래는 인터페이스들을 어떻게 빈으로 등록했던건가요?
안녕하세요. 깃북 소스대로는 문제가 안 나오는데, [게시글 목록 페이지]수업 내용대로 코딩하면, useEffect( () => { getPostList() }, []); 라는 소스가 있음에도 useEffect가 정의 안 되었다고 에러가 나오네요. 이거 무슨 버전 문제인가, 라이브러리 문제인지는 모르겠는데... 해결 방법 여쭈어 보아도 될까요??