묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
DataSource 구현체를 변경하는 일이 잦나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요!강의를 듣고 DataSource의 최대 장점이 추상화라고 이해했습니다.사용하는 입장에서는 구현부에 의존하지 않아도 된다는 것인데요.그런데 실무에서는 과연 DataSource 구현체를 갈아끼우는 일이 잦은지 궁금합니다.여러 후보군들 사이에서 HikariCP와 같은 커넥션 풀이 압도적으로 우세하다면, 커넥션 개수와 같은 DataSource 설정을 변경하는 일은 있을 수 있어도 DataSource 구현체 자체를 변경하는 일은 적지 않을까 생각이 들어서요!
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
트랜잭션 ACID 에 대한 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용]ACID 중 일관성에 대한 질문이 있습니다.자료를 보면 "데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야한다" 라고 작성되어 있는데요. name 컬럼을 가진 테이블이 있고 해당 컬럼은 null 값을 허용하지 않는다는 제약조건을 가진다고 가정하겠습니다. 트랜잭션이 진행되는 과정에서 name 이 null 로 변경되었다가 최종적으로 트랜잭션이 종료되기 전에 name 에 값이 채워진다면 이 부분도 일관성을 만족하지 못한다고 할 수 있을까요? 아니면 트랜잭션이 종료되는 시점에는 제약조건을 만족했으니 일관성을 만족한다고 보는걸까요? 만약 일관성을 만족하지 못하는 것이라면 해당 트랜잭션은 rollback 되나요?
-
미해결토비의 스프링 부트 - 이해와 원리
의존성 주입과 NullPointerException
안녕하세요, 토비님.강의를 수강하다가 문득 의문이 들어서 토비님 말씀을 듣고 싶어서 질문을 드립니다.의존성 주입을 생성자가 아닌 Setter나 필드 인젝션(변수 위에 @Autowired 붙이기)으로 하면, 1) 빈이 생성되는 시점이 아닌 런타임에 의존성 주입이 이루어지고, 2) 따라서 NullPointerException이 발생하는 경우가 생길 수 있을까요?예를 들어서 @RestControllerclass UserController { @Autowired UserService service;} 같은 코드가 있으면, 빌드할 때 UserController 빈이 만들어지고, service의 메소드를 사용하려는 시점에 의존성 주입이 이루어지게 되는 것일까요?따라서 이런 경우 NullPointerException이 발생할 수 있을까요?검색을 통해 찾아보아도, 어떤 내용이 정확한지도 불분명해서 질문을 드리게 되었습니다.혹시 추천해 주실 글이 있으신지요?읽어주셔서 감사드립니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
키워드 final에 대한 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]private final MemberRepositoryV1 memberRepository;위 코드에서 MemberRepositoryV1의 객체 memberRepository에final이라는 키워드를 사용하는 이유는 아래와 같다라고 이해하면 되나요?"final 키워드를 붙인 객체 memberRepository를 생성함으로써 MemberServiceV1의 클래스 내에선MemberRepositoryV1의 객체는 memberRepository가 유일하고, MemberRepositoryV1의 객체는 객체를 더 이상 생성할 수 없다."이렇게 이해했는데 옳게 이해한 것인지 모르겠습니다.설명 부탁드립니다.항상 친절한 답변 감사합니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
MemberServiceV1 @RequiredArgsConstructor 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님께서 코드에서@RequiredArgsConstructor은final이 붙거나 @NotNull이 붙은 필드의 생성자를 자동생성해주는 롬복 어노테이션이라고 알고 있습니다.근데, 이 코드에서 @RequiredArgsConstructor가 사용된 이유가 무엇인가요?private final memberRepositoryV1 memberRepository;를 사용하는 이유는 싱글톤으로 코드를 작성하기 위해(즉, memberRepositoryV1이라는 하나의 객체를 사용)이라고 이해하고 있습니다.혹시, @RequiredArgsConstructor를 사용한 이유가 싱글톤 코드를 작성하기 위한 것과 연관이 있는 것인가요?항상 친절한 답변 감사합니다.
-
미해결토비의 스프링 부트 - 이해와 원리
안녕하세요 강의 질문 드립니다
안녕하세요,프로버티 빈의 후처리기 도입 강의 내용 질문드립니다. 질문 :ServerPropeites에 @Component 자체가 없어도 되지 않나요??애초에 @Component 있어도 ComponentScan 대상이 아니라고 판단했습니다.. 패키지가 분리되어있다고 판단했습니다..아래 부분만 있어도 되는것 아닐까요? @Import(ServerProperties.class) public class TomcatWebServerConfig {
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
출력 로그 중 Pool stats가 출력되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강사님과 출력 로그를 동일하게 만들기 위해서 강의 자료에서 제시한 대로 설정을 마쳤습니다.근데 강사님의 출력 로그엔 Pool stats가 있는데 저는 그 부분이 출력되지 않습니다어떻게 출력할 수 있나요?항상 친절한 답변 감사합니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
[오타문의] 스프링 JdbcTemplate 예시
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예외를 확인하기가 편리하다. 인 것 같습니다! 감사합니다!
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
db1 - 스프링과 문제해결 예외처리,반복 강의 관련
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링 예외 추상화 이해 파트 부분 강의에서 스프링이 제공하는 예외 변환기 부분에서 test 코드 짜실때 DataSource dataSource;@BeforeEachvoid init(){ datasource = new DriverManager~();}이런 식으로 작성하셨는데 @BeforeEach 안쓰고 @Test 코드 작성하기 전에 테스트 클래스 상위에 DataSource dataSource = new DriverManager~();이런식으로 작성하는건 안되나요??
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
db1 - 트랜잭션 매니저 강의 관련 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]트랜잭션 매니저 관련 강의를 듣고 있는데요 예를 들어 private final PlatformTransactionManager transactionManager;이렇게 해서 트랜잭션 매니저를 주입받는다고 했는데 이 클래스가 빈으로 등록된것도 아닌데 어떻게 주입받는건가요??
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
커넥션 풀의 세션 처리
안녕하세요 강의 잘 듣고있습니다.커넥션 풀과 세션처리에 관해서 궁금증이 생겨 질문드립니다.커넥션이 맺어질때 클라이언트와 DB 간에 세션이 생성되고 커넥션이 종료되면 세션도 닫힌다고 이해했습니다. 그렇다면 커넥션을 닫는게 아닌 풀에 반환할때도 세션이 닫히나요? 만약 닫힌다면 어떻게 세션을 다시 열 수 있는건가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
h2의 JdbcConnection 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님 자료에서h2 커넥션은 JDBC 표준 커넥션 인터페이스인 java.sql.Connection 인터페이스를 구현하고있다.라고 나와있습니다.혹시,1.JDBC 표준 커넥션 인터페이스인 Connection 인터페이스가 존재한다.2.h2 Connection은 JDBC 표준 커넥션 인터페이스인 Connection 인터페이스를 상속 받아서 실질적인 기능을 구현한다.3.즉, h2 Connection은 JDBC 표준 커넥션 인터페이스인 Connection 인터페이스의 구현체이다.이런 순서로 이해하면 옳게 이해한 것이 맞나요? 항상 친절한 답변 감사합니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
JDBC와 API 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]JDBC는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. 라고 말씀하셨습니다.근데 API의 정확한 의미가 무엇인가요?API는 애플리케이션 프로그램 인터페이스로 누군가가 코딩을 쉽게 할 수 있도록 만들어 놓은 것이라고 이해하고 있습니다.예를 들어, 계산기 API를 만들어 놓으면 다른 사람들이 계산기 API를 가져와서 사용하면 계산기를 쉽게 구현하고 사용할 수 있는 것입니다.근데 데이터 API처럼 공공 데이터를 사용할 때, 데이터베이스처럼 인증 키를 받아서 데이터를 가져올 수 있는 것도 API라고 하던대 어떤 설명이 맞는건가요?2개다 옳은 설명인건가요?아니면 데이터 API란 "해당 데이터를 가져오는 기능"을 가진 API라는 의미로 이해하면 되나요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
DB1 - JDBC 개발 조회 강의 관련 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]jdbc 개발-조회 강의에서 MemberRepositoryV0Test 에서 findById 에서 isEqualTo()에서 결과가 참인 이유가 롬복의 @Data 가 equals()를 오버라이딩해서라고 하셨는데 롬복의 @Data 를 만약 안쓰면 isEqualTo() 값이 false가 되나요??@Data 안 써도 isEqualTo() 자체가 자바의 equals() 랑 비슷해서 참이 되어야 하는거 아닌가요??
-
해결됨토비의 스프링 부트 - 이해와 원리
PropertySourcesPlaceholderConfigure 등록
안녕하세요. 좋은 강의 잘 보고 있습니다.토비님이 저술하신 토비의 스프링 3.1의 내용을 보면 BeanFactoryPostProcessor를 구현한PropertySourcesPlaceholderConfigure를 Bean으로 등록할 때는 static 메소드를 통해 등록해야 한다고 봤었습니다.현재 보고 있는 스프링 부트 강의에서는 이를 일반 메소드로 등록하셔서 사용하시던데,스프링 부트에서는 static 메소드로 등록하지 않아도 문제가 없을까요?
-
미해결토비의 스프링 부트 - 이해와 원리
PropertySourcesPlaceholderConfigure에 대해 질문있습니다.
먼저 양질의 강의를 제공해주신 점에서 매우 감사하다는 말씀을 드리고 있습니다. 강의에서 /app란 값을 @Value로 주입을 해줬을때 ${contextPath}만 출력이 되는 부분에 질문이 있습니다. 제가 이해하기로는 커스텀 빈들이 먼저 주입이 되기 때문에 실제로 스프링부트의 인프라스트럭처 빈인 PropertySourcesPlaceholderConfigurer가 주입이 되지 않아 ${contextPath}가 나온다고 이해를 했습니다.제가 이해한게 맞다면 빈의 주입 순서에 따라 @Value의 값이 달라진다는 것인데, 만약 tobyspring.config.autoconfig.PropertyPlaceholderConfig 이 클래스가 tobyspring.config.autoconfig.TomcatWebServerConfig 이 클래스보다 더 늦게 주입이 된다면 여전히 ${contextPath}가 나오게 되는지 궁금합니다!또한 테스트를 한 번 해보고싶어서 계속해서 시도해봤지만 테스트 방법이 도저히 감이 오질않는데, 이럴 때는 어떻게 테스트를 하면 되는지 알 수 있을까요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
h2 실행
맥북 사용자 입니다.h2를 실행할 때 마다 터미널콘솔창에서 실행해야하나요?처음에 모드변경해주면 그다음부터는 파일에서 바로 실행해도 되나요??
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
mysql드라이버와 H2 드라이버는 다른건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. " 반면에 URL이 jdbc:h2 로 시작했는데 MySQL 드라이버가 먼저 실행되면 이 경우 본인이 처리할 수 없다는 결과를 반환하게 되고, 다음 드라이버에게 순서가 넘어간다."라고 강의 자료에 나와있습니다.이 부분이 잘 이해가 안됩니다URL이 JDBC:h2로 시작했는데 MySQL 드라이버가 먼저 실행되면이 무슨 의미인가요??H2도 DB의 한 종류이고 MySQL도 DB의 한 종류이므로코드에서 H2를 사용할지 MySQL을 사용할지 하나를 선택해서 코드를 작성하고 그 뒤에 작성된 코드에 따라 H2 드라이버나 MySQL 드라이버를 선택해서 실행되는것 아닌가요??
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
변수 연결이 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강사님을 똑같이 따라했는데위와 같은 오류가 발생합니다 왜 그런건가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
프로젝트 실행이 안돼요
너무 안되어서 게시판에있는 gradle-> intellij로 바꾸어실행하기 등등 다 해봤는데 해결되지가 않네요 ㅠㅠ