자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bookService' defined in file [C:\Users\user\OneDrive\���� ȭ��\����ڷ�\Java_Spring_Library_Application new\library-app\library-app\build\classes\java\main\com\group\libraryapp\service\book\BookService.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userLoanHistoryRep' defined in com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract boolean com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep.existIsBookNameAndIsReturn(java.lang.String,boolean); Reason: Failed to create query for method public abstract boolean com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep.existIsBookNameAndIsReturn(java.lang.String,boolean)! No property 'existIsBookName' found for type 'UserLoanHistory'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract boolean com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep.existIsBookNameAndIsReturn(java.lang.String,boolean)! No property 'existIsBookName' found for type 'UserLoanHistory' 요약해보면 자바의 DTO객채의 이름하고 mysql에있는 테이블의 이름과 일치 하지않아서오류가 발생하는듯하는듯한데 왜 오류가 발생할까요? 객채생성하고 테이블올려드릴게요
백엔드 로드밸런싱에서 vpc 선택할때기본 vpc설정을 했습니다하지만 vpc를 생성하고 subnet 셋팅 nat , internet gate way , route table 등은 어떻게 설정하면 될까요 ??작업을할때 기본 vpc 사용하기보다 따로 vpc생성후 작업 많이 한다고 들었습니다
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 태현님. 두가지 질문이 있습니다. 1. 지금까지(34강) 강의를 따라 하고 MySQL 워크벤치에서 ERD를 확인해 보면 테이블 간에 PK - FK로 연결이 안 되어있는데요 연결을 안 해주어도 괜찮은 이유가 뭔지 궁금합니다. 제가 NestJS나 Express.js 로 백엔드를 만들었을 때는 TypeORM, Prisma, Sequelize 같은 ORM을 이용했었는데 그때는 코드단에서 테이블 간에 연결 처리 (PK - FK로 연결)을 해주면 데이터베이스에서 확인을 해봤을 때 이런 식으로 연결이 된 것을 확인할 수 있었거든요.. 혹시 제가 뭔가 잘못 알고 있는 걸까요? 굳이 DB에서 실제로 연결을 안 해주어도 괜찮은 건가요?? 아니면 스프링 + JPA 조합의 특성인가요?? 2. 그리고 MySQL 워크벤치에서 create table user_loan_history ( id bigint auto_increment, user_id bigint, book_name varchar(255), is_return tinyint(1), primary key (id) ); 이렇게 DB create 문을 작성해서 실행 시키지 않아도 서버를 실행시킬 때 자동으로 로컬 DB에 테이블을 생성해 주도록 하는 설정이 있는지 궁금합니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
//BookService @Service public class BookService { private final BookRepository bookRepository; private final UserLoanHistoryRepository userLoanHistoryRepository; private final UserRepository userRepository; public BookService( BookRepository bookRepository, UserLoanHistoryRepository userLoanHistoryRepository, UserRepository userRepository ) { this.bookRepository = bookRepository; this.userLoanHistoryRepository = userLoanHistoryRepository; this.userRepository = userRepository; } @Transactional public void saveBook(BookCreateRequest request) { bookRepository.save(new Book(request.getName())); } @Transactional public void loanBook(BookLoanRequest request) { // 1. 책 정보를 가져온다. Book book = bookRepository.findByName(request.getBookName()) .orElseThrow(IllegalArgumentException::new); // 2. 대출기록 정보를 확인해서 대출중인지 확인한다. // 3. 만약에 확인해는데 대출 중이라면 예외를 발생시킨다. if (userLoanHistoryRepository.existsByBookNameAndIsReturn(book.getName(), false)) { throw new IllegalArgumentException("이미 대출되어 있는 책입니다"); } // 4. 유저 정보를 가져온다. User user = userRepository.findByName(request.getUserName()) .orElseThrow(IllegalArgumentException::new); // 5. 유저 정보와 책 정보를 기반으로 UserLoanHistory를 저장 userLoanHistoryRepository.save(new UserLoanHistory(user.getId(), book.getName())); } } 북서비스 코드인데요 // 1. 책 정보를 가져온다. Book book = bookRepository.findByName(request.getBookName()) .orElseThrow(IllegalArgumentException::new); 이 부분에서 // 2. 대출기록 정보를 확인해서 대출중인지 확인한다. // 3. 만약에 확인해는데 대출 중이라면 예외를 발생시킨다. if (userLoanHistoryRepository.existsByBookNameAndIsReturn(book.getName(), false)) { throw new IllegalArgumentException("이미 대출되어 있는 책입니다"); } 이 부분 처럼 "존재하지 않는 책입니다" 라는 메세지를 터미널(콘솔인가요? 이거 찍히는 곳 명칭이 터미널인지 콘솔인지 모르겠네요) 에 찍어주려면 어떻게 해야하나요? 그리고 첫 번째 경우와 두 번째 경우에 에러를 발생시키는 방법이 다른 이유는 무엇인지 궁금합니다.
해당 강의에서 RDS 프리티어 선택하셨는데, 실제 서비스 돌리실때는 어떻게 선택하시나요 ?? rds 두실때 arora 선택하신다고 하셨는데 아직 강의를 듣지 않았지만 rds 에서도 arora 를 하게 된다면 오토스케일링이 가능하다고 하셨습니다. 처음 데이터베이스를 선택하게되면 , 유형 변경이 어렵기에 이럴땐 rds 오토스케일링이 엄청 큰 역할을 할것 같다 ?? 생각이 듭니다. 혹시 이런 이유때문에 디비 오토스케일링을 하시나요 ??
안녕하세요 이상원님 수강생입니다. 다른 분들은 이해하셨겠지만, Job 미실행 관련 의문이 생겨 문의드립니다. '시나리오1 워크플로우 구성하기 1,2'의 흐름과 코드를 보면 test,image-build,deploy job이 있습니다. 이해한 내용으로는 test job은 말그대로 테스트를 위한 job(코드에 문제가 없는지 판단하는 job), image-build는 그 코드를 말아서 ECR로 올리는 과정 deploy는 실제 환경에 올리는 배포 과정으로 이해했습니다. 이때, test job과 image build job을 같은 job에 두고 같이 실행하면 안되는 지에 대해서 의문이 생겨 문의드립니다. 감사합니다.
말씀하신대로 스케일 아웃 , 스케일 인을 ecs 에 적용했습니다. 스케일 아웃은 상태가 정상으로 돌고있는데 스케일 인은 경보상태가 나옵니다. 이유가 뭘까요 ? 적용을 했고 모든 경보에서 위와 같이 나오고 있습니다. 현재 지금 ecs fargate 로 돌고있는데 , 위와 같이 적용한게 제대로 동작하고 있는지 어떻게 확인하면 될까요 ?? 두번째 질문 지금은 ecs on fargate 로 돌고있지만 ecs on ec2 도 있는걸로 알고있습니다. ecs on ec2 로 만약에 한다면 EC2 로 가서 오토 스케일 그룹생성 해서 AMI 설정하고 해야할까요 ? 아니면 위와 같은 방법으로 해야하나요 ??
안녕하세요! 파이썬 강의를 완강하고 이번 aws 강의를 수강하게 되었습니다. 다름이 아니라 이번 강의 소개에서도 컨퍼런스나 여러 최신 소식에 대해 항상 잘 말씀해주시고, 그런 내용을 언급해주실 때마다 중요성을 많이 느낍니다. 혹시 실리콘밸리 개발자분들은 이런 소식을 접하는 커뮤니티 같은 게 별도로 활성화가 되어있나요? 저는 이제야 주니어 개발자로 시작하는 입장이라 그런 노하우라든지 소식을 어디서 접해야 하는지 어디서부터 어떻게 시작해야 하는지 방향성을 잘 모르는 상태라 질문드립니다.