묻고 답해요
144만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 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. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강사님이 보시는 문서 볼 수 있는 곳이 있나요?
-
미해결스프링 시큐리티 OAuth2
authentication server 토큰 검증 api 테스트 질문
현재 /oauth2/token 에 접근하지 못하는 문제가 있는 것으로 보입니다.제가 확인해봐야할 내용이 어떤게 있을까요?동영상에서 37:33쪽에 있는 내용하고 비교를 해봤을 때, 현재로썬 authenticated 가 다르다게 진행이 되고 있어서 질문드립니다.
-
미해결스프링 시큐리티 OAuth2
인증처리에서 SecurityContext 질문입니다.
컨트롤러에서 직접 사용자 인증처리를 구현하는데 마지막에 Oauth2AuthenticationToken을 SecurityContextHolder를 사용해 securityContext에 저장하는데, 이 처리는 이번 요청이 끝나면 securityContext가 초기화되므로 securityContext를 세션에도 저장해줘야 하는거 아닌가요?
-
미해결Practical Testing: 실용적인 테스트 가이드
given - when - then 구조에 대해 질문 있습니다.
@Test void remove() { CafeKiosk cafeKiosk = new CafeKiosk(); Americano americano = new Americano(); cafeKiosk.add(americano); assertThat(cafeKiosk.getBeverages()).hasSize(1); cafeKiosk.remove(americano); assertThat(cafeKiosk.getBeverages()).isEmpty(); }저는 given은 CafeKiosk cafeKiosk = new CafeKiosk(); 이런식으로 객체를 생성하는 단계when은 cafeKiosk.add(americano); 와 같이 실제 메서드를 사용하는 단계then은 assertThat(cafeKiosk.getBeverages()).isEmpty(); 와 같이 실제값과 기대값을 검증하는 단계라고 이해를 했습니다. 제가 given - when - then에 대해 위와 같이 이해를 했는데 맞게 이해를 한건지 궁금합니다.먼가 깔끔한(?) 코드는 given - when - then이 딱딱 나눠져야 하는건지 (객체 생성은 given 쪽에 몰아두고 메서드 사용은 when쪽에 몰아두고 검증은 then쪽에 몰아두는) 궁금합니다.하나의 단위 테스트에서도 given - when - then 의 흐름이 여러개가 존재할 수 있나요? 전체적인 하나의 흐름만 존재하는 건지 아니면 단위 테스트 내에서도 여러 흐름이 존재하는건지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
mvc패턴-적용 new-form html form 안뜸
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.mvc패턴 - 적용 자료에서 회원등록 폼뷰, 컨트롤러 코드랑 파일위치도 강의자료에서 설정하신대로 작성했고, build.gradle도 버전에 맞게 썼는데, HTML Form이 잘나타나지 않네요? 이것도 경로문제인가요?? index.html이랑 basic.html을 webapp에 넣으면 막혀서 resources/static에 넣었거든요
-
미해결
JMeter 속도 측정 시 API 속도 차이
springboot로 백엔드 서버를 구축해서 API 속도를 확인하고 싶어서 JMeter로 속도를 측정하고 있습니다.그런데 같은 API를 3개 테스트했는데 속도 차이가 너무 나는데 이유를 모르겠습니다.전부 "GET /v1/employee" API이고, 유독 첫번째 위치한 API 속도가 많이 느립니다. 정말 답답한데 힌트라도 알고 싶습니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
th:if="${param.status}"
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. @PostMapping("/add") public String addItemV4(@ModelAttribute("item") Item item, RedirectAttributes redirectAttributes) { Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", false); //?status=true 뜬다 url에 return "redirect:/basic/items/{itemId}"; // 이런식으로 리다이렉트 하는게 더 안전 }이렇게 redirectAttributes.addAttribute에 satus를 false 라고 했는데도 <h2 th:if="${param.status}" th:text="'저장완료'"></h2>저장완료가 출력이 됩니다. url에는 false라고 뜨는데 왜 그런건가요 ?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Order import 문제
<orderServiceTest> <OrderService>Order의 import를 domain에 있는 Order class로 했는데 왜 위와 같은 오류가 나는지 모르겠습니다.