묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 데이터 JPA
open projection 결과
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]open projection을 사용해서 username과 age만 UsernameOnly 프록시 객체에 담겨야 할 거라고 생각했는데, 디버깅과 콘솔에서 확인해본 결과 멤버 엔티티가 그대로 담긴 것 같아서 질문드립니다인터페이스디버깅 결과콘솔 화면
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트코드 순서 질문
강의를 듣다 궁금한게 생겼습니다.보통 API 개발을 할 때, 컨트롤러단 부터 완성이 되고 나머지 서비스나 영속성 계층 로직이 완성 되는것 같은데 테스트 코드 순서를 어떻게 가져가시나요 ?강의에서는 영속성 -> 서비스 -> 컨트롤러 순으로 테스트가 진행 되는데 이 순서대로 하시나요 ?
-
미해결스프링 시큐리티 OAuth2
최초로그인 -> 로그아웃 후 다시 로그인 시 질문
처음 서버 run 하고 google, naver, keycloak 전부 처음에는 아이디, 비밀번호를 입력하는 사용자입력이 필수적인데, 한번 로그인하고 나서는 웹어플리케이션 서버를 종료하고 다시 시작해도 구글, 네이버, keycloak 계정으로 로그인하는 과정이 필요없이 바로 인증이 됩니다. 왜이런건가요? 로그아웃했으면 당연히 다시 로그인하는 과정이 필요한데 이러면 잘못된거 아닌가요?
-
미해결Practical Testing: 실용적인 테스트 가이드
@SpringBootTest 사용 이유
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요! Persistence Layer에서 @Mock 대신 @SpringBootTest를 사용해 단위 테스트를 진행하는 이유가 궁금합니다! 리소스가 더 사용되면서 테스트가 오래걸리는 단점이 있지 않나요?같은 이유로, Business Layer에서 @Mock과 @InjectionMocks으로 단위테스트를 진행하는 대신, @SpringBootTest로 통합테스트를 선호하시는 이유가 무엇인가요?@SpringBootTest를 사용해도 큰 단점은 없는걸까요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
첫번째 테스트 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]test2.mv도 만들고 h2버전 build.gradle에 입력두 해봤는데 해결이 안되네요 ㅠㅠ
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
전자정부프레임워크 버전+신규 강의 관련 질문
안녕하세요 이번에 전자정부프레임워크를 사용하는 회사로 이직하게 된 2년차 직장인입니다. 이전에는 Python 위주로 개발을 했었어서, 전자정부프레임워크는 이번에 처음 경험하게 되었는데요(전자정부프레임워크는 아니고, Spring Boot를 이용한 게시판 구현 정도로 개인 프로젝트로 진행한 적이 있습니다.) 회사에서는 솔루션별로 3.10.0 버전과 4.1버전 2개를 사용중더라고요.3.10.0은 Spring이고, 톰캣 띄워서 실행시키는 방식이고,4.1은 Spring Boot로 메인 클래스에서(@SpringBootApplication) main 함수 실행시키는 방식으로 실행시키는 방식이었습니다. 기존 강의와 신규 강의 2개 모두 듣기에는 시간이 아무래도 너무 소요될 것 같아서, 하나를 정독하고 싶은데전자정부프레임워크의 기초부터 단단히 배우고 싶다는 생각을 가졌을 때, 기존 강의와 신규 강의 중 어떤걸 들으면 좋을 지 추천해주실 수 있을까요?(제 개인적인 생각으로는 3.10이 3.7과 유사할 것이고, 편리성은 떨어지겠지만 Spring의 원리를 깊게 알 수 있을거라 생각되어 3.7을 사용하는 기존 강의를 결제했습니다.)(+ 이메일로 쿠폰 요청 드렸습니다!)
-
미해결스프링 핵심 원리 - 기본편
Appconfig관련질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemberAppzmf래스에서 MemberService memberService = appconfig.memberService(); 여기서 appconfig.memberService()을 호출합니다 public MemberService memberService(){ return new MemberServiceImpl(new MemoryMemberRepository()); } 여기서MemberServiceImpl로가서 그다음에 어떻게해서 MemoryMemberRepository()가 어떻게 실행되느건가요? public MemberServiceImpl(MemberRepository memberRepository){ this.memberRepository = memberRepository; } MemberServiceImpl(MemberRepository memberRepository)->MemberServiceImpl() 괄호안에 new MemoryMemberRepository()이 코드가 들어가는건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 서비스 테스트 회원가입() assertThat()
[질문 내용]assertThat()메소드의 도큐먼트에서는 assertThat(실젯값).isEqualTo(기댓값)이라고 정의되어 있지만,5분 13초 쯤에 김영한 강사님께서 회원가입() 메소드를 테스트하는 과정에서 assertThat() 메소드를 작성하실때assertThat(member.getName()).isEqualTo(findMember.getName());라고 하셨는데실제로는 assertThat(findMember.getName()).isEqualTo(member.getName());이렇게 정의하는게 맞지 않나요?확인부탁드립니다!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertEquals(), assertThat()
[질문 내용] 강사님께서 assertEquals() 메소드는 괄호 안에 assertEquals(expected기댓값, actual실제값), assertEquals(member, result) 하셨고, assertThat(member).isEqualTo(result); 작성하셨는데 제가 assertThat 메소드 도큐먼트를 확인하니 assertThat(actual실제값).isEqualTo(expected기대값) 으로 정의 되어있어서 그렇게 된다면, assertThat(result).isEqualTo(member) 해야 올바르게 작성하는 코드 아닌가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
[주문조회 4V; jpa에서 DTO 직접 조회] 응답으로 DTO 전달 시, enum 과 값 타입 포함 관련
안녕하세요, 강의에서 궁금한 점이 있어 질문 드립니다.응답으로 엔티티를 그대로 반환하는 것이 아닌, DTO 를 반환하는 이유 중 하나가엔티티 변경 시, API 스펙에도 영향이 가는 것을 방지하기 위함이라고 이해했습니다. 그렇다면, 4:35 분 경, OrderQueryDto 를 구성할 때, Entity 에서, 해당 값들을 받아올 때, 1) Address 와 같은 값 타입이나,OrderStatus 와 같은 enum 들도, 별도의 Dto 로 만들어서 반환해야 되는것인지, 2) 그게 아니라면, 값 타입이나, Enum 값은 변경이 별로 없다는 것을 전제로 하고, 그대로 내려줘도 되는 것일지3) 둘 다 이유가 될 경우, 최종적으로는, 회사 별 코드 스타일대로 따르면 될지 질문드려요.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
FrontController - v1 회원목록
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.회원가입하고 회원목록 조회할때이런에러가 나옵니다 member 안에들어있는 값을 불러오지 못하는거같습니다
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
개발환경구성
메이븐 프로젝트 구성하려는데 이렇게 뜨네요 .. ownloaded[90m from [0mcentral[90m: https://repo.maven.apache.org/maven2/[0marchetype-catalog.xml[90m (16 MB at 6.9 MB/s)[0m[WARNING] Archetype not found in any catalog. Falling back to central repository.[WARNING] Add a repository with id 'archetype' in your settings.xml if archetype's repository is elsewhere.[INFO] [1m------------------------------------------------------------------------[m[INFO] [1;31mBUILD FAILURE[m[INFO] [1m------------------------------------------------------------------------[m[INFO] Total time: 4.579 s[INFO] Finished at: 2024-10-13T09:22:50+09:00[INFO] [1m------------------------------------------------------------------------[m[ERROR] Failed to execute goal [32morg.apache.maven.plugins:maven-archetype-plugin:3.3.0:generate[m [1m(default-cli)[m on project [36mstandalone-pom[m: [1;31mThe desired archetype does not exist (com.nexacro.archetype:uiadapter-spring-sample-archetype:1.0.1-20220603.053230-4)[m -> [1m[Help 1][m[ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the [1m-e[m switch.[ERROR] Re-run Maven using the [1m-X[m switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [1m[Help 1][m http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
실습 코드 커밋
커밋을 강의 중간에 계속 하던데 깃허브에는 커밋이 한개밖에 없네요 어떻게 알수있을까요
-
미해결스프링 시큐리티 OAuth2
정적 리소스 파일 설정 질문입니다.
application.yml에서 마지막에 web : static-path-pattern: /static/**이걸 안하면 static 폴더 아래에 있는 정적 리소스 파일이 html파일에 적용이 안되는데 왜이런건가요? 이전에는 해당 코드가 yml에 없었어도 제대로 됐었던것같은데 이유가 뭔가요? 그리고 정적 리소스 파일의 디폴트값은 원래 /static 아닌가요?
-
미해결스프링 핵심 원리 - 기본편
coreApplication은 실행 시 debug레벨로 찍히는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]OrderApp 이나 MemberApp실행 시 로그가 출력되지 않는 경우는 logback.xml 파일 추가해서 해결하였지만,logback 설정을 하지 않더라고 CoreApplication 실행 시에는 debug 레벨로 로그가 찍히는 이유가 궁금합니다.
-
미해결스프링 시큐리티 OAuth2
클라이언트 인가 후 저장 질문
클라이언트가 인가서버로부터 인가를 받으면 authorizedClient가 생성되는데, 이 생성된 authorizedClient는 세션에 저장돼서 다음 요청일때 이 세션에서 객체를 가져와 인가처리된 클라이언트인지 아닌지 확인하는건가요? 마치 인증완료후 authentication 객체가 securityContext에 저장되고, 이 컨텍스트가 세션에 저장되는것처럼 작동하는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello-static.html과 index.html의 차이
localhost:8080만 실행했을 때 같은 static폴더 내에 있지만 hello-static.html가 아닌 index.html가 웹 창에 뜬 이유가 궁금합니다.
-
미해결토비의 스프링 부트 - 이해와 원리
인용구의 출처가 궁금합니다.
안녕하세요. 강의 마지막에 조영호님의 프레임워크에 대한 견해를 소개해주셨는데요. 조영호(프레임워크3부) 라는 설명이 달려있는데프레임워크3부 라는 것이 무엇인지 알 수 있을까요?
-
미해결스프링 핵심 원리 - 기본편
데이터 호출관련 문의드립니다
package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.order.Order; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; public class OrderApp { public static void main(String[] args) { OrderService orderService = new OrderServiceImpl(); MemberService memberService = new MemberServiceImpl(); Long id=10L; Member member = new Member(id, "aaa", Grade.VIP); memberService.join(member); System.out.println(member.getName()+" "+" "+member.getId()+" "+" "+member.getGrade()); Order order = orderService.createOrder(id,"XBOX",100000); // // System.out.println("order = " + order); } }멤버의 정보까지는 정상적으로 불러와지는데 주문정보를호출하는 과정부터 멤버 정보를 받아오지 못하는거 같습니다.public interface OrderService { Order createOrder(Long id, String itemName, int itemPrice) throws IllegalStateException; }public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository = new MemoryMemberRepository();//회원 정보 찾기 private final DiscountPolicy discountPolicy = new FixDiscountPolicy();//할인 금액 @Override public Order createOrder(Long id, String itemName, int itemPrice) { Member member = memberRepository.findById(id); if(id ==null){ throw new IllegalStateException("유효하지 않은 아이디 입니다" + id); } int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(id, itemName, itemPrice,discountPrice); } }public class Order { private Long id; private String itemName; private int itemPrice; private int discountPrice; public Order(Long id, String itemName, int itemPrice, int discountPrice) { this.id = id; this.itemName = itemName; this.itemPrice = itemPrice; this.discountPrice = discountPrice; } public int calculatePrice(){ return itemPrice - discountPrice; //비지니스 로직 } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getItemName() { return itemName; } public void setItemName(String itemName) { this.itemName = itemName; } public int getItemPrice() { return itemPrice; } public void setItemPrice(int itemPrice) { this.itemPrice = itemPrice; } @Override public String toString() { return "Order{" + "id=" + id + ", itemName='" + itemName + '\'' + ", itemPrice=" + itemPrice + ", discountPrice=" + discountPrice + '}'; } }order 패키지 쪽 소스 인데 수정해야 될부분이 있을까요Exception in thread "main" java.lang.NullPointerException: Cannot invoke "hello.core.member.Member.getGrade()" because "member" is null at hello.core.discount.FixDiscountPolicy.discount(FixDiscountPolicy.java:10) at hello.core.order.OrderServiceImpl.createOrder(OrderServiceImpl.java:20) at hello.core.OrderApp.main(OrderApp.java:22)에러는 이와같이 발생합니다도와주셔서 감사합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강사님이 보시는 문서 볼 수 있는 곳이 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강사님이 보시는 문서 볼 수 있는 곳이 있나요?