1. 현재 학습 진도 부하테스트 2. 어려움을 겪는 부분 부하 테스트의 코드를 통해 성능 개선 사례를 적으려고 합니다. 하지만 현재 평균 req_duration 즉 레이턴시가 너무 낮게 나옵니다. vus를 300으로 두었는데 아마 커넥션 풀이 모자라서 대기가 길어지는게 원인 같긴 합니다. 하지만 이걸 떠나서도 vus 300치고 너무 느리다고 판단되어서 이걸 개선했다고 포트폴리오에 쓰는게 의미가 있을지 걱정됩니다. 또한 커넥션 풀이 모자라다고 대기업 개발자들이 항상 aws의 사양을 up시켜 커넥션 풀만 늘려서 해결하는 해결 방식을 사용하지는 않을 것 같은데 보통 성능 최적화를 통해 커넥션풀 점유를 짧게 해서 최대한 커넥션풀 고갈을 방지하는 방식으로 해결하나요? 만약 그렇다면 성능 최적화 하는 방법에 부하를 분산하기 위한 kafka, redis, msa같은 기술들이 들어가는 건가요? 마지막으로 성능 최적화를 포트폴리오 이력에 쓸 때 적절한 vus수가 궁금합니다 예를들어 면접관이 봤을 때 300명이라면 너무 적다고 판단되지 않을까 걱정되어서 어느 정도의 대략적으로 vus가 적정 인원인지가 궁금합니다, 3. 시도해보신 내용 시도하진 않았지만 개선할 방법으로는 강의에서 제공해주신 mysql의 실행계획을 통해 index 추가와 커넥션풀 사이즈 늘리는 것 그리고 캐싱 도입을 생각하고 있긴합니다.
안녕하세요. 최근 객체 간 의존 방향 고민에 많은 시간을 쏟고 있어 질문드립니다. 핵심 질문 도메인/서비스 간 의존 방향을 결정할 때 어떤 기준을 적용하면 좋을까요? "누가 누구를 알아야 하는가"에 대한 판단 기준이나 원칙이 있을까요? 저는 덜 중요한 개념의 변경이 중요한 개념에 영향을 주면 안된다고 생각하고 있었습니다. 그래서 중요한 개념이 덜 중요한 개념을 모르도록 코드를 짜려고 노력하는데요. 막상 개발할 때는 이게 잘 안되어서 고민에 시간을 많이 사용하거나, 타협하곤 합니다. 이런 상황이 이번 강의를 보면서도 나타나 질문글을 작성하게 되었습니다. 구체적인 상황 그런데 강의에서 download 메서드를 CouponService로 이동하는 과정을 보고 다음과 같은 의문이 들었습니다: 변경 후 구조: CouponService → OwnedCoupon, OwnedCouponRepository 의존 OwnedCoupon → Coupon, CouponRepository 의존 우려 사항: Coupon과 OwnedCoupon이 서로를 알게 되는 것이 순환 참조나 강결합을 유발하지 않을까? OwnedCoupon에 필드 추가 시, 기존에는 OwnedCouponService만 수정하면 됐지만 이제는 CouponService도 함께 수정해야 함 논리적으로는 CouponService에 download 기능이 있는 것이 맞아 보이지만, Coupon과 OwnedCoupon이 서로 알게 되는 것이 괜찮은 설계인가? 이런 고민에 시간을 많이 쓰다 보니 개발 시간이 부족하다고 느껴집니다. 마감을 위해 구현 후 리팩토링하는 방식으로 진행하고 있지만, 리팩토링을 못할 때도 많고 마음의 짐으로 남는 것 같습니다. 조언 부탁드립니다. 감사합니다.
정렬알고리즘[개념] - 전반부 의 약 14분 37초 즈음에 "Iterable 객체는 순서가 있는 객체로, list, tuple, set, dictionary, strings 등이 있다." 라고 하셨습니다만, 제가 알기로는 set의 경우 순서가 있는 객체는 아닙니다. 혹시 이에 대해 확인해주실 수 있을까요? 혹시 사람들이 이 개념에 대해 헷갈려할 수 있을 것 같아 문의 남깁니다.
안녕하세요 영한님! 기초부터 설계까지 영한님의 강의 덕분에 실무에서 테이블을 설계할 때 큰 자신감을 얻고 있습니다. 늘 감사드립니다. 강의를 듣고 운영 중인 서비스의 ERD를 검토해보니 과거 설계된 테이블들이 비식별 관계가 아닌 식별 관계로 되어 있는 등 개선이 필요한 상황입니다. 하지만 1인 개발 상황에서 데이터 마이그레이션을 수반한 대규모 리팩토링은 리스크가 크고, 기획팀의 신규 기능 배포 속도도 맞춰야 하는 딜레마에 빠져 있습니다. 조만간 동료 개발자가 합류할 예정인데, 현시점에서 제가 취해야 할 스탠스에 대해 의견을 여쭙고 싶습니다. 방안 A: 기획팀에 상황 공유후, 일괄 재설계를 통해 '기술 부채'를 완전히 청산하고 신규 기능을 올린다. 방안 B: 영향도가 큰 부분부터 점진적으로 수정하며, 팀원이 합류한 뒤 안정적으로 함께 리팩토링을 진행한다. 영한님의 실무 경험에 비추어 보았을 때 어떤 결정을 내리는 것이 팀과 서비스 관점에서 더 좋을지 조언해주시면 큰 도움이 될 것 같습니다. 감사합니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 기본형의 한계2에서 findValue메서드에 MyInteger[] 래퍼 클래스 사용할 때 리턴 타입만 MyInteger로 하고 파라메터는 MyInteger 래퍼 클래스 객체 배열이 아닌 기본형 배열을 파라메터로 사용하여 기본형 값이 target과 불일치할때 null을 리턴하면 예시로 보여주신 목적에 문제 없지 않나요? 파라메터까지 래퍼클래스 변수를 사용한 이유가 있을지 질문드립니다.
좋은강의 너무 감사드리며 많이 배워가는것같습니다. 강의를 들으면서 질문이 있어 드립니다. 포트 번호로 분리된 MSA 서버를 프론트엔드에서 쉽게 사용하도록 통합하는 방법이 궁금합니다. 일단 단순히 생각했었을때 ngnix 로 리버스프록시 적용해서 /article 이면 localhost:9000 이런식으로 리버스프록시로 구성해도 될것같은데 현업에서 nginx 를 이용해서 구성을 하는지 또다른 많이 쓰는 방법이 있는지 궁금합니다. CQRS 환경에서 서버끼리 http 통신 article-read 에서 cqrs 를 적용하여 각 서비스에서 필요한 정보를 http 통신으로 가져오는데 클라이언트와 서버가 아닌 서버와 서버끼리면 굳이 웹과관련된 정보가 전송되는 http가 비효율적(?)이지 않나? 라고 생각을했는데 데이터 통신을 할때 카프카로 필요한 데이터만 통신하는것은 어떤가요? 실제 msa 환경에서 서버끼리 통신할때 어떤방식으로 사용하는지도 궁금합니다.
질문 남겨주셔서 감사합니다. 막히면 언제든 무엇이든 자주 질문 던져주세요. 수학/과학이나 알고리즘과는 달리 업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다. 다시 말씀드리지만, 질문을 자주자주 남겨주세요. 저도 최대한 빠르게 회신 드리겠습니다. 당부드릴 두 가지가 있습니다. ① 가급적 구체적으로 설명해주세요. ② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ ==================================== 안녕하세요 일코님! 강의 너무 유용하게 잘 듣고 있습니다. 저는 OCR로 수학문제를 인식하여서 (Mathpix API 사용) Latex로 변환하고, 그 Latex를 다시 HWP로 변환하는 프로그램을 만들어보려고 합니다. 그런데 나머지 부분은 그럭저럭 찾아가면서 해볼 수 있는데, 한가지 문제가 있습니다. 바로 레이아웃 설정이 마음대로 안되더라구요. 아래 캡쳐 이미지를 예시로 들어보면 좌우 여백을 설정하는 것을 어떻게 할 수 있을까요? 가운데 선을 넣어서, 양 옆에 문제를 넣도록 하는 레이아웃을 어떻게 넣을 수 있을까요? 2번이 수행되었다고 쳤을 때, 각각의 문제의 위치를 지정하는 것을 어떻게 컨트롤 할 수 있을까요? 이 부분 강의도 보고, 가이드도 찾아봐도 어려워서 여쭤봅니다 ㅠㅠ 혹시 이메일로 전달주시는게 편하시다면 seize.win@gmail.com 으로 메일 주셔도 감사드리겠습니다! 감사합니다.
안녕하세요 영한님! 섹션 3의 계층 구조 강의를 듣고, 계층(트리) 구조를 모델링하는 다른 방법에 대해서도 찾아보면서 인접 리스트 모델 , 폐쇠 테이블 모델 이외에도 경로 열거 모델 , 중첩 세트 모델 등이 있다는 점을 알게되었는데요 실무에서 경험을 묻고싶습니다! 강의에서 소개해주신 이외에도 다른 모델을 상황에 맞게 자주 사용하시는지, 혹은 다른 방법들의 단점으로 인해 결국 인접 리스트 와 폐쇠 테이블 모델 의 사용으로 귀결되는 것인지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] return new T(); 가 안 되는 이유가 항상 new Object 가 되어버린다. 개발자가 의도한 것과는 다르다. 고 설명되어 있습니다. 만약 다음과 같이 create() 함수를 활용한다면, EraserBox<Dog> dogBox = new EraserBox(); Dog dog = dogBox.create(); 여기서 컴파일러가 캐스팅을 자동으로 추가해주면 되는 거 아닌가요?? EraserBox<Dog> dogBox = new EraserBox(); Dog dog = (Dog)dogBox.create(); 이렇게요. 개발자가 의도한 것과 다르다는 의미를 잘 모르겠습니다.
안녕하세요 큰돌님 강의를 즐겨보는 취준생입니다. 강의를 보며 궁금한 점들이 있어 질문 남깁니다. 간단하게 제 상황을 말하면 1년 정도 SI 업체 다니다가 현재는 군대에서 취준하고 있고 6월에 전역하면서 동시에 취업을 하는 것을 목표로 하고 있습니다. Q1: Readme 파일을 잘 꾸미는게 중요하다고 말씀주셨는데, 제가 했던 프로젝트들이 전부 회사에서 혼자 진행한 프로젝트들이여서 모두 private 인 상황입니다. 이럴 경우에는 Readme 파일에 꾸미기 보다는 노션에 따로 정리하는게 맞을까요?? Q2: QnA 글을 보니 큰돌님께서는 이력서와 포트폴리오를 같이 준비하라고 하신걸 봤습니다. 근데 토스채용 같이 이력서와 포트폴리오를 같이 제출해야되는 상황에서는 어떻게 해야될까요?
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 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하는지.. 그냥 속도빠르니깐 넘어가도 상관없는지 의심이 들어서 더 찾아볼수있는 방법이나 조언 부탁드립니다. 감사합니다. 강의 거의 완강햇다가 한번 더 다시 듣고있습니다.