묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
학습
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 영한님 저는 영한님 수업을 정말 잘 듣고있는 대학생입니다. 이번 spring강의를 들으면서 개인 velog에 학습겸 포스팅을 하고싶은데 주된내용이 영한님이 알려주시는 코드인지라 이런것들을 포스팅 해도되는지 여쭙고싶습니다. 인프런 강의보니까 모든 코드와 영한님이 만드신 pdf파일은 퀄리티가 상당하여 함부로 velog에 작성해도되는지 조심스럽습니다. 혹시 약간의코드와 배운 지식을 학습차원에서 게시해도 되는지 여쭈어봐도 될까요?
 - 
      
        
    미해결스프링 시큐리티 완전 정복 [6.x 개정판]
트랜잭션과 롤백
안녕하십니까 선생님, 이렇게 세션을 Redis에 저장할 때에는 예외 발생 시 트랜잭션, 롤백 같은 기능은 어떤 식으로 처리를 해야 하는 지 질문 드립니다.
 - 
      
        
    해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
강의에서 count의 개념
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의에서 만든 count 함수의 count 개념은전체 게시글 수인 total count의 개념이 아니라 페이지의 번호를 위한 count인거죠?
 - 
      
        
    미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
예제 실행 명령어 오류
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 예제도 함께 바꿔야 할 것 같아요🫡
 - 
      
        
    미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
[분산 서버 로그 처형 작전] 중 scp 오류
[작전명: 분산 서버 로그 처형 작전] [상황설명]: 코드 작성 후 최종 실행시, 비밀번호 입력 프롬프트 없이 아래 에러 발생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에러 발생
@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)
 - 
      
        
    미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
EmailSender, passwordEncoder 빈 주입 문의
안녕하세요, 강사님. 올려주신 강의를 열심히 듣고 있습니다.제가 코드를 따라하고 있는데 MemberService에서 주입한 emailSender와 passwordEncoder에 Could not autowire. No beans of 'PasswordEncoder' type found. 라는 오류가 뜹니다.찾아보니 해당 인터페이스가 빈으로 등록되지 않아서 생긴 오류라고 하는데 어디서 빈으로 등록한건지 못찾겠습니다. 급한대로 두 인터페이스에 @Component를 해봤는데 MemberService의 오류는 사라졌지만 MemberResisterTest에 NoSuchBeanDefinitionException 문제가 뜹니다. 원래는 인터페이스들을 어떻게 빈으로 등록했던건가요?
 - 
      
        
    해결됨Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기
[게시글 목록 페이지]수업에서 강의 내용대로 진행이 안되네요.
안녕하세요. 깃북 소스대로는 문제가 안 나오는데, [게시글 목록 페이지]수업 내용대로 코딩하면, useEffect( () => { getPostList() }, []);라는 소스가 있음에도useEffect가 정의 안 되었다고 에러가 나오네요. 이거 무슨 버전 문제인가, 라이브러리 문제인지는 모르겠는데... 해결 방법 여쭈어 보아도 될까요??
 - 
      
        
    미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
JwtTokenProvider 작성중 오류 발생으로 문의드립니다.
JwtTokenProvider 에서 생성자를 만들던 도중 해당 오류로 문제가 발생해서 token 발급에 막혀 문의드립니다. 해당 내용상 @Value 사용이 안되는 것으로 보이는데 혹시 원인을 알 수 있을까요?
 - 
      
        
    해결됨Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
강의내용 중 질문드립니다.
질문 : ec2에서 post man으로 요청을하면 log가 찍히질 않습니다. 강의와 마찬가지로 yml파일 구성을 아래와 같이 했습니다. services: springboot-twitter: container_name: springboot-twitter image: kki129443133/springboot-twitter-linux:latest ports: - "8080:8080" environment: - SPRING_DATASOURCE_URL=jdbc:mysql://mysql-twitter.c1cgyccww7yi.ap-northeast-2.rds.amazonaws.com:3306/twitterdb - SPRING_DATASOURCE_USERNAME=dev - SPRING_DATASOURCE_PASSWORD=dev123 시도사항1. header 값에 아래 값을 추가해준것인데 효과 없었습니다.Key: Content-TypeValue: application/json2. 번쨰는 아래값을 yml에 추가 해주었는데 - SPRING_JPA_SHOW_SQL=true - SPRING_JPA_PROPERTIES_HIBERNATE_FORMAT_SQL=true - LOGGING_LEVEL_ORG_HIBERNATE_SQL=DEBUG - LOGGING_LEVEL_ORG_HIBERNATE_TYPE_DESCRIPTOR_SQL_BASICBINDER=TRACE - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_WEB=DEBUG - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_WEB_SERVLET_DispatcherServlet=DEBUG 이후 아래와 같이 반응을 하긴하는데 어떤 문제로 인해서 강의와 같이 로그가 안찍히는 지 모르겠습니다.2025-07-14T14:20:32.262Z DEBUG 8 --- [nio-8080-exec-8] o.s.web.servlet.DispatcherServlet : Completed 200 OK 2025-07-14T14:20:33.145Z DEBUG 8 --- [nio-8080-exec-9] o.s.web.servlet.DispatcherServlet : GET "/api/posts", parameters={} 2025-07-14T14:20:33.145Z DEBUG 8 --- [nio-8080-exec-9] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.apiece.springboot_twitter.PostController#getAllPosts() 2025-07-14T14:20:33.146Z DEBUG 8 --- [nio-8080-exec-9] m.m.a.RequestResponseBodyMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json] 2025-07-14T14:20:33.147Z DEBUG 8 --- [nio-8080-exec-9] m.m.a.RequestResponseBodyMethodProcessor : Writing [[com.apiece.springboot_twitter.Post@1de33c5b, com.apiece.springboot_twitter.Post@e7411e2, com.apiece (truncated)...] 2025-07-14T14:20:33.149Z DEBUG 8 --- [nio-8080-exec-9] o.s.web.servlet.DispatcherServlet : Completed 200 OK
 - 
      
        
    미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
jobConfiguration 구성 질문
안녕하세요, 강의를 보던 중 문득 궁금한 점이 생겨 문의드립니다. Spring Batch에서 Job 설정 클래스를 구성할 때, 아래와 같이 두 가지 스타일이 혼용되는 것을 자주 보게 되는데요.🥔 PotatoJobConfiguration (생성자 주입 방식)@RequiredArgsConstructor public class PotatoJobConfiguration { private final JobRepository jobRepository; private final PlatformTransactionManager transactionManager; @Bean public Job potatoJob() { return new JobBuilder("potatoJob", jobRepository) .start(potatoStep()) .build(); } @Bean public Step potatoStep() { return new StepBuilder("potatoStep", jobRepository) .tasklet((contribution, chunkContext) -> RepeatStatus.FINISHED, transactionManager) .build(); } }🥬 KimchiJobConfiguration (메서드 파라미터 주입 방식)@RequiredArgsConstructor public class KimchiJobConfiguration { @Bean public Job kimchiJob( final JobRepository jobRepository, final Step kimchiStep ) { return new JobBuilder("kimchiJob", jobRepository) .start(kimchiStep) .build(); } @Bean public Step kimchiStep( final JobRepository jobRepository, final PlatformTransactionManager transactionManager ) { return new StepBuilder("kimchiStep", jobRepository) .tasklet((contribution, chunkContext) -> RepeatStatus.FINISHED, transactionManager) .build(); } }강의를 보다 보면 예시마다 사용되는 경우가 다르던데,어떤 기준에 따라 생성자 주입 방식과 메서드 파라미터 주입 방식을 구분해서 사용하시는지 궁금합니다. 실무에서도 보통 이 둘을 혼용하는 편인지,아니면 상황에 따라 선호되는 방식이 명확히 나뉘는지 조언 부탁드립니다. 감사합니다.
 - 
      
        
    미해결스프링 배치
트랜잭션 예외
안녕하세요, 선언적 트랜잭션을 사용하였지만 제 예상과 다르게 서비스 로직이 롤백되지 않고 끝까지 실행되는 현상이 있어서 자문을 구합니다. 실행 시킨 코드는Job, Step, Tasklet으로 구성된 간단한 로직입니다.Tasklet에서 DB CUD 작업을 수행하는 Service 클래스를 호출하여 사용하고 있습니다. 코드 흐름 예시)@RequiredArgsConstructorpublic class TestService { private final TestMapper mapper;@Transaction(rollbackFor = Exception.class) public void update() {mapper.update1(); mapper.update2(); }} update1을 수행 중, SQL 레벨에서 예외 발생(ex. PSQL Exception) 기대결과update1 예외 및 롤백update2를 실행하지 않고 서비스 로직 중단 실제결과update1 예외update2 실행 후 커밋 무엇이 문제인지 고견을 여쭙고 싶습니다.
 - 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
빌드 시작부터..
빌드 시작부터 오류가 나요;;
 - 
      
        
    미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
jobExecutionContext 에 접근하는 방법
치치직...1장 작전 3에서,키보드는 꽉 잘 잡았는데 궁금한게 발생했다. jobExecutionContext 에 접근/수정할 때chunkContext 를 통해서 접근하는 방법과 contribution 을 통해서 접근하는 방법 두가지를 알게 되었다. 일부러 두가지 침투 방식 을 알려준 것 같으나 두 방식의 차이가 있는지, 무엇이 더 선호되는지 아니면 취향의 문제인지 궁금하다.
 - 
      
        
    미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
동일 프로젝트에 서비스 간 의존성 주입 질문
안녕하세요. 강의 잘 보고 있습니다. 헥사고날 아키텍처 구조에서 궁금한 점이 있습니다.동일 프로젝트에 회원, 부서 도메인이 있고, 회원 서비스가 부서 서비스를 의존하고 있을 경우이 경우에는 포트+어댑터 패턴을 유지하는게 좋을까요? 아니면 부서 패키지 내에 존재하는 서비스 인터페이스로 주입받아도 괜찮을까요?포트 + 어댑터 구조로 할 경우 어댑터가 단순히 부서 서비스를 의존받아 호출만 하는 용도로만 사용하는거 같아 장점을 잘 모르겠습니다. (회원, 부서 도메인이 별도 프로젝트로 분리될 가능성은 희박하다는 전제입니다.)
 - 
      
        
    해결됨Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기
두번째 게시글 등록이 안되네요.
안녕하세요. 수업 내용의 모든 내용에 대응했는데도,두번째 게시글 등록이 안되네요.브라우저에 보이는 에러 로그 남겨놓겠습니다.조언 부탁드립니다.
 - 
      
        
    해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
인기글 설계에 대하여 질문드립니다.
안녕하세요? 강의 정말로 잘듣고 있습니다. 인프런에서 여러 강의를 수강했지만, 정말 질 좋은 강의라고 생각합니다 ㅎㅎ..인기글 설계에 대해 궁금한 부분이 있습니다. 1)저는 레디스의 sorted_set을 사용한다고 하셨을 때, 처음 떠올린 구조는 모든 게시글에 대한 점수를 기록하면서 자연스럽게 sorted_set에 의해 정렬되는 형태를 생각했었습니다.예를 들어 20250713에 게시글이 십만개가 생성되었다고 하면, 20250713 sorted_set에 십만개의 게시글에 대한 점수가 들어있고, 필요할 떄 상위 10개의 데이터를 추출하여 인기글로 선정하는 형태입니다.이렇게 하면 게시글과 연관된 데이터의 개수를 적재할 필요도 없다고 생각했고, sorted_set을 자연스럽게 활용하는 형태라고 생각했습니다. 이벤트를 수신하고나면, 적절하게 점수만 올려주면 된다고 생각하구요. 이렇게 하면 게시글과 관련된 데이터를 적재할 필요도 없을 것 같아서 나쁘지 않은 방법 같은데, 이 방법에 대해서 어떻게 생각하시는지 궁금합니다 2) 비슷한 맥락으로, 강의에서 보여주신 방향을 선택하신 이유도 좀 궁금합니다. 1)에서 제가 말씀드린 방안보다 선생님이 강의에서 말씀해주신 방향이 어떤 장점이 있는걸까요? 3) 마지막으로.. 강의가 너무 좋아서 다음강의가 기대가 되는데요, 혹시 비슷한 사이즈에 비슷한 볼륨일까요?또 이미 강의를 제작중이실 것 같은데, 캐싱과 관련된 부분이라고는 알고 있지만 조금 더 상세한 커리큘럼이나 개강일자가 궁금합니다 ㅎㅎ좋은 강의 감사합니다
 - 
      
        
    미해결스프링 부트 - 핵심 원리와 활용
내장 톰캣 실행 오류 관련 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]오후 12:21:38: Executing ':hello.embed.EmbedTomcatServletMain.main()'…> Task :compileJava UP-TO-DATE> Task :processResources NO-SOURCE> Task :classes UP-TO-DATE> Task :hello.embed.EmbedTomcatServletMain.main()EmbedTomcatServletMain.main7월 13, 2025 12:21:39 오후 org.apache.coyote.AbstractProtocol initINFO: Initializing ProtocolHandler ["http-nio-8080"]7월 13, 2025 12:21:39 오후 org.apache.catalina.core.StandardService startInternalINFO: Starting service [Tomcat]7월 13, 2025 12:21:39 오후 org.apache.catalina.core.StandardEngine startInternalINFO: Starting Servlet engine: [Apache Tomcat/10.1.5]7월 13, 2025 12:21:39 오후 org.apache.coyote.AbstractProtocol startINFO: Starting ProtocolHandler ["http-nio-8080"]여기서 시간만 무제한으로 잡아먹고 더 진행이 안되는데 어떻게 해야할까요.. 내장 톰캣2-서블릿 강의를 보고 하는 중입니다. 8080 포트는 톰캣 외에 사용하는 것이 없고, 톰캣 폴더에 webapps도 만들어 두었고,혹시 몰라 java 17도 다시 깔고 환경변수 설정도 다 했는데, 다른 컴퓨터에서도 같은 문제가 발생합니다. 검색해서 java.security의 securerandom.source=file:/dev/randomtosecurerandom.source=file:/dev/./urandom바꿔봤는데도 그대로입니다.어떻게 해야할까요?
 - 
      
        
    해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
인기글 e2e 테스트 관련해서 궁금합니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 강의 3회차를 복습하면서 궁금한 점이 생겨 질문드립니다. 인기글 섹션 마지막에, 모든 서버와 컨테이너를 실행해둔 상태에서 테스트 코드로 직접 호출해 기능을 검증하셨는데요. 실무에서도 E2E 테스트나 시나리오 테스트를 이러한 방식으로 진행하는지 궁금합니다. 개인적으로는 서버와 컨테이너를 매번 띄우고 테스트하는 과정에서 실수할 여지도 있고, 관리도 어려워 보인다는 생각이 들었습니다. 모듈 내부의 단위 테스트나 통합 테스트는 직접 작성해봤지만, 인기글처럼 여러 모듈 간의 상호작용을 테스트해 본 적은 없어 실제 현업에서는 어떤 식으로 검증하는지 궁금해 질문드립니다. 미리 답변 감사드립니다!
 - 
      
        
    해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
안녕하세요 토비님 개인적인 질문이 있습니다.
강의와는 관련이 없는데, 개인적인 질문이 있습니다.저는 자바 스프링 신입 개발자를 준비하고 있는 학생입니다.지금까지는 MVC 패턴만 사용하고, 모놀리틱 아키텍처를 사용해서 배포를 진행하고 프로젝트를 해왔습니다. 제가 알기로는 학습적으로나 포트폴리오적으로나 필요성을 느껴서 하는 공부가 제일 좋다고 들었습니다. 근데, 최근에는 어떤 필요성을 느끼지 못하면서 대규모 시스템 강의,헥사고날 아키텍처가 중요하다고 하니 강의 등을 듣고 있습니다. 왜냐하면, 본격적인 취업은 내년이고 시간이 좀 남았습니다. 그래서 해당 강의들을 들어두면 언젠가 개인 프로젝트나 현업에서 사용할 수 있지 않을까하고 듣고있습니다만, 제가 사용했던 MVC 패턴의 장단점 등 기본적인 것들도 알지 못하는 상태에서 계속 진도 나가듯이 이런 저런 강의를 듣고 하는게 괜찮을까요? 즉, 아직 기본도 잘 모르면서 계속 새로운 걸 배우는 과정들이 괜찮을까하는 걱정이 드네요. 하지만, 한편으로는 CS지식이 너무 방대해서 기초를 다 잡아두고 다음 단계로 넘어간다는 것도 솔직히 엄두가 안납니다. 그래서 우선은 쭉 이것저것 배워두고 나중에 필요하면 다시 찾아보면서 공부하면 되지 않을까 싶은데, 토비님은 어떤 방향이 더 괜찮다고 생각하시나요??