묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해
좋은강의 너무 감사드리며 많이 배워가는것같습니다.강의를 들으면서 질문이 있어 드립니다.포트 번호로 분리된 MSA 서버를 프론트엔드에서 쉽게 사용하도록 통합하는 방법이 궁금합니다. 일단 단순히 생각했었을때 ngnix 로 리버스프록시 적용해서 /article 이면 localhost:9000 이런식으로 리버스프록시로 구성해도 될것같은데현업에서 nginx 를 이용해서 구성을 하는지 또다른 많이 쓰는 방법이 있는지 궁금합니다.CQRS 환경에서 서버끼리 http 통신article-read 에서 cqrs 를 적용하여 각 서비스에서 필요한 정보를 http 통신으로 가져오는데 클라이언트와 서버가 아닌 서버와 서버끼리면 굳이 웹과관련된 정보가 전송되는 http가 비효율적(?)이지 않나? 라고 생각을했는데 데이터 통신을 할때 카프카로 필요한 데이터만 통신하는것은 어떤가요? 실제 msa 환경에서 서버끼리 통신할때 어떤방식으로 사용하는지도 궁금합니다.
-
해결됨React + SpringAI로 만드는 안전신문고 AI 신고 서비스 개발
강의 노션링크 문의
오늘부터 강의를 들게된 수강생인데요,강의에서 보여주는 노션링크는 제공되지않는걸까요!?궁금해서 여쭤봅니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 무한스크롤을 공부하면서 쿼리플랜을 자세히 살펴보았습니다. rows라는게 예상 스캔 행 수 라고 찾게 되었는데요, offset을 사용하지않고 마지막 last_article_id로 limit 30개 해서 30개만 스캔하면 될줄 알았는데, 저는 6백만개가 나오고 강사님은 5522497개 (무한 스크롤 설계 - 6:31초)가 나오는걸 알게 되었어요. 이게 시간은 빠르긴한데 뭔가 스캔하는게 많아서 이상하다 싶었어요.. 그래서 인덱스를 지우고, (article_id desc, board_id)로 위치도 바꾸거나, use index로 인덱스를 강제하게 해봤는데 결과가 똑같더라구요.. 이 row를 줄이기 위한 방법이 있는지 궁금합니다. cladue에서는 최악의 경우의 row를 보여준다고 하면서도, 또다른 답변으로는 쿼리 수정으로 최적화해야한다 나뉘더라구요. 최악의 경우라 해도 왜 6백만개나 scan하는지.. 그냥 속도빠르니깐 넘어가도 상관없는지 의심이 들어서 더 찾아볼수있는 방법이나 조언 부탁드립니다. 감사합니다. 강의 거의 완강햇다가 한번 더 다시 듣고있습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
스프링 버전 4.0.2 기준 aspectj 라이브러리 dependency 설정은 다음과 같습니다. (gradle 기준) implementation 'org.springframework.boot:spring-boot-starter-aspectj'계속 boot-starter-aop로 빌드 시도했다가 삽질하면서 20분 날렸네요..
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
h2 console 접속했을 테이블 질문
ddl-auto: create로 설정되어 있어서 자동으로 테이블이 생성되게 되어 있다는 말은 이해가 되는데요. BOOK, USER, USER_LOAN_HISTORY의 테이블 컬럼명과 컬럼의 특성등은 따로 어디에 명시해둬야 참고를 해서라도 만들지 않나요? mysql에서 만들때는 저희가 직접 console창에서 직접 설정해서 create해줬는데, 해당 테이블 구조는 테이블이 생성될때 무엇을 참고해서 만들고 있는건지 문의 드립니다. 감사합니다.
-
해결됨AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편
.claude 폴더 규칙 생성 방법
강의를 들으면서 강의에서 제공해주신 GitHub 프로젝트 코드를 참고하여 개인적으로도 별도의 프로젝트 파일을 만들어 수강하고 있습니다. 현재는 강의 코드가 제공되고 있어 .claude 폴더를 다운로드한 뒤 제가 만든 프로젝트에 추가하면 되지만, 추후 개인 프로젝트에서 AI를 활용해 개발한다고 가정하면 .claude 폴더를 프로젝트 특성에 맞게 커스텀해야 할 것 같다고 생각합니다.그래서 아래 두 가지가 궁금합니다.현재 제공해주신 .claude 폴더는 어느 정도 범용적으로 사용할 수 있는 구조인지 궁금합니다. 다른 프로젝트에서도 그대로 붙여넣어 사용해도 되는지, 아니면 프로젝트마다 반드시 수정해야 하는 핵심 포인트가 있는지 알고 싶습니다.처음 새 프로젝트를 만들면 .claude 폴더가 없는 상태인데, 프로젝트 기획과 규칙(코딩 컨벤션, 아키텍처, 역할 분리, 문서화 규칙 등)이 이미 정해져 있는 경우 .claude 폴더를 어떤 순서와 기준으로 새롭게 생성하는지 시작하는 방법이 궁금합니다.
-
해결됨카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka
Zookeeper vs KRaft 모드
안녕하세요.항상 유익한 강의를 제공해 주셔서 감사드립니다. 입문 강의들을 제외한 모든 강의를 수강하며 많은 도움을 받고 있습니다.다름이 아니라, 개인적으로 Kafka 관련 내용을 공부하던 중 KRaft 모드에 관한 내용이 공식 문서 및 여러 자료에서 업데이트되고 있는 것을 확인하게 되었습니다. KRaft는 Kafka의 아키텍처에서 중요한 변화를 가져온 만큼, 관련 내용을 강의나 추가 자료로 공유해 주신다면 수강생들에게 큰 도움이 될 것 같아 노티 드립니다.항상 좋은 강의 제공해 주셔서 감사하며, 앞으로도 많은 배움을 기대하겠습니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
TodoDTO test 함수
소스 내용은 @Override public TodoDTO get(Long tno) { Optional<Todo> result = todoRepository.findById(tno); Todo todo = result.orElseThrow(); TodoDTO dto = modelMapper.map(todo, TodoDTO.class); return dto; } 에러 메시지 입니다. 참말로... 이해를 못하겠네요...테스트가 계속 실패하는데 어디를 확인을 해봐야 할까요? ㅡㅡ;;(등록 testRegister는 잘 test 되고요)
-
미해결Spring Boot + React.js 로그인 (+소셜) 서비스 이해하기
카카오 로그인시 401에러
리다이렉트 주소랑rest_api_key도 계속 확인하는데도 똑같은데에러가 카카오로그인하면 401에러가 계속 나네요 이에러 찾아보면 api키랑 리다이렉트 주소 확인하라고 하는데 동일합니다 복붙으로하는데도 계속 401에로 뜨는데 원인이 뭘까요?
-
미해결Spring Boot + React.js 로그인 (+소셜) 서비스 이해하기
백앤드 쪽 UserController부분
@PostMapping("/kakao") public ResponseEntity<?> kakaoLogin(@RequestBody Map<String, String> body, HttpServletResponse response) { String code = body.get("code"); LoginResponseDto tokens = kakaoOAuthService.kakaoLogin(code, response); return ResponseEntity.ok(tokens); }여기 코드에서kakaoOAuthService 이게 선언을 찾지못하는데 강의에선 인터페이스?쪽을 가져오는것 같은데 저는 안가져와지는데 원인이 몬가요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
조회수 조회 로직 질문
안녕하세요! 수강자 쵸잉입니다 강의듣다가 질문사항이 생겨 남깁니다.ArticleViewCountRepository 에서 read 메서드 보면현재 코드에서 조회수 조회를 할때 레디스에서만 가져오는데 이전 강의에서 레디스는 휘발메모리기 때문에 백업용 rdb 를 주기적으로 업데이트 시켰는데 그럼 레디스에서 값이 없을경우 백업용 rdb 도 한번 조회해봐야되지 않나 싶어서 질문드립니다!
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
예약 변경 시 '과거 정책 기준 재계산' 요구사항에 따른 스냅샷 데이터 구조 설계 고민
안녕하세요 강사님. 지난번 '어드민 예약 변경 시 쿠폰 회수' 관련 질문을 드렸던 수강생입니다. 답변 주신 내용을 바탕으로 설계를 보완하던 중, 스냅샷 데이터의 범위와 확장성에 대해 추가적인 고민이 생겨 조언을 구합니다.[현재 아키텍처 상황] 현재 예약 테이블에는 예약 시점의 가격 정보를 JSON 형태의 스냅샷으로 저장하고 있습니다.이유: 가격 결정 요소(할인, 이벤트, 기업 지원 등)가 빈번하게 변경/추가되어 RDB 컬럼으로 대응하기 어렵기 때문입니다.저장 데이터: 현재는 '결과값' 위주로 저장합니다. (예: 적용된 할인 명, 타입(정액/정률), 최종 할인 금액)[직면한 문제: 변경 시점의 기준 모호성] 예약 시점(T1)과 변경 시점(T2) 사이에 정책이 변경되었을 때, 어드민에서 예약을 수정하면 어떤 정책을 따라야 하는가에 대한 딜레마입니다.만약 기획 요구사항이 "변경 시점(T2)의 정책이 아니라, 최초 예약 시점(T1)의 정책 조건을 유지한 채 금액만 다시 계산해 주세요"라고 한다면 문제가 복잡해집니다.현 구조의 한계: 현재 JSON에는 '결과(할인액)'만 있고 '조건(최소 결제 금액, 당시 허용된 옵션 목록 등)'은 없습니다.예상되는 부작용: 이를 해결하려면 예약 시점의 모든 검증 조건(Condition)을 JSON에 다 때려 넣어야 합니다.이렇게 되면 도메인 로직이 바뀔 때마다 JSON 스키마도 계속 비대해지고,과거 JSON 데이터와 현재 로직 간의 정합성을 맞추기 매우 까다로워질 것 같습니다.[질문] 이처럼 "빈번하게 변하는 가격 정책"과 "과거 기준 수정"을 동시에 만족해야 할 때, 실무에서는 보통 어떤 접근 방식을 취하나요?JSON 스냅샷 확장: 다소 복잡해지더라도 예약 시점의 검증 조건(Parameter)들까지 모두 JSON에 스냅샷으로 남기는 게 맞나요? (JSON 컬럼 사용이 잘못된 선택이었을까요?)Policy Versioning (정책 버전 관리): 아니면 가격/할인 정책 테이블 자체를 버전 관리(Effective Date 등)하여, 예약 시점의 policy_version_id를 매핑해두고 로직을 태우는 방식을 써야 할까요?현실적인 타협: 아니면 보통 어드민 변경 건은 "재계산 불가(단순 금액 입력)"로 처리하거나, "무조건 현재(T2) 정책"을 따르게 하는 등 복잡도를 낮추는 타협점을 찾나요?확장성 있는 가격 스냅샷 설계에 대한 강사님의 경험과 조언을 부탁드립니다..!
-
해결됨카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴
23강 예제 질문입니다! (서비스 1 > 2 > 3 호출 시나리오 관련)
안녕하세요!기존에 설명해주신 Orchestration 예제의 다이어그램과 호출 순서가 실습 코드랑 다른 것 같아서 질문드립니다. 다이어그램 : 오케스트레이터가 모두 요청/응답 받는 구조. 오케스트레이터 -> 2번 호출/응답 -> 오케스트레이터가 다시 3번 호출/응답 실습코드 : 오케스트레이터가 2번 서비스를 호출하고 2번 서비스가 3번 서비스를 호출하는 형태 질문 1)위 2개의 내용이 다른 이유가 있을까요? + 오케스트레이션 패턴은 오케스트레이터가 모든 서비스를 호출하고, 다른 서비스는 오케스트레이터에 답변만 해주는 구조이고, 이 때문에 오케스트레이터가 SPOF가 될 수 있다고 이해했는데, 제가 잘못 이해한걸까요? 질문 2)지금 예제에서는 REST API를 쓰는지, kafka 이벤트는 쓰는 여부 말고는 오케스트레이션/코레오그래피 모두 서비스 1 -> 2 -> 3 호출 하는 시나리오와 보상 처리를 하는 방법이 크게 차이가 없는 것 같습니다 (DLQ외) 예제를 보니까 헷갈리게 되는 것 같은데 제가 어떻게 이해하면 좋을까요? 감사합니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
비로그인 유저도 어뷰징 방지 정책
안녕하세요 강의 잘보고있어서 감사의 말씀 전하며 질문이 있어 글 남깁니다. 만약 비로그인도 어뷰징 방지 정책을 적용 한다했을때 실무에선 어떻게 처리하나요?IP나 쿠키, User-Agent 등을 활용한다고 하셨는데,IP 주소로 처리하기에는 공유망이나 VPN 같은 다양한 접근 방식도 있을 것 같고 User-Agent 나 브라우저쿠기같은경우는 브라우저에서 조작이 가능하기도하고 Pomsman 같은걸로 요청해서 User-Agent 값을 임의로 설정하는등과 같은 방법으로 집계될수도 있을것같은데 1. 그냥 일반적인 조회수만 집계만 하면되는 서비스에선 어떤식으로 처리하는지 궁금하고 만약 정말 빡세게 어뷰징을 처리한다고했을때 서버쪽에서 고유키값을 만들어서 로그인안한유저면 그 키값을 httponly 쿠키로 설정해서 고유키값이 있을때만 조회수가 집계되는 방법도 있을것 같은데 이런방식은 어떤지도 또 다른 괜찮은 방법이 있는지 궁금합니다.
-
미해결스프링 부트 - 핵심 원리와 활용
jar 추가에대한 질문드려도될까요?
안녕하세요공부를 하다보니 궁금해서 질문드립니다.일반 톰캣인 embed 의존성 추가 여부가 궁금해서 그러는데요기존의 스프링? 에서 톰캣으로 war나 jar형식으로 배포 하다가embed 의존성을 추가해서 배포로 변경하면차이가있을지 궁금합니다.이전에 다른분들께 설명을 해주셨는지 모르겠지만.강의를 듣다톰캣에서 돌아가는 코드를 내장 톰켓을 추가할경우마이그레이션을 많이 해야하는지단순히 embed 라이브러리 추가만하면 되는지궁금해서 질문드리게 되었습니다.또 Fat jar로 배포할경우 class로 변경이 된다고하셨는데 만약에 코드를 수정해야할경우서버에서실시간 그렇게되면 java파일로 변경해서수정은 불가능할까요?기존의 코드를 수정하지않는 선에서 class에서 변경된 jar파일 내에서만 수정이 가능하는지 궁금합니다.1번 jar가 8081일경우 2번 jar가 8082인경우같은 프로젝트가 아니라 별도의 프로젝트 일경우..라면 통신은 어떻게하는지 궁금합니다.
-
해결됨AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편
강의를 어떻게 보면 좋을 까요?
일단 ai 에이전시를 써서 대충 틀을 만들고 살을 붙혀라라는 느낌으로 듣고 있습니다. 결과 값이 다 다르니 강의와 비슷하긴 하나 같은 느낌으로 구현을 못하는데. 전체적으로 강의를 한 번 쭉 완강하고 흐름을 익힌 이후에 구현을 해보라는 건가요? 아니면 주신 깃헙 링크 보고 따라 해보면 될까요?
-
미해결Spring AI 실전 가이드: RAG 챗봇 만들기
SPRING AI 실행을위한 환경설정이 궁금합니다.
환경설정좀 자세히좀 부탁드립니다.
-
해결됨The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법
AI 개발 도구 사용 시 보안 가이드 및 내부 기준에 대한 질문
안녕하세요.회사에서도 AI 도구(Claude Code)를 적극적으로 사용하고 계신 것 같았는데, 보안 관점에서 AI 도구 사용에 대한 내부 가이드나 기준이 있는지 궁금합니다.실제 딩코딩님 회사에서는개발자들이 AI 도구를 어떤 범위까지 사용하도록 허용하고 있는지,그리고 현업에서 보안적으로 특히 고려해야 할 부분은 무엇인지 알고 싶습니다. 예를 들어,실제 민감한 고객 데이터는 AI 도구에 질문하거나 제공하지 않도록 한다든지,또는 credential이 포함된 코드에서는 AI 도구 사용을 금지한다든지,내부 시스템 아키텍처나 인프라 구조는 AI에 제공하지 않도록 한다든지,혹은 회사 내부의 특정 핵심 로직은 민감해서 AI 사용을 제한한다든지요. 이처럼 AI 도구 사용과 관련해 내부적으로 정해진 기준이나 가이드라인이 있다면, 어떤 식으로 운영되고 있는지 공유해주실 수 있을지 궁금합니다.
-
해결됨Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
배포 후 Entity 수정 관련
ddl을 validate로 하고 개발을 진행하다가 Entity가 추가되거나 수정될 경우에는 어떤 식으로 개발서버와 운영서버의 database table 싱크를 맞출 수 있나요 ?? 실무에서는 어떤 방식으로 마이그레이션을 진행하는지 궁금합니다!!
-
해결됨Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
EC2 HTTPS에 관련하여 질문 드립니다!
해당 프로젝트에 도멘인을 연결해서 HTTPS 설정으로 변경해보고 싶어서 여쭤봅니다!!nginx로 할 수 있지만 실무 프로젝트에도 적용시켜보고 싶어서요! nginx 말고 실무에서는 어떤 방식으로 HTTPS 설정을 하는지 궁금합니다!!