자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
유저 정보를 가져올 때 orElseThrow를 사용하면 userRepository에 입력되어 있는 findByName이 Optional로 선언되어야 한다고 문구가 뜹니다! 근데 Optional<User>로 바꾸면 UserServiceV2에 @Transactional public void deleteUser(String name){ User user = userRepository.findByName(name); if(user == null){ throw new IllegalArgumentException(); } userRepository.delete(user); } user의 타입을 User로 할 수 없다고 떠서 Optional<User>로 바꾸면 userRepository.delete(user)가 파라미터가 적절하지 않다고 뜹니다ㅜㅜ 일단, 구현은 하고 싶어서 userRepository에 findByName은 User 타입으로 정의하고 // 4. 유저 정보를 가져온다 if(userRepository.findByName(request.getUserName()) == null){ throw new IllegalArgumentException(); } else{ User user = userRepository.findByName(request.getUserName()); // 5. 유저 정보와 책 정보를 기반으로 UserLoanHistory를 저장 userLoanHistoryRepository.save(new UserLoanHistory(user.getId(),book.getName())); } bookService를 이렇게 바꾸었는데 상관없을까요? 어떤식으로 해결하는게 맞을까요...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. scanner.nextLine(); 해당 코드를 for문 안에 String productName = scanner.nextLine(); 밑에 하나만 사용해도 정상적으로 동작하는데 이렇게 해도 상관없을까요?
강의 잘 듣고 있습니다~ 안녕하세요~ 불변객체 강의를 듣다가, memberB.getAddress().setValue("부산"); memberB.setAddress(new ImmutableAddress("부산")); 위 코딩문을 너무 자연스럽게 작성하셨는데 불변객체 앞 강의들 메모리구조는 이해가 됐는데 이번 문장은 그림이 안그려져서요 혹시 다른 분들은 쉽게 읽혀지셨나요 ㅠㅠ
notify / signal 차이점 설명하시면서 1) java 버전과 구현에 따라 다르다. 2) jvm 구현에 따라 다르다. 라고 말씀하시는데, 이 둘간의 정확한 차이가 뭔지 궁금합니다. 제 지식으로는 아래 정도로 보이는데, 1) java 라이브러리단에서 구현된 방식(=디컴파일을 통해 내부 로직을 알수있음, 컴파일러 버전에 영향) vs 2) jvm 내부에 구현된 방식(=디컴파일해서는 내부 로직 알수없음, 컴파일러가 아닌 런타임에 사용된 java 버전에 영향) 로 보면 되는가요? 1) java 구현: 컴파일시 사용된 java 구현체( .java -> .class 변환) 2) jvm 구현 : 런타임에 사용되는 jvm 구현체?(.class 구동)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. cklee 님의 질문을 도와주다가 저가 답변의 실수를 발견하여 수정하고 고친 다음에 다시 답변을 하였습니다. 근데 코드를 고치다 보니까. 뭔가 이상한 것을 발견해서. 질문을 드립니다. A코드랑 B코드가 있는데, A의 syso는 문자열이 다 나오는데, B코드는 "()"를 안치니 false가 되던데.. 그 이유가 연산자의 우선순위 때문에 "글자 문자열 + str6" 을 하고 나서, "합친 str6 == str7" 이렇게 비교 되는 건가요?(질문을 하다 보니까 깨달아 지더라고요.) 그리고 이 계기로 인하여 정확한 답을 해주는게 어렵다는것을 느끼게 되네요. 공식서포즈님들 및 ,영한님 감사를 드립니다. 답변 부탁드립니다. 그리고 버그 있음. 글이 이상해서 수정했는데. 이렇게 나옴.. 추가 그리고 몸이 아프거나 피곤 할때는 코드 여러번 보는게 좋네요..(코드를 보긴 했는데 정확히 제대로 안봄...)
같은 참조값을 사용하는 다른 스트링객체의 값이 변경 될수 있어 스트리잉 불변객체로 되어있다는것은 이해했습니다. 만약 스트링 풀에 hello java가있다면 String str1 ="hello"; String str2 = str1.concat(" java"); 이때 str2는 스트링 풀에있는 hello java의 참조값을 갖는걸까요?
Executor 스레드 풀 관리 - 분석 강의에서 정리 - Executor 스레드 풀 관리부분에서 4번 큐도 가득차고, 풀에 최대 생성 가능한 스레드 수도 가득 찼다. 부분을 강의하시다가 '에'를 큐 앞으로 당겨버리셨어여 그래서 에 큐도 가득차고, 풀최대 생성으로 바뀌었습니다
안녕하세요 김영한 강사님의 강의를 듣고 스프링부트를 공부중인 개발자 지망생입니다. 디름이 아니라 @Data 애노테이션에 대한 질문입니다. 다른 분들의 프로젝트 코드를 보던중 저 애노테이션을 엔티티 클래스에 붙여놓은 코드를 보았는데 제가 힉습하기로는 저 애노테이션엔 세터가 내장되어있어 사용을 지양하는것으로 알고있는데 시용해도되는지 시용해도된다면 언제 사용하는것인지 궁금합니다.
안녕하세요 실전! 스프링 부트와 jpa활용1을 듣고있는데요 설계할때 순서가 궁금합니다 먼저 요구사항을 분석하고 도메인모데을 설계한 후에 테이블틀을 먼저 설계하는게 우선인가요 아니면 엔티티 틀을 설계하는게 우선인가요 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] MemberRepositoryTest의 testMember에서 에러가 발생합니다. 에러 내용이 너무 길어 프로젝트 링크 첨부하였습니다. https://drive.google.com/file/d/1flmRAYvWXnIY-1BNrdd76dXY6YdL-kHn/view?usp=sharing
Could not autowire. There is more than one bean of 'MemberRepository' type. Beans: memoryMemberRepository (MemoryMemberRepository.java) springDataJpaMemberRepository ( SpringDataJpaMemberRepository.java ) <스프링 데이터 JPA> 강의에서 테스트 코드를 실행 했을때 동일한 에러가 뜨는데 해결 방법을 찾지 못하고 있습니다. 도와주세요 .. 동일한 타입의 빈이 중복 등록되어 발생한 문제임을 알고 있습니다. 어디서 중복 등록이 된 건지 찾지 못하고 있어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] org.h2.Driver에서 오류가 발생하는데 이는 어떻게 수정해야하나요?
Regular languages: deterministic and non-deterministic finite automata, regular expressions. Context-free languages: context-free grammars, push-down automata. Turing machines, the Chomsky hierarchy, and the Church-Turing thesis. Introduction to Complexity Theory and NP-Completeness. 안녕하세요 선생님. 항상 강의 잘 듣고 있습니다. 혹시나 이거를 다루어주시는 강의가 혹시 있을까요?
<p th:text="'안녕하세요.ddd ' + ${data}" >안녕하세요. 손님</p> 이 부분에서, 정작 p태그의 사이 공간에 들어가는 내용 즉, "안녕하세요. 손님" 이 부분은 아예 화면에는 렌더링이 안 되는 걸로 보이는데 이 부분은 그러면 개발자 입장에서는 주석처럼 사용하는 건가요? 타임리프에서 p 태그의 사이공간은 어떻게 활용되는지 궁금합니다.
안녕하세요. 영한님 강의 재밌게 잘 보고 있습니다. 몇 가지 궁금한 점이 있습니다 CAS가 버전을 사용하는 Optimistic lock의 개념이고 동기화 락이 Pessimistic lock 방식의 개념이라고 생각해도 될까요?? 2대 이상의 서버에 로드밸런싱이 적용 된 실제 운영 환경에서도 해당 방식들이 흔히 쓰이는지 궁금합니다~
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 중복_회원_예외() 테스트에서 @Rollback(false)를 적용하고 테스트를 돌리면 member1 & member2 모두 DB에 데이터가 들어가지 않는데 이유를 생각해 보면 테스트에서 시작하는 중복_회원_예외() 메서드에서 2번의 조인 모두 @Rollback 이랑 @Transactional 모두 1개의 물리 트랜잭션에 묶여 있는 것이고 1개의 논리 트랜잭션인 2번째 join이 실패하였으니 첫 번째 논리 트랜잭션은 @Rollback(false)이지만 해당 물리 트랜잭션이 실패 판정되어서 모두 롤백 되는 거겠죠? 서비스 레벨에서 join()을 Propagation.REQUIRES_NEW를 통해 신규 물리 트랜잭션을 만드니까 예상대로 member1만 DB에 적용됩니다 정리하면 테스트에서 붙이는 트랜잭션 또한 트랜잭션 전파 원리는 동일 테스트에 트랜잭션을 붙이면 추가적으로 @Rollback(true)가 default로 붙는데 이 또한 같이 같은 원리로 전파된다가 맞을까요?