묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
어떨때는 validation을 쓰고, 어떨때는 @exceptionHandler을 써야하나요?
둘 다 원하지 않는 상황이 발생했을 때, 처리할 수 있는 방식인 거 같은데요.제 생각엔 validation(@NotNull 같은...)으로 처리하는 많은 일을 @exceptionHandler을 통해서도 가능하다고 생각하는데요. 그래서 굳이 validation이 필요한 지, 언제 무엇을 사용해야 할지 헷갈려요 예를 들어 웹페이지에서 첨부파일을 받을 때 MultipartFile에서 받을 크기를 넘어서게 되면 SizeLimitExccededException이 발생하잖아요. 여기서 처리 방식이 dto에서 validation을 설정해 주고, bindingResult로 처리해 주는 것과, @exceptionHandler 통해서도 처리를 해줄 수 있다고 보는데요. 주로 어느 상황에는 ~을 쓰고, 어떤 상황에는 ~을 쓰는 게 존재하나요?
-
해결됨스프링 핵심 원리 - 기본편
@RequiredArgsConstructor이 작동하지 않음
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]위와 같이 @RequiredArgsConstructor 설정해주었지만 해당 생성자가 없다고 에러가 납니다.lombok설치 자체는 HelloLobok은 에러없이 돌아가는 것으로 보아 정상 설치 된 거 같습니다.위와 같이 getter, setter 없이 잘 동작합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Spring MVC 강의를 다 들으면 API 방식의 개발도 쉬워지나요?
안녕하세요, 선생님의 로드맵 두 개를 전부 결제해서 현재 스프링 입문 - 스프링 원리 기본편까지 마친 취준생입니다.다름이 아니라, 제가 졸업을 위해 캡스톤 웹 개발 프로젝트를 프론트엔드 개발자와 협업해서 백엔드 스프링으로 개발하려는데,이를 MVC 방식이 아니라 API 방식으로 개발하는 것이라면 선생님의 Spring MVC 강의가 아니라 API 개발에 특화된 모듈인 Spring Web이나 Webflux를 먼저 공부하고 MVC는 나중에 듣는게 맞나요?아니면 선생님의 MVC 강의에서 API 방식의 개발도 가르치시나요?어떤 순서로 공부를 해야 빠른 시일 내(한 달 정도 남았습니다.)에 API 방식의 백엔드 개발에 익숙해질지 여쭙고 싶습니다.감사합니다.
-
미해결스프링 핵심 원리 - 기본편
의존 관계 자동 주입 시 아직 등록되지 않은 빈이 어떻게 들어가는지 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 강의를 듣고 이해하던 중에 궁금한 점이 생겼습니다. 먼저 결과 이미지입니다.위 결과를 보면 memberServiceImpl의 인스턴스가 먼저 생성이되고 등록되는 거 같아보입니다.그런데 여기서 제가 궁금한 것은 바로 밑에 memoryMemberRepository가 등록되는데 제가 생각하기로는 두 객체의 인스턴스가 반대 순서로 등록이 되어야 아닌가 하는 생각이 들었습니다.그 이유는 다음 코드를 봐주시면 감사하겠습니다.위 코드처럼 MemberServiceImpl은 생성될 때, MemberRepository를 넣어서 생성합니다. 그렇다면 MemoryMemberRepository 빈이 등록되지 않은 상태에서 MemberServiceImpl의 빈이 만들어진다면 객체가 만들어진 후에 넣을 수 있어야 말이 된다고 생각했습니다. 하지만 현재 제 코드에서는 private final MemberRepository이기 때문에 후에 setter나 다른 메서드로는 넣을 수 없는 걸로 알고 있습니다. 또한 MemberRepository를 넣을 수 있는 setter나 다른 메서드들 또한 없습니다.그렇다고 했을 때, 어째서 MemberServiceImpl 빈이 먼저 만들어지는데도 불구하고 에러가 나지 않는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
ordersV4에서 에러가 발생하는데 무슨 문제인지 잘 모르겠습니다. (아직 정확한 원인을 모르겠습니다. 알려주세요~~)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]환경spring boot : 3.0.6java : 17코드https://github.com/pdh9311/jpashop 세번째 커밋에 에러가 발생합니다.org.hibernate.query.SemanticException: query specified join fetching, but the owner of the fetched association was not present in the select list [SqmSingularJoin(study.jpashop.domain.Order(o).member(m) : member)]이런 에러가 발생합니다.약간 클래스이름만 다르지 거의 강의 내용과 같게 한거 같은데 안되네요.. 예전에 할땐 된거 같은데. 무슨 문제일까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
반환되는 세션안에는 어떤게 있나요?
<질문>이미 있는 test로 로그인한다고 가정해보겠습니다그러면 loginMember의 로그를 찍으면 아래와 같이 되고,loginMember= Member(id=1, loginId=test, name=테스터, password=test!)request.getSession()을 하면HttpSession session = request.getSession();request의 쿠키정보에서 얻어온 JSESSIONID값으로 Session들을 모아둔 Session저장소에서 동일한 sessionId(=JSESSIONID) 값이 있는지 찾습니다.그다음 동일한 sessionId가 있으므로 해당 Session을 반환하는 데 이때 이 세션안에는 어떤게 있는 건가요??제가 생각한건 두개입니다.1. JSESSIONID와 Value가 session에 들어있는경우(session={"JSESSIONID": Value})그러면session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);위 코드에서 초기화를 해주고,세션 파일은 해시(hash)값으로 생성하니까session={"JSESSIONID": Value, "SessionConst.LOGIN_MEMBER": loginMember}이런식으로 HttpSession안에 공존해서 있는 경우그래서 클라이언트에게 응답할 때 이 세션안에 있는 JSESSIONID를 쿠키에 직접 넣어준다2. session 안에 아무것도 없는 경우이 세션은 사용자 test를 구분하기 위한 객체일뿐 session_test(test에 대한 세션)에 아무값이 없다(그냥 빈 객체)그래서 아래코드를 하게되면session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);session={"SessionConst.LOGIN_MEMBER": loginMember} 이 된다.그래서 클라이언트에게 응답할 때 세션저장소에서 이 세션의 JSESSIONID를 찾아서 쿠키에 넣어준다제가 생각한 것 중에 답이 있는 지 궁금합니다.답변주시면 정말 감사하겠습니다.아래글을 참고 했습니다.https://www.inflearn.com/questions/520956/%EC%BB%A4%EB%AE%A4%EB%8B%88%ED%8B%B0-%EB%8B%B5%EB%B3%80-%EA%B8%80-%EB%B3%B4%EB%A9%B4%EC%84%9C-httpsession-%EB%8F%99%EC%9E%91-%EC%9B%90%EB%A6%AC-%EC%A0%95%EB%A6%AC%ED%96%88%EB%8A%94%EB%8D%B0-%EB%A7%9E%EB%8A%94%EC%A7%80-%ED%99%95%EC%9D%B8%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Test코드 작성할 때 findById는 안해도 되나요?
'회원 리포지토리 테스트 케이스 작성' 강의에서 나오는 코드에 대한 질문입니다.MemoryMemberRepositoryTest 파일에서 유일하게 MemoryMemberRepository의 findById() 메서드만 테스트코드를 작성하지 않았는데 따로 이유가 있는 것인가요?해당 메서드는 테스트를 해볼 필요가 없어서 작성을 의도적으로 안하신건지아니면 강의 상 생략하신 건지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
bindingResult 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1:50쯤에 bindingResult설명하실 때 addItem의 매개변수로 bindingResult가 있으면 에러가 나도 컨트롤러가 호출되고, bindingResult가 없으면 컨트롤러 호출 없이 바로 에러페이지로 넘어간다고 하셨는데,이전에 만든 ValidationItemControllerV1에서는 bindingResult가 없는데도 addItem()컨트롤러가 호출된 것이 아닌가여? 그러니까 에러처리도 되고, 타임리프를 통해서 유저에게 어떤 에러가 났는지 알려줄 수 있게 된것이 아닌가 하고 헷갈리네용
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 리포지토리 테스트 케이스 작성 강의 관련 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]afterEach() 함수를 적어두지 않으면 멤버가 중첩되어 에러가 발생한다고 강의 내에서 말씀하셨는데, 해당 함수를 적기 전에도 에러가 발생하지 않았기 때문에 질문드립니다. 코드 내용은 강의 내에서 작성하신 코드와 같은데, 어째서일까요?
-
미해결스프링 핵심 원리 - 기본편
실무에서 RequiredArgsConstructor를 사용할 때의 Annotation 사용 유무
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. Lombok의 RequiredArgsConstructor를 https://www.inflearn.com/questions/71872/requiredargsconstructor%EA%B3%BC-qualifier%EC%A7%88%EB%AC%B8저와 비슷한 질문이 있을까봐 질문 게시판을 찾다가 위의 글을 익어보았습니다. 실무에서도 저렇게 Lombok 설정을 바꾼 다음에 Primary, Qualifier, 혹은 사용자 정의 Annotation을 필드 앞에 적는 방식을 주로 사용하나요? 저러면 개발 팀 전체의 Lombok 설정이 바뀌는 것인데, 보통 저걸 합의하고 저렇게 바꾸는지 여쭤보고 싶습니다.아니면 실무에서는 Primary, Qualifier, 혹은 사용자 정의 Annotation을 사용하지 않고Discountpolicy rateDiscountPolicy;위와 같이 필드명(패러미터명)을 바꿔서 사용하는 방식이 일반적인지 여쭤보고 싶습니다. 강의에서는 위와 같은 방식을 별로 강조하지 않으셔서, 의문점이 남습니다. 또한 제가 생각하기에도 바람직한 방법은 아닌 것 같은게, package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component @RequiredArgsConstructor public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy rateDiscountPolicy; @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = rateDiscountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } }위와 같이 rateDiscountPolicy를 필드명으로 선언하면 createOrder에서도 rateDiscountPolicy로 사용해야 하는 불상사가 일어나지 않나요? 긴 글 읽어봐주셔서 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강사님 설정 관련 질문입니다.
수업에 관련된 것은 아니고 강사님 강의들을 들을 때마다 강사님께서 괄호를 클릭하실때 노란색?으로 괄호들이 굵게 강조되는 표시가 뜨는 기능이 정말 편해보였는데 아무리 찾아봐도 나오지 않아서 혹시 어떤 설정이나 플러그인인지 알 수 있을까요...?
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
쓰레드 카운트를 100으로 설정했는데 newFixedThreadPool을 32로 지정한 이유
쓰레드 카운트를 100으로 설정했는데 newFixedThreadPool을 32로 지정한 이유가 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
logger는 언제 사용하나요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]logger는 정보를 남길 떄 사용한다면 어느 정보를 남겨야 하는지 어떻게 파악이 가능한가요 좀 더 구체적으로 설명 가능한가요
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
강사님 안녕하십니까 코틀린 var 선언에 대해서 질문이 있습니다.
var 를 선언하게 되면 setter 를 사용한 것 처럼 외부에서도 클래스 내부 필드에 접근하게 되어 캡슐화가 되지 않아서 setter 를 막아주고 싶습니다. 만약 그렇게 하고싶다면 모든 필드에 private set 을 선언해야할 것 같은데 중복코드의 느낌도 있고, 코틀린의 간결함이랑 멀어진다는 생각이 들었습니다. 보통 실무에서는 도메인, jpa 엔티티를 분리하는 방법이 아닌 set 을 막으려면 어떻게 처리를 하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
해당 강의 점프하고 스프링 핵심원리 - 기본편 으로 가도 되나요?
현재 무료강의스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술위 강의는 3월쯤 약 70%? 정도 수강했습니다. 그 후에 스프링부트 + JPA + Thymeleaf를 사용한 프로젝트를 하느라 강의를 더 못 들었는데요아직 스프링에 대해 두루뭉실하게 알고 있는 것 같기도 하고, 강의를 통해서 좀 기반을 다잡고 싶어서 무조건 강사님 강의를 들으려고 합니다.그런데 다만 제 기억으로는 무료강의 파트가 약간 "맛보기" 형식으로 쑥쑥 훑어 넘어가는 강의였던 것 같아요.(그래서 개인적으로 재미도 그닥 없었던....ㅠㅠ 생소한 거 투성이었다 해야하나..) 현재 제 수준이 어느정도인지 모르겠지만바로 유료 강의인 스프링 핵심원리 - 기본편 으로 수강을 진행해도 될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
모르겠어여
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
타임리프
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]타임리프의 단점이 딱히 없다고 느꼈습니다만 금융권에서는 JSP 를 주로 사용한다고 하는데 그 이유가 혹시 무엇일까요? 안정성 문제일까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
Cookie의 경우 RestDocs로 어떻게 해야할까요?
강의 너무 잘듣고 사이드 프로젝트에 적용하고 있는데 cookie의 경우 restdocs로 어떻게 추출해야되는지 모르겠습니다.. 공식 문서에서는 requestCookies() 가 나와있는데 현재 저의 프로젝트에서는 적용이 안되네요. 저는 SpringBoot 2.6.12 버전이며 java 17, management의 경우 1.0.14 버전입니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테이블 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.https://drive.google.com/file/d/1zqDliQSH54Yvau1DMmj31oC3BJKTLmiX/view?usp=sharing강의를 한 번 다 보고 한 번 더 보면서 개인적인 프로젝트를 만들고 있는데 오류가 떠서요😥 혹시 어디가 잘못된 걸까요??ㅜㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의 중 몇가지 질문이 생겨 질문드립니다. 감사합니다!1. 현재 대부분의 실무에서는 JSP 가 아닌 타임리프를 이용한다고 생각해도 되나요? 2.Request 를 보낼 때 본인의 ip 주소를 변경해서 보낼 수 있도 있나요? 이게 VPN 방식인가요? 3.@RequestParam 어노테이션이 있으면 url 뒤에 query 문이 자동으로 생성이 되는 건가요? @ResponseBody 를 실무에서 사용할 일이 예시가 어떤게 있을까요?