묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다
jipeong2004@naver.com 입니다보내주시면 감사하겠습니다.
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Controller layer 테스트시 service가 연관되어 있을때 테스트 진행 질문
안녕하세요. 강의 정말 잘 보고 있습니다(모르는 게 이렇게나 많아서 강의보고 찾아보고 공부 정말 많이 되고있습니다)다름이 아니라 강의를 보고 개인적으로 만들어 보고 있는 상황인데, 테스트를 어떤식으로 짜야되는지 갈피를 잡지 못해서 질문을 드립니다.단순히 Controller 만 테스트하는건 강의를 통해 학습을 하고 있는데 만약 DB 에 저장되어 있는 데이터가 필요해 조회해야하는 상황에서는 어떻게 단위테스트를 할 수 있을까요?당장 구글링을 통해 확인한 결과는 Mockito(?) 를 사용하여 '어떤 메소드를 호출하면 개인적으로 정해둔 값을 리턴해!!(given)' 라고 설정해서 테스트를 진행하는데 그러면 실제 DB 에 들어가 있는 데이터값과 다름에도 불구하고 이런 테스트가 올바른지 잘 이해가 되지 않습니다.//Controller @PostMapping("/login") public ResponseEntity<?> loginMember(@RequestBody MemberLoginRequestDTO memberLoginRequestDTO){ log.info("memberLoginRequestDTO={}", memberLoginRequestDTO.toString()); return ResponseEntity.status(HttpStatus.OK).body(memberService.login(memberLoginRequestDTO)); }//Service @Transactional public boolean login(MemberLoginRequestDTO memberLoginRequestDTO){ Member member = memberJpaRepository.findByMemberIdAndPassword(memberLoginRequestDTO.getMemberId(), memberLoginRequestDTO.getPassword()) .orElseThrow(()->new IllegalArgumentException("회원아이디 혹은 비밀번호를 잘못 입력하셨습니다.")); return true; }//TESTCODE @Test @DisplayName("/login 요청시 200 status + true 리턴") void loginTest() throws Exception { //given given(memberService.login(any())).willReturn(true); //expected mockMvc.perform(MockMvcRequestBuilders.post(COMMON_URL + "/login") .contentType(MediaType.APPLICATION_JSON) .content("{\"memberId\" : \"testId\"," + "\"password\" : \"1234\"}") ) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.content().string("true")) .andDo(MockMvcResultHandlers.print()); }간단한 login API 테스트 입니다.bddmockito 의 given 메소드를 통해 true 를 반환하도록 정의해놓았는데 이런식으로 테스트를 하는게 맞는걸까요?감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른 강의들과는 다르게 MemberRepository interface 를 생성하지 않고 바로 class 만 이용해서 하셨는데 이유가 있을까요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
navigation
안녕하세요 개발자님강의 잘 수강하고 있습니다 ! 아직 초보라 모르는 것이 많지만 강의 이해하면서 잘 따라가고 있습니다. 지금 navigation 으로 하단에 탭 만드는 부분을 수강 중인데 질문이 있어 질문드립니다.navigation이 어떤 기능이 있는 건지가 궁금합니다! 하단탭을 만들어줄 때는 navigation을 사용하여 만들어주는 것이 일반적인 건가요? 혹시 다른 방법도 있는지도 궁금합니다
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
파이썬 구구단 코드 질문
코딩 으로 구구단 만드는 부분 이해가 잘 안되는 부분이 있어서 질문드립니다.아래에서 2나오고 밑에서 1~9, 3 나오고 밑에서 1~9가 나온다고 설명해주셨는데 이해가 잘 안되는게2나오고 밑에서 1나오고 , 3나오고 밑에서 2나오고, 4 나오고 밑에서 3 나와야 하는게 아닌가요?이해가 잘안되네요 쉽게 설명좀 부탁드립니다. ㅠㅠㅠfor i in range(2, 10): for j in range(1, 10): print('{:4d}'. format(i * j), end='') print()
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
파일 다운로드 창
크롬은 이거 설정 해줘야 다운로드 창 뜨는거 같습니다
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
캘린더에서 data 불러올 때 쿼리문 작성 문의드립니다.
안녕하세요. 평소 코드팩토리님 강의 열심히 듣고 있는 사람입니다. 캘린더 편을 반복해서 계속 들으면서, 제 어플에 커스텀해서 사용하고 있습니다. 제가 달력을 구현하면서, 감정일지를 만들고 있는데 아래의 사진과 같이 월별로 일지를 불러오려고 합니다. 그래서 drift_database 에서의 코드 구현을 위의 사진과 같이 구성하였습니다. int date를 인자로 넣고, where 문에서 schedules.date.month.equals(date) 와 같은 데이터를 불러오도록 하는데요, 이렇게 작성을 했을 때 월별로 잘 들어오기는 하는데 문제는 연도가 바뀌어도 같은 달이면 그 데이터가 불러와진다는 겁니다. 예를 들어 2023년 1월로 불러왔던 일지들이 2022년 1월을 선택해도 불러와진다는 겁니다..ㅜㅜ그래서 drift_database에서 쿼리문을 작성할 때schedules.date.month.equals(date) && schedules.date.year.equals(date) 이런식으로 작성을 하려고 하니 안되는 것 같은데, 혹시 년도와 월이 같은 일지들을 불러오는 쿼리문은 어떻게 작성을 해야할까요? 도움 부탁드립니다.감사합니다.(사진의 datepicker 기능에서 연/월/일 중 '일'을 빼지 못해 사진과 같이 나오고 있습니다. '일'은 그냥 무시해주세요.)
-
미해결15일간의 빅데이터 파일럿 프로젝트
여러가지 질문드립니다.
안녕하세요^^강의를 1회독 마무리하고 2회독 시작 전에 내용을 정리하고 있는데, 강의들을때는 넘어갔던 것들 중에 이해가 안가는 것들이 많네요ㅠ. 구굴링을 해봐도 이해가 안가는 내용을 질문드립니다.질문이 좀 많습니다.1. 소프트웨어 아키텍처 그림에서 플럼이 배치데이터를 하둡에 보낸다고 되어있는데, 정확히는 플럼이 보낸 데이터를 HDFS가 블록화 및 복제하여 분산된 x86 컴퓨터들에 저장하는 것인가요?2_1. HBase의 HFile에 있던 데이터가 HDFS에 저장될때 128mb 단위로 블록화 및 복제되어 분산 저장되는건가요?2_2. 빠른 데이터 억세스를 위해 HBase가 가지고 있다면 모르겠지만 데이터들이 결국 HDFS에 저장된다면, HBase는 왜 설치하는건지 모르겠습니다.2_3. 2번째 질문과 비슷한 내용인데, 둘다 데이터를 분산저장한다면 HBase와 HDFS가 비슷한거 같은데, 어떤 차이가 있는 건가요?2_3. 카산드라 및 몽고DB를 HBase 대신 사용할 수 도 있는건가요?2_4. HBase도 DBMS로써 SQL을 활용한 데이터의 CRUD가 가능한가요? 아니면 맵리듀스 프로그래밍을 해야하는건가요.3. Map/Reduce는 따로 설치하지 않았습니다. 그럼 Map/Reduce는 따로 설치하는 프로그램이 아닌 분산데이터 처리 방식, 즉 각 프로그램에서 함수로 구현해서 실행하는 것 정도로 이해하면되나요?4_1. Managed 데이터를 만들때, 사용자가 하이브에 SQL문 입력 → 하이브는 이를 맵리듀스 코드로 변환하여 HDFS에 명령을 내림 → HDFS는 분산서버의 CPU에 명령을 내리고 그 처리결과를 합쳐 하이브에 반환 → 이를 사용자에 반환하는 것으로 이해했습니다. 이게 맞나요?4_2. 맞다면 파일럿프로젝트에서는 Managed table들이 저장되어 있는 데이터마트라는 저장공간(서버)이 따로 존재하는 것이 아니고 그때그때 결과 테이블을 출력해주는 건가요?4_3. 실무에서는 데이터마트만을 위한 서버를 따로 구축하나요?
-
미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
number 타입 -> string 타입으로 변경할때, `as unknow` 을 사용해야 에러가 안나는 이유가 무엇인가요?
number 타입 -> string 타입으로 변경할때, as unknow 을 사용해야 에러가 안나는 이유가 무엇인가요?문법적인 이유일까요?
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
동기화강의내용에서질문에요
여기서 i는 5까지니까 방도 5번방까지 청소가능해야하는데 왜 05Synchronization에서는 실행해보면 7번방까지나오는건가요??
-
해결됨Java/Spring 주니어 개발자를 위한 오답노트
JPA 양방향 연관관계 관련하여 질문 드립니다.
안녕하세요. 지식공유자님 강의 잘 듣고 있습니다. 순환참조 관련 설명을 해주시면서 외래키를 직접 들고 있는 편이 낫다고 하셨습니다. 실제로 최근에 최범균님의 JPA 강의를 들으면서 연관관계를 사용하지않고 저렇게 외래키를 들고 있는 코드를 보았는데요. 제가 여태껏 배운 것과는 많이 달라서 몇 가지 의문점이 듭니다. 외래키를 저렇게 직접적으로 들고있을 시엔 ORM을 사용함에도 불구하고 다시 데이터베이스에 가까운 엔티티 설계로 돌아간 것이 아닌가 하는 의문입니다.양방향 연관관계를 사용하지 않을 경우 그에 따라 orphanRemoval나 cascade 옵션을 사용하지 않음에 따라 추가적인 로직 작성이 필요하지 않나요?? 그에 따른 추가작업이 생길 수 있는데 혹시 제가 잘못 생각하고 있는 것인지 여쭙고 싶습니다양방향 연관관계를 걸었을때와 외래키를 직접 들고있는 것 중 CRUD 성능에 크게 차이가 있을까요?혹시 현업에서는 어떻게 하고 있을까요? 팀마다 다를까요?
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
thread의 PC register 질문
안녕하세요! Thread 강의를 수강하다가 PC register에 대한 질문이 있어서 남깁니다!Process & Thread 강의에서 제가 이해한 바로는, Multi Process에서는, CPU 내부에 있는 PC register에는 다음에 진행해야 할 Process의 코드 주소값이 저장되어 있다.Multi Process & Multi Thread에서는, 각 Thread가 PC register를 가진다.입니다. 제가 궁금한 점은"Multi Thread에서는 각 Thread가 독립적인 PC register를 갖고 있다" 하셨는데(TCB에 저장), CPU가 가지는 PC register와는 구체적으로 어떤 차이가 있나요? CPU의 PC register는 각 TCB에 적힌 여러 PC register 중, CPU가 지금 처리해야 할 TCB의 PC register를 들고 있는 것인가요?PCB, TCB에는 각 프로세스, 쓰레드의 Context가 저장되는 곳인 것 같은데, 이 안에 PC register(다음 실행할 코드의 주소값) 또한 포함되어 있는 건가요?"Multi Process, Single Thread에서, CPU가 가지고 있는 PC register는 다음으로 처리해야 할 Process의 코드 주소값(PC register)을 가지고 있는 것이고,Multi Process, Multi Thread에서는, CPU가 가지고 있는 PC register는 다음으로 처리해야 할 Process 내부의 Thread의 코드 주소값(PC register)을 가지고 있다"고 이해해도 될까요?입니다!
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
활용-8 앱 / 디테일화면 만들기 (활용앱 67강) 질문있습니다.
안녕하세요. 앨런님 강의 잘 듣고 있습니다. 좋은 강의 감사합니다. 활용앱 67강 듣고 질문 드립니다. 영상의 좀 마지막 부분인데 뷰컨트롤러에서 테이블뷰 셀의 Member데이터를 DetailViewController로 넘기고 여기로 넘어온 Member데이터를 다시 DetailView에 넘겨서 셀 클릭시 다음 화면에 데이터를 표시하도록 구현을 했는데 궁금한것은 loadView함수가 viewDidLoad보다 먼저 실행이 되는걸로 알고있는데 loadView로 그럼 현재 DetailViewController의 view를 갈아 끼우고 viewDidLoad를 불러서 데이터를 DetailView에 전달하는데 그럼 데이터를 전달한 후에 한번더 view = DetailView로 정보가 저장된 뷰를 다시 끼워주는게 맞는거아닌지.. 이렇게 안해도 데이터가 잘 표시되는 이유가 궁금합니다!
-
미해결은종쌤과 자바로 디자인 패턴 쉽게 시작하기
Observer 예제는 push인가요 pull 인가요?
Observer 강의를 봤는데본 예제는 push인가요 pull 인가요?둘 중 어떤 것으로 이해해야할지 헷갈립니다.옵저버들이 전달받은 객체에서 getNumber()를 호출하니까 pull일까요~?!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
에러 핸들링과 db 조회 시 await을 붙이는 경우와 안붙이는 경우가 궁금합니다.
에러 핸들링의 경우 그냥 throw로 에러를 던져주기만 하는데 await을 붙여 에러를 받아야되는 이유가 궁금합니다. async checkSoldout({ productId }) { const product = await this.productRepository.findOne({ where: { id: productId }, }); if (product.isSoldout) throw new UnprocessableEntityException('이미 판매가 완료된 상품입니다.'); }@Mutation(() => Product) async updateProduct( @Args('productId') productId: string, @Args('updateProductInput') updateProductInput: UpdateProductInput, ) { // 여기서 에러를 받았을 때 await을 붙여야 정상동작을 하는데 이유가 궁금하네요. await this.productService.checkSoldout({ productId }); return this.productService.update({ productId, updateProductInput }); } 제가 실험삼아 db를 업데이트 할 때 await을 빼고 로직을 수행해 봤는데 정상적으로 동작하는 듯 보입니다. 이게 왜 동작하는 건지 모르겠네요...// async await을 모두 제거했습니다. update({ productId, updateProductInput }) { const newProduct = { id: productId, ...updateProductInput, }; return this.productRepository.save(newProduct); }@Mutation(() => Product) async updateProduct( @Args('productId') productId: string, @Args('updateProductInput') updateProductInput: UpdateProductInput, ) { await this.productService.checkSoldout({ productId }); // 리턴을 받을 때도 기다리지 않고 바로 진행했습니다. return this.productService.update({ productId, updateProductInput }); }이 때 서버를 돌리고 쿼리를 실행해보면 정상적으로 수행이 되는데(출력해보면 pending 상태입니다...) 이해가 잘 안되네요..
-
해결됨[React 1부] 만들고 비교하며 학습하는 React
TabLabel의 Key 관련 문의드립니다.
안녕하세요.강사님께서 TabLabel을 아래와 같이 작성하셨는데, Key에 []가 들어가 있는 경우는 처음 보아서요.const TabLabel = { [TabType.KEYWORD]: "추천 검색어", [TabType.HISTORY]: "최근 검색어", };Key를 배열로 선언하신 것인가요? 이와 관련된 문법은 어디서 찾아볼 수 있을까요?
-
해결됨따라하며 배우는 리액트 A-Z[19버전 반영]
AxiosError 도와주세요...
import axios from '../../api/axios'; import React, { useEffect, useState } from 'react' import { useParams } from 'react-router-dom' export default function DetailPage() { const { movieId } = useParams(); const [movie, setMovie] = useState({}); useEffect(() => { async function fetchData() { const request = await axios.get(`/movie/${movieId}`); // setMovie(request.data); console.log(request); } fetchData(); }, [movieId]) // if (!movie) return null; console.log(movie); return ( <section> <img className='modal__poster-img' src={`https://image.tmdb.org/t/p/original/${movie.backdrop_path}`} alt="modal__poster-img" /> </section> ) } 안녕하세요, 위와 같이 디테일페이지 코드를 영상을 보면서 하고 있는데.. 콘솔에서 리퀘스트를 불러올 때 에러가 뜹니다.Uncaught (in promise) AxiosError {message: 'Request failed with status code 404', name: 'AxiosError', code: 'ERR_BAD_REQUEST', config: {…}, request: XMLHttpRequest, …} 디테일 페이지에서만 위와 같은 에러가 왜 뜨는 건지 모르겠어서 문의글 남깁니다 ㅠㅠ
-
미해결[React 1부] 만들고 비교하며 학습하는 React
reset() 함수 작성 관련 문의드립니다.
안녕하세요.저는 아래와 같이 Controller에서는 Store의 reset()함수를 호출만하고, Store에서 상태를 변경하는 방식으로 작성했는데요.// Controller.js export default class Controller { constructor(store, { searchFormView, searchResultView }) { this.store = store; this.searchFormView = searchFormView; this.subscribeViewEvents(); } subscribeViewEvents() { this.searchFormView // .on("@reset", () => this.reset()); } reset() { console.log(tag, "reset"); this.store.reset(); // 작성한 부분 this.render(); } }// Store.js export default class Store { constructor(storage) { console.log(tag, "constructor"); if (!storage) throw "no storage"; this.storage = storage; this.searchKeyword = ""; this.searchResult = []; } // 작성한 부분 reset() { this.searchKeyword = ""; this.searchResult = []; } }강사님 풀이는 다음과 같이, Controller에서 store의 상태값을 직접 넣어주는 식으로 작성을 하셨더라구요.// Controller.js ... reset() { console.log(tag, "reset"); this.store.searchKeyword = ""; this.store.searchResult = []; this.render(); }둘 다 기능상의 차이는 없는 것 같은데, 혹시 둘 중 선호되는 방식이 있는지 궁금합니다.
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
팬툴 도형 수정 관련 질문 입니다.
네모도형을 팬툴로 수정하다가 계속 이어서 다른 도형을 그렸는데 저렇게 같이 잡히고 위에 도형에는 색상도 스트록도 안생깁니다.
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
팬툴 관련 질문 입니다.
도형은 모서리에 라운드를 줄 수 있는데팬툴로 만든 도형도 라운드를 줄 수 있나요?