묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
@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)
-
해결됨Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기
[게시글 목록 페이지]수업에서 강의 내용대로 진행이 안되네요.
안녕하세요. 깃북 소스대로는 문제가 안 나오는데, [게시글 목록 페이지]수업 내용대로 코딩하면, useEffect( () => { getPostList() }, []);라는 소스가 있음에도useEffect가 정의 안 되었다고 에러가 나오네요. 이거 무슨 버전 문제인가, 라이브러리 문제인지는 모르겠는데... 해결 방법 여쭈어 보아도 될까요??
-
해결됨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
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
현재 강의를 이용하여 3D 게임을 만들 경우 변경되야 될 사항들에 대해 궁금합니다.
안녕하세요. 루키스님 강의를 열심히 듣고 있는 초보개발자입니다. 현재 강의는 2D기반의 게임인데, 맵 및 몬스터, 캐릭터를 3D 케릭터로 변경되면, 현재 개발하신 코드들에서 어떤 부분들이 변경되는지.. 그리고 변경될 사항들이 많은지 궁금증이 생겨 문의드립니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
빌드 시작부터..
빌드 시작부터 오류가 나요;;
-
해결됨Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기
두번째 게시글 등록이 안되네요.
안녕하세요. 수업 내용의 모든 내용에 대응했는데도,두번째 게시글 등록이 안되네요.브라우저에 보이는 에러 로그 남겨놓겠습니다.조언 부탁드립니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
인기글 설계에 대하여 질문드립니다.
안녕하세요? 강의 정말로 잘듣고 있습니다. 인프런에서 여러 강의를 수강했지만, 정말 질 좋은 강의라고 생각합니다 ㅎㅎ..인기글 설계에 대해 궁금한 부분이 있습니다. 1)저는 레디스의 sorted_set을 사용한다고 하셨을 때, 처음 떠올린 구조는 모든 게시글에 대한 점수를 기록하면서 자연스럽게 sorted_set에 의해 정렬되는 형태를 생각했었습니다.예를 들어 20250713에 게시글이 십만개가 생성되었다고 하면, 20250713 sorted_set에 십만개의 게시글에 대한 점수가 들어있고, 필요할 떄 상위 10개의 데이터를 추출하여 인기글로 선정하는 형태입니다.이렇게 하면 게시글과 연관된 데이터의 개수를 적재할 필요도 없다고 생각했고, sorted_set을 자연스럽게 활용하는 형태라고 생각했습니다. 이벤트를 수신하고나면, 적절하게 점수만 올려주면 된다고 생각하구요. 이렇게 하면 게시글과 관련된 데이터를 적재할 필요도 없을 것 같아서 나쁘지 않은 방법 같은데, 이 방법에 대해서 어떻게 생각하시는지 궁금합니다 2) 비슷한 맥락으로, 강의에서 보여주신 방향을 선택하신 이유도 좀 궁금합니다. 1)에서 제가 말씀드린 방안보다 선생님이 강의에서 말씀해주신 방향이 어떤 장점이 있는걸까요? 3) 마지막으로.. 강의가 너무 좋아서 다음강의가 기대가 되는데요, 혹시 비슷한 사이즈에 비슷한 볼륨일까요?또 이미 강의를 제작중이실 것 같은데, 캐싱과 관련된 부분이라고는 알고 있지만 조금 더 상세한 커리큘럼이나 개강일자가 궁금합니다 ㅎㅎ좋은 강의 감사합니다
-
해결됨React & FastAPI로 만드는 투표 커뮤니티 플랫폼: 결제 시스템으로 수익화까지!
Navbar.jsx 메뉴 바 제작 (2부) 강의 MobileToggleButton.jsx 코드가 다른 것 같아요
Navbar.jsx 메뉴 바 제작 (2부) 강의 입니다.MobileToggleButton.jsx 강의 코드와노션에 올라와 있는 코드가 다른 것 같네요? 강의에서는 toggle 관련 코드이고노션에서는 onClick={() => setIsOpen(!isOpen)}이렇게 되어있는데요노션 코드로 하니 에러가 발생하는데강의코드가 맞는건가요??
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
인기글 e2e 테스트 관련해서 궁금합니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 강의 3회차를 복습하면서 궁금한 점이 생겨 질문드립니다. 인기글 섹션 마지막에, 모든 서버와 컨테이너를 실행해둔 상태에서 테스트 코드로 직접 호출해 기능을 검증하셨는데요. 실무에서도 E2E 테스트나 시나리오 테스트를 이러한 방식으로 진행하는지 궁금합니다. 개인적으로는 서버와 컨테이너를 매번 띄우고 테스트하는 과정에서 실수할 여지도 있고, 관리도 어려워 보인다는 생각이 들었습니다. 모듈 내부의 단위 테스트나 통합 테스트는 직접 작성해봤지만, 인기글처럼 여러 모듈 간의 상호작용을 테스트해 본 적은 없어 실제 현업에서는 어떤 식으로 검증하는지 궁금해 질문드립니다. 미리 답변 감사드립니다!
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
시퀄라이즈 실습하기 질문드립니다.
실습 중에 댓글 작성하려고 하는데 오류가 발생해서 오류 로그를 보다가 sqlMessage 로 "Unknown column 'commenter' in 'field list'", 라는 문구를 봤습니다. 따로 commenter 라는 필드를 만드신건 못본거같은데 제가 강의를 흘려 들은건지 잘 모르겠습니다. 근데 이상한건, 맨 처음에 실행하고 댓글을 작성할땐 댓글이 작성이 되고, MySQL 에 들어가서 comment 테이블을 확인해보면 댓글이 들어가긴 했습니다.근데 두번째 댓글 작성시도부터 오류가 발생했습니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
대규모 시스템에 관련하여 질문 있습니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의 잘 보고 있습니다. 복습하던 중에 궁금한 부분이 있어 질문을 남깁니다.현업에서 대규모 시스템을 만드는 경우에 헥사고날 아키텍처 + MSA를 사용한다는 것으로 알고 있는데, MVC 패턴이 아니라,헥사고날 아키텍처를 대규모 시스템에서 더 선호하고 사용하는 이유가 무엇인가요?? 추가적으로 이건 강의와는 관련이 없는데, 개인적인 질문이 있습니다.저는 자바 스프링 신입 개발자를 준비하고 있는 학생입니다.지금까지는 MVC 패턴만 사용하고, 모놀리틱 아키텍처를 사용해서 배포를 진행하고 프로젝트를 해왔습니다. 제가 알기로는 학습적으로나 포트폴리오적으로나 필요성을 느껴서 하는 공부가 제일 좋다고 들었습니다. 근데, 최근에는 어떤 필요성을 느끼지 못하면서 대규모 시스템 강의,헥사고날 아키텍처가 중요하다고 하니 강의 등을 듣고 있습니다. 왜냐하면, 본격적인 취업은 내년이고 시간이 좀 남았습니다. 그래서 해당 강의들을 들어두면 언젠가 개인 프로젝트나 현업에서 사용할 수 있지 않을까하고 듣고있습니다만, 제가 사용했던 MVC 패턴의 장단점 등 기본적인 것들도 알지 못하는 상태에서 계속 진도 나가듯이 이런 저런 강의를 듣고 하는게 괜찮을까요? 즉, 아직 기본도 잘 모르면서 계속 새로운 걸 배우는 과정들이 괜찮을까하는 걱정이 드네요. 하지만, 한편으로는 CS지식이 너무 방대해서 기초를 다 잡아두고 다음 단계로 넘어간다는 것도 솔직히 엄두가 안납니다. 그래서 우선은 쭉 이것저것 배워두고 나중에 필요하면 다시 찾아보면서 공부하면 되지 않을까 싶은데, 쿠케님은 어떤 방향이 더 괜찮다고 생각하시나요??
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.
안녕하세요. 수업 중 막히는 것이 있어서 질문 글 올립니다.수업을 다 따라가고 연결테스트를 하려고 했는데,이렇게 에러가 생겼습니다.분명히 config폴더가 있고 그안에 config.json 파일이 존재하는데 없다고 하길래, 일단 npx sequelize init 을 했더니 이번에는 config 파일이 이미 존재한다는 소리를 하길래 --force 를 하긴했습니다.그런 다음에 다시 실행하니까,이렇게 오류메시지가 생겼어요.강의에는 models 폴더에 user라는 파일을 만들라는 건 듣도보도 못했는데, 뭐가 잘못된건지 잘 모르겠습니다.
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
eventPublisher.publishEvent 시 @Transactional을 걸어야 하지 않나요?
딩코님! 강의 너무 잘 듣고 있습니다~! 강의를 따라가며 디비와 트랜잭션 그리고 락에 관해 심화 내용도 듣고 포폴도 하나하나 잘 채워가고 있습니다! 다름이 아니라 딩코님이 내주신 과제 중에 의문이 있어 질문을 드리게 되었습니다. 1. 현재 학습 진도4주차 수강 후 락과 트랜잭션 최적화를 수행하고 있습니다. 현재 여러가지 작업(일기 작성, 포인트 적립, AI 댓글 작성 예약, 알림 이벤트 발생)에 대해 facade 계층을 만들어 중요한 작업(일기 작성, 포인트 적립)에 대해서는 트랜잭션을 묶어 우선적으로 처리되게 하고 AI 댓글은 TaskScheduler로 특정 시간 후에 비동기적으로 이루어지게 하며 알림은 spring event로 after commit 후 처리하려 합니다. 2. 어려움을 겪는 부분현재 이벤트 발행 (트랜잭션 커밋 후 실행됨, after-commit)에 대해 의문이 있습니다.현재 딩코님이 올려주신 코드에는@Component @RequiredArgsConstructor @Slf4j public class ImprovedEventJoinWithExternalApiUpdateFacade { private static final String TEST_PHONE_NUMBER = "01012341234"; private final EventExternalUpdateService eventJoinService; private final ExternalEventApi externalEventApi; private final ApplicationEventPublisher eventPublisher; public void joinEvent(Long eventId, Long memberId) { // 1. 기존 서비스로 이벤트 참가 처리 EventWithLockParticipant participant = eventJoinService.joinEventWithTransaction(eventId, memberId); // 2. 외부 API 호출 ExternalEventResponse response = externalEventApi.registerParticipant( eventId, memberId, participant.getEvent().getName() ); if (!response.isSuccess()) { throw new RuntimeException("외부 API 호출 실패: " + response.getErrorMessage()); } // 3. 외부 API 응답으로 참가자 정보 업데이트 eventJoinService.updateExternalId(participant, response.getExternalId()); // 4. 이벤트 발행 (트랜잭션 커밋 후 실행됨) eventPublisher.publishEvent(new EventJoinCompletedEvent( eventId, participant.getEvent().getName(), TEST_PHONE_NUMBER )); } }이렇게 코드 내에 @Transactional이 걸려있지 않습니다. 그런데 이벤트 리스너에는@Component @RequiredArgsConstructor @Slf4j public class EventJoinEventListener { private final KakaoTalkMessageApi kakaoTalkMessageApi; @Async @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) public void handleEventJoinCompleted(EventJoinCompletedEvent event) { try { kakaoTalkMessageApi.sendEventJoinMessage( event.getPhoneNumber(), event.getEventName() ); } catch (Exception e) { log.error("알림 발송 실패. eventId={}, eventName={}", event.getEventId(), event.getEventName(), e); } } } 이렇게 transaction이 커밋된 후에 실행되도록 AFTER_COMMIT이 걸려있는데, 이렇게 되면 이벤트 리스너가 제대로 실행이 안되지 않나요? 제대로 이벤트 리스너가 실행이 되려면 joinEvent부터 @Transactional이 걸려있어야 하지 않나요?3. 시도해보신 내용따로 간단하게 코드를 작성하여 테스트해보았습니다. @RequiredArgsConstructor @Component public class StudyFacade { private final StudyService studyService; private final ApplicationEventPublisher eventPublisher; // @Transactional : 주석 처리하면 밑에 eventEvent가 실행되지 않음 public void execute() { studyService.saveStudy(); eventPublisher.publishEvent("event published"); } @Async @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) public void executeEvent(String event) { System.out.println("event = " + event); } } @RequiredArgsConstructor @Service public class StudyService { private final StudyRepository studyRepository; @Transactional public void saveStudy() { studyRepository.save(new Study("test")); } } 실제로 execute 메서드의 @Transactional을 주석처리하면 밑의 이벤트 리스너인 executeEvent가 실행이 되지 않더라구요. 이러면 ImprovedEventJoinWithExternalApiUpdateFacade의 joinEvent부터 트랜잭션을 걸어야 하니까 딩코님이 말씀하신 트랜잭션을 최대한 작게 나누는 트랜잭션 최적화가 어렵지 않나요? 항상 강의 잘 듣고 있습니다! 감사합니다!
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
강의 영상이 안나와요..
11강 데이터베이스 주요 용어 이해월요일부터 11강만 영상 재생이 안돼요.'인코딩 중인 영상이에요. 최대 30분 정도 소요'30분이 아니라 3일이 지났어요. 강의 후반부 진행할때까지.. 아직도 11강이 안나와서 답답해요.
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
프론트단에서 고정 저장 / 백엔드에서 조회 저장
데이터베이스에 저장해야 한가? 아닌가? 구분은 이 정보들이 자주 바뀌는 정보면 데이터 베이스에 저장을 해 놓는다. 프론트단에서 백엔드로 저 데이터를 받아와서 그때 그때 실시간으로 업데이트를 시키는 것이 훨씬 좋다? 이렇게 말씀하셨는데 고정일 경우에는 그냥 프론트 코드에서 고정 시켜서 연동하면 된다는 것으로 이해했습니다. 고정적이니까 백엔드까지 갈 필요 없이 프론트 코드에서 연동하면 된다는 것도 이해가 됩니다. 그런데 자주 바뀌면 백엔드에 저장한다? 이 말씀 자체가 이해가 안됩니다. 그러면 백엔드에서 해당 앱들에 대한 데이터들을 어떻게 연동한다는 것인지 이해가 안가요. Oauth를 통한 연동 이런 것을 말씀하시는 걸까요? 그런데 그러면 고정적일 때도 어짜피 연동은 해야하니까 백엔드에 하는 것이 맞지 않을까요? 데이터를 Db에서 주고 받는데 백엔드에서 처리하는게 맞지 않을까요? 제가 백엔드 개발자 신입이여서 자세히는 모르겠습니다. 설명 부탁드립니다.
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
게시글 작성자 Id(사용자 FK) 숫자가 맞나요?
작성자 Id가 "박재성"이여서 이게 하나라도 바뀌면 같이 바뀌어야하는 데이터 중복이여서 FK로 바꿔야한다는 것은 잘 알겠습니다. 그런데 users 테이블에서 사용자 이름은 없는데 아마 jscode가 박재성을 의미하는 것 같은데 이게 FK로 바꾸었을 때 1번 id 값을 가지니까 1로 바뀌어야하는거 아닌가요?그런데 강사님께서는 1,2로 바꾸셨는데 그러면 똑같은 박재성이라는 사람이 아니게 되는거 아닌가요?users테이블에서도 id가 1번 밖에 없어서.. 혹시 동명이인 그런 건가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
시작하려는데 계속 오류가 발생합니다.
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "drop table if exists [*]user cascade "; expected "identifier"; SQL statement:버전도 맞췄는데 뭐가 문제일까요
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
UI를 보고 저장해야할 데이터인지 파악하는 팁이 있을까요?
UI를 보고 저장해야 하는 데이터인지, 그냥 넘어가도 되는지, 혹은 UI를 봐도 어떤게 DB테이블에 들어가야 하는지 감이 안잡힐때 어떤 기준이나 팁이 있을까요? ㅜㅜ
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
수강중에 궁금한것이 생겨 질문드립니다.
안녕하세요 좋은강의 감사드립니다. 제 주변도 사서 듣는다고 합니다.예전에 완강해놓고 관련프로젝트를 하다 궁금한점이 생겼습니다. 이런식으로 분리된 구조라면, 유저 정보는 어떻게 가져오는건가요??예를들어서 게시판이면, 거기에 들어가면 게시글들이나 댓글들 뿐만 아니라 유저의 닉네임이라던가, 유저가 설정한 대표이미지 라던가 등등 유저정보에 관한것들도 같이 뷰 렌더링을 위해선 필요한 정보들일텐데 유저와 관련된 서비스도 뭔가 따로 분리가 되어있을것 같은데 이때 유저 정보들은 어떻게 같이 가져오는지 궁금합니다.디비도 다 따로 사용할텐데 연관관계매핑도 아닐테고...모르겠네요
-
해결됨Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
jakarta persistence 플러그인은 intellij ultimate에서만 사용가능하다고 나오네요.
jakarta persistence 플러그인은 intellij ultimate에서만 사용가능하다고 나오네요. 강의 내용에도 추가를 해주셔야 할 듯합니다.