묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jakarta.persistence가 import 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제목 그대로 import가 되지 않습니다. import문을 지우고 나서 자동 임포트를 하려고 @Entity를 직접 타이핑 하여 해봐도 cannot resolve symbol이라는 메시지만 나오는데 어떡해야 할까요?
-
해결됨실전! 스프링 데이터 JPA
@RepositoryDefinition 실무에서 사용하나요?
JpaRepository나 PageRepository 등불필요한 쿼리도 자동으로 만들어주더라구요 그래서 해당 레포지토리에서 직접 정의한 메소드 말고는 막고 생성하고 싶지 않다면 어떤 방법을 사용하시나요? 디버깅하다보니 Repository.class 인터페이스와 어노테이션인 RepositoryDefinition.class를 필터로 스캔하는 걸 확인했습니다. RepositoryDefinition를 사용하는 것보다 직접 정의해서 사용할 생각이면 Repository.class만 상속해서 사용하시나요 ?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
제네릭스가 실제로 쓰이는 예시
sts로 mvc 하다가 다시 강의듣기 시작해서 그런지 헷갈려서요. 제네릭스는 어느 경우에 쓰이는 건가요? 프로젝트 할때 HashMap을 썼던 것 같거든요. Controller - jsp (ajax)@ResponseBody@PostMapping("/admin/bmember")public Map<String, Object> bmemberPost(@RequestBody ManagerVO manager){ Map<String, Object> map = new HashMap<String, Object>(); boolean res = managerService.updateManager(manager); // 승인 -> 업데이트 -> bm_approval( 0 -> 1 ) // 동시에 getMakeStore 를 하면서 st_num을 만들고, bm_id값만 넘겨주고, st_approval default값 0이 주어짐 -> storeVO 데이터 저장! boolean store = storeService.makeStore(manager); // 상점등록 - (st_num) st_bm_id를 이용해서 insert // => 매장등록 (plusinfo) insert -> update 로 변경. // map.put("store", store); // 화면단에 store정보를 보낼 필요는 없음. 그냥 일만하러 왔다. map.put("res", res); return map; }
-
미해결예제로 배우는 스프링 입문 (개정판)
클론 받은 내용과 수업내용이
지금 수업이랑 깃에서 받은 내용이 조금 다른 것 같은데, 맞죠? 1번 문제 풀려니까 내용이 달라서요.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
v5의 쿼리 횟수에 대 질문이 있습니다.
public List<OrderQueryDto> findAllByDto_optimization() { List<OrderQueryDto> result = findOrders(); List<Long> orderIds = result.stream() .map(o -> o.getOrderId()) .collect(Collectors.toList()); List<OrderItemQueryDto> orderItems = em.createQuery( "select new jpabook.jpashop.repository.order.query.OrderItemQueryDto(oi.order.id, i.name, oi.orderPrice, oi.count)" + " from OrderItem oi" + " join oi.item i" + " where oi.order.id in :orderIds", OrderItemQueryDto.class) .setParameter("orderIds", orderIds) .getResultList(); //최적화(Lambda사용) Map<Long, List<OrderItemQueryDto>> orderItemMap = orderItems.stream() .collect(Collectors.groupingBy(orderItemQueryDto -> orderItemQueryDto.getOrderId())); result.forEach(o -> o.setOrderItems(orderItemMap.get(o.getOrderId()))); return result; } 여기서 map을 사용하는 코드가 있는 경우에는 쿼리를 한 번 날리고 map으로 가져와서 값을 세팅하기 때문에 쿼리가 총 2번 나가는 거고 그 부분이 없으면 어떤 방식으로 쿼리가 나가는 건가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
변수가 초기화 되었는지 확인하는게 JIT컴파일러 인가요?
변수가 초기화 되었는지 확인하는게 JIT컴파일러 인가요?
-
해결됨스프링 시큐리티
RoleHierarchy 강의 내용에서 계층 권한 설정에 대해 몇 가지 질문드립니다.
안녕하세요, 우선 좋은 내용의 강의 감사드립니다. 이어 Spring Security 계층 권한 설정 방법에 대해 아래와 같이 몇 가지 질문을 드리고자합니다. [질문 항목]DB를 사용해서 계층 권한 테이블을 선언하고 부모, 자식 관계의 권한 데이터(row)를 등록해 놓은 상황에서 프로그램을 실행시키게 되면 현재 이 계층 권한 테이블에 있는 데이터에 한해서만 Security 권할 설정이 이루어지는 것인가요? 만약, 추후 DB에 직접 새로운 계층 권한 정보가 등록된다면 해당 프로그램이 재시작되어야만 변경된 계층 권한 정보가 동기화되는 것인가요?1번 항목과 비슷한 맥락으로 한 회원이 서비스 이용중 자신의 권한이 사이트 관리자에 의해 변경되었다면 변경된 권한이 적용되는 시점에 대해서도 궁금합니다.Spring Security 기본 정책(?)상 계층 권한을 나타낼 때에는 문자열 형태로 권한 관계를 > 를 사용하여 표기하는 것을 볼 수 있었는데요. 이렇게 문자열 형태가 아닌 다른 형태(예를 들어 Map 등)로도 표기가 가능한가요? 만약, 이런 설정 방법이 존재한다면 가이드를 제공해주실 수 있을까요?아직 강의를 완강한 것이 아니기에 질문 내용이 부족한점 양해드리며, 미리 답변 감사드립니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
while문 문제와 풀이 질문입니다(짝수 출력)
안녕하세요~이렇게 코드를 짜면 값이 안나오는데 왜일까요?num을 1로 했더니 결과가 안나와서 찾아보니int가 정수 라서 실행이 안된다길래int를 2로 잡고 돌렸는데도 값이 2만 나옵니다.뭐가 문제인가요? 그리고 코드를 이렇게 짰는데값은 강의 내용과 동일하게 나옵니다.강의에서는 num과 count 두 변수를 이용하던데이유가 있나요?코딩 강의 처음 들어보는 초보자라왕초보 기준으로 설명해주실 수 있을까요😔
-
미해결김영한의 실전 자바 - 기본편
객체를 따로 생성해주는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ProductOrderMain2package ref.ex; public class ProductOrderMain2 { public static void main(String[] args) { ProductOrder[] orders = new ProductOrder[3]; orders[0] = createOrder("두부", 2000, 2); orders[1] = createOrder("김치", 5000, 1); orders[2] = createOrder("콜라", 1500, 2); printOrders(orders); int totalAmount = getTotalAmount(orders); System.out.println("총 결제 금액: " + totalAmount); } static ProductOrder createOrder(String productName, int price, int quantity) { ProductOrder order = new ProductOrder(); order.productName = productName; order.price = price; order.quantity = quantity; return order; } static void printOrders(ProductOrder[] orders) { for (ProductOrder order : orders) { System.out.println("상품명: " + order.productName + ", 가격: " + order.price + ", 수량: " + order.quantity); } } static int getTotalAmount(ProductOrder[] orders) { int totalAmount = 0; for (ProductOrder order : orders) { totalAmount += order.price * order.quantity; } return totalAmount; } }왜 ProductOrder order = new ProductOrder();을 통하여 객체를 새로 생성 해주는지 궁금합니다.ProductOrder[] orders = new ProductOrder[3];를 통해 배열을 만들었고, 배열도 객체라고 기억하고 있습니다.위에서 배열(객체)를 만들었는데 왜 객체를 또 만들어주나요?배열은 객체의 참조값만 저장이 되기 때문에 객체를 따로 생성해서 따로 생성한 객체에 값을 넣어줘야하기 때문이라고 이해했는데, 제가 이해한 내용이 맞을까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
RunTimeError가 발생하는 이유를 알려주세요..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요import java.util.*; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int cnt = sc.nextInt(); String pw = sc.next(); pw = pw.replaceAll("#","1").replaceAll("/*","0"); String answer = ""; for(int i=0 ; i<cnt*7 ; i+=7){ char target =(char)Integer.parseInt(pw.substring(i,i+7),2); answer +=target; } System.out.println("answer = " + answer); } }콘솔창 : IntellJ에서는 직접 값을 입력하면 잘 뜨는데 강사님의 채점 프로그램에서는 작동하지 않습니다... 뭐가 문제일까요
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
트랜잭션의 시작을 모르겠습니다
강의를 듣다보니 Api를 사용하기 위해 만든 Controller에서는 @Transactional 어노테이션이 포함된 Service를 아예 사용 안해서 트랜잭션의 시작을 어디로 봐야 될지 모르겠어서요1.@Transactional 어노테이션을 달고있는 메서드의 시작이 트랜잭션의 시작이고,또한 em를 통해서 createQuery나 persist를 하는 것은 em코드가 포함된 메서드가 트랜잭션의 시작인건가요?2.그리고 컨트롤러는 컨트롤러에 남겨두고 내부 로직이 있으면 빼내서 클래스로 만들어서 @Transactional(readOnly = true)로 설정해서 컨트롤러에서 쓰면컨트롤러는 그대로 있고, 내부의 로직을 트랜잭션 어노테이션으로 묶는건가요? 3.2번이 맞게 이해한거면 ApiController에 있는 컨트롤러에 바로 @Transactional을 붙이면 OSIV를 꺼도 작동되는데이렇게 컨트롤러에 바로 붙이면 OSIV를 킨거와 같은 경우가 되는거 아닌가요?
-
미해결김영한의 실전 자바 - 기본편
[method] static vs public static
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.참조형과 메서드 호출 강의를 듣다 궁금점이 생겨서 문의 남깁니다.MethodChange2.javapackage ref; public class MethodChange2 { public static void main(String[] args) { Data dataA = new Data(); dataA.value = 10; System.out.println("메서드 호출 전: dataA.value = " + dataA.value); changeReference(dataA); System.out.println("메서드 호출 후: dataA.value = " + dataA.value); } private static void changeReference(Data dataX) { dataX.value = 20; } Method2.javapackage ref; public class Method2 { public static void main(String[] args) { Student student1 = createStudent("학생1", 15, 90); Student student2 = createStudent("학생2", 16, 80); printStudent(student1); printStudent(student2); } static Student createStudent(String name, int age, int grade) { Student student = new Student(); student.name = name; student.age = age; student.grade = grade; return student; } static void printStudent(Student student1) { System.out.println("이름:" + student1.name + " 나이:" + student1.age + " 성적:" + student1.grade); } } MethodChange2의 changeReference 메소드는 private static인데, 왜 Method2의 printStudent 메소드는 static인지 이유가 궁금합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
11. 임시반장 정하기 런타임 에러 관련 질문 드립니다.
강사님 안녕하세요. 좋은 강의 잘 듣고 있습니다. 임시반장 정하기 문제에서 강사님이 작성해주신 코드와 동일하게 solution 메서드를 만들었다고 보이는데 런타임 에러로 나오는거 같습니다. 혹시 원인을 알 수 있을까요? 감사합니다. import java.util.*; public class Main { public int Solution(int n, int[][] array) { int answer=0, max=Integer.MIN_VALUE; for(int i=1; i <=n; i++) { int cnt = 0; for(int j=1; j<=n;j++) { for(int k=1; k<=5;k++) { if(array[i][k] == array[j][k]) { cnt++; break; } } } if(cnt>max) { max = cnt; answer = i; } } return answer; } public static void main(String[] args) { Scanner in=new Scanner(System.in); int n = in.nextInt(); Main T = new Main(); int[][] array = new int[n][n]; for(int i = 0; i < n ; i++) { for(int j = 0; j < n ; j++) { array[i][j] = in.nextInt(); } } System.out.println(T.Solution(n, array)); } }
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
Redisson - 100개의 스레드가 동시에 tryLock을 호출하나요?
[Redisson을 활용하여 재고로직 작성하기] 강의 수강 후 궁금한 점이 있어 질문드립니다.100개의 스레드가 동시에 재고 감소를 시도하면, 모든 스레드가 동시에 trylock으로 락 획득을 요청하는 건가요? 그렇다면 waitTime이 15초 leaseTime이 1초인 경우, 16번째 스레드부턴 락을 획득할 수 없을 거라고 예상했는데 테스트는 통과하여 질문드립니다.stockService.decrease 작업이 1초보다 덜 걸려서 이게 가능한 건가요?
-
해결됨실전! 스프링 데이터 JPA
Spring Data Jpa Optional
jpashop 프로젝트를 spring data jpa를 사용해 변경해보고 있는데Service 로직에서 spring data jpa에 기본으로 findOne이 있다고 들어 작성하였는데Optional 때문인지 저렇게 나오는데 어떻게 작성해야 해결이 되나요??
-
미해결JSP 강의평가 웹 사이트 개발하기
오류에 conn is null 이라고 떠요
실행하면 오류나면서 Cannot invoke "java.sql.Connection.prepareStatement(String)" because "conn" is null 이라고 뜨는데 구글 서치 해봐도 안되네요ㅠㅠ
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
next(), nextLine() 질문있습니다~
System.out.println("무슨 프로그래밍 언어를 배웠나요?"); String lang = sc.next(); System.out.println("배우고 나니 기분이 어땠나요?"); String feeling = sc.next(); //nextLine(); System.out.println("또 공부하고 싶은 언어가 있나요?"); String want = sc.nextLine(); System.out.println("언어 : " + lang); System.out.println("느낀점 : " + feeling); System.out.println("공부하고싶은 언어 : " +want );선생님! feeling을 입력한 뒤에 그냥 3줄 다 출력되고 스캐너가 종료되는데 이유를 잘 모르겠습니다!
-
미해결김영한의 실전 자바 - 기본편
상속 관련해서 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다형성 오버라이딩 까지 강의를 보고 질문 드립니다.지금까지 상속 관계에 대해 배웠을 때처음에 든 생각은 상속이 tree 관계도를 만든다고 생각했습니다.(예를 들어서 부모에게 자식이 여러 명 있을 수 있는 것처럼요)그런데 수업에서 배운 내용을 보니힙 영역에서 한 인스턴스 안에 부모가 한 명 있고 자식이 둘 이상인 경우는 존재하지 않는 것처럼 보였습니다.물론 class 영역에서 한 부모를 여러 자식이 상속하는 경우는 가능하겠지만 instance를 만들 때는 자식 인스턴스를 만들 때마다 부모가 복제되서 생기는 것 같았습니다. 매소드 오버라이딩 부분을 보니까 한 인스턴스 안에 부모가 있을 때 자식이 여럿 있으면 안 될 것 같다는 확신이 들었습니다. 그게 맞다면 어느 자식의 method로 오버라이딩 되어야 할 지 정하기 어렵기 때문입니다. 만약 제가 데이터를 저장할 때어떤 사람의 인적 정보를 person class에 저장하고사람의 직업이 여러 개일 수 있으니까 직업들을 job1, job2 class라고 정의한다면-----------------------------------| person 부모class - job 1 자식 class | - job 2 자식 class-----------------------------------이런 식으로 한 인스턴스 안에 데이터를 저장하는 것이 메모리를 효율적으로 쓰는 것이라고 생각했는데 java는 이런 걸 지원하지 않는 것처럼 보였습니다. 제 생각이 맞는지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DB
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이전 강의인 Jdbc강의는 따라하지 않아도 된다고 하셔서 h2 데이터베이스 관련 라이브러리 추가와 연결 설정 추가만 따라하고 이 강의로 넘어왔습니다. 이번 강의 전까지는 문제없이 실습을 따라했는데 이번 강의부터 따라하던 중 막힌 부분이 생겨서 질문 남깁니다!5:53 쯤에 회원가입만 테스트 돌렸을 때 h2 데이터베이스에 남아있어야하는데 저는 아무것도 남아있지 않습니다. Jdbc를 따라하고 넘어왔어야하는걸까요?ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost 8080 Whitelable Error Page 에러발셍
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. View 환경설정 강의 따라하고 있는데 localhost:8080은 잘 동작 하지만 localhost:8080/hello 는 오류 발생하네요.동일 오류 발생한 사람들의 사례를 찾아봤지만,도저히 해결방법을 모르겠어서 올립니다ㅜㅜ