안녕하세요 weogle님! docker 에서 MySQL 이 실행중인지 확인부탁드립니다. 아래 명령어로 확인할 수 있어요. docker ps MySQL (mysql-twitter) 컨테이너가 떠있어야 하고, 3306 포트가 열려있어야 합니다. 잘 떠있다면 그 후 spring boot 애플리케이션을 실행하면 잘 실행이 될 겁니다. docker run --name mysql-twitter \ -e MYSQL_ROOT_PASSWORD=root123 \ -e MYSQL_DATABASE=twitterdb \ -e MYSQL_USER=dev \ -e MYSQL_PASSWORD=dev123 \ -p 3306:3306 \ -d mysql:9.3 위 명령어로 도커 컨테이너를 실행할 수 있습니다. 감사합니다.☺️
안녕하세요 Aurora 님 JpaPostRepository 에 findAllPaged 메소드만 재정의한 이유는, PostRepository 에 있는 save, findAll, findById, deleteById 는 JpaRepository 의 기본 구현체가 이 메소드를 지원하는 반면, findAllPaged 는 그렇지 않기 때문에 재정의했습니다. 즉, PostRepository 라는 인터페이스를 그대로 사용하고 싶은데, JpaRepository 의 기능 추가하여 사용하고 싶어서 JpaPostRepository 라는 중간 인터페이스를 사용한 형태입니다. PostRepositoryImpl 같은 구현체를 직접 만들어서 사용하셔도 됩니다. 다만 강의의도는 위에서 말씀드린 것처럼 Spring Data Jpa 가 지원하는 JpaRepository 인터페이스를 사용하기 위함이 크다고 생각해주시면 됩니다. 감사합니다.
안녕하세요 Aurora 님. 섹션2의 ' Query String 과 함께 Pagination 해보기' 부분에서는 메모리에 posts 를 저장해놓고, 페이지네이션 조회를 하고 있습니다. 네 말씀하신 부분처럼 DB 에서 데이터를 가져온다면 페이징 쿼리를 주로 사용합니다. 섹션6에서 다루고 있으니 확인해보시면 좋을 것 같습니다 감사합니다!
안녕하세요! khs1003k 님. 해당 오류는 말씀하신대로 ec2-user 계정이 Docker 권한이 없어서 발생합니다. Docker는 root 또는 docker 그룹 사용자만 접근할 수 있습니다. 해결 방법은 직접 sudo 사용해서 명령하시거나 (질문자님 하신것처럼) 또는 ec2-user 계정을 docker 그룹 사용자로 만드시면 됩니다. # 현재 사용자(ec2-user)를 docker 그룹에 추가 (sudo 없이 가능하게) sudo usermod -aG docker ec2-user # 반영을 위해 로그아웃 후 다시 로그인 하거나 아래명령어 실행 newgrp docker 제 환경은 docker 그룹 설정이 되어 있었던 경우이고, 현재처럼 sudo를 계속 사용하는 것도 가능하지만 그룹에 추가해서 사용하는 것이 편리할 수 있습니다. AWS EC2 서버에 애플리케이션 배포하기 - 00:46 이 부분에 있는 강의자료 내용 한번 확인보시면 좋을것같습니다 감사합니다.
안녕하세요 khs1003k 님! 인메모리로 해서 외부 의존성없이 가볍게 java 애플리케이션을 실행하고자 했던 의도였습니다. 이전 챕터 강의에서 mysql 을 미리 잘 설정해놓으셨다면, mysql 을 연결하여서 java 애플리케이션을 실행하셔도 됩니다. 질문 감사합니다! 좋은하루 보내세요.
안녕하세요! 질문자님 그리고, 배상진님 감사합니다. 저도 Spring Boot 4.0.0 에서 동일한 현상을 경험했습니다. spring.h2.console.enabled에 노란 밑줄이 뜨고 인식되지 않는 이유는, Spring Boot 4.0부터 자동 설정(auto-configuration)이 모듈별로 분리되면서 H2 Console 관련 설정이 별도 모듈로 빠졌기 때문입니다. 스프링부트 기존(3.x)에는 runtimeOnly("com.h2database:h2") 의존성만 추가하면 H2 Console이 자동 설정되었지만, 4.0부터는 implementation("org.springframework.boot:spring-boot-h2console") 모듈을 명시적으로 추가해야 합니다. build.gradle.kts implementation("org.springframework.boot:spring-boot-h2console") 이 의존성을 추가하면 spring.h2.console.enabled 속성이 정상 인식되고, /h2-console 경로로 접속할 수 있습니다. runtimeOnly("com.h2database:h2") 는 위 의존성안에 있기 때문에 별도 추가하지 않으셔도 됩니다. 공식 문서 참고: https://docs.spring.io/spring-boot/reference/data/sql.html#data.sql.h2-web-console 질문자분 그리고, 관심을 가지고 추가 답변해주신분 모두 감사드립니다!
안녕하세요! enabled: true 자체는 Spring Boot에서 정상적으로 인식되는 설정이라 문법 문제일 가능성은 낮아 보입니다. 보통 IDE에서 Spring 설정 메타데이터를 제대로 인식하지 못할 때 노란 밑줄이 표시되는 경우가 있습니다. 혹시 h2 의존성이 build.gradle에 추가되었는지 확인부탁드립니다. 그리고 Gradle 리프레시를 하거나 IntelliJ에서 캐시 재빌드(Invalidate Caches / Restart)를 한 번 시도해 보시면 좋을 것 같습니다. 그래도 해결되지 않는다면 사용 중인 Java 버전, Spring Boot 버전, 그리고 현재 개발 환경을 함께 알려주시면 동일한 환경으로 직접 테스트해보겠습니다. (제 환경에서 다시 실행해보았는데 동일한 설정으로 정상 동작하는 것을 확인했습니다.) 감사합니다.
안녕하세요. asdfasdf님! 강의 잘 들어주셔서 감사합니다. 기존 UI에 API를 연결하는 작업을 조금 더 수월하게 진행하려면, API 로직을 React 컴포넌트에 직접 넣기보다 커스텀 훅으로 분리해서 “API → 훅 → UI” 구조로 가져가는 것이 좋습니다. 이렇게 하면 UI는 데이터 표현에만 집중할 수 있어 유지보수가 훨씬 쉬워집니다. 그래서 저 또한 프론트를 다룰 때 hook 에 API 연동에 대한 책임을 부여하는 구조를 적극적으로 사용했습니다. 위 처럼 구조 설계를 하셨다면, 구현은 AI 에게 맡기면 됩니다. 예를 들어, project/ ㄴ frontend/ ㄴ backend/ 형태로 준비된 상황에서 project/ 경로에 진입하셔서 claude code 를 여시고, backend API 를 읽고, 이를 기반으로 fronted 에 API 연동을 해달라고 요청하시면 수월하게 하실 수 있습니다. 자세한 구조를 참고하고 싶으시면 레포지토리에서 대략적인 구조를 한번 참고해주세요. https://github.com/apieceofcoding/springboot-sns-sample-front/tree/main/hooks 참고로 여기는 추가로 react-query 를 적용해서 프론트에서 API 를 연동하여 뷰를 보여줄 때 로딩 상태, 에러 처리, 중복 요청 방지, 캐싱, 데이터 최신화 같은 부분들을 일관되도록 관리하게끔 했습니다. (이 부분은 강의 외 내용으로 강의에선 다루지 않는 내용이지만, 위 코드에 구현되어 있어 참고차 말씀드립니다.) 감사합니다.
안녕하세요 Nuri Park 님 맥북인데 미러링시 영상이 안보이신다면 에어플레이 / HDMI 연결 이슈인 경우가 많습니다. 혹은 간혹 미러링 상태에서 검은화면으로 나올때도 있어서 시스템 설정 > 디스플레이에서 ‘미러링’이 아닌 ‘확장 디스플레이’ 로 설정 후 다시 재생해보세요. 노트북을 메인디스플레이로하고, 다른 모니터리를 확장 디스플레이로 하시면 됩니다. 혹시 이런 문제가 아니라 제 강의 자체나 특정 영상이 문제가 있다면 말씀해주세요.