묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
아키텍쳐 선택의 순수한 질문드립니다.
안녕하세요 토비님! 순수한 궁금증이 생겨서 질문 드립니다!아키텍처마다 장단점이 있다고 생각합니다. 프로젝트의 규모나 확장성 여부에 따라 어울리는 아키텍처가 다를 것 같은데요, 토비님은 현업에서 어떤 기준을 가장 중점적으로 두고 아키텍처를 선택하시는지 궁금합니다!
-
미해결토비의 스프링 부트 - 이해와 원리
TestRestTemplate 을 통해 테스트 실행시 웹 요청 정보가 콘솔에 표시되지 않습니다.
안녕하세요 토비님테스트 코드를 이용한 테스트 강의 내용 중 helloApi를 테스트하기 위해 TestRestTemplate를 사용해서 테스트 코드를 작성하고 있는 부분을 진행하고 있습니다. 강의에서는 아래의 화면 같이 테스트 수행 시 TestRestTemplate 의 Http 요청과 응답에 대한 로그가 남는데, 제가 실행했을 때(2번째 사진)는 전혀 남지 않습니다.아래는 제가 직접 실행한 결과이고, junit5 을 통해 실행했을 때나, gradle 을 통해 테스트를 실행했을 때 둘다 강의와 같이 웹 요청/응답에 대한 로그가 남지 않습니다. 테스트는 성공적으로 수행되어서 요청은 제대로 전송되고 응답받는걸로 확인되고 있고, 어짜피 성공한 테스트니까 무시해도 좋겠지만 강의대로 콘솔에 로그가 안남으니까 조금 찝찝합니다,, 웹에서 검색을 해봐도 해결방법이 안나오네요 ㅜㅜ저는 스프링부트 3.5.6 버전, java 17을 쓰고 있고 Intellij는 Ultimate을 사용하고 있습니다. 강의와 달리 스프링부트 버전이 향상되면서 관련 로그가 남지 안도록 된 건지, 단순히 설정이 잘못되었을 수 있을지,, 질문드립니다. 감사합니다.
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
MessageConversionException 예외 타입
안녕 킬구형 형 때문에 이번 추석 연휴 재밌게 보내고 있어. 고마워 형. 강의를 보면서 예제 소스에 대한 궁금증이 생겨서 질문을 남겨. 6장. 작전4: 원격 청킹 (Remote Chunking) - 전방위적 타격이 시작되다. ☠ '데이터 변화 모듈(SerDes Classes)' 예제에서 예외 객체로 MessageConversionException을 사용하는데 클로드에서는 통상 Kafka를 사용할때는 org.apache.kafka.common.errors.SerializationException 을 사용해야 kafka와 호환이 된다고 하더라구. 이거에 대해 설명 부탁해도 될까?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
실무 예시가 궁금합니다.
형 아직 잘 이해가 안되서 그러는데, Job 안에서 Chunk 방식 Step과 Tasklet 방식 Step을 혼합해서 사용하는 실무 예시를 알려줄수 있어?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
sharding의 기준, shard key 사용에 대해
대부분 하나의 DB만을 사용하다보니 shard key가 고려되지 않은 테이블 설계를 보고 많이 사용했는데 처음부터 shard key는 고려하면서 설계를 하는것이 좋을까요?저같은 경우처럼 shard key가 고려되지 않은 테이블에서 샤딩을 하기위해서 shard key를 추가하는 작업은 어느정도의 난이도가 있을까요?강사님이 생각하시는 데이터베이스 샤딩을 위한 기준같은게 있으신지 궁금합니다.
-
미해결장애를 허용하는 견고한 시스템 만들기
안녕하세요. 타임아웃 시간에 관하여 질문있습니다.
제가 아직 신입이다 보니 타임아웃에 대하여 어떻게 테스트하고 어떻게 결정을 하지에 관하여 터득하지 못하여서실무에서는 어떤식으로사용하나 궁금합니다감사합니다
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
Spring Data JPA 사용 시 자동 주입 관련 질문
킬구형 Spring Data JPA 사용하면 JpaRepository 인터페이스를 사용해서 PlatformTransactionManager, DataSource를 자동으로 주입받아 사용할 수 있는데, 강의에서는 스프링배치의 세밀한 조정을 위해 일부러 JpaRepository를 사용하지 않는 거야?아래 두 강의에 둘 다 데이터소스와 트랜잭션매니저를 직접 활용하고 있어서 궁금해서 물어봐3장. 작전1: 관계형 데이터베이스 읽고 쓰기 (테이블의 심장에 처형장을 세우다 ☠)OPERATION DOUBLE TAP - Spring Batch Test(추가) 생각해보니 예전에 아주 간단한 로직의 스프링배치 앱을 JpaRepository, JPQL을 이용해서 만들었던 만들었던 기억이 있는데,, 혹시 JpaRepository을 일부러 사용하지 않는 이유가 있는지 궁금해
-
미해결Spring Boot TDD - 입문부터 실전까지 정확하게
현업에서도 현재와 같은 방식? 으로 TDD를 하는것이 일반적인가요??
강의를 들으며 제일 강조하시는게 "요구사항 충족" 이라고 생각했습니다. 처음부터 아키텍처를 정해놓지 않은 상태로 요구사항 충족을 목표로 달리는 형태로 설명해주셔서 TDD의 의미나 철학을 이해하는데 도움은 많이 됐습니다!궁금한 것은 현업에서도 새로운 프로젝트를 시작할때 이와 같은 방식으로, 아키텍처를 특별히 정해놓지 않고 개발하는것이 일반적인가요? 테스트 표면을 통해 아키텍처를 유연하게 변경 가능하다고 하신 말씀도 이해를 했는데 서비스 기획 및 설계 단계에서 서비스의 성격/특성에 맞추어 아키텍처정도는 어느정도 정하고 가는것도 괜찮지 않을까 생각하여 여쭤봅니다!!
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
자바 21로 소스 작성해도 되나요?
자바 17로 되어 있던데 자바 21로 소스 작성해도 되나요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
아키텍처 테스트에 대해 질문있습니다.
강의를 NestJS로 적용해 따라가고 있습니다. 마지막 “ArchUnit을 이용한 아키텍처 테스트” 파트에서 Node/NestJS 환경에서는 어떤 방식으로 아키텍처 규칙을 테스트/검증하는 것이 좋은지 궁금합니다.자바에서는 ArchUnit으로 레이어 규칙, 패키지 의존성, 순환 참조 등을 명시적으로 검사할 수 있는데, Node 진영에서는 유사한 도구로 무엇을 추천하실까요? 제가 찾은 것은 “ts-arch”였고, 폴더/슬라이스 의존성, 사이클 검사를 지원하는 것으로 보입니다. 적용을 하다가 실패를 했는데, 다른 방법이 있다면 조언 부탁드립니다. 😭😭😭
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
Part 2 강의는 언제쯤 나오는지 궁금해요
안녕하세요, 강의 정말 잘보았습니다!!Part1을 전부 보고 나니까 part2가 언제쯤 나올지 궁금해서 질문남깁니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
spring 개념적인 질문
스프링을 사용하는 이유 중 하나가 스프링 컨테이너를 통한 의존성 주입(DI)이라고 알고 있습니다.그러면 스프링 컨테이너가 Bean을 관리하기 때문에, 자동으로 싱글톤 패턴이 적용된다고 이해해도 될까요?
-
미해결장애를 허용하는 견고한 시스템 만들기
분산 시스템 인증/인가 관련 질문 ..
안녕하세요. 강의 잘 들었습니다.분산 시스템이 맞는지는 모르겠지만,, 다른 회사의 API들을 여러개 사용할때에 궁금증이 있어서 질문 드립니다.문제 상황은 아래와 같습니다.우리 쪽에서는 이미 사용자가 토큰 기반으로 인증된 상태이며,이 사용자의 요청을 대신해 외부(회사1, 회사2)의 API를 호출해야 하는 상황입니다.또한, 사용자가 버튼을 눌렀을 때 새 브라우저 창을 띄워 회사2의 웹 애플리케이션으로 이동해야 하는데,이때 로그인 과정을 생략하고 자동으로 접속(SSO) 되도록 만들고 싶습니다.질문 1⃣API 인증 전파 관련우리 서버가 회사1·2 서버로 요청을 보낼 때,상대 서버에서는 “이 요청이 실제 인증된 사용자로부터 온 것”임을 어떻게 검증하는 게 일반적인가요? 2⃣브라우저 SSO 관련새 탭을 열어 회사2 웹 서비스로 이동 시,재로그인 없이 자동으로 인증(Single Sign-On) 되게 하려면 어떤 방식이 많이 사용되나요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
CSR , SSR 의 수요 궁금증 질문
안녕하세요, 개인적으로 궁금한 게 있어서 질문드립니다.요즘 React Router를 보면 SSR 프로젝트를 위한 프레임워크가 나오는 등, 서버 사이드 렌더링 환경을 지원하는 방향으로 발전하고 있는 것 같더라고요.그래서 문득 궁금해졌는데,요즘 시장에서는 CSR방식의 수요가 많이 줄어드는 추세인가요?아니면 여전히 CSR 중심의 프로젝트도 많은 편인가요?현재는 CSR 기반으로 개발하고 있는데, 앞으로의 흐름을 생각하면 SSR 관련 기술도 공부해야 할지 고민 중입니다.현업에서 체감하시는 부분이나 조언을 듣고 싶습니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
도커 설치
윈도우 버전 이슈로 로컬에 도커를 설치 못하는 상황인데요 (예전에도 설치 이슈있어서 해결하려다가 실패) 혹시 해결 방법 알고 계실까요?해결이 어려우면 깃허브 코드스페이스에서도 실습이 가능한 내용일까요
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
예제 궁금증
실제로 실행을 못해보는환경이라서 질문하는건데,JobLauncher를 활용한 REST API 구현의 예제같은경우 컨트롤러 하나를 생략없이 다 표현한거같은데 jobRegistry 는 di받지않았는데 어떻게 실행하는거임?빼먹은건가? job = jobRegistry.getJob(jobName);
-
미해결장애를 허용하는 견고한 시스템 만들기
안녕하세요 주문처리에 관하여 질문있습니다 ㅠ ㅁ ㅜ
안녕하세요. 주문 처리에 관련해서 질문 있습니다!!고민하다가 질문드려요 ㅠ!중복 주문을 해결하기 위해 주문 생성 API , 주문 처리 API를 나누는걸로 이해하고 있습니다.만약 쇼핑몰에서 사용자가 주문을 할때 주문 생성 API를 요청하고 결제처리 (PG사) 성공하면 주문 처리 API(재고차감 등등) 를 하는걸로 알고 있습니다.하지만 주문 생성 API에서 수량을 검증한다고 하더라도 결제를 완료하고 주문 처리를 할때 다른 사용자에 의해서 재고가 부족할수 있는 상황이 있다고 생각합니다.이럴때는 실무에서 어떻게 해결하는지가 궁금합니다!!!!비동기적으로 보상해준다고 하면 뭔가 사용자입장에서 결제까지 했는데 재고가 부족해서 주문처리가 실패하여 환불까지된다?.... 이게 좀 비효율적이라 생각해서요!!답변 부탁드립니당실무에서는 어떻게 사용하나요 ! 궁금해요ㅠㅁㅠ
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
TransactionManager 분리
TransactionManager 분리에 대해서 이해가 잘 가지 않는게 있어. 실제 운영 환경에서는 배치와 비즈니스 데이터 DB를 분리하는게 필수라고 했잖아?근데 이 분리의 단위가 배치용 메타데이터 저장만 분리를 하는게 맞는거야? 현재 사이드 프로젝트에서 멀티모듈 구조에 (MSA는 아님) API 모듈과 배치 모듈을 따로 분리한 상태야.유저 데이터에서 생일을 뽑아서 내일 생일인 유저에게 FCM 을 발송하는 배치를 만드는데,이때 만들어준 예제처럼 @BatchDataSource와 비즈니스 로직용 @Primary DataSource를 분리하게 되면,API 모듈용 DB Connnection을 배치에서도 똑같이 갖다 쓰는거 아니야 ?? 즉, 배치에서 API 쪽 커넥션을 가져다 써서 배치가 돌 때 커넥션이 고갈날 수 있지 않을까? 라는 생각이 들었어지금 이해한 바로는 @BatchDataSource, @BatchTransactionManager를 분리하고 주입해줘도 Reader -> Processor -> Writer 에는 @Primary 걸 쓰는것 같은데 맞아 ?나는 DB 분리와 함께, 비즈니스 로직에 대한 커넥션, 트랜잭션도 배치용으로 분리하고 싶은데 이럴땐 어떻게 해야해?특히나 배치에서도 JpaTransactionManager를 쓰고 싶은 경우에는 어떻게 해야해 ?원하는 바는, API 처리용 DB 커넥션은 커넥션대로 있고, 배치 메타데이터용 커넥션 따로, 배치에서 라이브 DB에서 유저 데이터를 가져오는 커넥션 따로 구성하고 싶어 (배치가 API 모듈 에 영향을 주지 않았으면 해서,,,) 혹시 내가 강의를 제대로 이해를 못한거라면 알려줘
-
미해결개발자에게 필요한 로그 관리
kibana > dicover 화면이 다르게 나와요
http://localhost:5601/app/discover#/ 진입하면 현재 이렇게 나옵니다. 저기서 add integration 누르면 다음 화면처럼 나오는데.. 진행을 어떻게 해야될지 모르겠습니다.
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
메시지 브로커 선택에 관한 질문
안녕하세요, 강의에서는 메시지 브로커용으로 redis를 사용하셨는데, redis 외에도 rabbitmq나 카프카 같은 것들도 사용되는 것으로 알고있습니다. 그 중에서 특별히 redis를 사용한 이유가 있는지 궁금합니다.그리고 무중단 배포 시 스프링 내장 브로커를 사용하면 서버 재실행 시 구독 정보가 초기화되기에 메시지 브로커를 도입하려고 하는데 이때는 셋 중에 어떤 것을 사용하면 좋을지 궁금합니다.