묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 1편
선생님 String클래스 관련하여 질문드립니다.
선생님 String 변환 메서드들 관련해서 출력시 의문점이 생겨 질문 드립니다.System.out.println("문자열 결합: " + str.concat("!!!!"));String은 불변 객체로 반환값을 담아야 한다고 말씀하셨던거 같은데 print출력할때는 그게 상관이없나요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
2중 for문 한번으로 하려고 고민했습니다.
public class 격자판_최대합 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] panel = new int[n][n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) panel[i][j] = sc.nextInt(); DiagonalCalculator diagonal = new DiagonalCalculator(); RowColumnCalculator row = new RowColumnCalculator(); RowColumnCalculator column = new RowColumnCalculator(); for (int rowIndex = 0; rowIndex < n; rowIndex++) { for (int colIndex = 0; colIndex < n; colIndex++) { int rowNum = panel[rowIndex][colIndex]; int colNum = panel[colIndex][rowIndex]; diagonal.calc(rowIndex, colIndex, rowNum, n); row.tempSum(rowNum); column.tempSum(colNum); } row.calcMaxSum(); column.calcMaxSum(); } int diagonalSum = diagonal.getMaxSum(); int rowSum = row.getMaxSum(); int colSum = column.getMaxSum(); int maxValue = Math.max(diagonalSum, Math.max(rowSum, colSum)); System.out.println(maxValue); } private static class DiagonalCalculator { private int leftSum = 0; private int rightSum = 0; public void calc(int rowIndex, int colIndex, int num, int length) { boolean sameLoc = rowIndex == colIndex; if (sameLoc) leftSum += num; if ((rowIndex + colIndex) == length) rightSum += num; } public int getMaxSum() { return Math.max(leftSum, rightSum); } } private static class RowColumnCalculator { private int totalSum = 0; private int tempSum = 0; public void tempSum(int num) { tempSum += num; } public void calcMaxSum() { if (totalSum < tempSum) { totalSum = tempSum; } tempSum = 0; } public int getMaxSum() { return totalSum; } } }클래스를 분리해서 계산하도록 하니 메인 로직에서는 필요한 값을 넘겨주기만 해도 되고, 나중에 결과를 받아올 때에도 메서드만 호출하면 되서 편했는데 전체적으로 코드가 좀 복잡해지지는 않는지, 이런 부분이 궁금합니다!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
데이터 참/거짓 강의 질문
문자열 배열에서 \0(null) 을 붙임으로써 문자열이 끝났음을 알 수 있다고 하셨는데 그럼 첫번째 문자열배열 str1의 경우엔 왜 널값이 안붙나요? 배열에 각각 문자가 하나씩 들어가는것과 문자열이 한번에 한칸에 다 들어가는 차이 때문인가요? 명확한 해설 부탁드려요.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
7번 빈칸채우기 문제요
최대공약수라는 배경지식이 없을 때 푸는 방법은 없나요?gcd에서 빈칸 내용(a%b)을 모르는 상태에서 어떻게 12를 유추하나요?빈칸의 수식을 모를 때 풀어나가는 과정을 알려주셨으면 합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
첫 강의에서 만든 hello-spring 파일과 IntelliJ관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 IntelliJ에서 프로젝트 파일들을 다루는 부분이 아직 미숙하여 질문드립니다. 1강을 들으면서 실행했을 때는 강의에서 생성한 hello-spring 프로젝트를 상위 폴더인 spring에 담고 spring 폴더로 IntelliJ를 열어서 실행했습니다. 이때는 정상적으로 실행이 되었는데, 다시 실행하려고 보니 실행이 안 됩니다. 다시 다운로드 받고 검색을 해봤지만, 설정에서 idk와 grade관련된 설정만 나왔습니다. 그런데 상위 폴더인 spring이 아닌 spring 프로젝트로 생성한 hello-spring으로 IntelliJ를 실행시키니 정상적으로 폴더들(패키지들)을 인식하고 실행이 됩니다. 원래 이렇게 작동하는 것이 맞는건지 제가 설정 부분을 잘못 건드려서 발생한 문제인지 궁금합니다.
-
미해결토비의 스프링 6 - 이해와 원리
트랜잭션 테스트에서 제가 이해한 것이 맞을까요?
트랜잭션 테스트가 어려운 이유는 JPA나 JDBC에서 알아서 처리해주기 때문에 트랜잭션의 실패 지점이 어디인지를 알 수 없기 때문이고, 이를 해결하려면 트랜잭션 템플릿을 활용하는 방법이 있는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
member 1, 2 중복 회원 예외 test
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]member 1, 2가 spring으로 동일한데 해당 코드를 실행하면 초록색 표시로 test가 통과하는데 이렇게되면 중복 문제 확인은 어떻게 하나요? 강의를 잘못 이해한 걸까요,,,
-
미해결김영한의 실전 자바 - 중급 1편
주석에 다음주가 아니라 다음인거 같아요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)//TemproalAdjuster사용//다음주 금요일 -> 다음 금요일현재가 7월17일 수요일이고 next로 구하면 이틀뒤인 19가 나오지 않나요?다음주 금요일이면, 26이라 다음 금요일로 바꾸는게 맞지 않을까요?질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 중급 2편
직접 구현하는 배열 리스트1 - 시작 챕터에서 질문.
public Object set(int index, Object element) {Object oldValue = get(index); elementData[index] = element; return oldValue; } public void add(Object e) { elementData[size] = e; size++; } System.out.println(list.size()); 3 System.out.println(list.set(3, "r")); System.out.println(list);System.out.println("==범위 초과=="); list.add("d"); 아래 출력결과에서,3null[a, b, c] size=3, capacity=5 set(int index, Object element) { elementData[3] ="r"을 할당하는게 [a, b, c,r] 안 된게 이해가 안가는게, list.add("d") add(Object e) { 에서 elementData[3] = "d" 똑같은 코드인데, "d"를 넣어준거는 할당이 되고, AI 에게 질의한 결과 set메서드는 index 3에 값이 무조건 유효값이 있어야 할당이 된다고 답변 하는데, set이나 add 나 그럼 add의 값은 할당이 된건데, set메서드에 유효값이 있어야 한다는 조건이 왜 붙는건지, 각각의 메서드 안에는 elementData[3] ="r"elementData[3] = "d" 같은걸 수행하는데, set에만 해당 index에 유효값이 있어야 한다 조건문은 코드에 있지 않은데,list.set(3, "r") r도 [a, b, c,r] 할당이 되야 될거 같은데(제 생각에는) 질문을 남겨봅니다. ai 한테 답변 받았지만 풀리지 않아 질문 드립니다. 항상 감사합니다. ==범위 초과== [a, b, c, d] size=4, capacity=5
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의에서 나오는 예제에서는 Item 테이블을 두고, 하위 테이블인 Album, Book, Movie 테이블을 생성하여 상속하는 구조로 하고 있는데요. 실무에서는 상품 종류가 한두가지가 아니라 수백개, 수천개가 될텐데 그러면 이러한 테이블을 전부 만드나요? 예를 들면, 쿠팡 같은 쇼핑몰에서는 음식 뿐만 아니라 컴퓨터, 마우스,모니터, 커피, 프로틴, 과일, 연필, 물 등등 상품 종류가 어마어마하게 많은데 이를 어떻게 관리하는지 궁금합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
fetch join이 명시적 inner join과 다른 이점이 뭔가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용](Hibernate6버전 쓰고 있습니다.)1. 페치 조인 JPQLselect t from Team t join fetch t.members2. 명시적 내부 조인 JPQLselect t,m from Team t inner join t.members m위 JPQL을 실행하면 같은 SQL 쿼리가 실행됩니다.fetch join이 명시적 inner join과 다른 이점이 뭔가요?fetch join을 썼을 때, List<Team>으로 결과를 받고 중복없이 Team에 속한 members 리스트가 조회됐습니다.예를 들면, 팀A-> 회원1-> 회원2inner join을 썼을 때, List<Object[]>로 결과를 받고 Team과 Member가 쌍을 이뤄서 조회됐습니다.SQL 조회결과처럼 Team이 중복되어 출력됐습니다.팀 A, 회원1팀 A, 회원2팀이 중복되지 않고 한번만 출력된다.Object[] 타입으로 안다뤄도 되니 결과를 처리할 때 편하다.이 외에 다른 이점이 있나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 빌드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.gradlew build가 제대로 되지 않습니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
23:09분 sim_pow 구할 때요
선생님 제가 산수 지식이 부족합니다.1.1의 3승이면 1.331 아닌가요? 저는 2928.2가 나오거든요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
.setFirstResult(1) 부터 하는 이유?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]0으로 하셨다가 1로 변경하신 이유가 이해가 안 됩니다 ㅠㅠ
-
미해결김영한의 실전 자바 - 중급 2편
문제와 풀이3 - 제네릭 메서드와 와일드카드 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]<영한님 코드>public static void printV2(Shuttle<? extends BioUnit> t1) {BioUnit unit = t1.out();System.out.println("이름: " + unit.getName() + ", HP: " + unit.getHp());}<제 코드>public static void printV2(Shuttle<? extends BioUnit> shuttle) { shuttle.showInfo(); }저는 매개변수 shuttle이 어차피 Shuttle 타입으로 넘어온다고 생각해서 바로 shuttle에서 작성한 메서드를 사용했는데, 제가 생각하는게 맞는지, 또 t1.out()에서 반환되는 값을 받아서 사용하는 것이 더 이점이 있는지 궁금합니다!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
함수와 재귀함수_포인터를 입력값으로 받는 함수 22:40
안녕하세요 섹션2 C언어 파트에서함수와 재귀함수 강의 중 질문 있습니다. 포인터를 입력값으로 받는 함수 예시 중에서,입력값으로 char *str으로 되어있고이거는 주소값을 저장하는 포인터 변수인데printf 로 출력할 때 str이 주소값이 아니라 문자열인가요?? %s\n 이라서 그런가요? myString[] 이 가지고 있는 가장 첫번째 값의 주소가 전달되었다고 하는데 "입력된 문자열 :" 뒷부분에 주소값이 아닌 문자열이 출력되는 이유를 모르겠습니다....ㅠ주소값이 저장되는 변수인 포인터 변수가 들어오는 거면 저장된 값이 주소값인 거로 이해되는데 출력은 문자열이라서 이 포인트가 이해 안 돼요.. 그리고 보다보니 의문이 생겨서 질문 하나 더 있습니다!main() 실행함수 안에서char myString[] = "this is String";하고 printString메서드 호출할 때printString(myString[]) 이 아닌printString(myString) 배열 []를 빼주고 이름만 써주는 걸까요?!같이 설명해 주시면 감사하겠습니다!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
itemService 테스트 코드 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ItemService 테스트 코드입니다.@RunWith(SpringRunner.class) @SpringBootTest @Transactional public class ItemServiceTest { @Autowired ItemRepository itemRepository; @Autowired ItemService itemService; @Test public void 상품저장() throws Exception { //given Item item = getItem("JPA book", 10000, 100); itemService.save(item); //when Item findItem = itemService.findById(item.getId()); //then // assertThat(item).isEqualTo(findItem); assertEquals(item, findItem); } @Test public void 상품조회() throws Exception { //given Item item1 = getItem("JPA book1", 10000, 100); Item item2 = getItem("JPA book2", 20000, 100); itemService.save(item1); itemService.save(item2); //when List<Item> findAll = itemService.findAll(); Item findItem1 = itemService.findById(item1.getId()); //then assertThat(findAll.size()).isEqualTo(2); //전체조회 assertThat(item1).isEqualTo(findItem1); //단건조회 } @Test public void 상품변경() throws Exception { //given //when //then } private static Item getItem(String name, int price, int stockQuantity) { Item item = new Book(); item.setName(name); item.setPrice(price); item.setStockQuantity(stockQuantity); return item; } }상품 저장과 조회에 대한 테스트 코드를 작성해보았는데 혹시 수정해야 할 부분이 있는지 궁금합니다.상품 저장 시 item.getId() == null 이 아닐 때 merge 하도록 되어있는 부분에 대해서도 테스트를 해야할 것 같은데, 어떻게 테스트할지에 대해 방향성을 알려주시면 감사하겠습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
Scanne r를 닫지 않는 이유
강의를 보다가 궁금한 점이 생겨서 질문드립니다.김영한 선생님 강의에서 다른 자바 강의들에서도 스캐너를 사용하시고 close() 메서드로 닫지 않으시는데요.챗지피티도 그렇고 검색해보니 스캐너를 닫아주는게 좋다고 하는데, 왜 닫아야 하는 건가요?그리고 닫는게 맞는거면 왜 강의에서 닫지 않으시는지 궁금합니다.김영한 선생님 뿐 아니라 다른 많은 강의에서도 스캐너를 잘 닫지 않더라고요.자바가 아닌 시스템 자체에서 input 자원을 가져오는 거기 때문에 닫아줘야 한다고 하던데, 이 점이 궁금합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
쓰기 지연 저장소
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]sql 쓰기 지연 저장소에 쿼리가 저장되는 타이밍이 헷갈립니다 em.find() 이후 member.setXXX 같은 경우는 트랜잭션 커밋 호출 -> 플러시 호출 -> 스냅샷, 1차 캐시 비교 -> 다르면 쓰지 지연 저장소에 쿼리 생성해서 저장 em.remove는 수정과 동일하게 동작 Member 객체 생성해서 em.persist(memberNew) 같은 경우에는 persist 하는 순간 1차 캐시, 스냅샷 저장 + 쓰기 지연 저장소에 쿼리도 생성해서 저장 해당 순서가 맞을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 오류 질문
회원 기능 테스트에서 계속 막혀서 전부 다 복붙하고 해봐도 오류가 납니다 이거 왜이런걸까요? 우선 프로젝트 전체 구글 드라이브에 공유해뒀습니다.https://drive.google.com/file/d/1jEOFgnIZ2fRBWTDKmYaA3lnrid-0i10E/view?usp=drive_link