자바 람다의 지연 평가과 스트림의 지연 연산
미해결
김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 자바 람다의 지연 평가과 스트림api의 지연 연산의 차이가 궁금합니다
- java
- 함수형-프로그래밍
- lambda
- optional
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 자바 람다의 지연 평가과 스트림api의 지연 연산의 차이가 궁금합니다
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
[SELECT 2번 발생] 강의에 설명된 내용과 달리 저는 em.find(Member.class, 100L); 두 번 호출하였을 때 SELECT 문이 두 번 발생하였습니다. 혹시 설정 차이로 다른 결과가 나온 것일까요? 추가로 지금 확인해보니 tx.commit 이후에도 데이터베이스에 저장도 되지 않고, insert 쿼리가 나가지 않네요.. 어떤 문제에서 잘못된 것일까요? 전체 코드 보내드립니다. package hellojpa; import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; import jakarta.persistence.EntityTransaction; import jakarta.persistence.Persistence; import java.util.List; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); /** * 영속성 컨텍스트1 - 1차 캐시 */ try { // // 비영속 Member member = new Member(); member.setId(100L); member.setName("HelloJPA"); System.out.println("=== BEFORE ==="); em.persist(member); // 영속 System.out.println("=== AFTER ==="); Member member1 = em.find(Member.class, 100L); Member member2 = em.find(Member.class, 100L); System.out.println("result = " + (member1 == member2)); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); emf.close(); } } }
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티 직접 사용 - 외래키값에서 아래 JPQL은 지연로딩설정 해놨지만 where 에서 team에 대한 조건값이 있으니 즉시로딩 된걸로 이해하면 될까요?! select m from Member m where m.team = :team
해결됨
클린 코더스: 실전 객체 지향 프로그래밍과 TDD 마스터 클래스
안녕하세요 클린 코더스 강의보면서 예제를 따라해보고 있는데 초반 function 강의 예제에 필요한 org.fitness 라이브러리가 받아지지 않는거 같습니다. 클래스 파일이 없으니 컴파일 에러가 터지는데, 라이브러리 파일 구할 수 있는 방법 없을까요? maven repository: https://mvnrepository.com/artifact/org.fitness/fitness 저장소: https://github.com/msbaek/fitness-example/tree/master
미해결
김영한의 실전 자바 - 중급 1편
[질문 내용] D 는 정답이 아닌가요?
해결됨
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
안녕하세요 Transactional Outbox 모듈 적용 부분을 듣던중에 차이가 발생해서 질문드립니다. 강의에서는 이제 각 나눠진 기능마다 XXXAplication 클래스에 EntityScan과 EnableJpaRRepositories 애노테이션을 달아주는것만으로도 다른패키지에있는 outboxEventPublisher를 사용할 수 있는데 저는 인식을 못합니다. application클래스에 @componentScan(...) 까지 달아주고나서야 비로서 인식이 되기 시작하는데 혹시 뭐가 문제고 무슨 차이가 있는걸까요 ... 찾아봤는데 잘 안보입니다 ㅠㅠ
해결됨
실리콘밸리 엔지니어와 함께하는 Gradle
강의 잘 듣고 있습니다. 궁금한 점이 2가지 있는데요. 1. gradle 프로젝트를 생성하면 org/example/App.java가 기본값인거 같습니다. 이걸 프로젝트 생성 시점에서 원하는 명칭으로 변경할 수 있는지 궁금하구요 예) 최초 생성 시 com/회사명/Application.java 2. import된 파일 (강의 예시로는 math)이 .gradle 경로에 떨어지는데 이부분은 알알두면 어떤 상황에서 활용되는지 궁금합니다. (예를 들면 다운로드된 라이브러리는 폐쇄망 환경 같은 곳에 들고 가는데 이 경로도 마찬가지인지)
미해결
김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 먼저 이렇게 코드를 짜도 정답이 되는지 알고 싶습니다. 또한, 강사님과 같이 삼항 연산자를 써야겠다는 효율적인 생각을 어떻게 할 수 있는지 그 방법을 알고 싶습니다.
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 강사님처럼 src/main/java 하위에 querydsl 폴더가 생기진 않고 build 폴더쪽에 파일이 생기고 있습니다. 하지만 에러는 error: Could not find class file for 'jpabook.jpashop.domain.OrderItem'. 이렇게 생기고 있습니다. clean > build 하면 Q파일이 생기지않고 celan > other > compileQuerydsl 하면 위와 같이 엔티티를 찾을 수 없다는 에러가 발생하고 있습니다. //querydsl buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'java' id 'org.springframework.boot' version '3.4.5' id 'io.spring.dependency-management' version '1.1.7' //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } //querydsl apply plugin: "com.ewerk.gradle.plugins.querydsl" group = 'jpabook' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5-jakarta' //queryDSL //implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta" //annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta" implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() } //querydsl 추가 시작 def querydslDir = layout.buildDirectory.dir("src/main/java").get().asFile querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } compileQuerydsl{ options.annotationProcessorPath = configurations.querydsl } configurations { compileOnly { extendsFrom annotationProcessor } querydsl.extendsFrom compileClasspath } //querydsl 추가 끝 제 build.gradle 이며 어노테이션 설정도 이렇게 되어 있지만 에러가 발생하고 있습니다! 확인부탁드립니다!
해결됨
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
안녕하세요 ! 좋은 강의 해주셔서 감사합니다. 섹션 4의 댓글 수 구현 강의 3분 39초 경에서 질문 있습니다 . 선생님의 코드에서는 댓글을 물리적 삭제할때만 댓글 수를 decrease를 통해 줄여주고 있는데, 논리적 삭제 시에도 count를 줄여주는 것이 맞다고 생각해서 질문글 남깁니다. 왜 물리적 삭제 시에만 댓글 수를 decrease 하시는 건가요 ?
미해결
실전! Querydsl
mulitply 예제가 잘려있습니다. 수정부탁드립니다.
해결됨
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) -> 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) -> 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) -> 예 [질문 내용] 현재 상황 File | Settings | Build, Execution, Deployment | Build Tools | Gradle 선택 시 'select configuration element in the tree to edit its settings' 만 조회되고 general settings 설정 창이 안보이는 상황 단, import gradle 프로젝트 로딩은 문제가 없으며 코드 실행 역시 잘 되는 상황. 시도했던 해결 방안들 인텔리제이 Invalidate and Restart 를 거침 인텔리제이 전체 재설치 진행 start.spring.io의 경우 해당 사진의 설정 사용 GPT에서 제공한 프로젝트 폴더 파일 역시 같은 증상(설정 조회가 되지 않는) 증상을 보임 프로젝트 JDK 설정 역시 21 버전으로 설정, JAVA_HOME 환경 변수 역시 21버전으로 설정 gradle 플러그인 역시 설치 및 활성화 되어 있음을 확인 .idea 폴더와 .gradle 폴더 삭제 후 다시 프로젝트를 열어봄. gradle wrapper 존재 확인 Run anything에서 gradle clean 등의 실행을 거쳐봄. 결론... 여러 방안을 시도해보고 설정 역시 계속 재확인 후 인텔리제이 리스타트를 진행해도 해당 설정이 조회되지 않고, select configuration element in the tree to edit its settings 표시만 떠 있네요... 혹시 해결 방안을 아시는 분 계실까요? 오늘도 노고 많으십니다. 좋은 하루 되세요.
해결됨
기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
39강의 36분 경에 보여주시는 그림에 보면 Object Header 의 Klass word 가 Metaspace 영역의 Class 클래스의 메타데이터를 가르키고 있습니다. 해당 Class 클래스의 메타데이터 내용을 보면 Object Age 나 Lock Flag 등이 들어가는데 제가 공부하기로는 Object Age 나 Lock Flag 와 같은 개별 인스턴스가 가져야 하는 메타데이터는 Mark Word 에 저장되는 것으로 알고 있었는데, 아닌가요? 그렇다면 이 강의에서 설명하신 바로는 Class 클래스가 클래스로더의 "준비" 단계에서 생성되고, 실제 인스턴스 객체는 나중에 생성된다고 하셨는데 "준비"단계에 생성된 Class 클래스에 인스턴스 별로 다르게 가져야 하는 정보 (age, lock flag 등) 이 어떻게 구별되서 저장되나요?
해결됨
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
handle()에 조회 수, 좋아요 수, 댓글 수 캐시도 삭제해주어야 하는데 누락되어야 한다고 생각이 하는데 어떻게 생각하시는지 궁금합니다! 아니면 다른 의도가 있으셨을까요? 강의에서는 생성 시간 및 인기글 캐시만 삭제하고 있습니다!
해결됨
기초 탄탄! 독하게 시작하는 Java Part 3(상) : 멀티스레드와 동기화
선생님께서 말씀하시는 TLS는 프로세스의 한정적인 VMS위에서 나뉘어서 사용되는건가요?? Heap area에 비해 다른 영역은 작은걸로 아는데 TLS가 나뉘어서 사용되면 영역이 작아지지 않을까라고 생각되서 질문드립니다!!
해결됨
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
안녕하세요, 강사님 늘 강의 잘 듣고 있습니다, 감사합니다 ! 다름이 아니고, @Transactional과 @TransactionalEventListener 설정 관련해 궁금한 사항이 있어서 문의드리게 되었습니다. 강의내용은 @Transactional, @TransactionalEventListener가 전역적으로 선언되었고 outbox 관련 로직만 존재하기 때문에 괜찮지만 제 업무환경에서는 @TrasnactionalEventListener가 사용되면 프로젝트의 모든 @Transactional으로 관련된 내용이 바인딩되기 때문에 이를 scope 별로 구분하는 방법이 필요해보였는데요. 따로 알아보았지만, payload(강의에서는 OutboxEvent) 를 통해 분기처리하는 방법만 보이다보니 혹시 관련하여 TrasnactionalEventListener 어노테이션 필드 혹은 커스텀 어노테이션만으로 구분할 수 있는 방법이 있을까요 ? 문의드리는 가장 큰 이유는 outbox 로직이 필요없는 DB처리에도 TrasnactionalEventListener이 우선은 호출되고 payload를 통해 early return 시키려고 하다보니, 불필요한 리소스 사용을 방지하고 싶어서 문의드리게 되었습니다.
미해결
스프링 시큐리티 OAuth2
안녕하세요. 아래는 강의 자료 캡처입니다. 1, 2, 3, 4 번에 대한 각각의 강의가 없어서 문의 드립니다. 특히, 4번은.. OAuth 2.0 강좌 전체에서 Authorization server 에 직접 DB 나 Nosql 에 연동하는 강의가 없는 것 같아서 꼭 보고 싶은데.. 깃헙에 브랜치마저도 없는 것 같아 문의 드립니다.. 감사합니다.
해결됨
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
안녕하세요! 우선 강의 너무 잘 듣고 있습니다! 강의 자료에서 좋아요 수 설계 부분에서 11:17 1:1 관계이지만, 테이블 비정규화의 필요성을 살펴본 것이다. 이 부분은 1:1 관계이므로 비정규화의 필요성이 있지만, 레코드 락으로 인한 자원 한계를 고려하여 '정규화'의 필요성을 살펴본 것 이 맞지 않나 싶습니다! 혹시 제가 잘못 이해한 부분이 있다면 알려주시면 감사하겠습니다!
미해결
죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
이 기본 구현에서 호출하는 getResultList() 는 전체 데이터를 메모리에 한 번에 로딩하므로 실제 스트리밍이 아니며 따라서 타 JPA 구현체 사용 시 주의가 필요하다. 라고 하셨는데 JpaCursorItemReader를 이용하면 모든 데이터를 메모리로 가져오기 때문에 OutOfMemoryError가 날 수 있나요?? 추가로 실무에서는 쿼리가 복잡할텐데 JPA 보단 JDBC를 사용하는 편인가요???
미해결
떠먹여주는 객체지향 디자인 패턴 - by 얄코
토끼가 나와서 하는 질문이 하나도 안들립니다. 어수룩함을 표현한거 같은데 이상한 말투로 질문을 하는데 전혀 어울리지도 않고 강의 내용에 전혀 도움이 안됩니다.