묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
강의 내용에 의문점이 생겨 질문드립니다.
package jpabook.jpashop.domain.repository; import jakarta.persistence.Entity; import jakarta.persistence.EntityManager; import jpabook.jpashop.domain.item.Item; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; @Repository @RequiredArgsConstructor public class ItemRepository { private final EntityManager em; public void save(Item item) { if (item.getId() == null) { // 이 부분입니다. em.persist(item); } else { em.merge(item); } } public Item findOne(Long id) { return em.find(Item.class, id); } public List<Item> findAll() { return em.createQuery("select i from Item i",Item.class).getResultList(); } } 위의 코드에서 item.getId() == null을 왜 사용하는건가요??MemberRepository 클래스와 코드 형식이 거의 비슷한데, MemberRepository 클래스에서는 member.getId() == null 코드를 사용하지 않아서 질문드립니다.그리고 item은 처음에 id가 없다는 말도 이해안되어서 질문드립니다.감사합니다.
-
미해결
강의 내용 질문드립니다.
package jpabook.jpashop.domain.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import jakarta.persistence.PersistenceUnit; import jpabook.jpashop.domain.Member; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; @Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em; public void save(Member member) { em.persist(member); } public Member findOne(Long id) { return em.find(Member.class, id); } public List<Member> findAll() { // 회원 목록 조회 return em.createQuery("select m from Member m", Member.class) ry .getResultList(); } public List<Member> findByName(String name) { return em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); } } 위의 코드에서 findByName메소드에서 왜 단건조회가 아닌 리스트 조회를 사용한건가요? 어차피 중복가입은 안되고 이름으로 조회하니까 하나의 결과가 나와야하는거 아닌가요?findByName 메소드에서 setParameter은 왜 있는건가요? 설명부탁드릴게요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
404예외처리..
예를들어 api 서버인데, 없는 url요청하면 404에러나자나요그 응답 데이터 json 을 변경하려는데 , 어떤코드를 변경해야 할까요?404는 url못찾아서 컨트롤러로 진입도 하기 전인데..RestControllerAdvice는 컨트롤러에서 발생하는 것만 처리해줘서..방법을 모르겠어요 ㅠ이렇게 리턴되고 있는데 저 리턴되는 key와 값들부터 모두 커스텀하고싶은데.. { "timestamp": "2024-04-25T11:17:35.705+00:00", "status": 404, "error": "Not Found", "message": "No message available", "path": "/o%E3%85%87%E3%84%B9%E3%85%87%E3%84%B9" }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Model 추가 - v3 강의 질문있습니다.
https://drive.google.com/file/d/1DbDboH5w-KDhpsm6lCYzZyJ7sEAWVV3d/view?usp=drive_linkModel 추가 - v3 부분을 작성했는데 아래부분은 회원가입과 목록이 출력이 되어야 하는데 정상작동하지 않아서 코드 올립니다.FrontController - v3회원가입회원목록
-
미해결스프링 핵심 원리 - 고급편
인터페이스 객체지향에 대해..
김영한님 강의를 듣다보면 객체지향다형성, 인터페이스프로시 이런얘기를 많이들었습니다만ㅠㅠ이해가 안되는거 하나 여쭙고싶네요..보통 스프링 프로젝트 보면컨트롤러에 서비스 인터페이스 선언해두고이를 다시 서비스임플로 구현하자나요이걸 도대체 왜 하는걸까요?ㅠㅠ제 생각엔 인터페이스 둔다는것 자체가구현체를 필요에 따라 갈아끼우겠다는건데..보통 컨트롤러에 선언해둔 서비스 인터페이스의 의도를 알고싶습니다.,../ㅠㅠㅠ
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
강의 교안에서 SessionManagementFilter 이미지 질문
강의 교안의 동시 세션제어필터 로직의 흐름도 그림에서SessionManagementFilter가 세션 만료 설정 플래그를 설정하는 그림에서 혼동이 있어서 질문드립니다. 현재 스프링시큐리티 6 이후 기본동작에서는 SessionManagementFilter가 기본 동작하지 않는 것으로 알고 있습니다. 실제로 세션 관련 설정을 이것저것 바꿔봐도 SessionManagementFilter가 필터체인에 추가되지 않더군요.(실제로 강의에서도 이 부분을 언급하신 것을 확인했고, 공식문서에서도 확인했습니다.)대신 UsernamePasswordAuthenticationFilter(정확히는 이것의 상위 클래스인 AbstractAuthenticationProcessingFilter)와 같은 곳에서 명시적으로 sessionAuthenticationStrategy를 호출하여 세션 관련 처리를 위임시키는 식으로 처리하는데요.현시점 기본 동작 관점에서 보면 강의 교안에 나와있는 흐름도를 보면 SessionManagementFilter로 그림이 나와잇는 부분은 UsernamePasswordAuthenticationFilter와 같은 최초 로그인을 담당하는 필터에서 인증후 strategy를 통해 만료플래그가 설정되는 것으로 나타나게 하는 것이 좀 더 정확하지 않을까 싶어서 질문을 드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 메시지 소스 사용 시 Test 컴파일 에러 나신 분을 위해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 질문은 아니고 @Test 시 계속 컴파일 오류가 나서 다른 분들 참고하시면 될 것 같아 글 작성합니다1.컴파일 에러 났을 때 간단히 System.out 출력 했을 때 ???일 때 상단 메뉴 바에서 Settings 클릭 > Encoding 검색해서 File Encodings 들어가서 사진 처럼 UTF-8로 바꿔주기 안되면 윈도우 시스템이 언어 설정 확인하기
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
unexpectedRollbackException 에러가 로그에 다르게 남겨져요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 1분 51초 부근에 테스트를 할시에 unexpectedRollbackException이 에러에 남겨지는 것을 확인할 수 있는데, 로그가 저는 다르게 남겨집니다.2024-04-25T15:46:38.354+09:00 DEBUG 5056 --- [springdx] [ main] cResourceLocalTransactionCoordinatorImpl : JDBC transaction marked for rollback-only (exception provided for stack trace)java.lang.Exception: exception just for purpose of providing stack traceat org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.markRollbackOnly(JdbcResourceLocalTransactionCoordinatorImpl.java:310) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final]at org.hibernate.engine.transaction.internal.TransactionImpl.markRollbackOnly(TransactionImpl.java:203) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final]at org.hibernate.engine.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImpl.java:224) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] 다른 테스트도 몇개 그렇게 표시 되는데 recoverException_fail test 시에 위와 같이 에러표시가 됩니다.테스트 시 통과는 돼서 UnexpectedRollbackException가 터지는 건 맞는 것 같은데 로그에 에러가 그냥 Exception으로 표시가 되는 것 같아서 구글링해봤는데 문제가 무엇인지 모르겠어서 질문드립니다. https://drive.google.com/file/d/1UzxlCeILcMUkroixUZmV2W49LfPqQAnb/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
View 환경설정에서 addAttribute에서 에러가 발생합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]사정상 무료로 사용가능한 sts4 툴을 사용해서 따라하는중인데, 03. View환경설정을 따라하는 도중에 model.addAttribute(attributeName: "data", attributeValue:"hello");에서 해당 에러가 발생합니다! 어떻게 하면 좋을까요?
-
미해결[스프링 배치 입문] 예제로 배우는 핵심 Spring Batch
@Configuration 어노테이션 관련 질문있습니다.
Spring에서 @Configuration은 Spring의 설정 파일에 사용 되는 용도로 알고 있습니다.따라서 Spring Project를 구성할 때 @Configuration이 붙은 파일은 Spring 설정 파일로 사용되고, 핵심 비지니스 로직은 @Service 등을 사용하여 구성하는 게 기본적인 것으로 알고 있는데 Batch에서는 @Configuration이 있는 Job class에서 reader, processor, writer 등의 핵심 비지니스 로직을 구성하는 이유가 있을까요? 예를 들면 accountRepository.save()를 실행하는 test라는 메소드를 Service.class에 선언하고 wirter에선 Service::test와 같이 호출할 수 있지 않나요?
-
미해결스프링 핵심 원리 - 기본편
@Configuration 과 싱글톤
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]new AnnotationConfigApplicationContext(DiscountService.class); 이렇게 @Configuration 이 붙지않은 클래스 를 넣으면 해당 클래스가 빈으로 등록되는 것 까지는 알겠습니다. 근데 싱글톤 강의에서도 봤다싶히 @Configuration 이 붙어있으면 싱글톤으로 유지해준다고 알고있습니다. Q.1 DiscountService.class 에 여러개의 @Bean이 작성되어있으면 싱글톤이 아닌건가요?? @Configuration이 없으니까?Q.2 싱글톤 유무는 @Configuration 로 결정짓는게 맞는지
-
해결됨스프링 부트 - 핵심 원리와 활용
StockConfig
[질문 내용]StockConfig 안에있는 함수가 외부에서 매트릭을 확인할 때 마다 호출된다고 하셨는데 프로메테우스에서 일정한 단위로 getStock()함수를 호출해주기때문에 로그가 찍히는 것이 맞나요?그럼 객체가 호출 될때 초기화 해주는 PostConstruct애노테이션이 저기서 무슨기능을 해주는 것인지 궁금합니다.그리고 StockConfigV1의 PostConstruct애노테이션의 동작을 StockCOnfigV2의 MeterBinder가 해주는 것 인가요?
-
미해결스프링 시큐리티 OAuth2
token repository 커스텀 관련 질문 드립니다~
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.혹시 accesstoken, refreshtoken을 직접 만든 Db에 저장을 하고 관리하고 싶은데 이렇게 사용을 하는 방법이 있을까요?oauth2Login() 사용로그인시 직접 만든 Db에서 accesstoken 가져와 처리만약 만료된다면 위 Db에 저장되어 있는 refresh토큰을 이용
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
감사합니다
감사합니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 MVC - 컨트롤러 통합 질문있습니다.
스프링 MVC - 컨트롤러 통합 3분 44초 오류 화면에서 springcontollerv1에 이미 맵핑이 되어있다고 하셨는데요. v1이 코드 어느 부분에서 맵핑되어 있는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이전에 만든 기능을 현재 쓰고 있는 건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이게 다 Member에서 돌아가는 건가요? 그러면 HelloController 같은 실습 때 만든 파일들은 안쓰는 건가요? 아니면 거기서 만든 기능을 현재에도 쓰는 건가요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
과제 답안
두번째 과제 풀고 있는데 답이 혹시 어디 있을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
itemValidation, @Validation
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]어노테이션으로 Validation을 진행하면 만들었던 itemValidation은 작동 안하나요??
-
미해결예제로 배우는 스프링 입문 (개정판)
java -jar target/*.jar 명령어 오류..
우여곡절 끝에 JDK를 17버전으로 설치한 후./mvnw package 명령어를 통해 maven 세팅을 완료했습니다.하지만 java -jar target/*jar 해당 명령어가 제대로 입력되지 않습니다. pwd를 통해서 강사님이랑 같은 경로인걸 확인했어요몇 개 질문의 답변대로 target 경로로 들어가서 진행을 해봐도 안됩니다.일단 pom.xml을 확인해보니.. 스냅샷의 버전도 다른것같아요파일명까지 입력한 명령어도 먹질않네요ㅜㅜ이 세팅이 끝나야 강의를 쭉쭉들을 수 있을것같은데..도와주세요! 😥😥
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
application.yml 관련 문제
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]아래와 같이 yml 파일을 설정한다면 어떻게 조치해야하는지 궁금합니다.해당 boot 설치 버전은 gradle과 같습니다.