묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 데이터 JPA
쿼리 힌트 말고 트랜잭션 어노테이션 활용 질문이요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.조회만을 위한 메서드를 작성할때 쿼리 힌트를 사용하는것보다 트랜잭셔널 메소드 레벨 어노테이션에 readOnly=true 속성을 넣어서 읽기 전용으로 사용하면 안되나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 난이도
안녕하세요. 컴퓨터공학과 3학년학생입니다. 백엔드에 관심이 생겨 스프링 강의를 들으려 강의를 찾아보던중 인프런의 김영한님의 스프링 강의를 알게 되었습니다. 김영한님 강의가 어렵다는 말도 있던데, 스프링 완전 초보자가 들어도 잘 이해할 수 있을지 궁금합니다! 저는 로드맵에서 가장 첫 무료 입문 강의(코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 )를 초반만 조금 들었봤는데 조금 난이도가 있더라고요. 이게 전체적인 흐름을 알려주는거라서 어려운것인가요? 로드맵 뒤에 스프링 핵심 원리 - 기본편도 비슷한 난이도인가요? 더 쉬운편인지 궁금합니다
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
섹션 8.15 피자배달거리 시간초과
안녕하세요, 피자 배달거리 질문드립니다.처음에는 제가 강의에서 풀어주신 코드와 유사한 방식으로 작성했었는데 정답은 맞게 나오지만 제출해보면 자꾸 시간 초과가 떠서..강의를 보면서 완전히 같은 코드로 고쳐봤는데도 시간 초과가 뜨네요ㅠㅠ혹시 이 코드에 문제점이 뭔지 답변 주시면 감사하겠습니다!import java.util.ArrayList; import java.util.List; import java.util.Scanner; class Points { int x,y; Points(int x, int y) { this.x= x; this.y = y; } } public class Main { static int n, m, len = 0; static int answer = Integer.MAX_VALUE; static int[] ch; static List<Points> pizzaDis, homes; // 피자 배달거리 public static void main(String[] args) { Scanner in = new Scanner(System.in); n = in.nextInt(); m = in.nextInt(); pizzaDis = new ArrayList<>(); homes = new ArrayList<>(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int num = in.nextInt(); if (num == 2) { pizzaDis.add(new Points(j, i)); } else if (num == 1) { homes.add(new Points(j,i)); } } } len = pizzaDis.size(); ch = new int[m]; dfs(0,0); System.out.println(answer); } static void dfs(int level, int start) { if (level == m) { int sum = 0; for (Points h : homes) { int min = Integer.MAX_VALUE; for (int p : ch) { min = Math.min(min, Math.abs(h.x - pizzaDis.get(p).x) + Math.abs(h.y - pizzaDis.get(p).y)); } sum += min; } answer = Math.min(sum, answer); } else { for (int i = start; i < len; i++) { ch[level] = i; dfs(level + 1 ,start + 1); } } } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd에서 조작하는 법을 모르겠습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]일단 h2 다운받기는 했는데 cmd에서 조작하는 법을 모르겠습니다. 아무거나 쳐봐도 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고만 뜹니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
3번 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]문제 3번에서 마지막 12행 else부분부터 이렇게 해버렸는데 이러면 역시 완전히 틀렸다고 보는게 좋을까요?else if (dollar > 0) { System.out.println("환전 금액은 " + dollar * 1300 + "원 입니다."); }
-
미해결김영한의 실전 자바 - 중급 2편
Queue질문
안녕하세요.Queue 질문이 있어서 글 씁니다.add()와 offer()remove()와 poll() 은 각각 동작도 같고 반환 타입도 같던데 검색해보면 예외를 발생시키느냐 마냐의 차이라고 나와서요. 실제로 offer() 까보면 return add()라고 되어 있기도 하고 ...무슨 차이인지 그리고 어떨 때 어떤 걸 쓰는 게 좋을지 보충 설명 부탁드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
김영한 강사님 스프링 로드맵을 수강하려고 합니다.
백엔드 프로젝트로데이터베이스를 사용하지 않는 게시판을 만들어보고 싶은데김영한 강사님의 로드맵스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 스프링 핵심 원리 - 기본편 현재 강의 모든 개발자를 위한 HTTP 웹 기본 지식 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술스프링 MVC 2편 - 백엔드 웹 개발 활용 기술스프링 DB 1편 - 데이터 접근 핵심 원리스프링 DB 2편 - 데이터 접근 활용 기술스프링 핵심 원리 - 고급편실전! 스프링 부트 중 어디까지는 들어야지 제가 원하는 간단한 프로젝트를 진행할수 있을지 궁금합니다.감사합니다.
-
미해결김영한의 실전 자바 - 중급 1편
Object 관련 질문입니다.
강의 6분쯤에 refValue 내부의 인수 타입을 Grade에서 Object로 바꾸신 이유가 있을까요?Grade 타입으로 지정해도 참조값이 똑같이 잘 나와서요!private static String refValue(Object grade) { return Integer.toHexString(System.identityHashCode(grade)); }=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 중급 1편
로또 메서드 질문
main 화면에서 출력하는 코드를 위와 같이 작성한 후에 이렇게 번호 생성 메서드와 중복 확인 메서드 그리고 출력 메서드를 나누어서 코드를 작성했더니결과가 0,0,0,0,0,0 이렇게 나오는데 어느 부분이 잘못된 건지 알 수 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Member와 Order에 LAZY 설정을 해도 순환참조가 발생하는게 맞나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니요3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]양쪽에 LAZY로 설정되어 있는것 같은데맴버를 조회하면 ORDER와 MEMBER가 무한으로 탑니다.( 주문까지 진행한 상태 )그게 현재 진도에서 맞는 상태인지 궁금합니다.(다음 강의에 설명 나오는지 모름)
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
메모리공간에 대한 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 메서드 호출과 값 전달 2 강의 중 질문사항이 있어 문의 드립니다.지역 변수 선언 시 다른 영역인 점은 이해를 했습니다. 1. 강의 3:32초 부분에서 이름이 동일한 지역변수에 대해 완전히 다른 메모리 공간이 생긴다고 하셨는데, JVM 메모리에 변수 저장 시 각 지역변수마다 늘 공간이 따로 생기는 건가요? 아니면 하나의 stack,heap 공간에 같이 사용 하는 건가요? 감사합니다.수강자 올림.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
13강 DB연결 관련 질문드립니다.
안녕하세요. 우선 좋은 강의 만들어 주셔서 감사합니다.13강을 수강하던 중 오류가 발생하여 질문드립니다. 검색해보니 테이블 명이 user로 생성을 하면 안되는 것 같아 user_table 이라는 명칭으로 테이블을 생성했습니다.CLI로 확인해본 결과 테이블 자체는 정상적으로 생성이 되었습니다. 그런데 컨트롤러와 yml 파일 설정 후 화면에서 데이터를 저장하려고 하니 오류가 발생합니다. spring: database: url: "jdbc:mysql://localhost/library" username: "root" password: "" drive-class-name: com.mysql.cj.jdbc.Driver package com.group.libraryapp.controller.User; import com.group.libraryapp.domain.user.User; import com.group.libraryapp.dto.User.request.UserCreateRequest; import com.group.libraryapp.dto.User.response.UserResponse; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; @RestController public class UserController { private final JdbcTemplate jdbcTemplate; public UserController(JdbcTemplate jdbcTemplate){ this.jdbcTemplate = jdbcTemplate; } private final List<User> users = new ArrayList<>(); @PostMapping("/user") public void saveUser(@RequestBody UserCreateRequest request){ String sql = "INSERT INTO user_table (name, age) VALUES (?,?)"; jdbcTemplate.update(sql, request.getName(), request.getAge()); } @GetMapping("/user") public List<UserResponse> getUsers() { String sql = "SELECT * FROM user_table"; //람다로 변경 알트+엔터 return jdbcTemplate.query(sql, (rs, rowNum) -> { long id = rs.getLong("id"); String name = rs.getString("name"); int age = rs.getInt("age"); return new UserResponse(id, name, age); }); } } INSERT INTO user_table (name, age) VALUES (?,?) [42104-214]] with root cause org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "USER_TABLE" not found (this database is empty); SQL statement: INSERT INTO user_table (name, age) VALUES (?,?) [42104-214] at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) ~[h2-2.1.214.jar:2.1.214] at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) ~[h2-2.1.214.jar:2.1.214] at org.h2.message.DbException.get(DbException.java:223) ~[h2-2.1.214.jar:2.1.214] at org.h2.message.DbException.get(DbException.java:199) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8385) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8369) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.Parser.readTableOrView(Parser.java:8358) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.Parser.readTableOrView(Parser.java:8328) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.Parser.parseInsert(Parser.java:1632) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.Parser.parsePrepared(Parser.java:814) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.Parser.parse(Parser.java:689) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.Parser.parse(Parser.java:661) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.Parser.prepareCommand(Parser.java:569) ~[h2-2.1.214.jar:2.1.214] 위와 같이 데이터베이스가 비었다고 하고 테이블을 찾지 못하는데 제가 어느 부분을 확인해야 하는지 궁금해 질문드립니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
8강 예제2 아무리 생각해도 이해가 안됩니다...
다른 풀이 해주신거도 읽어봤습니다만.포문에서 if문 한 덩이 안에 첫 조건식의 갯수가2의배수 (1012)+3의배수 (674)-중복숫자(337)1349가 앞의 항 참인 경우이고,뒷항의 조건식은 !가 붙어서 5의배수 (404)+6의배수 (337)-중복숫자 30의 배수(67)해서 뒷 항의 참인경우는 674하지만 !가 붙어서 안의 항의 연상결과가 거짓인경우가 되어야 카운팅이 되기 때문에2024-674 = 1350..? 이런식으로 푸는거 아닌가요???어렵네요 ......
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
연산자와 기출문제 Java 23년 2회문제
동전갯수 문제인데요조건에 최소한의 코드로 답안을 작성하라 해서요~제가m / 1000(m % 1000) / 500(m % 500) / 100(m % 100) / 10이렇게 풀었는데 혹~~시 () 이거 괄호 적으면 오답처리하나요..?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
예제7번 질문입니다.
예제7번을 풀면 -1-2+9-4+25-6+49-8+81-10 = 133 아닌가요. 제가 뭘 잘못이해하고 있는걸까요? ㅠㅠ
-
미해결JSP 웹 쇼핑몰 프로그래밍 기본 과정(JSP WEB Programming)
너무 옛날 내용이네요
JVM이 웹 브라우저에 플러그인으로 내장되어있다는 내용이 있던데 이건 좀 수정했으면 좋겠네요.그리고 JSP 파일->서블릿->클래스 파일 변환 과정도 설명이 조금 난잡합니다.
-
미해결김영한의 실전 자바 - 기본편
클래스 레벨 접근 제어자에 protected가 사용할수 없는 이유가 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 클래스 레벨 접근 제어자에 protected가 사용할수 없는 이유가 궁금합니다
-
미해결김영한의 실전 자바 - 중급 2편
UML 클래스다이어그램 화살표 의미
컬렉션 프레임워크 - Set 강의 중 UML 클래스 다이어그램에 관해 궁금증이 생겼습니다. HashSet, TreeSet, LinkedHashSet 즉 Set의 주요 구현체들을 설명하셨을때,여기서 점선으로 된것과 실선으로 된것의 차이점은 무엇일까요??인터페이스인 Set의구현체로 HashSet , TreeSet 등이 있다는 것은 이해가 가지만, LinkedHashSet은 왜 실선으로 표시하는 걸까요?? 이 두개의 차이점에 대해 정확히 알고싶습니다!
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
ReentrantLock.lockInterruptibly() 질문
먼저 강의 잘 듣고 있습니다. 강의 자료 202쪽에 보면 아래 그림과 같이 ReentrantLock.lockInterruptibly() 예제 코드가 작성되어 있는데요. 이 코드를 강의 소스코드 (LockInterruptiblyExample.java) 에 적용해 보았습니다. 적용한 코드는 아래와 같습니다. public class LockInterruptiblyExample { public static void main(String[] args) { Lock lock = new ReentrantLock(); Thread thread1 = new Thread(() -> { try { lock.lockInterruptibly(); // 락을 시도하며, 인터럽트가 들어오면 중단 System.out.println("스레드 1이 락을 획득했습니다"); } catch (InterruptedException e) { System.out.println("스레드 1이 인터럽트를 받았습니다"); } finally { lock.unlock(); System.out.println("스레드 1이 락을 해제했습니다"); } }); Thread thread2 = new Thread(() -> { try { lock.lockInterruptibly(); // 락을 시도하며, 인터럽트가 들어오면 중단 try { System.out.println("스레드 2가 락을 획득했습니다"); } finally { lock.unlock(); System.out.println("스레드 2가 락을 해제했습니다"); } } catch (InterruptedException e) { System.out.println("스레드 2가 인터럽트를 받았습니다"); } }); thread1.start(); thread2.start(); thread1.interrupt(); // thread2.interrupt(); try { Thread.sleep(500); thread1.join(); thread2.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } 이 코드를 실행했을 때, 아래 이미지와 같이 IllegalMonitorStateException 이 발생했는데요. 아마 try ~ catch ~ finally 블록에 의한 문제가 아닐까 싶습니다. 이 부분이 어떻게 동작하여 오류가 발생한 건지 궁금한데, 답변 해주시면 감사하겠습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
이 풀이방법 혹시 틀렸을까요?
public class Number4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int count = scanner.nextInt(); List<String> array = new ArrayList<>(); for (int i = 0; i <= count; i++) { array.add(scanner.nextLine()); } for (String str : array) { Deque<Character> stack = new ArrayDeque<>(); for ( char c : str.toCharArray()){ stack.push(c); } while (!stack.isEmpty()){ System.out.print(stack.pop()); } System.out.println(); } } } 위 풀이방법처럼 풀었는데 이게 컴파일 에러가 나는데 혹시 이 풀이방법이 문제점을 가지고 있을까요?