묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
memberUpdateDto가 필요한 이유
강의도중에 설명해주시긴 했는데 그래도 이해가 덜 가서 질문드립니다membersaveDto만있으면 memberupdatedto를 만들지 않아도돼요둘다 만들게 되면 코드의 중복이 발생하는것아닌가요?save와 update는 아예다른것이기때문에 중복이 발생해도 상관이 없는걸까요?아예다른것이라기엔 update에도 있고 save에도 있는 필드에 변화가 생겼을때 둘다 수정을 해주어야해요그럼 수정해야할 포인트가 늘어나는건데도 updateDto를 생성해주는게 맞는걸까요?
-
해결됨스프링 핵심 원리 - 기본편
16:50에서 객체의 생성과 초기화를 분리하자 고 하셨는데
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]우선 객체의 생성과 초기화를 분리하자는 글엔 완전 공감합니다. 근데 동시에 궁금한 점도 몇개 생겼습니다외부에서 접근가능한 setter를 계속 열어주어야 하는데 괜찮나요?생성하고자 하는 객체의 인스턴스 변수에 final 못 붙이지 않나요?@Component일 경우 final 못쓰니 @RequiredArgsConstructor 적용 못하는 문제도 있을 거 같아요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실제 개발 시 테스트 서버/DB 구성 방식 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의에서는 개발과 테스트 코드가 모두 동일한 h2 DB 기반으로 구현이 되는데 실무에서는 테스트 코드에 대한 DB 연결을 어떤식으로 하게되는지 궁금합니다. 예를 들어 실제 개발은 A 서버의 mysql 을 사용하고 테스트는 로컬의 h2 로 별도로 연결을 하는지,아니면 동일한 서버(환경)에서 테스트용 테이블들만 별도로 만들어서 하는지,또는 모든 환경을 동일하게 하고 테스트 코드만 인메모리에서 실행되게 하는지, 실제 개발 시에는 테스트 코드에 대한 서버, DB 구성 방법이 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
loginservice부분 질문이요
[질문 내용]여기에 질문 내용을 남겨주세요.public Member login(String loginId, String password) { return memberRepository.findByLoginId(loginId) .filter(member -> member.getPassword().equals(password)) .orElse(null); } 여기서 filter앞에 stream를 안 써준 이유가 뭔가요?? java8메소드를 사용하기 위해서는 stream을 앞에 선언해줘야 한다고 알고 있었는데요
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
예외처리와 관련하여 질문이 있습니다.
예외처리를 할 때 catch에서 예외를 잡아줄 때 그 안에 들어가는 예외종류는 상황에 맞게 개발자가 직접 넣어줘야 하는걸까요? 그러면 미리 어떤 예외 터질 거 같다는걸 예측해서 그 예외에 해당하는 걸 찾아서 넣어줘야 하는건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
request-body-json-v4 질문 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]HttpEntity는 HTTP 메시지를 편하게 조회할 수 있게 해준다고 알고 있습니다.httpEntity.getBody()바디 내용을 조회한 다음 HttpMessageConverter가 HelloData의 객체로 변경해줬다고 생각하는게 제대로 이해한게 맞나여?
-
미해결스프링 핵심 원리 - 기본편
OrderApp 테스트
OrderApp 클래스 만들고 실행하면이렇게 뜨는데 뭐가 잘못된 걸까요?? MemberApp에선 잘 동작했는데 ㅠㅠ 코드 다 지우고 다시 따라쳤는데도 안되네요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드하고 실행하기 gradlew build 에러 ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. intelllij환경설정 전부 이상없이 설정하였고, 자바 11사용중인데 cmd 창에서 빌드하려니 계속 아래와 같은 에러가 뜹니다 ㅠㅠ 어떻게 해결할 수 있을까요?? Task :test FAILEDError: Could not find or load main class worker.org.gradle.process.internal.worker.GradleWorkerMainCaused by: java.lang.ClassNotFoundException: worker.org.gradle.process.internal.worker.GradleWorkerMainFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':test'.> Process 'Gradle Test Executor 3' finished with non-zero exit value 1* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 3s7 actionable tasks: 1 executed, 6 up-to-date
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
v1 부터 v5 까지 배웠는데 복습 방법 질문이요
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]지금 배우는 학습이 나중 수업에 이해를 돋기 위해서 배운다고 하시는데복습할 때 어느 정도 까지 공부를 해야하는지 궁금합니다.코드를 보고 이 로직이 어떻게 구동되는지 이해 할 수 있는 정도로 복습을 끝내도 되는지 알고 싶습니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
StringUtils.hasText를 쓰는 이유가 궁금합니다 !!
item.getItemName() == null 로 써도 될거 같은데 hasText를 쓴 이유는 뭔가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findAll 메서드의 리턴값
보통은 새로 생성자를 만들어서 리턴값에 return store;이런식으로 사용했었는데따로 생성자를 만들지 않고new ArrayList<>(store.values()) 라고 사용해도 위와 같이 그대로 리턴이 되는건가요?ArrayList의 타입은 따로 설정해주지 않아도 store 자체가 Map 형태를 가지고 있어서 알아서 Long,Member의 형태로 ArrayList가 생성이 되는건가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
java.lang.NoClassDefFoundError: javax/persistence/Transient 에러
안녕하세요! 아래 코드 추가 후에 api를 요청하면 java.lang.NoClassDefFoundError: javax/persistence/Transient 에러가 뜨더라고요.@Bean Hibernate5Module hibernate5Module() { return new Hibernate5Module(); }그래서 뭐가 문제인지 확인해봤는데요.아마도 버전 이슈인 것으로 생각이 되어서 질문을 드립니다.저는 지금 spring boot 3버전으로 실습을 따라가고 있고, 확인해보니까 spring boot 3버전에는 hibernate 6이 쓰이고 있더라고요...jackson-datatype-hibernate 라이브러리는 아직은 hibernate 5까지만 지원하는 것 같은데... 혹시 jackson-datatype-hibernate 를 대체할 수 있으면서 spring boot 3 에서 돌아가는 라이브러리가 있을까요???아니면 라이브러리를 사용하지 않고, hibernate5module의 역할을 구현할 수 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
members.jsp에서 jstl를 사용하려고 하면 500번에러가 .. ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]jsp는 잘 인식하는데, jstl를 사용하기 위해 맨 위에 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 을 추가하면 바로 500번 에러가 납니다. 디펜던시는 잘 추가한거 같은데 ㅠ_ㅠ 왜그럴까요 ?? 에러코드는 두개가 바뀌어가며 나옵니다.org.apache.jsp.WEB_002dINF.views.new_002dform_jspjava.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.new_002dform_jsp이거와 하나는 사진처럼요 ..,implementation 'javax.servlet:jstl' implementation group: 'javax.servlet', name: 'jstl', version: '1.2' implementation "org.apache.tomcat.embed:tomcat-embed-jasper"
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
4:17 dto없이 entity
4:17 @GetMapping("items/{itemId}/edit") public String updateItemForm(@PathVariable("itemId")Long itemId,Model model) { Book item = (Book) itemService.findOne(itemId); BookForm form = new BookForm(); form.setId(item.getId()); form.setIsbn(item.getIsbn()); form.setPrice(item.getPrice()); form.setStockQuantity(item.getStockQuantity()); form.setName(item.getName()); form.setAuthor(item.getAuthor()); model.addAttribute("form", form); return "items/updateItemForm"; 여기에서 Book item = (Book) itemService.findOne(itemId); BookForm form = new BookForm(); form.setId(item.getId()); form.setIsbn(item.getIsbn()); form.setPrice(item.getPrice()); form.setStockQuantity(item.getStockQuantity()); form.setName(item.getName()); form.setAuthor(item.getAuthor()); 이 부분은 엔티티를 dto화 시켜주는거와 원리 같은건가요? 만약 @GetMapping("items/{itemId}/edit") private String updateItemForm(@PathVariable Long itemId,Model model){ Item item = itemService.findOne(itemId); model.addAttribute("form",item); return "items/updateItemForm"; } 이런식으로 entity를 바로 form으로 넘겨주게 되면 문제가 있을까요?
-
해결됨스프링 핵심 원리 - 기본편
싱글톤 컨테이너 자료 오타
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 강의를 시청하는 중 오타가 발견되어 게시판에 글 남깁니다.제공해주신 자료 '5.싱글톤 컨테이너' 3page 코드에 달린 주석 부분2. public으로 열어서 객체 인스터스 ~인스터스 -> 인스턴스가 맞다고 생각합니다.
-
미해결스프링 핵심 원리 - 기본편
복습방법 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요! 항상 친절한 답변 감사드립니다.스프링핵심원리 기본편을 수강완료 했는데요. 다음강의인 http강의를 바로 들어야할지 아니면 다시 기본편 복습을 해야할지 질문드립니다. 복습을 하게된다면 강의를 들으면서 코딩했던 코드들을 전부 날리고 다시 처음부터 코딩하는게 나을까요? 아니면 강의자료만 빠르게 훑고 http강의로 넘어가는게 나을까요?? 물론 사람마다 다르겠지만 어떻게 하는걸 추천하시는지 질문드립니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
야생형 학습에 대한 안내가 수강전 답변과 mvc1편에서의 답변이 달라서요!
야생형수강 순서 -> 관련 답변은 이런데----스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술스프링 핵심 원리 - 기본편 현재 강의모든 개발자를 위한 HTTP 웹 기본 지식스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술스프링 MVC 2편 - 백엔드 웹 개발 활용 기술그리고 다음 순서로 듣습니다.1. 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발(빠르게 영상을 보면서 코드만 따라하기)2. 자바 ORM 표준 JPA 프로그래밍 - 기본편3. 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발(진지하게 복습)4. 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화여기까지 진행하면 토이프로젝트를 진행하실 수 있을거에요.그리고 이후에 다음 내용을 들이시면 됩니다.5. 실전! 스프링 데이터 JPA6. 실전! Querydsl+db 접근 강의 출시 전 답변이였고, db강의관련 순서는 mv2 다음에 2개 들으라고 적혀있었구요 또 다른 답변에요!mvc 1편 강의마무리에서 야생형을 소개할때는추천 학습 방법 스프링 입문과 스프링 핵심 원리를 듣고 나면 스프링으로 개발하는 가장 중요한 기본 지식을 쌓은 상태가 됩니다. 그래서 바로 스프링 부트와 JPA 실무 완전 정복 로드맵에 들어가는 것도 좋은 선택입니다. 스프링을 실무에서 어떤 식으로 활용해서 개발하는지 먼저 배워두고, 이후에 스프링 완전정복 로드맵를 통해 스프링 MVC나 스프링 데이터 접근 기술 같은 부분은 더 깊이있게 학습하시면 됩니다.라고 하셔서요! 문서에도 그래서 저는 입문,기본,http 요청,mvc1편 다 듣고->실전해보고 나서 되돌아오려고 실전편 1먼저 듣고 있는데 궁금해져서 물어봅니다 뭐가 맞는건지..답변과 강의에서의 안내가 달라서 여쭤봅니다
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
스프링 부트 스타터 설정
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.========================================='실전! 스프링 부트와 JPA 활용1' 강의를 수강하기 위해 스프링 부트 스타터에서 프로젝트를 생성하려고 합니다. 그런데 Project에서 gradle을 선택하려고 하는데 gradle-groovy와 gradle-kotlin 이렇게 나뉘어지는데 무얼 선택해야 하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Getter 없이 객체의 값을 출력하는 방법
객체 지향을 공부하다 getter/setter는 은닉성을 위해 지양하는게 좋다라는 글을 봤는데요..toString()을 오버라이딩 하는 것이 맞지 않나 생각했는데 toString()은 출력을 위한 메소드가 아니라 디버깅을 위한 메소드기 때문에 디버깅을 할 때만 사용하는 것이 좋다라는 말들이 있어서요 ..그러면 이럴 경우에는 DTO를 사용하는 것이 최선인가요?또한 getter가 없다면 dto에 어떻게 정보를 담아 View, Controller의 계층을 이동할 수 있는 건가요??
-
해결됨스프링 핵심 원리 - 고급편
동시성 이슈 - 전략패턴
전략 패턴 - 예제 3 7:50초까지 듣고 질문 남깁니다.문맥(Context)에 로직(Strategy)을 담기 위해 두가지 방법을 알려주셨습니다.Context 필드에 Strategy 생성자 주입Context 메소드에 Strategy 위임(?) 1번 방식에서 생성자 주입시 Setter를 이용하여 필드의 전략을 바꿔서 실행하는 경우 '동시성 이슈'가 발생할 수 있다고 말씀하셨는데, 동시성 측면에서 2번과 차이가 있을까요?