묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
future.get()에 대해 질문 있습니다.
main 스레드에서 future.get()을 호출하면 결과값이 올때까지 다음 코드라인을 실행할 수 없는 상태가 된다고 보면 될까요?앞서 스레드들은 락 대기 집합, 스레드 대기 집합 같은 곳에서 대기를 했는데요 future.get()을 한다면 main 스레드도 대기를 할곳이 필요해 보이는데 저런 대기 집합 장소가 따로 있는지 궁금합니다.블로킹에 대한 개념을 보면서 동기/비동기, 블로킹/논블로킹에 대한 차이점에 대해 궁금해졌습니다. 구글링을 하면서 자료 조사를 했는데 여전히 헷갈리네요 혹시 간단하게 이 개념들의 차이점에 대해 설명해주실 수 있을까요
-
미해결더 자바, 애플리케이션을 테스트하는 다양한 방법
Testcontainers ddl-auto 동작 시점
spring boot, jpa, junit5, testcontainers를 이용해서 테스트 코드를 작성하고 있습니다.총 12개의 테스트 클래스를 만들었고 각 클래스마다 testcontainers 객체를 static으로 가지고 있고 모두 @SpringBootTest, @Testcontainers 어노테이션만 추가했습니다.(Controller 테스트 시 @AutoConfigureMockMvc 어노테이션 추가)jpa의 ddl-auto 값을 create-drop으로 설정했기 때문에 gradle test를 실행할 때 예상되는 결과는 각 클래스를 테스트할 때마다 테이블이 새로 생성되어야 할 것 같은데 실제로는 총 2번 생성됩니다.각 클래스마다 Testcontainers를 적용했음에도 불구하고 실패한 로그를 보면 이전 클래스에서 사용한 데이터를 다음 클래스에서도 사용하는 것처럼 보이는데 테스트 실행 시 각 테스트 클래스마다 jpa의 ddl-auto 속성이 동작하지 않는 이유각 클래스에 Testcontainers를 적용했음에도 불구하고 생성된 데이터베이스가 컨테이너들이 공유하는 이유가 궁금합니다.
-
미해결더 자바, 애플리케이션을 테스트하는 다양한 방법
testcontainers DB 공유 이슈
junit5, jpa를 이용해서 테스트 코드를 작성하고 testcontainers를 이용해서 테스트를 수행하려고 합니다.A entity는 n개의 B entity를 가지고 있고, B entity는 C entity를 가지고 있습니다.A에 관련된 테스트 클래스, B에 관련된 테스트 클래스(A entity 이용), C에 관련된 테스트 클래스(A, B entity 모두 이용)를 클래스별로 각각 테스트를 진행하면 모두 정상적으로 통과합니다. 하지만 gradle test로 전체 클래스에 대해서 테스트를 진행하면 종종 실패합니다.로그를 확인했는데 C 클래스를 테스트하면서 db에 A, B, C 데이터가 insert됐고 이어서 B 클래스를 테스트할 때 @BeforeAll로 B, A 순서로 데이터를 삭제하는 과정에서 C 데이터가 남아있기 때문에 B 데이터를 삭제할 수 없어 테스트가 실패합니다. 이해하기로는 testcontainers가 각 클래스에서 static으로 선언되면 테스트 시작 시점에 컨테이너가 생성되어 순수한 상태의 db로 테스트를 진행할 수 있고 테스트가 끝나면 컨테이너가 삭제되어 db도 자연스럽게 초기화된다고 생각했는데실제로는 하나의 db를 여러 개의 container가 공유해서 사용하는 것처럼 보입니다. 컨테이너 생성이 db의 생명주기에 영향을 주나요?
-
미해결김영한의 실전 자바 - 중급 2편
왜 이렇게 출력이 되는지 모르겠습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.dogHospital.set(dog); Dog bigger = dogHospital.bigger(new Dog("멍멍2", 200)); System.out.println("bigger ->" + bigger);여기서 출력이 왜 Animal{name = '', size =''} 로 되는 건가요?bigger()에서 return을 했을때 toString()으로 한게 아닌데 저렇게 출력 됐는지를 모르겠습니다
-
해결됨Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
StepVerifier를 이용한 Testing (1) 의 StepVerifiter 질문
안녕하세요 강사님StepVerifiter 관련된 내용 중에 해당 2개의 메서드 사용법이 어떻게 다른지 잘 이해가 가지 않아서 질문을 드리게 됐습니다..then(() -> VirtualTimeScheduler.get().advanceTimeBy(Duration.ofHours(12))).thenAwait(Duration.ofHours(12))1번의 경우 시간을 당겨서 테스트를 진행하고, 2번의 경우 시간을 기다려서 테스트를 진행하다는 것으로 이해를 했습니다.그런데 2개의 메서드 모두 동일한 테스트 결과를 얻을 수 있는데, 굳이 해당 메서드들을 구분해서 사용해야 할까요? 아니면 각각의 메서드가 유용한 케이스가 따로 있는 걸까요 ?혹시 각각의 메서드를 따로 사용해야 하는 케이스가 있다면, 어떤 경우에 어떤 메서드가 더 유용한지 조금 더 자세한 예시를 알려주신다면 정말 큰 도움이 될 것 같습니다.
-
미해결김영한의 실전 자바 - 기본편
다형성과 설계 문제3번 질문있습니다!
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 다형성과 설계 문제3번 질문있습니다!!김영한선생님께서 풀이하신 대로 메인에다 Scanner를 사용하는 것과 Scan을 하는 클래스를 따로 만들어서 사용하는 것 둘 중에 어떤 것이 효과적인가요?? 위 코드에서 아쉬운 점이나, 보다 효율적인 방향으로 풀이하는 방법이 있을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
test.mv.db 삭제 후 오류
강의 영상에서test.mv.db를 삭제하라 하셔서 rm으로 지웠는데요 다시 시작하라 하셔서 jdbc:h2:~/test 이거로 입력하니 Database "C:/Users/(사용자명)/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) 로 뜹니다... 결정적으로 이전에는 만들어졌던test.mv.db 파일이 안 만들어집니다..
-
미해결김영한의 실전 자바 - 기본편
Account account = new Account();
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.이런 객체는 왜 만드는건가요? 본질적으로 이해가 안되서 여쭈어봅니다..
-
해결됨김영한의 실전 자바 - 중급 2편
배열의 특징2 - 데이터 추가 "이해에 되하여서"
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 질문이 생겨서 질문을 남깁니다.배열의 특징2 - 데이터 추가에서 첫 번째, index 번째, 마지막 번째, 에 추가 하는 것의 방법은 들으니까 이해가 됩니다.여기서 질문이 생깁니다. 듣기는 들었고, 따라 치기도 하고, 이해는 되고 그러는데. 뭔가 석연치 않는 부분이 있습니다.( 뭔가 애매하다고 해야 할끼요?)그것 때문에 어떻게 해야 할지 모르 겟네요. 이럴 때는 어떻게 해야 하나요?석연치 않은 부분이 풀릴 때 까지 계속 반복해서 듣고, 코드를 지웠다 치고 그러는게 좋을까요?아니면 다른 방법이 있을까요?답변 부탁 드립니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
그리디 알고리즘으로 풀어지는게 이해가 안됩니다.
아무리 생각해도 '현재 최선을 선택하는 것이 최종적으로도 최선이 된다.'라는 개념의 그리디 알고리즘이 이 문제에 적용되는게 이해가 안됩니다.만약 테스트 케이스가 아래와 같을 때,190 50180 60170 100160 70150 80140 90해당 그리디 알고리즘으로 풀게되면 선택되는 것은(190 50), (180, 60), (170, 100) 입니다.하지만, 실제로 최적으로 선발하는 방법은(190 50), (180, 60), (160, 70), (150, 80), (140, 90) 입니다.제가 생각 하기에는 키 내림차순으로 정렬한 후에, 최장으로 길어질 수 있는 무게 오름차순 순열을 고르는게 맞는 것 같은데, 무언가 잘못 생각하고 있는건가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
자바 기출변형
자바 21분 45초에 Add 5 ~ Add0이 맞는거죠?? 말씀하시는 내용은 Add1까지로 말씀하셔서요sum(n) 리턴 받고 int sum(int n) 으로 다시 반복으로 돌아가서 그런가요?
-
미해결실전! 스프링 데이터 JPA
save 메서드와 변경감지 질문입니다.
안녕하세요.강의 항상 잘 보고 있습니다. SimpleJpaRepository 구현 클래스의 save 메서드 안에em.merge가 있습니다. 결국 엔티티를 변경할 일이 있으면 save 메서드를 사용하지 말고 변경 감지를 사용하라는 말씀이 맞으신가요? save 메서드는 새로운 엔티티를 저장할 때만 사용하라는 것으로 이해하면 될까요?
-
해결됨김영한의 실전 자바 - 중급 2편
배열의 특징2 - 데이터 추가 에서 질문이요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 궁금증이 생겨서 질문을 남깁니다.배열로 데이터를 첫 번째 위치에 추가, n 번째 위치에 추가, 마지막 위치에 추가 하는것 을 잘 보았습니다.근데 강의를 들으면서 객체 배열(ex: Integer)이면 어떻게 해야하지 라느 생각을 하게 되었습니다.30개 제한이 있는 객체 배열이 있고값이 20개(0~19) 까지만 담아져 있고, 나머지 값(19~29번째 )은 'null' 이라고 한다면, 마지막의 값(21번째에 넣겟다는 뜻입니다.)은 어떻게 넣지? 라는 생각을 하게 되었습니다.이런 경우 어떻게 해야 하나요?혹 나중 강의에 이런 내용 같은 게 나오나요?(그러면 강의를 통해서 배우면 되니까 안 알켜주셔도 됩니다.)답변 부탁 드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.너무 초보적인 질문인거같긴합니다만...JPA를 활용해 공부하면서 토이프로젝트를 해보고 있는데,모든 entity에 대해 연관관계를 반드시 지정해야 하는게 맞는지 궁금합니다.필요한 경우에 대해서만 연관관계를 지정해주면 되는걸까요?예를들어 member entity와 letter entity 가 존재한다고하면letter entity에 member entity에 대한 연관관계만 지정해도되는건지 항상 양방향으로 지정해야하는 건지 궁금합니다. 항상 감사합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요 외부 문제 힌트
안녕하세요 강사님강사님 강의를 듣고 다른 코테를 풀던 중아직도 머릿속에서 잊혀지지 않는 문제가 있습니다. 이 문제는 O(n^2)으로 풀어서는 안되는데 제 생각엔 Dynamic Programming 문제인 거 같습니다. 일단 문제는 아래와 같은데 N 이 주어져 이 N은 1~200,000 이고 그N에 해당하는 숫자의다른 음의 정수, 0, 양의 정수가 주어집니다 예를 들어 데이터는 아래와 같습니다. 60 1 -1 2 -2 3이렇게 주어졌을 때 내가 한 숫자를 0으로 만들 수 있습니다.그리고 하나씩 차례대로 더했을 때 0이 가장 많이 나오는 경우의 수를 구하는 겁니다. 이 경우 제가 3을 0으로 만들면 첫 0 의 카운트 1개 그리고 두번째 1를 더해서 1이고 다시 -1를 더하면 0이 됩니다.이제 카운트는 2개고 2를 더하면 2고 -2를 더하면 0입니다. 다시 카운트가 3입니다.그리고 마지막 3을 0으로 만들면 카운트가 4가 됩니다.그래서 답은 4입니다.참고로 정렬은 불가합니다. 즉 숫자들이 나열되어 있을 때 그걸 하나씩 다 더해서 0이 최대로 나오는 경우를 세는 건데 이 때 그 수 중 딱 한번 0으로 만들 수 있다는 것입니다. 이문제가 DP 문제인 것 같은데 도저히 어떻게 풀어야 될지 감이 안잡힙니다.. 물론 강의 문제는 아니지만 도움을 주실 수 있을까 해서 요청드립니다.
-
미해결토비의 스프링 6 - 이해와 원리
PaymentConfig에 대해 궁금한게있습니다
@Bean public ApiTemplate apiTemplate() { return new ApiTemplate(new HttpClientApiExecutor(), new ErApiExRateExtractor()); }위 코드에서 new HttpClientApiExecutor(), new ErApiExRateExtractor()를 new 하지않고 exRateProvider()에서 apiTemplate()를 bean으로 만든것처럼 bean으로 생성해서 넣어도 괜찮은건가요???
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
1:N 연관관계 매핑 실습쪽 질문
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true) @JoinColumn(name = "MEMBER_ID") private List<AddressEntity> addressHistory = new ArrayList<>(); 값타입 매핑인 @ElementCollection을 사용하지 않고 1:N + cascade setting으로 풀어라 라고 하신 부분입니다 36:35초 경입니다.이때 @JoinColumn(name = "MEMBER_ID")가 아니라 name="ADDRESS_ENTITY_ID"가 되어야 하는거 아닌가요?ADDRESS_ENTITY_ID 는 물론 @Column을 통해서 어드래스엔티티 id쪽에 이름 설정을 하구요혹시나해서 1:N(비권장 방식) 챕터 강의 부분을 보았는데 반대쪽 테이블 ID명을 속성으로 작성해서... 헷갈리네요
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
Java언어 기출문제의 변형
15:42sumVValues(int n)이 부모한테도 있는데요super가 생략되어있다고 보는 경우는 어떤 경우인가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
Java언어 기출문제의 변형
8:51 a.f설명하실때 본인거출력한다고 하시면서 부모 "fc"를 가리키셨어요. 부모 자식이 똑 같이 "fc"라서요 자식의 "fc"인가요? 정확한 정리가 필요합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
패키지 질문 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]SpringConfig를 만들 때 service 패키지에 만든 이유가 있나요? 메인 클래스와 같은 패키지 및 아래 패키지에 존재하면 상관 없나요?