묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일대일 정리 하단의 일부 글자들이 가려져 있습니다.
동영상 18:22 위치일대일 정리 하단의 글자들이 가려져서 일부분 보이지 않습니다. 가려진 부분들을 확인할 수 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
mappedBy로 연관관계의 거울인 인스턴스에 수정을 가하면..
mappedBy로 연관관계의 거울인 인스턴스에 수정을 가하면 데이터베이스에 변경 사항이 적용되지 않고 연관관계의 주인 엔티티를 수정해야 데이터베이스에 적용되는걸로 알고 있습니다.하지만 Order 클래스의 orderItems가 mappedBy 속성으로 연관관계 거울로 설정되었는데 Order 클래스의 비즈니스 로직인 cancel 함수에서는 orderItem.cancel()을 호출하는데 이때 orderItem의 변경사항이 데이터베이스에 적용되나요? 그렇다면 mappedBy 속성으로 연관관계 거울 인스턴스라도 해당 인스턴스에 수정을 가하면 데이터베이스에 적용되는건가요?1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨실전! Querydsl
Querydsl 잘 되는데, 인텔리제이에서 빨간줄
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]Querydsl이 잘 작동하는데 (QHello 잘 만들어짐, 테스트 잘 성공함)인텔리제이에서 빨간줄이 뜹니다. (아래 캡쳐 참고)어떻게 해결할 수 있을까요?ㅜㅜ 참고로 annotation processors 설정은 이미 enable된 상태입니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@Transcational 적용 계층 질문(Controller 계층에서 Repository 계층 직접 접근시)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]어플리케이션 아키텍쳐 강의 내용 설명해주시면서, 영한님께서는 필요에 따라서 Controller 계층에서 Repository 계층에 직접 접근(Service계층을 거치지 않고)하는 것도 유연하게 허용하신다고 하셨는데요.이런 경우에는 @Transcational 어디 계층에 적용하시는지와 이유가 궁금합니다. 제가 생각해보기로는 Controller 계층은 비즈니스 로직을 처리하는 계층의 개념은 아니니, Repository에 @Transactional을 다는게 적절해보이는데요.이러면 Controller 계층에서 직접 접근하는 Repository 클래스들만 @Transactional 어노테이션이 붙어있고 Service 계층을 통해서 사용하는 대부분의 Repository들은 @Transactional 이 안 붙어있게되어(Service 계층에 @Transactional을 붙이니) 일관성이 조금 적어지지 않을까 하는 생각도 들기는 하네요.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
initValue, allocationSize 말고 증가되는 값 변경은 가능한가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]initValue는 초기값, allocationSize는 메모리 선점 할당값인데시퀀스 값의 증가를 1에서 5씩 증가되는 값으로 변경하는 방법은 없는지 궁금합니다.
-
해결됨김영한의 실전 자바 - 중급 2편
다운캐스팅은 런타임오류??
Object를 활용시에 다운캐스팅 과정이 필요했는데요. (String) Object 10 이것은 컴파일오류로 인식하지 않는 이유가 약간 이해가 가지 않습니다. 어떤 객체든지 Object가 최상위 부모니까 String으로 갈 수 있는데 가보니까 10이어서 예외가 터지는 시나리오 같은데, 컴파일러는 이를 미리 판단할 정도는 되지 않나요?? 컴파일러는 "Object에서 String? -> ok 가능" 이정도만 판단해주는건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa 커리큘럼 진행
예전에 로드맵 설명 보면jpa1을 한 후 이론을 듣는 야생형 방향으로 하라 했는데지금 강의 들어보면 jpa1편에서 자꾸 이론편 모르면 기본 다시 보고오라고 하는데커리큘럼이 바뀐건가요?이론편에서 프로젝트한다고 하는것도 그렇고, 강의를 이후에 다시 찍으신건가요? 이론 듣고 jpa1듣는걸로 바뀐건가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Chap_08 Quiz 호출에러
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "chap_08.ditector.Detectable.detect()" because "this.detector" is null at chap_08.Camera.SpeedCam.detect(SpeedCam.java:28) at chap_08._Quiz_08.main(_Quiz_08.java:17) Process finis호출할수 없다는 에러가 나오는데 혼자서 해결이 안되어,, 글남깁니다 ㅠㅠ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA와 DB 설정, 동작확인 강의영상에서
쿼리 파라미터 로그 남기기 - 스프링 부트 3.0스프링 부트 3.0 이상을 사용하면 라이브러리 버전을 1.9.0 이상을 사용해야 한다. ```implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' 이거 했는데 퀴리부분이 이렇게 짤려서 나오는데select next value for member_seq 어떻게 해결해야 하나요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
DTO getter 메서드
안녕하세요.다름이 아니라 제가 혼자 연습하다가 헷갈리는 점이 있어서 질문드립니다!! 일단 JSON형식의 응답을 만들기 위해서 DTO에 멤버변수에 대한 getter메서드가 있어야 한다는 것은 알고 있습니다!! 그래서 아래 코드와 같이 응답 DTO를 만들었습니다.@Getter @Setter public class WeatherInfoResponse { private String baseDate; private String baseTime; private String category; private String fcstDate; private String fcstTime; private List<WeatherAndTemp> weatherAndTempList; public WeatherInfoResponse(List<WeatherAndTemp> weatherAndTempList) { this.weatherAndTempList = weatherAndTempList; } }그런데 문제가 저 WeatherAndTemp 객체를 담는 리스트 부분입니다.아래가 WeatherAndTemp 클래스입니다.@Getter public class WeatherAndTemp { private String weather; private String temp; public WeatherAndTemp(String weather, String temp) { this.weather = weather; this.temp = temp; } }제가 헷갈리는 점이 처음에 WeatherAndTemp 클래스를 getter 메서드를 생성하지 않고 만들었다가 오류가 났었습니다. 그런데 getter 메서드를 생성하니 잘됩니다. 저는 원래 응답 DTO만 Getter가 필요하다고 알고 있었는데 저런 경우는 어떤 경우인가요? 응답 DTO의 멤버변수에 사용되는 클래스도 Getter 메서드를 만들어야 하나요?
-
미해결김영한의 실전 자바 - 기본편
상속과 접근 제어
강의 내용과 똑같은 패키지로 Child와 Parent 클래스를 만들고나서각각의 패키지에 main메서드가 있는 클래스를 만들고 Child와 Parent 객체를 생성해 접근이 어디까지 되는지를 확인해보고아예 다른 패키지에 main메서드가 있는 클래스를 만들어서 Child와 Parent 객체를 생성해서 확인해보았는데 protected와 package-private 접근제어자 부분이 접근이 가능할줄 알았지만 안되는 경우가 나와서 제 예상과 너무 달라 많이 헷갈립니다.그래서 궁금한건 실무에서 protected와 package-private를 사용 하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
dto 관련 질문있습니다
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]처음에 updateItem에 id없이 그냥 form만 넘겨주니 Caused by: java.lang.IllegalArgumentException: id to load is required for loading 라는 오류가 떠서컨트롤러에서 updateItem메소드에 form과 같이 id를 넘겨주니 해결됐습니다.질문 : 수정페이지에서 제출을 하게되면 컨트롤러의 updateItem의 (updateItemDTO form)에 id도 저장되서 service로 넘어가는게 아닌가요?
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4 변수 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 선생님 수업을 듣다 궁금한 사항이 생겨서 여쭈어봅니다. 위 사진은 제가 작성한 코드 입니다.Q1 . 1번을 누르고 처음 내용을 입력하고 다시 1번을 눌러 새로운 정보를 입력 후 2번으로 합계를 보내면 따로 처음 total값과 두번째 total값을 더하는 식이 없고 누적시키는 로직도 작성을 하지 않아 정상적으로 작동이 되면 안될 것 같은데 정상적으로 합계가 나오고, 누적한 total 값이 자동으로 합산되는 이유가 궁금합니다.Q2. 일단 정상적으로 로직이 작동하여서 2번 결제를 선택 후 total 값을 확인하였고 변수를 초기화를 하지 않은것을 실행 후에 알게 되었는데, main에서 선언한 변수라 초기화가 되지 않고 값이 저장되어서 기록되는 것은 다른 질문을 보고 이해를 했지만 그렇게 되면 2번 결제 항목에서 초기화를 따로 시켜주지 않았는데도 불구하고 2번 결제를 선택 후 다시 1번으로 가서 값을 새로 입력하고 2번을 선택 하면 자동으로 초기화가 되어 새로 입력한 값만 불러와 졌는데 어떠한 원리로 이렇게 작동이 된것인지 궁금합니다.항상 좋은 강의 감사합니다:)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
영한님 말씀대로 dto를 적용해보았는데 이렇게 하는게 맞을까요?
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]그런데 이렇게 작성했을때 수정하고 제출을 하면Caused by: java.lang.IllegalArgumentException: id to load is required for loading 오류가 뜹니다
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
1대다 패치조인시 페이징 기능 사용 불가 관련 질문
하이버네이트6 버전부터는 뻥튀기 데이터가 로그에서 찍히지 않는데 그러면 페이징 기능 써도 되는걸까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Spring Boot 3.0 에서 OSIV 기본값 false
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Spring Boot 3.0 이후 부터 OSIV 기본값이 false로 바뀐 것 같아요. 확인 해주시고 첨언 해주시면 좋을 것 같아요.
-
미해결실전! 스프링 데이터 JPA
테스트 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]테스트 할 때 ItemRepositoy 생성자 주입을 했는데 계속 null이라고 나와서요! 혹시 뭐가 문제인걸까요??package study.datajpa.repository; import jakarta.persistence.Id; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import study.datajpa.entity.Item; import static org.junit.Assert.*; @SpringBootTest public class ItemRepositoryTest { @Autowired ItemRepository itemRepository; @Test public void save() { Item item = new Item("A"); itemRepository.save(item); } }package study.datajpa.repository; import org.springframework.data.jpa.repository.JpaRepository; import study.datajpa.entity.Item; public interface ItemRepository extends JpaRepository<Item, Long> { }package study.datajpa.entity; import jakarta.persistence.Entity; import jakarta.persistence.EntityListeners; import jakarta.persistence.Id; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.domain.Persistable; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import java.time.LocalDateTime; @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @EntityListeners(AuditingEntityListener.class) public class Item implements Persistable<String> { // @GeneratedValue @Id private String id; public Item(String id) { this.id = id; } @CreatedDate private LocalDateTime createdDate; @Override public String getId() { return id; } @Override public boolean isNew() { // 해당 데이터가 new냐 아니냐에 따라 새로운 객체인지 아닌지 판단 return createdDate == null; } }아래는 오류 내용입니다Cannot invoke "study.datajpa.repository.ItemRepository.save(Object)" because "this.itemRepository" is nulljava.lang.NullPointerException: Cannot invoke "study.datajpa.repository.ItemRepository.save(Object)" because "this.itemRepository" is null at study.datajpa.repository.ItemRepositoryTest.save(ItemRepositoryTest.java:19) at java.base/java.lang.reflect.Method.invoke(Method.java:580)
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다
모든 링크 모두 편집 가능하도록 변경해서 올립니다!05.29에 올린 글이 가장 마지막까지 작업하던 코드라 어떤 식으로 수정하면 좋을지 말씀해주시면 많은 도움이 될 것 같아요!https://drive.google.com/file/d/1ZLSuM4WzJVs4Hec74h64ketY0KtzEEFu/view?usp=sharing ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ <기록> 24.05.29 00:50 작성[긴급-재업로드]수업질문 로그인 안 되는 문제수정한 링크(편집 가능)https://drive.google.com/file/d/1ZLSuM4WzJVs4Hec74h64ketY0KtzEEFu/view?usp=sharing 24.05.26 13:19 작성[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요[로그인 로그아웃] 강의까지 수강했는데 도저히 막막해서 고민하다가 답답한 마음에 올립니다.홈-가입-정보입력-로그인 눌러도 정보가 나타나지 않고 로그인/가입도 프로필/알림 이런 게 아예 안 뜹니다.그리고 로그인탭을 누르면 우리가 만든 로그인 폼이 아니라 시큐리티 로그인으로 이동하고, 시큐리티 로그인을 해도 시큐리티 로그인화면이 localhost:8080/login으로 나올 뿐입니다.로그인이 잘 돼서 로그인/가입이 프로필/알림 등으로 잘 보일 수 있도록 코드 어떻게 수정하면 좋을지 도와주세요. 가장 마지막까지 작성한 코드입니다. [로그인로그아웃 13:20]까지 수강했습니다. 수정한 링크(편집 가능)https://drive.google.com/file/d/1D3FexWWHLE0SZrdumtZVRmuqJFP5Atl6/view?usp=sharing
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
dto조회 시 default_batch_fetch_size가 적용되지 않습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 코드는 batch가 잘 적용되는데dto로 다음과 같이 조회하게 되면 batch가 적용되지 않습니다. 원래 dto로 o를 조회하게 되면 배치가 적용되지 않나요?
-
미해결이펙티브 자바 완벽 공략 1부
책에 쓰여 있는 스레드 안전에 대한 제 생각
저도 직전 강의에서 "이 hashCode() 메서드는 굳이 멀티 스레드를 걱정하지 않아도 될 것 같은데?" 라고 생각하면서 좀 자세히 보고 생각해 보게 되었습니다. 책에서 해시를 캐싱할 때 지연 초기화를 하려면 스레드 안전하게 만들도록 신경 써야 한다고 쓰여져 있기에 이 문장에 대한 제 생각을 공유하고자 글 남깁니다! 기선님께서도 말씀하셨듯이 강의 초반에 나오는 hashCode() 메서드는 여러 스레드가 동시에 계산을 하더라도 문제는 없어 보입니다. result라는 로컬 변수에 계산을 하기 때문이죠(로컬 변수는 스레드마다 고유하므로). 계산 결과에는 문제가 없으나, 계산을 동시에 한다는 점에 고민을 해보게 되었습니다. 책에서 설명하는 해시를 캐싱하는 전제조건은 불변 객체이면서 해시코드를 계산하는 비용이 클 때입니다. 즉, 불변 객체이기에 해시 코드를 여러 번 계산할 필요가 없고 처음 한 번만 계산한 후 계속 가져다 사용하는 방식인거죠. 스레드에 안전하지 않게 설계하면 여러 스레드가 동시에 해당 인스턴스의 해시를 계산할 수 있기에(크게 문제가 되지 않다고 생각할 수 있으나 해시코드를 계산하는 비용이 크다고 가정했으므로 중복 계산은 성능 저하로 이어진다고 생각합니다) 스레드 안전에 신경 써야 한다고 쓴 것 같습니다. 그러나 역시 결과에는 문제가 없기에 책에서도 "반드시 스레드에 안전해야 한다!"가 아닌 "스레드 안전하게 만들도록 신경 써야 한다"라고 기술되어 있는 것이라고 생각합니다.