묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 에러 질문드립니다.
안녕하세요 테스트를 진행하던 중 오류가 발생하여 질문드립니다. 테스트 케이스를 클래스 레벨로 진행하면 문제 없이 잘 실행이 되나한글명의 메서드 상품주문() 레벨에서 테스트를 진행시 해당 에러가 발생합니다.java.lang.Exception: No tests found matching Method �긽�뭹二쇰Ц(jpabook.jpashop.service.OrderServiceTest) from org.junit.internal.requests.ClassRequest@6c2ed0cd 해당 메서드 명을 영어로 바꿔보니 메서드 레벨에서도 진행이 잘 되더라구요... 인프런에 답변들을 보고encoding 형식을 UTF-8로 설정하였으며idea64.exe.vmoptions엔 해당 코드를 추가하였고-Dfile.encoding=UTF-8테스트 진행을 gradle이 아닌 인텔리제이로 설정까지 하였으나 해당 오류를 해결하지 못하였습니다.혼자선 도저히 해결을 못하겠어 질문남깁니다...build.gradle 과 test 코드 첨부합니다..plugins { id 'java' id 'org.springframework.boot' version '2.7.5' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'jpabook' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } } test { useJUnitPlatform() } tasks.named('test') { useJUnitPlatform() } package jpabook.jpashop.service; import jpabook.jpashop.Repository.MemberRepository; import jpabook.jpashop.domain.Member; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import static org.junit.Assert.*; @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("kim"); //When Long saveId = memberService.join(member); //Then assertEquals(member, memberRepository.findOne(saveId)); } @Test(expected = IllegalStateException.class) public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); //When memberService.join(member1); memberService.join(member2); //예외가 발생해야 한다. //Then fail("예외가 발생해야 한다."); } }
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
로그인 시도 시 타입에러 나는데 모르겠네요
TypeError: dispatch is not a functionat handleSubmit (login.tsx?11e1:23:13) 에러나는 부분은login파일의 dispatch("LOGIN",res.data?.user); 에서 에러가 납니다. 이 강의 듣는 몇몇분들도 동일하게 나타나는 증상같은데.. 확인 한번 부탁드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P 연구소 문제 질문있습니다.
다음은 제 풀이인데요. http://boj.kr/40c0b7e643f04d319e867fb46381b92c 조합에도 사용할 수 있도록 next_permutation을 응용해서 풀려고 했습니다.combi을 초기화하고 정렬하는 부분은 조합을 수행하기 위한 준비과정이고요. do-while문에서 이제 각 경우에 대해 BFS를 수행하는 코드입니다.return to the original board 부분은 원래의 맵으로 재초기화하는 부분입니다establish the walls 부분은 벽을 세울 좌표에 벽을 세우는 부분입니다.next_permutation으로 좌표 3개를 뽑아서 각 좌표에 해당하는 맵의 값을 1로 세우는 것(벽세우는것)입니다그리고 이제 바이러스로 BFS를 수행하고 최종적으로 안전영역의 개수를 구하게 되는데요.37%에서 멈추고 실패합니다가 뜨네요. 어떤 부분이 틀렸는지 알고 싶습니다. 강사님 풀이도 좋지만, 최대한 여러 풀이를 알고자하여 질문드립니다.
-
미해결카카오 퇴사자가 누설하는 [웹개발자 취업 비밀노트]
노션 공유 이메일을 잘못 작성했습니다 ㅠㅠ
오늘 새벽에 swon lee 라는 닉네임으로 구글폼 제출했었는데 주로 사용하는 노션 계정이 구글 이메일인데 실수로 *****3284@kakao.com 으로 공유 요청드렸어요 ㅠㅠ번거로우시겠지만 *****3284@gmail.com으로 재공유 부탁드립니다!! ㅠㅠ
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
프로젝트 생성시 빌드 오류 질문
안녕하세요. 스프링DB 1편 프로젝트 생성을 할 때 빌드 오류가 나서 질문드립니다.지금까지 처음 프로젝트 불러오고나서 생성할 때 빌드 오류가 난 적이 없어서 어떻게 해결해야될지를 모르겠네요 ㅠㅠ프로젝트는 Spring Initializr를 통해서 생성했습니다.자바11, 17과 7.5.1 관련 문구가 반복적으로 나오는데 무슨 의미인지 모르겠습니다.
-
해결됨ChatGPT 100% 활용하여 배우는 파이썬 기초 A to Z
구구단을 외자 print format
구구단을 외자 3분 정도에서, format이라는 것을 알려주셨어요.저는 기존에 중괄호 {}에 숫자를 따로 안넣고 사용을 했었는데, 숫자를 꼭 넣어줘야 하나요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ArraySegment<byte>구조체 질문드립니다.
void RegisterRecv(){if (_disConnect == 1)return;_recvBuffer.OnClear();ArraySegment<byte> segment = _recvBuffer.WriteSegment;_recvArgs.SetBuffer(segment.Array, segment.Offset, segment.Count);bool pandding = socket.ReceiveAsync(recvArgs);if (pandding == false)RecvCompleted(null, _recvArgs);} 코드에서 ArraySegment<byte> segment = _recvBuffer.WriteSegment;를 하여새로운 segment를 만드시는데 ArraySegment는 구조체입니다. 구조체는 복사가 될 뿐 원본에 영향을 주지않는 새로운 객체로 알고있습니다.그런데 void RecvCompleted(object sender, SocketAsyncEventArgs args) 함수에서int processLen = OnRecv(_recvBuffer.ReadSegment);를 할 때 어떻게 원본 객체에 데이터가 들어가는지 궁굼합니다.!새로운 segment가 생성되어 스택에 쌓일 때 해상 스택에는 원본의 주소를 가지고 있는 건가요? 그래서 실제로는 구조체이기때문에 복사는 아니고 주소 참조? 맞나요? 감사합니다.!
-
미해결데이터 분석 SQL Fundamentals
Outer join실습 02 관련
안녕하세요. 강사님조인 실습 중에 질문이 생겨서 이렇게 문의드립니다. 다음 실습을 하던 도중 레프트 조인에서 b.ship_via = d.shipper_id 와 같이 서로 필드명이 다른데어떻게 이 둘이 서로 같다 라고 알 수 있나요?ERD를 보면 orders 테이블에는 ship_via, freight 모두 123표시가 있기는 합니다만.... 궁금합니다 null 값을 0으로 만들때coalesce (. ) 함수 말고 ifnull 함수로는 사용할 수가 없는지 궁금합니다. 감사합니다. 강사님.!
-
미해결스프링 시큐리티
ajax로 로그인 시 오류
IpAddressVoter.java 의 public int vote(Authentication authentication, Object object, Collection<ConfigAttribute> attributes) {....} 에서인자인 Authentication authentication 객체 안에FormWebAuthenticationDetails 객체가 null 로 IP정보를 가져오지 못합니다.사용자 IP를 가져올 방법이 없을까요?
-
미해결데이터 분석 SQL Fundamentals
Left join 관련
교수님 안녕하세요. 항상 감사드립니다. 질문!Left join 시에 어떤 테이블을 outer로 잡아야 하는지 좀 헷갈립니다. 1)보통 1레벨 테이블과 과 M레벨 테이블이 있으면 1레벨 테이블을 outer로 잡는 게 맞는거지요? 그 이유는 dept 테이블에 있는 deptno는 PK이기에 가지고 있는 모든 값을 가져오는 반면,emp 테이블의 deptno는 중복은 될지라도 직원의 정보가 있는 한정된 값들만 가지고 오기 때문인가요?그래서 null값을 보려면 outer를 dept로 설정해야 하는 것인지요? 감사합니다.
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
앞으로의 강의를 계속 기다리는 것이 좋을지 아니면 이전 강의도 보는 것이 좋을지 문의 드립니다.
안녕하세요 루키스님. 올려주시는 언리얼 강의들 제가 본 어떠한 강의보다 더 알차고 차근차근 이해가 쏙쏙 되어서 유익하게 공부하고 있는 학생입니다.저는 UE5로 약간의 멀티플레이가 가능한 3D 액션 게임을 제작하기 위해 독학하고 있는 직장인입니다! 취준생은 아니고요~ 아직 완전 입문 단계의 실력인데요.이후 제작하고 계신 강의와 별개로 이전에 올리신 언리얼 MMO 강의도 함께 들으면(소화만할 수 있다면) 좋을지? (겹치는 내용이 많이 없는지?) 궁금합니다.만약 그렇다면 현재 UE5로 제작중이신 강의를 기다려서 다 듣고나서 이전에 올리셨던 MMO 강의를 이후 듣는 것이 좋을지? 아니면 그냥 둘 다 동시에 들어도 무난할지 문의드립니다.겹치는 내용이 많아 이전 강의를 듣기보다 그냥 앞으로 제작하실 강의만 듣는 것이 나을지도 궁금해요~감사합니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증로직 관련해 질문 드립니다.
안녕하세요. 강의 듣고 있는 상황에서 궁금증이 생겨 질문드립니다. 강의에서 Controller에 Field마다의 검증로직을 수행한걸로 이해했습니다. 이 검증 로직을 Item.class에 검증 함수를 정의하고, controller에서는 redirct와 itemRepository에 저장하는 식으로 작성하는 방식으로 했을 때, Side effect가 있나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
오류 코드와 메시지 처리 질문
안녕하세요. 먼저, 소중한 강의 감사드립니다.오류 코드와 메시지 처리 질문이 있어 글 남깁니다. 지금 쭉 강의 수강하면서 따라가는데, 현재는 타임리프로 구현되어있는 상황에서 request마다 Controller의 처리로직을 거쳐 데이터를 뿌려주고, 조작하는 걸로 이해했습니다. 그렇다면, 결국엔 여기서는 타임리프를 사용해야만 오류 메시지를 출력할 수 있는 걸까요? 만약 Front 부분이 React, Vue 와 같이 되어 있을 때는 오류메시지나 필수필드입니다. 여부를 API 응답으로 전해주면 되는 걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
클래스 파일로 안 떠요..
왜 이 부분이 클래스 파일로 안 뜰까요? ? 컴파일을 할 수가 없네요,,
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
최종 분류 모델을 생성할 때, 어떤 데이터를 사용해야 하는지 궁금합니다.
안녕하세요.강사님의 여러 강의를 듣고 큰 도움을 받고 있습니다. 제가 궁금한 것은, 실제 업무 영역에서 분류모델을 적용하는 과정입니다. 모델을 생성한 후, 실제 타겟값을 알 수 없는 현실데이터에 적용을 해야 할 때, 어떤 데이터로 만든 모델을 적용해야 하는지 궁금합니다. 예를 들어서 강의에 따르면, 랜덤포레스트의 경우, 구축된 데이터 중에서 학습/테스트를 나누고 학습데이터를 가지고 모델을 만들고 테스트데이터를 가지고 최종정확도 성능을 확인하잖아요. 그리고 나서 이제는 타겟값을 알 수 없는 데이터에 적용을 하는 거잖아요. 그때 사용하는 머신러닝모델은 테스트데이터에서 높은 정확도가 나온 '학습데이터로 만든 모델'을 적용하는 거라고 생각하는데요.그런데, 최종적으로 높은 성능을 보인 모델의 하이퍼파라미터값을 학습데이터와 테스트데이터를 다 합친 것에 적용해서 최종 모델을 생성하고 실제로 타겟값을 알 수 없는 모델에 적용하는 건 괜찮은 걸까요? 궁금해서 여쭤봅니다. 항상 감사드립니다.
-
미해결Flutter 중급 1편 - 클린 아키텍처
use case 생성할때 repo를 외부에서 주는것과 자신이 생성하는것의 차이가 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님이 작성한 use case를 도입하려고 해보는데요use_case들이 repo를 생성해서 가지고 있는것과필수 매개변수로 정의한다음 외부 di에서 주입해서 주는것의 차이가 궁금합니다. 제 생각에는 어차피 생성하는 시점의 차이지 크게 다르지 않은거 같아서 좀더 귀찮음을 방지하려면 use_case가 들고있어도 괜찮을거 같거든요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
주 테이블 외래키 장,단점에 관해 질문이 있습니다.
"주 테이블만 조회해도 대상 테이블에 데이터가 있는지 확인 가능" 이 부분을 저는 주 테이블만 봐도 일단 외래키가 있다는 것은 대상 테이블에 뭔가가 있다는 것이니까 대상 테이블의 데이터 존재 유무 확인이 가능하다 라고 이해를 하였고 "값이 없으면 외래 키에 null 허용" 이 부분을 저는 OneToOne 관계이므로 한 사람은 라커 하나를 사용할 수 있고 라커도 한 사람에게 할당될 수 있으므로 주 테이블의 외래키인 LOCKER_ID가 null 이라는 것은 이 사람에게 할당될 라커가 없고 고로 대상 테이블에도 데이터가 없다 라고 이해를 했습니다. 이런 상황에서 두 가지 질문이 있습니다.제가 이해한 것이 맞을까요?테이블 칼럼의 값이 null인 것이 왜 단점일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring initializr
Project에 Gradle-Groovy, Gradle-Kotlin, Maven 이렇게 있는데,, 뭐로 설정하고 다운받아야 할까요?? 강의에서는 Gradle로 하라고 하시는데 ㅠㅠ 뒤에 그루비랑 코틀린이 붙어 있어서요.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
../경로 질문이요
templates/basic/items.html 에서../css/bootstarp.min.css 가 실행되면 basic/css/bootstrap.min.css를 찾게 되는 건가요?
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
@ControllerAdvice 없이 예외처리 하는 방법은 어떻게 되나요?
안녕하세요 호돌맨님 강의 잘 듣고 있습니다!강의를 들으면서 저도 비슷한 방법으로 게시판을 만들어 보려고 하는데요. 예외처리 부분에서 문득 궁금증이 생겨서 질문을 드립니다.혹시 @ControllerAdvice 없이 예외처리하는 방법은 뭐가 있을까요?Controller@GetMapping("/{postId}") public ResponseEntity<ResponsePostDto> getPost(@PathVariable Long postId) { ResponsePostDto responsePostDto = postService.get(postId); return ResponseEntity.ok(responsePostDto); }Servicepublic ResponsePostDto get(Long postId) { Post post = postRepository.findById(postId) .orElseThrow(() -> new RuntimeException("존재하지 않는 게시글입니다.")); return ResponsePostDto.builder() .id(post.getPostId()) .title(post.getTitle()) .content(post.getContent()) .createdDate(post.getCreatedDate()) .build(); }컨트롤러와 서비스를 이렇게 작성하고 @ControllerAdvice 없이 테스트를 돌려보니 서비스 계층에서의 예외처리 테스트 코드는 RumtimeException을 받으면서 잘 돌아갑니다.그리고 컨트롤러 테스트 코드를 작성했습니다.ControllerTest@Test @DisplayName("게시글 조회 실패 - 잘못된 ID") void getPostBadIdTest() throws Exception { // given ResponseSavedIdDto responseSavedIdDto = postService.write(RequestRegisterPostDto.builder() .title("test title") .content("test content") .build()); Long postId = responseSavedIdDto.getSavedId(); // expected mockMvc.perform(get("/posts/{postId}", postId + 1L) .contentType(APPLICATION_JSON)) .andExpect((result) -> { System.out.println("==================="); System.out.println("message: " + result.getResolvedException().getMessage()); System.out.println("==================="); Assertions.assertEquals(result.getResolvedException().getClass().getCanonicalName(), RuntimeException.class.getCanonicalName()); Assertions.assertTrue(result.getResolvedException().getClass().isAssignableFrom(RuntimeException.class)); }) .andDo(print()); }이렇게 컨트롤러 테스트를 돌려보니 서비스에서 터진 RuntimeException이 컨트롤러까지 전달이 안되는것으로 확인했습니다. 그리고 나서 컨트롤러에서 try catch로 RuntimeException을 잡는 방식으로 수정해봤습니다.@GetMapping("/{postId}") public ResponseEntity<ResponsePostDto> getPost(@PathVariable Long postId) { try { ResponsePostDto responsePostDto = postService.get(postId); return ResponseEntity.ok(responsePostDto); } catch (Exception e) { throw new RuntimeException(e); } }이렇게 하니 RumtimeException은 컨트롤러에서 터지긴 하는데 테스트 코드에서는 andExpect에서 Exception 결과를 받지 못하는지 통과가 계속 안됩니다..ㅠㅠ강의에서 나온대로 @ControllerAdvice와 @ExceptionHandler를 사용하면 통과가 되는데 컨트롤러에서 try catch로 Exception을 던지는것과 어떤 차이가 있길래 테스트 코드에서 차이점이 생기는 걸까요? 그리고 @ControllerAdvice를 사용하지 않는다면, 서비스 계층에서 생긴 Exception을 어떻게 컨트롤러에서 처리하면서 테스트 코드를 통과할 수 있을까요??답변 주시면 감사하겠습니다!!