킬구형 ㅎㅇ 요즘에 배치 다시 학습하면서 좀 고민인 부분이 있음. 현재 회사에서 배치 Job이 좀 많이 늘어나면서 코드 관리가 너무 어렵더라고. Spring MVC에서는 Controller-Service-Repository 같은 레이어드 아키텍처나 클린 아키텍처처럼 널리 쓰이는 구조가 있는데, 배치 쪽은 이런 패키지 구조나 설계 방식에 대한 레퍼런스가 상대적으로 적은 것 같아서. 최근에 클린 아키텍처를 배우면서 배치에도 이런 구조를 적용할 수 있는지 궁금해졌거든. 지금 나는 대략 이런 식으로 구성하고 있어: batch/ ├── order/ │ ├── confirm/ │ │ ├── OrderConfirmJobConfig.java │ │ ├── OrderConfirmReader.java │ │ ├── OrderConfirmProcessor.java │ │ ├── OrderConfirmWriter.java │ │ └── OrderConfirmJobListener.java ├── payment/ │ ├── settle/ │ └── cancel/ ├── support/ ├── domain/ ├── application/ └── infrastructure/ 하나의 Job을 하나의 큰 애그리게이트처럼 보고 있어서, 관련 클래스를 패키지별로 분리하기보다 한 폴더 안에서 로우 레벨로 관리하는 게 더 편하더라고. 근데 Job이 계속 많아질수록 이게 맞는 건지, 더 나은 방법이 있는 건지 잘 모르겠어서. 혹시 형은 실무에서 Job이 많아졌을 때 패키지 구조나 코드 구성을 어떻게 가져가? 객체 간 위계나 import 의존성 방향 같은 것도 신경 써서 설계하는지도 궁금해. 물론 사람마다 차이가 있겠지만 시간 괜찮으면 경험 공유해주면 도움이 많이 될 것 같아!
안녕하세요. 먼저 좋은 강의를 해주시는 것에 대해 감사 인사드립니다. 강의 잘 듣고 있습니다. 감사합니다. 다름이 아니라, 11강 동영상 강의 내용 중 numpy의 axis 축은 가장 기본이 되는 단일 단위 먼저 뒤의 숫자가 부여된다고 하셨습니다. 그 예시로 3차원배열을 보여주시면서 axis 2가 열 방향성, axis 1이 행 방향성, axis 0이 높이라고 설명해주셨는데요. 다만, 강의 교재 26쪽에서는 "3차원 ndarray의 경우 axis 0, axis 1, axis 2로 3개의 축을 가지게 됩니다.(행, 열, 높이로 이해하면 됩니다.)"라고 나와있습니다. 이 부분이 강의 내용과 교재 내용이 살짝 다른듯한 느낌이 들어 질문 드립니다. 감사합니다.
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ 안녕하세요 ! 지금 막 코딩테스트 강의를 시작했는데, 혹시 코딩테스트 개론 << 이거 노션링크를 못찾겠어서 질문드립니다 이론이 글로 적혀있는 노션 공유가 가능할까요? 제가 현재 들어가 있는 노션인데, Part1.코딩테스트 개론 이부분이나 현재까지 강의 들은 알고리즘이나 시간복잡도 설명이 없는거 같아서 제가 못찾는건지.. 어디있나요??
[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
- 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.) - 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 24시간 내에 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~ - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. Trusted 옆에 Python 3라고 뜨는 부분이 없습니다. 아래 Python[conda env:base] 이 부분이 Python 3로 떠야 하는걸까요? 그렇다면 방법도 안내 부탁드립니다. 양질의 강의 잘 듣고 있습니다.
아주 기본적인 질문이지만 내용을 확실히 하고자 질문 남겨봅니다. 현재 섹션2에서 6번째 강의를 들었는데요 21분에 정리해주신 내용을 보면 python은 print()함수 안에서 두번째 파라미터가 end=부분을 잘 살펴보자 라고 하셨는데, end= 뒤에 a,b,c,d가 큰따옴표 없이 end=a,b,c,d로 출력 될 경우 그리고 end="a,b,c,d" 이렇게 출력이 되는 경우 어떻게 출력이 되고 개행은 어떻게 이루어지는지 알고싶습니다.
비전공자이며, 노베이스에서 시나x로 2달간 필기 준비하면서 cbt자료 돌리고, 26년 1회차 필기 합격했습니다. 실기는 책으로 독학 하기에는 힘들다고 생각하여, 유튜브를 찾아보던 중 우연히 알게된 주말코딩쌤.... 수강후기에 누군가 얘기 하시길 이 강의를 보면 50점은 먹고 들어가는거라고 하는 말에 바로 강의 수강을 신청했습니다. 26년 1회차 1트에 합격 간절한 1인 입니다. 실기시험이 4월 중순에서 5월 6일 이전이니까 실기시험 까지 대략 2달~2달 반이 남았는데, 하루 최소 3시간~5시간 계획 중 입니다. 오전 6시~7시반 그리고 출근해서 점심시간에 30분, 퇴근해서 오후8시~10시 더 많이 할 수 있는 날도 있을거고 적게하는 날도 있을건데, 간절한 마음으로 강의 들으며 공부 해보겠습니다. 시험치고 합격 불합격 여부 후기 남기겠습니다. 공부라는게 정말 때가 있더라구요... 매일 공부하고싶은데, 짬내서 하고 많은 걸 포기해야 공부 할 수 있어서 학창시절에 공부 안했던 저를 꾸짖고 싶네요 ㅎㅎ 화이팅입니다!!!!!!
강의에서는 비관적 락과 낙관적 락을 다루셨는데, 일반적으로 대규모 서비스가 아닌이상 좋아요 자체가 순식간에 많은 트래픽이 몰릴것같지않아 낙관락으로 처리하는 것이 더 효율적일것같다고 생각이듭니다. 그래도 극단적인 상황을 대비해서, 뒤에서 나오는 조회수 처리처럼 레디스로 좋아요 수를 증가시키고 스케줄링같은걸로 RDB에 백업하는 방식은 어떤가요? 동시성처리에서 비관적 락으로만 처리해야 하는 상황이 있을까요? 레디스의 분산 락을 사용하는 것이 성능 측면에서 비관락보다 유리할 때도 있을 것 같은데, 실제로 비관락을 반드시 써야 하는 예시나 사례가 궁금합니다. RDB 트랜잭션( @Transactional ) 내부에서 레디스를 함께 업데이트하는 경우, RDB에서 장애가 발생해서 롤백이됬는데 Redis 만 데이터가 업데이트 되는 경우도 발생할수도 있을것같은데. 이런 경우를 어떻게 처리하는지, 2PC를 적용하는지 아니면 다른 방법이 있는지도 궁금합니다.
An Invalid Python interpreter is selected, please try changing it to enable features such as IntelliSense, linting, and debugging. See output for more details regarding why the interpreter is invalid.
1. 현재 학습 진도 redis 2. 어려움을 겪는 부분 간단하게 제 프로젝트를 소개하자면 RSS피드를 통해 블로그의 글들을 불러와서 하나의 게시판에서 볼 수 있는 서비스 입니다. 스케쥴러 작업에서 구독한 피드의 새로운 글들을 불러옵니다. 피드마다 비동기로 병렬 처리됩니다. 이때 새로운 글인지 아닌지를 판단할 때 피드마다 redis를 사용하거나 피드마다 db의 조회를 통해 차이를 확인했는데 redis를 사용했을 때 빨라질 것이라 생각했지만 빠르지 않았습니다. 3. 시도해보신 내용 앞선 강의를 토대로 쿼리발생 횟수를 모니터링 횟수로 측정한 결과 피드가 100개일 경우 db의 조회를 활용했을 때 비동기 병렬 처리 되므로 100개의 select문이 나갑니다. redis를 사용했을 때는 0개의 select문으로 감소합니다. 하지만 성능은 비슷합니다. 예상 가는 이유로는 redis를 사용했을 때 그 횟수가 너무 잦아서 redis에 연결하는 네트워크 시간 때문에 차이가 미미하다는 말이 있던 것 같습니다. 만약 제 가설이 맞다고 한다면 redis를 사용할 때 항상 네트워크의 횟수를 최소화 해야만 redis의 성능을 온전히 이끌어 낼 수 있는건가요? 보통 레디스를 사용할 때 이걸 다 생각하면서 1번만 redis가 조회 되도록 하고 생각하면서 쓰나요? 그렇다면 제 코드에서 redis의 성능을 올바르게 나타내려면 피드의 새로운 글들을 하나의 List로 전부 묶은 후 redis에서 한번의 연결을 통해 한번에 캐싱을 확인해서 성능을 높여야 하는건가요?
1. 현재 학습 진도 부하테스트 2. 어려움을 겪는 부분 부하 테스트의 코드를 통해 성능 개선 사례를 적으려고 합니다. 하지만 현재 평균 req_duration 즉 레이턴시가 너무 낮게 나옵니다. vus를 300으로 두었는데 아마 커넥션 풀이 모자라서 대기가 길어지는게 원인 같긴 합니다. 하지만 이걸 떠나서도 vus 300치고 너무 느리다고 판단되어서 이걸 개선했다고 포트폴리오에 쓰는게 의미가 있을지 걱정됩니다. 또한 커넥션 풀이 모자라다고 대기업 개발자들이 항상 aws의 사양을 up시켜 커넥션 풀만 늘려서 해결하는 해결 방식을 사용하지는 않을 것 같은데 보통 성능 최적화를 통해 커넥션풀 점유를 짧게 해서 최대한 커넥션풀 고갈을 방지하는 방식으로 해결하나요? 만약 그렇다면 성능 최적화 하는 방법에 부하를 분산하기 위한 kafka, redis, msa같은 기술들이 들어가는 건가요? 마지막으로 성능 최적화를 포트폴리오 이력에 쓸 때 적절한 vus수가 궁금합니다 예를들어 면접관이 봤을 때 300명이라면 너무 적다고 판단되지 않을까 걱정되어서 어느 정도의 대략적으로 vus가 적정 인원인지가 궁금합니다, 3. 시도해보신 내용 시도하진 않았지만 개선할 방법으로는 강의에서 제공해주신 mysql의 실행계획을 통해 index 추가와 커넥션풀 사이즈 늘리는 것 그리고 캐싱 도입을 생각하고 있긴합니다.
정렬알고리즘[개념] - 전반부 의 약 14분 37초 즈음에 "Iterable 객체는 순서가 있는 객체로, list, tuple, set, dictionary, strings 등이 있다." 라고 하셨습니다만, 제가 알기로는 set의 경우 순서가 있는 객체는 아닙니다. 혹시 이에 대해 확인해주실 수 있을까요? 혹시 사람들이 이 개념에 대해 헷갈려할 수 있을 것 같아 문의 남깁니다.