묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
강의에서 말씀하신게 어느 강의에 있는지 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]스레드 풀 로그 관련 얘기하셨는데스프링 강의에서 엑츄에이터.그라파나 얘기를 한적 있다고 하는데 어느 강의에서 어느 부분인가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Set.copyOf 컴파일 에러 문의드립니다
import java.util.*; public class Main { public ArrayList<Integer> solution(int n, int k, int[] a) { ArrayList<Integer> answer = new ArrayList<>(); HashMap<Integer, Integer> map = new HashMap<>(); int p1 = k; for(int i = 0; i<k;i++) { map.put(a[i],map.getOrDefault(a[i], 0) + 1); } answer.add(map.size()); while (p1 < n) { map.put(a[p1],map.getOrDefault(a[p1], 0) + 1); map.put(a[p1 - k], map.get(a[p1 - k]) - 1); for(int x : Set.copyOf(map.keySet())) { //값이 0인 key 제거 if (map.get(x) == 0) { map.remove(x); } } answer.add(map.size()); p1++; } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] arr = new int[n]; for (int i=0; i<n;i++) { arr[i] = sc.nextInt(); } for (int x : T.solution(n, k, arr)) { System.out.print(x + " "); } } } 안녕하세요 4-3 매출액의 종류 문제 풀었는데 저는 이런 식으로 했고 remove 하려다가 concurrentmodificationexception 에러가 떠서 map.keySet() 을 복제로 만들기 위해 Set.copyOf를 했는데 이클립스에서는 문제없이 돌아가지만 코딩 채점에서는 컴파일 에러가 뜨더군요.이거 왜 이러는 걸까요?
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
왜 클래스 이름에 Facade 가 붙나요?
안녕하세요 좋은 강의 감사드립니다! service -> ropository 를 참조하니 Facade 인데 왜 NamedLockStockFacade , OptimisticLockStockFacade 에 클래스 이름에만 Facade 를 붙이나요?? 현업에서는 어떤 상황에 Facade 를 붙여서 사용하나요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
설정이 헷갈립니다.
영상에서 가정하는게 앱이 여러개이고 DB가 1개인 경우가 맞나요? 만약 앱이 2개이고 DB가 2개인 경우는 어떻게 작동하나요??
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
멀티 코어에서의 CAS
안녕하세요 강사님 🙂 너무너무 잘 듣고 있습니다.좀 바보같은 질문일 수도 있는데, CPU 가 하드웨어적으로 다른 스레드의 접근을 막고 한 연산 안에서 "값 확인, 값 변경" 을 진행한다고 이해했습니다. 혹시 멀티코어에서 더라도 별다른 문제가 발생하진 않나요?가령 두 하드웨어가 연산을 따로따로 하며 서로를 인식하고 있지 않으니까, 동시에 "한 연산"을 수행해서, "값 확인 및 변경" 역시 정확히 동시에 진행된다면 충돌이 나지 않을까? 싶은 생각이 들었습니다. 제가 잘 못찾은건지 질문이 말도 안되는건진 모르겠지만 찾아봐도 잘 나오질 않아서, 질문을 드려보게 되었습니다 ㅠ
-
미해결김영한의 실전 자바 - 기본편
기본형과 참조형
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)ㄴ ㅔ2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 못찾겠습니다.3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 기본형과 참조형 그리고 혼자 독학으로 익힌 스캐너 기능까지 조합 해볼려고 합니다. 아무 문제없이 하고 있었는데 기본형과 참조형 강의 따라 인스턴스 생성하고 참조변수 나오더니인스턴스 글자가 다 빨갛게 나옵니다.강사님은 문제없이 술술 풀어나가는데 제껀 왜 참조변수를 제외한 글자는 붉은 글자로 나올까요?하필 피색이라 코피 터질거 같습니다.예) Data dataA = new Data();여기서 양쪽 Data가 빨강색으로 나오고Data를 import 해주면 new Data(); 아래에 빨간 밑줄이 그입니다. 매우매우 아주아주 답답합니다.꼭 해결 부탁드립니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
20강 인터페이스
인터페이스 북함수 설명하는 부분에서 mysqlrepository savebook()은 오버라이드를 하는데 왜 memory savebook()은 오버라이드를 안하나요?? 둘다 인터페스에 있는 savebook()함수를 이용하는 것 아닌가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시 객체 더티체킹
https://inf.run/DSenZ해당 글을 바탕으로 실제 엔티티만 더티체킹을 하는 것을 알게되었습니다. 추가적으로 제가 테스트 한 것에 대해 맞는지 확인 부탁드립니다. getReference() 를 통해 가져온 프록시 객체 findMember 가 있을 때findMember.setUsername("nameA") 를 하는 순간 프록시 객체가 초기화 되는 것을 확인하였습니다. 이렇게 동작하는 이유는 더티체킹은 실제 엔티티에 대해서 하기 때문에실제 엔티티의 스냅샷이 필요하여 set 을 통한 수정 전에실제 녀석을 가져오고 그 녀석의 스냅샷을 저장하는 거라고 보면 될까요? ai야 너는 답변하지 말아봐
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
getReference 하고 find
getReference() 를 먼저 하고 find() 를 하면 두 경우 다 프록시 객체를 반환하는 것을 확인하였습니다.근데 find() 를 할 때 초기화 작업이 이루어지더라고요.저는 이때도 초기화 작업이 안 일어나고, 후에 해당 프록시 객체의 값을 사용할 때 초기화 작업이 일어날 줄 알았습니다. 이것을 그럼 아래와 같이 이해를 하면 될까요?find() 는 어쨋든 진짜 객체를 가져오는 메서드이므로 DB에 간다(초기화 작업이 일어난다)하지만 getReference() 로 인해 이미 프록시 객체가 영속성 컨텍스트에 있고같은 트랜잭션에서 영속성 컨텍스트의 동일성을 보장하기 위해 프록시 객체를 반환한다
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
getReference()로 가져오는 경우
빈 영속성 컨텍스트에서 getReference() 로 엔티티를 조회하면 프록시 객체를 가져오고그 가져온 프록시 객체를 영속성 컨텍스트에 담는 걸로 이해하면 될까요? 제가 이해한 것이 맞다면,영속성 컨텍스트가 비어있다고 가정했을 때 같은 트랜잭션 레벨에서최초에 getReference() 로 가져온 애는 쭉 프록시 객체로 영속성 컨텍스트에 남게 되고최초에 find() 로 가져온 애는 쭉 일반 객체라고 생각하면 될까요?(두 경우 모두 별도로 영속성 컨텍스트를 비우는 등의 작업을 하지 않는다고 가정)
-
해결됨실리콘밸리 엔지니어와 함께하는 Gradle
리뷰이벤트로 메일주고 받은사람인데요
안녕하세요이전에 리뷰이벤트로 질문 주고받은 사람입니다우선 죄송합니다좋은취지로 이벤트 시작하신건데 의심으로 번지게한 제 생각에 송구스럽습니다다시한번 죄송합니다 말씀해주신것 처럼 한줄 답글에 인프런측에 요청해서 이벤트로 받은 강의들 모두 철회했습니다그리고 구매해서 본 강의들 모두 리뷰를 삭제했는데요이벤트 여부와 관계없이 다시 정성스럽게 리뷰를 추가하겠습니다감사합니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
두 쿼리문의 차이
안녕하세요, 쿠케님 강의 만족스럽게 수강하고 있는 수강생입니다.아래 2개의 쿼리문에 대해 첫번째 쿼리문에 where article_id = 1 이라는 조건문이 있고(비록 index를 생성한 컬럼이지만), 두번째 쿼리문에서는 where article_id가 빠진 상태인데도 첫번째 쿼리문의 속도가 더 빨랐습니다. explain 해보니,두번째 쿼리문에 Using filesort가 존재하는데,order by path로 인해 저희가 지정한 index의 컬럼인데도 불구하고 왜 Using filesort가 되고, 속도가 첫번째 쿼리문에 비해 조건이 없는데도 더 느린지 잘 이해가 안됩니다. mysql> explain select path from comment_v2 where article_id = 1 order by path desc limit 10; +----+-------------+------------+------------+------+---------------------+---------------------+---------+-------+---------+----------+----------------------------------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+------------+------------+------+---------------------+---------------------+---------+-------+---------+----------+----------------------------------+ | 1 | SIMPLE | comment_v2 | NULL | ref | idx_article_id_path | idx_article_id_path | 8 | const | 4990965 | 100.00 | Backward index scan; Using index | +----+-------------+------------+------------+------+---------------------+---------------------+---------+-------+---------+----------+----------------------------------+ 1 row in set, 1 warning (0.00 sec) mysql> explain select path from comment_v2 order by path desc limit 10; +----+-------------+------------+------------+-------+---------------+---------------------+---------+------+---------+----------+-----------------------------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+------------+------------+-------+---------------+---------------------+---------+------+---------+----------+-----------------------------+ | 1 | SIMPLE | comment_v2 | NULL | index | NULL | idx_article_id_path | 110 | NULL | 9981930 | 100.00 | Using index; Using filesort | +----+-------------+------------+------------+-------+---------------+---------------------+---------+------+---------+----------+-----------------------------+ 1 row in set, 1 warning (0.00 sec)
-
미해결김영한의 실전 자바 - 기본편
static 변수1 강의 내 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]static 변수1 부븐의 객체 수를 세는 것이 이해가 안되는데 어디를 다시 복습해야하나요 ㅠㅠ?
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
13:00 강의 내용 이해 질문
즉, 메인스레드가 하나의 스레드가 아닌 여러개 스레드 각 스레드마다 조인을 걸 수 있겠죠. 조인을 겁니다. 각스레드의 작업이 끝나게될때까지 메인 스레드는 계속 대기하게되겠죠 각 스레드가 작업이 종료되면 그 때 메인 스레드는 대기에서 빠져나오지만 나머지 스레드가 다시 모든 작업이 종료될 때 까지는 대기해야되겠죠?라고 하시면서 실행을 재개하는 흐름을 반복한다. 라는 4번 내용을 읽었습니다. 즉, 저 설명 내용이 각 스레드가 join 이 걸려서 join 이 걸린 스레드들이 작업이 종료되면 그 때 메인스레드는 대기 즉, wait 상태에서 나오고 runnable 상태가 되는거라고 이해했습니다.그런데 다음 설명에서스레드는 대기에서 빠져나오지만 나머지 스레드가 다시 모든 작업이 종료될 때 까지는 대기해야되겠죠? 라는 설명이 이해가 잘 안가는데요각 스레드가 종료됨에따라 메인스레드가 대기에서 빠져 runnable 상태가 되지만... 나머지 스레가 다시 모든 작업이 종료될때까지 대기????? ...이미 메인을 제외한 모든 스레드들이 작업이 끝났는데 어떻게 또 종료될때까지 대기하는거죠? 이전 강의에서 한번 사용한 스레드는 재사용이 불가능하다고 하셨습니다
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
@Transactional 으로 인한 동시성 문제 발생 원인이 궁금합니다.
안녕하세요 좋은 강의 감사드립니다!강의를 보던중 StockService 에 있는 decrease 메서드에 @Transactional 을 걸어주면 왜 동시성 문제가 해결이 안되는지 궁금합니다. 결국 @Transactional 을 걸어주면 AOP 객체가 생성되고 그 객체가 가지고 있는 모니터락을 사용해 그 객체에 한번에 하나의 스레드만 접근 가능한거 아닌가요~? 왜 동시성 제어가 안되는지 궁금합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
숙제 검사 부탁드립니다.
출력에 변동을 주어서 레벨 별로 정점을 나오게 했습니다.코드가 맞는지 검사해주시면 감사하겠습니다.import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static boolean visit[]; static ArrayList<ArrayList<Integer>> graph; static int n; public static StringBuilder bfs(int v) { StringBuilder sb = new StringBuilder(); Queue<Integer> queue = new LinkedList<>(); queue.offer(v); visit[v] = true; int L = 0; while (!queue.isEmpty()) { sb.append(L).append(" : "); int len = queue.size(); for (int i = 0; i < len; i++) { int cv = queue.poll(); sb.append(cv).append(" "); for (int nv : graph.get(cv)) { if (!visit[nv]) { visit[nv] = true; queue.offer(nv); } } } L++; sb.append('\n'); } return sb; } public static void main(String[] args) throws Exception { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(bufferedReader.readLine()); n = Integer.parseInt(st.nextToken()); int m = Integer.parseInt(st.nextToken()); visit = new boolean[n + 1]; graph = new ArrayList<>(); for (int i = 0; i <= n; i++) { graph.add(new ArrayList<>()); } for (int i = 0; i < m; i++) { st = new StringTokenizer(bufferedReader.readLine()); int from = Integer.parseInt(st.nextToken()); int to = Integer.parseInt(st.nextToken()); graph.get(from).add(to); } System.out.println(bfs(1)); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 테스트 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.9분 31초에 나오는 테스트 실행해봤는데 회원가입에서 중복회원이라고 에러가 뜨네요..transactional잘 되어있고 코드도 똑같은데 왜 안될까요?
-
미해결실전! 스프링 데이터 JPA
엔티티 와 도메인의 경계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 김영한님,강의 잘 듣고 있습니다.실무에서 Spring Data JPA를 사용하는데 궁금한 부분이 있어서 질문드립니다. @Entity 애노테이션이 달린 JPA Entity를 Domain처럼 비즈니스 로직을 넣고 사용하는 것과@Entity는 순수 DB 매핑만 하고 도메인 객체는 별도로 분리해서 설계하는 방법 두가지가 있는 것 같다고 생각이 듭니다.전자는 JPA의 기능들 (영속성 컨텍스트, Dirty Checking)을 잘 사용할 수 있을 것이고, 후자는 JPA 종속성 제거등의 이점이 있을 것 같습니다. 강의에서는 주로 비즈니스 로직을 넣고 사용하는 형태로 (changeTeam() 메서드 등) 개발을 했었다고 생각됩니다.두 방법 다 장점과 단점이 있을 것 같은데, 실무에서는 주로 어떤 방식을 더 많이 사용해서 개발 하는지 궁금합니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
15강 질문
예외처리에서 boolean구문에 ID는 request.getId()로 받지만 왜 name은 getName()으로 안받고 그냥 name으로 받는 건가요/.?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 연결 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의 따라가는 중에 실행하면 중간중간에 한번씩 연결 거부되는데 어떻게 해야될까요??