묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강신청 연장
안녕하세요 업무로 인해 집중 있게 수강하지 못했습니다수강연장 부탁드리겠습니다 감사합니다
-
미해결Practical Testing: 실용적인 테스트 가이드
섹션 2의 단위테스트 세분화하기에서요 !
public void add(Beverage beverage, int count) { if (count <= 0){ throw new IllegalArgumentException("음료는 1잔 이상 주문하실 수 있습니다."); } for (int i = 0; i < count; i ++) { beverages.add(beverage); } } // 위 코드랑 아래 테스트에 대해서 이해가 안되서요 ! @Test void add() { CafeKiosk cafeKiosk = new CafeKiosk(); Beverage latte = new Latte(); cafeKiosk.add(latte); int expectedSize = 1; int actuallySize = cafeKiosk.getBeverages().size(); String expectedName = "라떼"; String actuallyName = cafeKiosk.getBeverages().get(0).getName(); Assertions.assertThat(actuallySize).isEqualTo(expectedSize); Assertions.assertThat(actuallyName).isEqualTo(expectedName); } @Test void addSeveralBeverages() { CafeKiosk cafeKiosk = new CafeKiosk(); Beverage latte = new Latte(); cafeKiosk.add(latte, 2); Assertions.assertThat(cafeKiosk.getBeverages().get(0)).isEqualTo(latte); Assertions.assertThat(cafeKiosk.getBeverages().get(1)).isEqualTo(latte); } 저렇게 add()에 count를 넣어버리면 add()테스트에서 cafeKiosk.add(latte, 1)으로 수정하던지 해야 에러가 안나는 거 아닌가요? 강의에서는 그냥 진행하셔서 여쭤봅니다!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
${member.id}에서 import를 지워도 된다는 게 잘 이해가 안갑니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]누군가는 저게 Member객체라는 것을 알고 있어야 하지 않나요?jsp에서요.
-
해결됨핸드폰으로 내 음악 만들기 FL STUDIO 기초편
마이너
3부 도레미파솔라시도 부분 강의 중 마이너 부분이 하나도 이해가 안되네요. 3도,7도 플랫이 4화음이라는데 D major7이 어떻게 저렇게 되는지 이해가..안되네요
-
미해결[입문편] 안드로이드를 위한 코틀린(Kotlin) 문법
for 문 밖에서의 list 타입의 차이점
// 조건문// if else// whenfun main() { val testlist = mutableMapOf<String, Int>() testlist["a"] = 10 testlist["b"] = 50 testlist["c"] = 60 testlist["d"] = 100 testlist["e"] = 70 testlist["f"] = 30 // 50점이상 구하기 println(testlist.keys::class.java.simpleName) for (i in testlist){ println(i.key::class.java.simpleName) } } 위 코드처럼 작성 후 타입을 비교하였을 때 두가지의 타입이 다르게 나와있는데 그 이유를 모르겠습니다
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Enum 리스트를 위한 엔티티를 만드는 방식이 궁금합니다.
엔티티에 Enum 클래스의 리스트를 포함시키려고 합니다.예를 들어서 Person이라는 엔티티가 Hobby라는 Enum 클래스의 리스트를 가질 때,PersonHobby라는 엔티티를 만들고 그 안에 Hobby를 적용시켜서 두 엔티티 사이의 연관관계를 만들려고 합니다.이 때, Person엔티티와 PersonHobby엔티티는 일대다 관계로 만드는 게 맞을까요? 다대다 관계로 만드는 게 맞을까요?하나의 동일한 취미를 여러 사람이 가질 수 있으니 다대다 관계일 수도 있다고 생각되는데, 이전에 값 타입 컬렉션 영상에서는 이러한 상황에서 일대다를 권장한다고 했기 때문에 헷갈려서 질문을 남깁니다.
-
미해결실전! Querydsl
현시점 QueryDSL에 대한 의견이 궁금합니다.
안녕하세요 김영한님!저는 2년차 백엔드 개발자 주니어입니다. 다름 아니라, QueryDSL이 2021년 5.0.0 버전 이후 새로 릴리즈되고 있지 않습니다.그래서 만약 새로운 서버에 대한 기술 스택을 정할 때, QueryDSL에 대한 영한님의 의견이 어떨지 궁금하여 글을 작성하게 되었습니다.("영한님 의견대로 도입한다 vs 안 한다" 같은 상황이 아니라 단순히 의견이 궁금한 겁니다!) 현재 거론되고 있는 대체 라이브러리는 대략 다음과 같은 것 같습니다.jooqkotlin-jdsl (코틀린 한정)MyBatis 만약 영한님이라면 현시점에서 QueryDSL을 선택하실 것 같나요? 다른 기준이 필요하다면 무엇일까요?혹은 요새 관심있는 라이브러리가 있으실까요?의견이 궁금합니다!감사합니다.
-
미해결[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
onChange 작동 원리
좋은 강의 감사합니다.페이지 구현 - 홈 )/) 강의 중 23분에 onchange 설명해주신 것 관련해서 질문드립니다.DiaryList.js / 27번째 줄에 onChange로 setSortType을 전달했기 때문에 ControllMenu에서 onChange(e.target.value)의 값이 setSortType을 호출해서 sortType의 상태값이 변화하는 것으로 이해했습니다.즉 이렇게, onChange{setSortType("변화된 값")} 작동한걸로 이해했는데요. 27번째 줄에 onChange = {setSortType} 으로만 작성을 했는데 e.target.value라는 값이 전달된 것이 이해가 잘 안되어서 질문드립니다.만일 setSortType처럼 상태값을 받는 함수를 담고 있는 변수가 아닌const test = (a,b) => { console.log(a,b);}와 같은 매개변수를 2개를 받는 함수를 onchange로 호출한다고 하면 어떻게 넣을 수 있나요?
-
해결됨실전! Querydsl
fetchResults(), fetchCount() deprecated
안녕하세요countQuery 최적화까지 잘 들었는데요. queryDsl 특정버전 이상에서는 fetchResults(), fetchCount() 가 deprecated 되어었네요.그러면 앞으로 queryDsl 로 페이징을 처리할 때는.count(), content() 쿼리 동시에 X : searchPageSimple() 함수에서 사용한 fetchResult() 는 사용X 이므로.쿼리 최적화 방법도 X : 리턴값에 fetchCount() 를 사용해야 하므로.count(), content() 쿼리 별도로 날리고 (https://www.inflearn.com/questions/806452 참고) count() 쿼리시에는 sql의 count() 함수와 fetchOne() 을 사용한다.정리하면 3번의 방법을 사용하되, 이번 강의에서 말씀해주신 특정 조건에만 날아가는 쿼리도 사용은 못하는 것(fetchCount() Depcreaed 이므로) 맞을까요? 감사합니다.
-
해결됨생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
클라이언트에서 토큰을 서버로 줄 때
클라이언트(안드로이드)가 카카오에서 발급받은 엑세스토큰을 백으로 주는 상황일 때강의영상 토큰 발급 구현 (1), (2)는 작성하지 않아도 되는걸까요??
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
포트포워딩
안녕하세요 3306포트로 했을때는 정상작동해서단순 호기심으로 3306포트를 3307포트로 바꿔서 해보았는데 다음과 같은 에러가 뜨고 안되네요..다른 설정은 다 그대로고 포트번호만 바꾸었는데도 안되는 이유가뭘까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
test 실행 시, save만 실행되고 나머지 findbyName() , findaAll()은 실행되지가 않습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 잘 보고 따라했는데 제목과 같이 save()메소드만 실행됩니다 어떻게 해야할까요 ??? 하나만 실행되는 사진이고 test 소스코드는 이러합니다package hello.hellospring.repository;import hello.hellospring.controller.domain.Member;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.Test;import java.util.List;import static org.assertj.core.api.Assertions.*;public class MemoryMemberRepositoryTest {MemoryMemberRepository repository = new MemoryMemberRepository(); @AfterEach public void afterEach() {repository.clearStore(); }@Test public void save() {Member member = new Member(); member.setName("spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); assertThat(member).isEqualTo(result); }@Test public void FindByName() {Member member1 = new Member(); member1.setName("Spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); }@Test public void findAll() {Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); List<Member> result = repository.findAll(); assertThat(result.size()).isEqualTo(2); }}
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
강의노트 어디서 볼 수 있을까요?
강의 하단에도 없고다운받을 수 있는 첨부파일도 존재하지 않으며노트 탭에선 제 노트만 계속 뜨네요첨부파일이 삭제가 되신거 같은데이런경우 어떻게 해야 하나요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
리트코드 184번문제
안녕하세요 184번을 풀다가 의문이 생겨서요저는 LEFT JOIN을 통해서 답을 얻으려고 했는데 답이 나오진 않더라구요 LEFT JOIN 을 통해서 답을 구할 수 있는 방법은 없나요..?SELECT de.name as Department, em.name as Employee, em.Salary FROM employee as em LEFT JOIN department as de ON em.departmentId=de.id WHERE salary = (SELECT MAX(salary) FROM employee) LIMIT 3;
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
spec.ts 파일이 자동으로 생기는데 왜 생기는 건가요??
안녕하세요. 강의를 따라하면서 파일을 생성할때 항상 아래 이미지처럼 spec.ts 파일이 자동으로 생성되는 이유가 뭔가요?? 강사님은 안 생기시는 것 같은데 저는 1개 파일당 1개씩 전부 생겨버려서 너무 많은 양의 파일들이 만들어집니다..
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Visual Studio에서 엔진 내부 함수 코드 정의(cpp) 보는 법이 궁금합니다.
안녕하십니까, Chapter 1의 헬로 언리얼 강의를 듣다가 궁금한 것이 있어 질문드립니다.Visual Studio에서 F12키를 눌러 엔진 내부의 함수의 선언(헤더 파일)로 이동했는데요, 실제 함수의 구현 코드를 보려면 정의(cpp 파일)을 볼 수 있어야 할 것 같습니다.cpp 파일로 이동하는 방법이 궁금합니다. (지금까지는 수동으로 cpp 파일을 찾아갔는데, 이것 외 더 좋은 방법이 있나 궁금합니다) F12키가 정의로 이동(go to definition)인데 왜 헤더 파일로 이동하는지가 궁금합니다.감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 런타임 에러(Segfault)
안녕하십니까 강사님. 항상 강의 잘 듣고 있습니다. 해당 회차의 강의를 듣기 전에 개인적으로 문제를 풀어보았으나, Segfault 런타임 에러가 발생하였습니다. 그 이유를 알고싶어 질문드립니다.#include <bits/stdc++.h> using namespace std; int n, h, nx, ny, max_h, cnt; int dx[] = { 0, 1, 0, -1 }; int dy[] = { 1, 0 ,-1, 0 }; int a[101][101]; bool visited[101][101]; vector<int> ret; void DFS(int x, int y) { visited[x][y] = true; for (int i = 0; i < 4; i++) { nx = x + dx[i]; ny = y + dy[i]; if (nx < 0 || nx >= n || ny < 0 || ny >= n) continue; if (a[nx][ny] > 0 && !visited[nx][ny]) { DFS(nx, ny); } } return; } int main() { ios_base::sync_with_stdio; cin.tie(NULL); cout.tie(NULL); // 지도 채우기 cin >> n; fill(&a[0][0], &a[0][0] + 101 * 101, 0); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j]; } } max_h = *max_element(&a[0][0], &a[0][0] + 101 * 101); for (int i = 1; i < max_h; i++) { fill(&visited[0][0], &visited[0][0] + 101 * 101, false); cnt = 0; // a의 전체 높이를 1씩 내리기 for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { a[j][k]--; } } // 연산 for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { if (a[j][k] > 0 && !visited[j][k]) { DFS(j, k); cnt++; } } } ret.push_back(cnt); } // 결과 출력 cout << *max_element(ret.begin(), ret.end()) << "\n"; }
-
미해결따라하며 배우는 HTML, CSS
도표자료를 열 수 없습니다.
도표자료를 다운 받았는데, 확장자도 업고.. docx로 확장자를 바꿔도 파일이 제대로 열리지 않습니다.
-
미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
Promise에서 then타입 질문 있습니다.
Promise에서 then 메서드 타입을 분석할때가 잘 이해되지 않아서 질문 남깁니다. p1을 아래와 같이 만들면 const p1 = Promise.resolve(1) // Promise<number> .then((a) => a + 1) // Promise<number> .then((a) => a.toString()); // Promise<string>마지막.then((a) => a.toString()); 에서 T가 number가 되는것은 이해했지만 then의 타입을 보면 interface Promise<T> { then<TResult1 = T, TResult2 = never>( onfulfilled?: | ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: | ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null ): Promise<TResult1 | TResult2>; }TResult1 = T 부분이 이해가 안됩니다. T가 number 타입이니 TResult도 number 타입이 되야하는것처럼 보입니다. TResult가 T와 같은 타입이라면 then을 사용할 때 value와 return 타입이 항상 같이야 한다는 것이므로 잘못해석한 것인줄은 알지만 TResult1 = T 를 어떻게 해석해야 할지 잘 모르겠습니다.
-
미해결
Orchestrator 에서 Cluster > Discover 서버 추가가 안됩니다. -> 말씀하신데로 다 해봤는데요 ㅠㅠ
말씀하신 부분은 전부 되는데요cluster > discover 에서 서버 추가가 안되고 있습니다. ubuntu 22.04에서 실습하고 있습니다.