XxxRequest / XxxResponse 클래스를 controller 패키지 하위가 아닌 Service 패키지 하위에 두신 이유가 궁금합니다. 의존성 방향을 Controller부터 단방향을 유지하기 위해 하신것으로 유추 하는 바입니다. 하지만 XxxRequest / XxxResponse가 service 패키지 클래스에 있는게 조금 어색해 보여서요. 저는 controller 하위 패키지에 requeset / response를 두고 facade 혹은 service에 클래스로 묶어서 넘길경우 에는는 domain 계층에 만든 dto를 생성해서 넘깁니다. 제가 생각한게 맞는지 답변 부탁드립니다~ (강의 최고입니다. 저만 듣고 싶어요 흙흙)
안녕하세요 처음으로 문의 남깁니다. 이전부터 궁금증을 가지고 있었는데 강의하시는 분마다, 그리고 구글에서 찾아본 글마다 초기화의 시점에 대한 말이 달라 혼돈이 있어 질문을 드리게 됐습니다. 변수엔 선언, 초기화, 할당 이렇게 3단계의 과정이 있다는 걸 들었습니다. let age; age = 27; 위를 예시로 했을 때 선생님께선 age = 27; 시점을 초기화 시점이라고 알려주셨고, 또 다른 곳에선 let age;를 선언한 시점, 즉 JavaScript가 내부적으로 undefined 를 할당하는 순간을 초기화라고 볼 수 있다고 들은 적이 있습니다. 정확히 어느 시점에 초기화가 되는지 궁금하여 질문을 드립니다. 감사합니다.
안녕하세요 강사님. 강의 마지막에 API서브모듈에서 직접 MySQL로 여러 쓰레드가 JPA save를 통해 INSERT하는 과부하가 발생하던 것을 카프카를 통해서 처리량을 조절할 수 있다고 말씀하셨습니다. 카프카를 사용하는 것만으로도 처리량이 조절된다는 뜻이 잘 이해가 가지 않습니다. 특히 컨슈머서브모듈에서 보여지는 로그를 확인해보면 여전히 단 건으로 SQL들이 전송되는 것을 확인할 수 있었는데요. 배치방식으로 여러 SQL을 한데 모아 한번에 SQL횟수를 줄여주는 것을 기대했으나 그렇지 않아 어떤 원리로 처리량이 줄어드는 것인지 이해를 못했습니다ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의를 보다가 문득 궁금해서 질문드려요. 네트워크 강의 코드를 작성할 때, 하나의 프로젝트 폴더에 Server, Client 코드를 작성해서 각각 실행시키는데요. 만약, 이 프로그램을 배포한다고 가정하면 Server.jar 파일과 Client.jar 파일를 각각 만들고 고객한테는 Client.jar 파일만 배포하면 되는거겠죠? Client.jar 파일에는 Client 코드만 있으면 되고 Server.jar 에는 Session, SessionManager, Server 코드를 포함하고 있으면 될 것 같은데..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. spring mvc1편에서 스프링부트 설치한적이 있는데 또 해야하나요? 설치할때 artifact name부분이 다르긴 합니다 mvc1편에서는 artifact, name이 servlet이였고 입문에서는 hello-spring이고 packagename도 다르네요 새로 설치해야할까요?
src/app/(with-searchbar)/search/page.tsx Type error: Type 'Props' does not satisfy the constraint 'PageProps'. Types of property 'searchParams' are incompatible. Type '{ q?: string | undefined; }' is missing the following properties from type 'Promise<any>': then, catch, finally, [Symbol.toStringTag] vercel 명령어 사용시 build문제에서 에러가 생겼다고 하면서 위와 같은 타입 에러가 나오네요 ㅠ 선생님께서 제공해주신 github에서 내용을 가져와 적용해보았으나 같은 에러가 나오게되어 질문드립니다.
안녕하세요 강의 너무 잘 듣고 있습니다. 수업을 듣다가 감정일기만들기에서 처음에 일기 내용을을 담는 data라는 것을 만들고 이걸 new, edit페이지 등에 전부 필요하니 전체 공급하기위해 context를 사용한다라고 이해를 하고 있는데 궁금한점이 나중에 혼자 코드를 작성을 할때에 state가 어느 컴포넌트에 필요해서 context를 사용하고 이런것은 어떻게 알 수 있을까요?
https://drive.google.com/file/d/1PBHzDQJ0Odvh2KWMa_BTOu3PZqHrMJkj/view?usp=drive_link MemberRepositoryTest를 실행하면 이렇게 됩니다. junit5로 하고 있는데 이런식으로 오류가 발생합니다. JPA와 DB 설정, 동작확인 13분경까지 들었습니다. JpashopApplication를 실행해도 오류가 발생하기 시작했습니다.
안녕하세요. 문제점 해결하기 강의에서 실습을 잘 진행했습니다. 실험을 하며 결과를 관측하던 중, @NoArgsConstructor(access = AccessLevel.PROTECTED) @RequiredArgsConstructor @Entity public class Coupon { @Id @GeneratedValue private Long id; } 위와 같이 @GeneratedValue를 적용하면 로그패턴도 달라지고 성능이 급격하게 나빠지더라고요 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) 로 지정하면 실습이 잘 진행됩니다. 왜 이런차이가 발생하는지 알 수 있을까요? strategy를 선택하지 않으면 AUTO이며 이는 mysql에서 IDENTITY를 선택한 것과 같게 나와야하는데 예상과 달라 질문드려봅니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. UserEffect 빈 배열 사용하면 처음 한번만 실행된다고 하는데 그러면 조건문으로 posts 체크해서 사용해도 되나요? 왠지 유저이펙트보다 이프문이 더 가벼울것 같아서 질문드립니다
junt4로 gradle에서 설정하려고 하면 오류가 발생해서 juit5로 하는 중입니다. MemberRepositoryTest를 junit5버전으로 고쳐서 아래의 코드로 실행했는데 오류가 나고 있습니다 import jpabook.jpashop.Member; import jpabook.jpashop.MemberRepository; //import jpabook.jpashop.domain.Member; //import jpabook.jpashop.repository.MemberRepository; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; @ExtendWith(SpringExtension.class) // JUnit 5 방식 @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() { Member member = new Member(); member.setUsername("memberA"); Long savedId = memberRepository.save (member); Member findMember = memberRepository.find(savedId); Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); // JPA 엔티티 동일성 보장 } } 밑에는 오류입니다. Unable to find a @SpringBootConfiguration by searching packages upwards from the test. You can use @ContextConfiguration, @SpringBootTest(classes=...) or other Spring Test supported mechanisms to explicitly declare the configuration classes to load. Classes annotated with @TestConfiguration are not considered. java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration by searching packages upwards from the test. You can use @ContextConfiguration, @SpringBootTest(classes=...) or other Spring Test supported mechanisms to explicitly declare the configuration classes to load. Classes annotated with @TestConfiguration are not considered. at org.springframework.util.Assert.state(Assert.java:79) 1. @SpringBootTest(classes=...) 로 명시적으로 설정 클래스 지정 2. @SpringBootApplication 이 있는 클래스의 위치 확인 3. @ContextConfiguration 을 사용해서 명시적으로 설정 클래스 지정 이세가지를 시도해도 안되고 있습니다. 아니면 juni4룰 사용해야만 할까요? build.gradle에 JUnit4 추가 testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } 를 하면 Build file 'C:\Users\Peter\Desktop\study\jpashop\build.gradle' line: 45 A problem occurred evaluating root project 'jpashop'. > Could not find method testImplementation() for arguments [org.junit.vintage:junit-vintage-engine, build_55eer8btj8rd1l6xp0yqapa0y$_run_closure6@6e20627f] on root project 'jpashop' of type org.gradle.api.Project. 라고 나옵니다.
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-02-13T00:15:43.156+09:00 ERROR 7780 --- [ main] o.s.boot.SpringApplication : Application run failed Error creating bean with name 'entityManagerFactory' 이런 오류가 뜹니다 쿼리가 안 만들어져요 이오류 때문에 ㅜ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? [질문 내용] PPT 양방향 매핑에서 테이블연관관계를 나타낼때 TEAM의 PK가 MEMBER의 FK 로 존재한다면 실선이 아닌 점선으로 표현되어야 하는 것 아닌가요 ? MEMBER의 경우 TEAM_ID가 PK가 아니니까 null을 허용할 수 있으니 팀이 없는 경우가 존재할 테니까 멤버가 팀을 가지고 있는 것은 선택적인 관계로 점선으로 표현해야하는 것이 아닌가 싶습니다
한입 크기로 잘라 먹는 리액트 의 가장 마지막 강의인 12.19) 배포하기에서 터미널에 vercel 명령어를 입력하여 배포를 완료했습니다. 그런데 배포 완료 후, 뱉어준 링크로 이동시 에러가 발생합니다. 검색해 보았는데, 제가 지식이 얕아 키워드 찾기에 한계가 있는지 이렇다할 해결 방법을 찾지 못했습니다. 어떻게 해결 할 수 있을까요? 사용 Vercel CLI 버전은 41.1.0 입니다.