묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
헥사고날 아키텍처에서의 배치, 시큐리티, 비동기 이벤트 처리는 어떻게 하나요?
안녕하세요, 이번 강의를 통해 처음으로 DDD와 헥사고날 아키텍처에 대해서 공부하고 있는 사람입니다. 헥사고날 아키텍쳐를 지키면서 배치, 시큐리티, 이벤트 처리 등등 다양한 기술을 어떻게 사용하나요?제가 공부해본 바로는1. 배치: 애플리케이션 계층에 배치를 통해 이루어질 api를 만들어두고, 어댑터 계층엔 배치(Job, Step, Writer, Reader등 )에 관한 설정들을 위치하게 한다.2. 시큐리티: 전부 어댑터에 위치한다. 이벤트 처리: 이벤트는 도메인으로 간주하고 도메인 계층에 위치시키고, 이벤트 리스너는 어댑터 계층에 위치시킨다. 이벤트를 발행시키는 로직은 애플리케이션 계층에 위치하고, ApplicationEventPublisher 같은 경우는 추상화됐다고 판단하고 그냥 사용하거나, 혹은 인터페이스를 따로 만들어서 사용한다.이정도인데 큰 흐름에서 제가 이해한 게 맞을까요? 특히 궁금한 건 "이벤트가 도메인으로 간주되어도 문제가 없는지" 입니다.(무조건 도메인이기 보다는 로직을 처리하기 위해 존재하는 dto로 볼 수도 있는 거 아닌가 싶어서요.)다른 기술들을 헥사고날 아키텍쳐에 적용시킬 때 주의할만한 사항들도 따로 존재를 할까요?
-
미해결스프링 핵심 원리 - 고급편
어드바이스 순서 디폴트 기준이 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.@Aspect 에서 @Order 를 따로 지정하지 않은 디폴트 기준으로, 로그/트랜잭션 선언 순서를 반대로 해도 로그가 먼저 찍히던데,디폴트 기준이 궁금합니다.포인트컷의 기준이 더 광범위한게 먼저 실행되는 느낌인데 이게 맞을까요?
-
미해결스프링 핵심 원리 - 고급편
AspectV1 예제를 @Configuration 수동 등록으로도 가능한가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 아래처럼 작성을 해서 돌려보니OrderRepository, OrderService 가프록시가 아닌, 실제 클래스 자체가 등록되는 것 같던데, 현재 예제에서 수동 빈 등록은 안되는걸까요??? @Slf4j @SpringBootTest public class AppTest { private final OrderService orderService; private final OrderRepository orderRepository; @Autowired public AppTest(OrderService orderService, OrderRepository orderRepository) { this.orderService = orderService; this.orderRepository = orderRepository; } @Test void aopInfo() { log.info("isAopProxy, orderService = {}", AopUtils.isAopProxy(orderService)); log.info("isAopProxy, orderRepository = {}", AopUtils.isAopProxy(orderRepository)); } @Test void success() { orderService.orderItem("itemA"); } @Test void exception() { Assertions.assertThatThrownBy(() -> orderService.orderItem("ex")) .isInstanceOf(IllegalStateException.class); } @Configuration static class AopTestConfig { @Bean public OrderRepository orderRepository() { return new OrderRepository(); } @Bean public OrderService orderService() { return new OrderService(orderRepository()); } @Bean public AspectV1 aspectV1() { return new AspectV1(); } } }
-
미해결스프링 핵심 원리 - 기본편
MemberService의 인터페이스를 왜 사용하는지 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]서비스는 복잡한 규칙(비즈니스 로직)을 계산하고 판단 한다고 생각되는데 왜 이건 역할과 구현체를 나눌까요?지금까지 설명으로 봤을때 다형성의 의미는 사실 저장소에 국한되서 설명이되고 있는것 같아서요.저장소 자체는 외부랑 소통하는 통로로써 db일지 다른 외부 시스템 연동일지에 따라 어떤 구현체를 사용할지 모르니 사용한다고 쳐도 서비스 비즈니스 계층에서는 로직을 변경하는거지 어떤 다른 구현체가 있지는 않아서 굳이 분리하는 이유가 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품 등록후 H2 db 출력 순서 바꿀 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 영상에선 정렬되서 나오는데 제 DB에서는 price부터 나오네요 코드 에러는 없고 넣으면 들어가는데 보기좋게 정렬되게 만들고 싶은데 어떻게 해야할까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]현재 최신 버전인 SpringBoot4 + Hibernate7 을 사용해서 강의를 듣고 있습니다.이 버전에서는 (Hibernate 모듈 등록 X + 프록시 직접 초기화 X] 상태에서 API 응답으로 엔티티를 곧바로 반환하게 되면, 강의 내용처럼 오류(예외)가 나지 않고, Jackson이 json을 만드는 과정에서 getter 등을 호출해서 프록시 객체들을 자동으로 초기화(로딩)시키는 것처럼 보이네요. 응답 결과에서도 모두 출력되고요(물론, @JsonIgnore 없으면 무한루프는 발생)그래서 강의 내용처럼 오류가 나도록 하는 방법을 한참 찾다가 현재 버전에서 Hibernate 모듈을 등록하는 방법을 발견해서 공유해봅니다. (메뉴얼에도 없길래) [등록 방법]1. 라이브러리 등록implementation 'tools.jackson.datatype:jackson-datatype-hibernate7'2. 빈 등록 @Bean public Hibernate7Module hibernate7Module() { Hibernate7Module module = new Hibernate7Module(); // module.configure(Hibernate7Module.Feature.FORCE_LAZY_LOADING, true); return module;}
-
미해결실전! 스프링 데이터 JPA
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.=============================안녕하세요.Spring Data JPA에서 연관관계 필드에 대한 exists 메서드 사용 시, 아래 두 방식 중 어떤 방식이 더 적절한지 궁금합니다.ProjectMember 엔티티는 아래처럼 Project, User와 연관되어 있습니다.public class ProjectMember { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "project_id", nullable = false) private Project project; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false) private User user; }사용자가 특정 프로젝트에 포함되어 있는지 확인하려고 할 때, 아래 두 가지 방식을 테스트해봤습니다.1. 식별자 사용: boolean existsByUserIdAndProjectId(Long userId, Long projectId)단점:이 메서드를 실행하면, project_members 테이블에 user_id, project_id FK가 있음에도 불구하고 users, projects 테이블과 불필요한 left join이 발생했습니다.실행 SQL:select pm1_0.idfrom project_members pm1_0left join users u1_0 on u1_0.id = pm1_0.user_idleft join projects p1_0 on p1_0.id = pm1_0.project_idwhere u1_0.id = ? and p1_0.id = ?fetch first ? rows only; 2. 엔티티 사용: boolean existsByUserAndProject(User user, Project project)장점:이 경우에는 조인 없이 where 절에서 FK 컬럼으로 조회되었습니다.단점:하지만, 이 메서드를 사용하려면 서비스에서 userId, projectId 를 이용하여 User와 Project를 추가로 조회해야 한다는 단점이 있습니다.실행 SQL:select pm1_0.idfrom project_members pm1_0where pm1_0.user_id = ? and pm1_0.project_id = ?fetch first ? rows only;결론: 이 경우 두 방식 중 어떤 것을 사용하는 것이 더 좋은 선택인가요?
-
미해결실전! 스프링 데이터 JPA
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.==============================안녕하세요.Spring Data JPA에서 연관관계 필드에 대한 exists 메서드 사용 시, 아래 두 방식 중 어떤 방식이 더 적절한지 궁금합니다.ProjectMember 엔티티는 아래처럼 Project, User와 연관되어 있습니다.public class ProjectMember { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "project_id", nullable = false) private Project project; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false) private User user; }사용자가 특정 프로젝트에 포함되어 있는지 확인하려고 할 때, 아래 두 가지 방식을 테스트해봤습니다.1. 식별자 사용: boolean existsByUserIdAndProjectId(Long userId, Long projectId)단점:이 메서드를 실행하면, project_members 테이블에 user_id, project_id FK가 있음에도 불구하고 users, projects 테이블과 불필요한 left join이 발생했습니다.실행 SQL:select pm1_0.idfrom project_members pm1_0left join users u1_0 on u1_0.id = pm1_0.user_idleft join projects p1_0 on p1_0.id = pm1_0.project_idwhere u1_0.id = ? and p1_0.id = ?fetch first ? rows only; 2. 엔티티 사용: boolean existsByUserAndProject(User user, Project project)장점:이 경우에는 조인 없이 where 절에서 FK 컬럼으로 조회되었습니다.단점:하지만, 이 메서드를 사용하려면 서비스에서 userId, projectId 를 이용하여 User와 Project를 추가로 조회해야 한다는 단점이 있습니다.실행 SQL:select pm1_0.idfrom project_members pm1_0where pm1_0.user_id = ? and pm1_0.project_id = ?fetch first ? rows only;결론: 이 경우 두 방식 중 어떤 것을 사용하는 것이 더 좋은 선택인가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp 의존성 수정 요청
spring 부트 4버전으로 올라오면서 jsp 의존성이 적용 안되던데 문서 수정이 필요할 것 같습니다!
-
미해결6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
외부 api 처리 방안에 대하여 궁금한 점이 있습니다.
수업 예시에서는 외부 api가 실패할 경우 스케쥴러를 활용해서 후보정 로직을 통하여 결과적 일관성을 맞추고 있습니다. 만약에 자리를 지정하는 콘서트를 위와 같이 처리할 경우 (예약은 성공, 외부 api는 실패), 후보정 로직이 동작하기 전 다른 예약 시스템에서 해당 자리를 예약한 경우 더욱 큰 문제가 발생할 수 있을 것으로 보입니다. 이러한 경우 (좌석처럼 한정된 자원을 예약하는 경우), 외부 API 실패 시 후보정 로직을 통한 비동기 처리 대신 동기적으로 처리하는 것이 올바른 방식인 것 같은데, 강사님은 어떻게 생각하시는지 궁금합니다!
-
해결됨실시간 채팅 서버 구축: 분산 처리부터 성능 최적화까지
service 를 interface 로 두는 이유
안녕하세요 강사님.서비스 계층을 설계할 때 인터페이스를 두고 구현체를 만드는 패턴을 사용하는 이유가 궁금합니다.현재 프로젝트에서는 구현체가 하나뿐인데, 이런 상황에서도 인터페이스를 분리하는 것이 가지는 실질적인 이점이 무엇인지 알고 싶습니다.특히 구현이 하나로 고정되어 있다면, 바로 구현 클래스를 빈으로 등록해도 되지 않을지 고민이 되었는데요.설계 관점에서 인터페이스를 미리 분리해두는 이유와, 실무에서 어떤 장점이 있는지 설명해주시면 감사하겠습니다
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
어댑터에서 도메인에 직접 의존하는 경우에 대해
안녕하세요.좋은 강의 잘듣고 많이 배우고 있습니다. 좋은 강의 만들어주셔서 감사합니다.다름이 아니라, 어댑터에서 엔티티에 의존성을 가지는 것이 크게 문제되지 않는다고 말씀주신 내용에 의문이 있어 질문드립니다! 어댑터에서 도메인에 직접 의존하는 것을 막기 위해서 변환 역할을 하는 매퍼 클래스나 DTO에서 엔티티를 자기 자신으로 변환하는 로직을 가지는 것은 어떨까요? 타이트하게 룰을 잡는 케이스를 가정한다면, application layer 내부에 port가 존재할 것이고 이 port에서 return 하는 dto도 application layer일 것이고, 이 dto 안에서 Entity를 받아서 자기 자신으로 변환하는 로직을 가진다면 entity가 application 밖으로 나가지 않을 수 있지 않을까요?(controller, repository 등 마찬가지입니다)그리고 dto를 application에서 변환하는 것이 로직의 침투라고 표현하시기도 했는데, 그렇다면 provided port 역시 어댑터의 요구가 침투하는 구조라고 볼 수도 있을 것 같기도 합니다..(생각해보니 이상적으로는 계층별로 DTO를 생성하는게 맞다고 생각은 들지만, "엔티티를 반환하는 트레이드오프가 굉장히 효율적이고 정당하다"라고 말씀하신 것 같다고도 생각이 듭니다) 강의에서 항상 기술이 등장한 배경과 사상을 이해하고, 이를 바탕으로 정당하게 규칙을 스스로 정하는 것을 강조하시는 것 같습니다. 그래서 강의에서 말씀하신 내용이 비슷한 맥락으로, "절대 노출되면 안된다"라는 것에 대한 반박이라고 받아들여지긴 합니다만.. 그래도 바깥쪽으로 노출하지 않는 것이 의존성 관리 차원에서 더 좋지 않을까하는 생각에 질문드립니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
43강 검증1 에서 실패 로직 관련 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]43강의 14분15초를 보면 기존 addForm에서 item의 빈 값을 넘긴 이유 중 하나가 검증에 실패했을 때 입력한 값을 재사용 할 수 있어서라고 말씀하셨는데 model.addAttribute("item", new Item());이 라인 주석하고 페이지에서 테스트 해봐도 검증에 실패했을 때 입력한 값이 그대로 남아있습니다.제가 강사님 말한 내용을 잘못 이해하고 테스트 한건지 궁금합니다.
-
미해결스프링 핵심 원리 - 고급편
구체 클래스를 상속받아 확장한 형태도 클래스패턴/데코레이터 패턴이라고 칭하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이렇게 상속을 통해 확장하여 구현하는 형태도 프록시 패턴/데코레이터 패턴이라고 같이 칭하는 걸까요?!
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
Member 도메인이 PasswordEncoder를 받는 구조 질문 있습니다.
예제에서는 도메인에 별도 PasswordEncoder 인터페이스를 정의해 사용하고 있습니다. 만약에, Member 도메인이 Spring Security의 PasswordEncoder 인터페이스를 직접 의존한다면, 구현체가 아니라 인터페이스를 참조하더라도 순수 도메인 설계 관점에서 위반으로 봐야 할까요? 저는 인터페이스 의존이라 괜찮을 수 있다고 생각했지만 AI는도메인에서는 자체 PasswordEncoder 포트만 사용하고, Spring Security PasswordEncoder는 인프라 어댑터에서 위임하는 것이 좋다.고 제안했습니다. 토비님은 어느 쪽이 더 적절하다고 보시는지, 판단 기준도 함께 듣고 싶습니다.
-
미해결6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
네임드 락 사용 시 커넥션 풀을 분리하는 방법에 대한 질문
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 4-10 2. 어려움을 겪는 부분강의 끝 부분에서 네임드 락을 위한 커넥션과 일반 트랜잭션을 처리하는 커넥션을 분리시켜서 중요한 트랜잭션 처리에 영향을 주지 않는 방법을 말씀해주셨습니다.제가 기술면접을 보면서 서킷 브레이커라는 내용을 접하게 되었는데, 이 부분이 해당 내용과 연관이 있는건지 궁금합니다.정확히는 외부 API의 호출 지연으로 인해 스레드 풀이 고갈되는 상황에서 어떻게 설계할 것인지에 대한 질문이었고, 이 과정에서 예시 키워드로 서킷 브레이커 Bulk Head가 있었습니다.또한, 실제 실무 환경에서는 커넥션 풀을 분리하기 위해 어떤 방법들을 사용하는지 궁금합니다! Q&A로 설명이 어렵다면, 키워드라도 알고 싶습니다.
-
미해결스프링 핵심 원리 - 고급편
TraceTemplate 을 미리 빈으로 등록해서 사용할때 이렇게 설정하는게 맞는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 아래처럼 등록해서 의존성 주입하면문제없이 실행 되는것 같은데, 미리 빈으로 등록해서 의존성 주입하라는게 이렇게 코드를 작성하라는 말씀이셨던게 맞을까요?!@Configuration public class LogTraceConfig { @Bean public TraceTemplate traceTemplate() { return new TraceTemplate(threadLocalLogTrace()); } @Bean public ThreadLocalLogTrace threadLocalLogTrace() { return new ThreadLocalLogTrace(); } }
-
미해결[2탄] 옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트
터미널에서 sql작성은 도커라서 그런거죠? 도커 안쓰는데..ㅜ
도커안하고 일반적으로 mysql이나 데이터베이스에서 사용하는거 올려주실순없나여ㅜㅜ이미다 찍으셨겠지만..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Unused property.....
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요왜 자꾸 Unused property 가 뜰까요?.... Gradle 업로드 해도 계속이러네요ㅠㅠ 제미나이와 몇시간을 여러방법을 썼는데 실패해서 처음 질문드려요.....
-
해결됨카카오 면접관과 함께하는 워크플로우 기반의 대용량 트래픽 처리 기법
이벤트 발행이 불필요한 것은 어떻게 구분하나요?
Debezium이 데이터베이스 트랜잭션 로그(binlog, WAL 등)를 읽어서 변경사항을 Kafka로 발행한다는 것은 이해했습니다. 그런데 혼란스러운 부분이.... 일반적인 CRUD API 요청도 결국 DB에 변경을 가하는데, Debezium이 이를 어떻게 구분하는지 궁금합니다. 예를 들어주문 생성 API → DB INSERT → 이건 CDC 이벤트로 발행해야 함 사용자 세션 저장 API → DB INSERT → 이건 CDC 불필요 이런 경우에는 어떻게 구분되나요?