묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨초당 500,000+건 트래픽을 처리하는 카카오 면접관의 Redis
Redis Hash
강의 내용을 듣고 생각했을때 ,대부분의 경우 Redis String 보다 Redis Hash 사용하는게 대부분 이득일것 같다 생각이 들던데...어떻게 사용하고 계시나요 ?? 사실 저는 Redis String 으로 Json 으로 많이 사용했었습니다. 그리고 큰 장애를 경험하지 못했는데요 아무래도 트래픽에 대한 차이인것 같네요
-
해결됨초당 500,000+건 트래픽을 처리하는 카카오 면접관의 Redis
Redis 큐
강의 잘 들었습니다.Redis 주로 그냥 일반적으로 메모리에 저장하고 호출하는 정도로만 사용을 하고 있는데요BLPOP ,RPUSH job_queue job1 와 같은 기능은 언제 사용하게 되나요 ??
-
미해결AWS SAA-C03 자격증 벼락치기 - 딱 163문제로 2주만에 합격하기
S3 1번 문제 질문
안녕하세요! 1번 문제 관련해서 궁금한 점이 있습니다. 60일 이후 거의 조회되지 않는 데이터라면 비용 측면에서 Glacier Instant Retrieval도 적합해 보이는데이 문제에서는 Standard-IA를 더 우선적으로 선택하는 이유가 있을까요?회사 규정이라는 조건을 제외하고 보더라도 비용 측면에서는 Glacier Instant Retrieval이 더 효율적일 수 있을 것 같다는 생각이 들어서요 이해가 잘 안가서 여쭤봅니다 감사합니다
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
프로덕트와 프로덕트카테고리 사이의 삭제 정책
안녕하세요, 선생님!좋은 강의 제공해주셔서 감사합니다. 덕분에 단순히 구현에만 집중하기보다, 설계와 개념에 대해 더 고민하면서 코드를 작성하게 되었습니다.섹션 2의 ‘개념 느끼기’ 부분에서 Product가 Product Category보다 더 상위의 개념이라고 말씀해주셨던 것으로 기억합니다. 저도 그렇게 이해했습니다.그런데 코드 구현 파트에서 Product와 Product Category 사이의 삭제 정책을 두 가지 예시로 설명해주셨는데, 그 부분에서 한 가지 궁금증이 생겼습니다.제 생각에는 개념적으로 Product가 더 상위 개념이라면, Product가 삭제될 때 Product Category도 함께 삭제되는 정책이 조금 더 자연스러운 흐름처럼 느껴졌습니다.이 부분에 대해 제가 개념을 잘못 이해한 것인지, 아니면 실무적인 관점에서 추가로 고려해야 할 부분이 있는지 궁금합니다.혹시 제가 놓치고 있는 관점이 있다면 조언 부탁드립니다!
-
미해결AWS SAA-C03 자격증 벼락치기 - 딱 163문제로 2주만에 합격하기
SAA-C03 덤프 파일 좀 더 받아 볼수 있을까요?
aws-SAA-C03 덤프 파일 좀 더 받아 볼수 있을까요?시험 쳤는데 아쉽게 떨어져서요 ㅠㅠ hhw811@gmail.com 으로 부탁드립니다.
-
해결됨초당 500,000+건 트래픽을 처리하는 카카오 면접관의 Redis
강의에서 작성한 코드 제공 문의
강의에서 작성된 코드를 제공해주시는 것 같은데 어디서 볼 수 있나요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략
23강 5:38 부분 질문 있습니다!
m=32MB짜리 10개와 m=512MB짜리 1개의 경우를 비교해주셨습니다.그런데 이는 샤딩을 통해서 메모리 효율적으로 됐다기 보다는 메모리 총량이 512MB->320MB로 감소했기 때문에 오차율이 조금 증가하는 대신 메모리를 덜 쓸 수 있는 것 아닌가요?예를 들어 320MB 짜리 1개인 경우와 32MB짜리 10개인 경우의 오차율이 똑같지 않나 하는 생각이 들어서 질문드립니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략
23강 17초 부분 질문있습니다~
"Split 전략에서 항상 모든 Split을 조회한다."요 부분이 이해가 가지 않아서 질문드립니다!findSplitIndex로 계산한 split에만 접근하는 것 아닌가요?아니면 모든 스플릿이 단일 redis 내에 존재하는 것이 문제라는 의도로 말씀하신걸까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략
Split 전략 강의 중 질문 있어요
@Slf4j @SpringBootTest class SplitBloomFilterRedisHandlerTest extends RedisTestContainerSupport { @Autowired SplitBloomFilterRedisHandler splitBloomFilterRedisHandler; @Test void mightContain() { SplitBloomFilter splitBloomFilter = SplitBloomFilter.create("testId", 1000, 0.01); List<String> values = IntStream.range(0, 1000).mapToObj(idx -> "value" + idx).toList(); for (String value : values) { splitBloomFilterRedisHandler.add(splitBloomFilter, value); } for (String value : values) { boolean result = splitBloomFilterRedisHandler.mightContain(splitBloomFilter, value); assertThat(result).isTrue(); } for (int i = 0; i < 1000; i++) { String value = "notAddedValue" + i; boolean result = splitBloomFilterRedisHandler.mightContain(splitBloomFilter, value); if (result) { log.info("value={}", value); } } } } 위 코드는 SplitBloomFilterRedisHandlerTest 인데요.강의 중 코드입니다 1000 크기에 0.01 오차율의 Bloom Filter 를 만들고1000개의 데이터를 넣고 False Positive 까지 검증해보는 코드인데요.질문입니다Split 전략을 배우기 전에순수한 Bloom Filter 구현 강의에서도 위와 동일한 테스트 코드가 있는데요이 때, 순수한 Bloom Filter 의 한계로써생성한 Bloom Filter 크기를 초과하여 데이터를 넣으면 비트 1이 많아져 오차율이 증가하고그로 인해 False Positive 데이터가 많이 조회되는 현상을 살펴보거든요.그리고 그 해결책으로처음부터 큰 Bloom Filter 를 만드는 것 이외에Split / Sharding / Sub Filter 전략이라고 말씀하시는데요근데 위 Split 전략의 테스트 코드에서 BloomFilter 크기는 1000으로 만들고 데이터를 훨씬 초과하여 2000개 만들어 넣어보면순수한 Bloom Filter 때처럼 False Positive 데이터가 많이 조회됩니다.저는 PC 가 느려서 False Positive 를 1000번으로 조회하였고오차율 (0.01) 에 의하면 약 10개의 False Positive 가 나와야 하는데데이터 1000개를 저장했을 때는 오차율에 맞게 8개로 떨어지는데데이터 2000개를 저장했을 때는 오차율을 훨씬 넘어갑니다제가 코드를 잘못 따라 친건지.. Split 도 원래 그런건지..제 질문 의미가 전달될지는 모르겠지만.. 명확하게 개념 정리가 되지 않아 질문드립니다
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
소스코드 보안
안녕하세요 재미니님 유튜브로 접하게 되어 인프런 강의까지 듣게된 백엔드 개발자(5년) 입니다.현재 팀의 레거시 시스템을 고도화하는 레거시 시스템을 개편하는데 주력하고 있는 업무를 맡고 있습니다. 저희 회사는 규모가 적지 않고, 팀내에서 담당하는 시스템도 많은데 제 기준으로는 꽤나 보수적인 조직이라 ai 활용하는데 제약이 많은 편이라고 생각합니다. 금융권처럼 로컬 PC에서 외부망을 아예 차단하고 있지는 않지만, chat gpt, gemini 등 각종 llm을 제공하는 웹사이트는 차단이 되어있고 사내 자체 llm 만 사용할수 있는 환경입니다. 운이 좋게도(??) junie 는 아직 차단되어 있지 않아 많이 활용하고 있는데, 신규 구축이 아닌 기존 레거시 시스템을 분석하여 컨버전을 하는 과정에서 사용하기에 보안적으로 이슈가 될 부분이 있을까 싶어서 걱정이 많이 되는데, ai를 활용하면 생산성이 넘사벽으로 높아지는 환경에서 보수적으로는 보안 이슈를 걱정하는 팀원들이 있을경우, 재미니님은 어떤식으로 팀원들을 설득하실지, 보안 이슈가 없도록 방안은 어떻게 마련하고 계신지 궁금합니다.추가로 극단적인 예시긴 하지만, 비지니스 로직이 프로시저에 녹아져 있는경우, db 에 의존적으로 운영되고 있는 시스템(ex. 트리거, 서버 크론잡 스케줄링 등) 의 경우 ai를 활용하여 레거시를 최대한 개선하고 싶다면 어떤 전략을 활용할 수 있을지도 의견 주시면 감사하겠습니다.소중한 강의 제공해주셔서 감사합니다.
-
해결됨10,000++억의 데이터를 다루는 카카오 면접관의 MySQL
인덱스 분할, 병합에 따른 인덱스 적용 기준과 OPTIMIZE TABLE
hong님 안녕하세요!인덱스 분할, 병합 내용을 보면서 단순하게 인덱스를 걸면 안되겠다는 생각이 들었습니다. 질문1인덱스 분할, 병합 관점에서 인덱스를 걸어도 괜찮다는 결론에 도달할때 과정이 궁금합니다! 인덱스로 인해 줄어드는 조회 비용 > 인덱스로 인해 증가하는 쓰기 비용을 정량적으로 계산해서 적용하시나요?ex) 쓰기 패턴 및 TPS 조사, redo log 증가량 확인, 인덱스 개수, 테이블 크기 등 질문2라이브 환경에서 OPTIMIZE TABLE 실행해도 문제가 없을까요? 느낌상 최후의 수단으로 실행 해야하나 생각이 들었는데요. 고려해야할 사항이 있는지 궁금합니다!
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
AI 사용 방법에 대하여...
강의 잘 듣고 있는데요.같은 프로젝트에 대해 다수의 팀원이 개발한다고 가정 할 때현재의 AI를 사용하는 방식이 어디까지 유효할 지 재미니님의 생각이 궁금하여 의견 여쭙습니다.예를 들어 저는 AI를 적극 사용하고 싶을 때, 하지만 팀의 문화가 AI를 위와 같이 그닥 사용하지 않을 때, 강의 속에서 AI를 활용하는 방안을 어디까지 얘기하는게 좋을 지 등이 궁금합니다.제가 느낄 때, 위 강의 과정에서는 md 파일을 꾸준히 업데이트 하며, 히스토리를 쌓아가는 것 같아 의견을 여쭤봅니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
PaymentValidator와 PaymentProcessor에서 주문과 결제를 중복 조회하는 구조에 대한 질문이 있습니다 !
제미니님 안녕하세요!30강 5분쯤에서 나온 결제 구조 관련해서 질문이 있습니다. 검증과 처리 책임을 모두 가지고 있던 PaymentManager를 Validator와 Processor로 분리한 의도는 이해했습니다.그리고 Validator와 Processor 각각에서 주문과 결제를 다시 조회하도록 구현하신 이유가 컴포넌트를 명확하게 분리하고 재사용성을 높이기 위함이라고 이해했습니다. 여기서 말씀해주신 “명확하다”는 표현이 PaymentService에서 비즈니스 흐름을 더 명확하게 드러내기 위한 설계 의도라고 이해해도 괜찮을까요? 한편으로는 다른 방식도 떠올랐는데, Validator에서 검증하면서 조회한 주문/결제 정보를 PaymentContext 같은 객체에 담아서 Processor.success로 전달하는 구조는 어떻게 생각하시는지 궁금합니다. 이런 방식이 책임 분리나 구조적인 측면에서 문제가 생길 여지가 있는지, 혹은 실제로는 어떤 트레이드오프가 있는지도 함께 알고 싶습니다!
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
결제 개념 컴포넌트 분리 기준과 네이밍 전략에 대한 질문있습니다 !
안녕하세요 ! 결제 개념 쪽 강의 내용 중 궁금한 부분이 있어 질문 드립니다 ! 1. PaymentCreator를 별도 컴포넌트로 분리한 이유결제 개념에서 PaymentCreator를 별도의 컴포넌트로 추출하신 이유가 궁금합니다.결제 생성 또한 결제 개념을 처리하는 기능의 일부라고 생각해서, PaymentProcessor 내부에서 함께 처리할 수도 있지 않을까 생각했는데 Creator를 분리하신 설계 의도가 무엇인지 알고 궁금합니다!2. Manager vs Processor 네이밍 전략 기준다른 개념 영역에서는 Manager라는 네이밍을 사용하시다가결제 영역에서는 Processor라는 네이밍을 채택하신 이유가 궁금합니다.두 네이밍 사이에 역할적/의미적 차이를 두고 설계하신 것인지, 혹은 도메인 특성에 따른 네이밍 전략인지 궁금합니다 !
-
미해결제대로 배우는 Express.js: Part2 엔진 내부 동작 원리와 클론 프로젝트
미들웨어 체인 구현 보다가 생긴 궁금증에 대해 질문 드려요!
Node.js에서는 req와 res 사이에 인증 처리와 같은 로직을 넣기 위해 미들웨어를 직접 만들어야 할 것 입니다. Express에서의 미들웨어 구현과 동작 방식은 최선의 방식인지 궁금합니다! 즉 Express가 아닌 Node.js로 미들웨어를 직접 구현했을때 Express 방식보다 더 나은 설계가 될 수 있는지 궁금합니다. 또 Nest.js (nest 아니더라도 다른 프레임워크) 에서는 Express가 미들웨어를 구현하고 동작시키는 방식을 그대로 따르고 있는지 아니면 설계 상의 차이를 두었는지도 궁금합니다. 감사합니다!
-
미해결AWS SAA-C03 자격증 벼락치기 - 딱 163문제로 2주만에 합격하기
37강 3분 25초 질문드립니다.
안녕하세요, 선생님.항상 유익하고 훌륭한 강의 제공해 주셔서 진심으로 감사드립니다.다름이 아니라, 강의를 수강하던 중 이해가 충분하지 않은 부분이 있어 조심스럽게 질문드립니다.37강 3분 25초에서 NACL은 특정 트래픽에 대해 접근 허용(Allow) 규칙을 추가할 수도 있고, 접근 차단(Allow) 규칙을 추가할 수도 있다고 강의 자료에 나와있는데, 이 부분이 잘 이해되지 않아 문의드립니다.일반적으로 접근 차단은 Deny로 설정하는 것으로 알고 있어, 접근 차단이 Deny가 아닌 Allow로 표현되는 이유가 무엇인지 궁금합니다.해당 개념에 대해 조금 더 상세히 설명해 주시면 큰 도움이 될 것 같습니다.바쁘시겠지만 확인 부탁드리며, 답변 주시면 감사하겠습니다.감사합니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
AI 를 적용시 브랜치를 다루는 팁 같은게 있을까요?
AI로 코드를 분석해보거나레거시의 수정 포인트를 느껴보거나 하는 부분은많이 와닿았는데요.AI 가 코드를 수정한 이후에코드를 비교해보는 영역에서 브랜치를 어떻게 관리하는게 좋을 지 의문이 들었습니다.AI 가 다수의 코드를 변경하고 있는데, 실제 실무에서는 한 꺼번 에 코드를 바꿔버리면 diff가 너무 많아서 개발시 우려되는 부분이 많이 생깁니다.gpt에 물어보면 ai/product-draft 와 같이 실험용 브랜치에서 작업 이후에 선별하여 수정하라는 답변을 받았는데요.아직 섹션3을 수강하고 있어서, 이른 질문일지 모르지만 해당 사항 관련하여 실무적인 관점에서 실제로 어떻게 하는게 좋은 방법일 지 조언 한 번 부탁드립니다.
-
해결됨제대로 배우는 Express.js: Part1 기초부터 심화까지 [기초편]
강의랑 강의 자료랑 내용이 다른 것 같아요
강의자료에서는 강의랑은 달리 ejs 코드도 나와있지 않고https://github.com/comelulu/NCS-ExpressJS-Part1/tree/main/44_memos-route-2-create자료에는 /add라는 라우트도 안 적혀있습니다.
-
해결됨제대로 배우는 Express.js: Part1 기초부터 심화까지 [기초편]
로그인과 로그아웃 처리 강의 2:00 질문 드려요
res.cookie("token", token, {httpOnly: true});httpOnly를 true로 설정하여 클라이언트 사이드 스크립트가 쿠키를 읽지 못하도록 한다는게 어떤 말인지 자세히 듣고 싶습니다! 브라우저 쿠키, 클라이언트 사이드 스크립트 쿠키가 무슨 차이가 있는지 왜 읽지 못하도록 하는지가 주로 궁금합니다.
-
미해결AWS SAA-C03 자격증 벼락치기 - 딱 163문제로 2주만에 합격하기
기출문제 공부해서 시험은 붙는다해도
혹시..실무적인 능력은 어떻게 배양해야할까요..? 조언부탁드립니다. 클라우드 엔지어가 되거나 이런게 목적은 아니고 창업할때 활용하고싶습니다.