안녕하세요. ApiControllerAdvice에서 하나의 Handler 메서드에서 아래 2개 Exeception 타입을 처리하시도록 변경하셨는데요. - DuplicateEmailException - DuplicateProfileException 이렇게 할 경우, 아래와 같이 두 Exception의 공통 타입인 RuntimeException 객체로 파라미터를 받아야 하는거 아닐까요? @ExceptionHandler({DuplicateEmailException.class, DuplicateProfileException.class}) public ProblemDetail duplicateExceptionHandler(RuntimeException e) { return getProblemDetail(HttpStatus.CONFLICT, e); } 감사합니다.
안녕하세요. Member와 MemberDetail의 연관관계 주인이 바뀐게 아닌가 싶습니다. 비록 1:1 관계이고, 두 객체 인스턴스가 동시에 생성되고 테이블에 영속화 되게끔 설정된 거는 맞지만, 논리적으로 Member 엔터티가 상위 엔터티이고, MemberDetail이 하위 엔터티가 맞는 것 같아요. 추후 Member 엔터티를 참조하는 다른 엔터티가 만들어질텐데, MemberDetail을 참조하는게 아니라 Member를 참조해야 하고요. 관련한 의견 부탁 드립니다. 감사합니다.
안녕하세요. 도메인 영역에 @Entity, @Query 애너테이션을 사용하는게 문제가 없다는 내용과 이유를 강의에서도, 질문&답변에서도 잘 설명해 주셨고, 모두 확인했습니다. 동일한 이유로, 강의에서 DuplicateEmailException에 @ResponseStatus 애너테이션 사용 시, 의존성 문제에 대해서 언급한 부분도, JPA 애너테이션을 사용할 수 있다는 동일한 근거로 허용되어도 문제가 없는게 아닐까요? 물론, @ResponseStatus 사용 시에 상태 코드 외에 추가적인 메시지 설정이 불가능하다는 등 단점이 있어서 사용하지는 않겠지만요. 그저 기술 의존성 침투 관점에서 궁금해서 문의 드립니다. 감사합니다.
직장을 다니면서 틈틈히 1일 10분이라도 강의 듣고 코딩 연습을 할려고 노력하다 보니 완강이 되었습니다. 고급편과 스프링 입문도 같이 하면서 백엔드 개발도 할 수 있는 시간을 기대합니다. 자료구조는 좀 재미(?)가 없었지만 나중에 필요한 내용이므로 잊어버리지 않고 기억하도록 하겠습니다. 좋은 강의 감사합니다.
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
안녕하세요. 김영한 선생님! 자바에서부터 DB 까지 정말 훌륭한 과목들을 개설해주셔서 정말 감사합니다. 저는 학교에서 배우는 DB 예습용으로 배우고 싶은 마음이 큰데, 영한 선생님께서 입문편, 기본편에서 다루는 내용들이 아래에 있는 내용들을 상당 부분 커버가 가능한지 여쭤보고 싶습니다. 바쁘실텐데 시간내어 댓글을 작성해주셔서 감사드려요. 데이터베이스의 기초 및 관계형 데이터베이스 (Foundational concepts) 데이터베이스 시스템이 무엇인지, 데이터베이스를 효과적으로 설계하는 방법 데이터 모델, 관계형 모델, 관계형 데이터베이스 및 애플리케이션, 스키마, 정규화 등 엔티티-관계 모델링 (Entity-Relationship Modeling) 관계형 데이터베이스의 논리적 설계 (Logical design) 관계형 대수 (Relational Algebra) 데이터베이스 보안 데이터베이스 관리 시스템의 아키텍처 및 구현 (Database management system architecture and implementation) 데이터베이스 관리 시스템의 소프트웨어 아키텍처, 알고리즘 및 구현 기술 메모리 계층, 저장 시스템, 캐싱/버퍼 풀, 인덱스, 쿼리 처리, 쿼리 최적화 트랜잭션 처리, 격리 및 동시성 제어 데이터베이스 질의 및 애플리케이션 개발 데이터베이스를 쿼리하는 방법 (SQL) 데이터베이스 애플리케이션을 개발하는 방법 쿼리 최적화 및 트랜잭션 처리 개요 다양한 데이터베이스 유형 및 데이터 처리 (NoSQL – “Not Only SQL” databases & Data Enabled Decision Support) NoSQL 데이터베이스 : "NoSQL" 데이터 모델과 데이터베이스의 필요성, 예시 및 사용 사례 클라우드 데이터베이스 및 DaaS (Databases-as-a-service) 데이터 기반 의사결정 지원 : 데이터 웨어하우스, 데이터 가져오기 및 정제 (data import and cleanse), OLAP, 피벗 테이블, 스타 스키마, 보고 및 시각화 클러스터링, 분류, 분석, 마이닝 등 분석 기법 개요
비식별자 관계, 약한 식별자 관계, 강한 식별자 관계의 개념이 헷갈려서 질문드려요ㅠㅠ 비식별자와 식별자의 차이는 이해가 가는데.. 약한/강한은 어떻게 구분 하면 좋을까요? 그리고 예를 들어서 ex) 주문 상세 엔터티는 강한 식별자 관계로 구성되어있다. -> 이 말은 주문상세 엔터티의 기본키 중 하나라도 부모엔터티의 PK를 상속받아 사용하는 관계면 강한 식별자라고 하면 되는걸까요?
[질문 내용] 저는 FK에서 PK로 조인하고 id로 찾았는데, PK에서 FK를 조인한 후 name으로 찾는 것과의 차이를 모르겠습니다. 자식 입장에서는 PK가 하나이기 때문에 한 행이고, 부모에서 FK를 볼 땐 여러 개일 수도 있으니 여러 행일 수 있다는 것은 이해했지만 이 경우에는 어떤 차이점이 있는지, 안좋은 방식인지, 틀린 건지 궁금합니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
생성자에서 필드에 의존성 주입하면 예를 들어 컨트롤러 생성자를 만들때 서비스 필드에 의존성 주입해주면 그때는 @Autowired가 자동으로 존재한다고 했는데 이 @Autowired 는 생성자의 파라미터를 전부 빈으로 등록시켜주는건가요? 만약 그렇다고 한다면 생성자의 파라미터가 객체가 아닌 경우는 어떻게 되는건가요? 혹시 객체 타입 파라미터만 빈으로 등록시켜주고 객체가 아닌 파라미터는 빈으로 등록시켜주지 않나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] [SpringBoot 3.x] ```java plugins { id 'java' id 'org.springframework.boot' version '3.5.4' id 'io.spring.dependency-management' version '1.1.7' } group = 'study' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' runtimeOnly 'com.h2database:h2' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' //Querydsl 추가 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() } clean { delete file('src/main/generated') } ``` 강의파일에 있는 그대로 build.gradle 설정 완료후 compileJava를 진행하면 build/generated/sources/annotationProcessor/java/main/study/querydsl/entity/QHello.java 까지 생성이 됩니다. 하지만, build and run using : intellij Run tests using : intellij 로 변경하면 Q타입 인식이 안됩니다. 1. 버전 변경 진행 2. Annotation Processor enable 체크 확인 3. projectStructure -> modules -> build 부분 source 체크 진행 3가지 모든 과정을 진행해보았는데 동일했습니다. 이럴때는 Run as intellij 가 아닌 Gradle로 두어서 진행해야 할까요?
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요! DML-등록 강의 듣고 있는 중입니다. 선생님이 입력한시대로 동일하게 입력했는데, 첨부한 화면 보시면 이순신이 들어간 서울시 관악구에는 활성화가 되지 않아(?) 계속 오류가 뜹니다 무엇이 문제일까요ㅠㅠ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 해당 그림에서 왼쪽 박스는 new ElectricCar()를 호출했을 때 생성되는 참조값 x001으로 스택영역에 보관되는 electricCar = x001 인 것이고, 오른쪽의 박스는 x001을 참조값으로 가지는 객체의 메서드 (Car의 move()와 ElectricCar의 change())가 보관된 메서드 영역을 뜻하는 것인가요? (섹션10 상속 문제) Album album = new Album("앨범1", 15000, "seo")을 호출할 때, album = x001이라는 변수와 참조값이 스택영역에 저장됩니다. 이때 "앨범1" 즉 Strin name과 15000 즉 int price는 Album의 부모인 Item의 생성자 매개변수입니다. 최종적으로 힙 영역의 x001위치에 Album 객체가 생성되어 name = "앨범1", price = 15000, artist = "seo" 필드값이 들어있을 것입니다. 그렇다면 이때 이 필드값들이 위 그림의 오른쪽 박스처럼 x001 이라는 참조값을 가지는 하나의 Album 객체안에 Item("앨범1", 15000)과 Album(artist)로 각각 존재하는 것인가요? (하나의 객체이지만 그 안에 Item 파트와 Album 파트로 각각 존재하는 것인지) 결론적으로 힙 영역 객체가 Item의 필드2개와 Album의 필드1개를 모두 가지고 있는 단일 객체로 존재하는 것이고, 스택 영역에는 그 객체를 가리키는 참조값이 저장되는 구조가 맞는지 여쭤보고싶습니다.