한국에서 끝낼 거야? 영어로 세계 시장을 뚫어라! 🌍🚀
안녕하세요. UC Berkeley에서 💻 컴퓨터 공학(EECS)을 전공하고, 실리콘 밸리에서 15년 이상을 소프트웨어 엔지니어로 일해왔으며, 현재는 실리콘밸리 빅테크 본사에서 빅데이터와 DevOps를 다루는 Staff Software Engineer로 있습니다.
🧭 실리콘 밸리의 혁신 현장에서 직접 배운 기술과 노하우를 온라인 강의를 통해 이제 여러분과 함께 나누고자 합니다.
🚀 기술 혁신의 최전선에서 배우고 성장해 온 저와 함께, 여러분도 글로벌 무대에서 경쟁할 수 있는 역량을 키워보세요!
🫡 똑똑하지는 않지만, 포기하지 않고 꾸준히 하면 뭐든지 이룰수 있다는 점을 꼭 말씀드리고 싶습니다. 항상 좋은 자료로 옆에서 도움을 드리겠습니다
Courses
Reviews
- Apache Flink with Silicon Valley Engineers
- Python from Basics to Advanced Taught by Silicon Valley Engineers
- Python from Basics to Advanced Taught by Silicon Valley Engineers
- Redis with Silicon Valley Engineers
- Python from Basics to Advanced Taught by Silicon Valley Engineers
Posts
Q&A
섹션 10에 수업 자료 링크가 없네요
안녕하세요 이건희님,이 영상 섹션은 게시문입니다. 아무런 링크가 원래 없었는데 혹시 인프런에 문의해 보시겠어요? 불편을 드려 죄송합니다
- 0
- 2
- 16
Q&A
postgres_loader DAG 에러
안녕하세요 김현지님,보충 영상 자료 설명과 함께 올려 놓았습니다.불편을 드려 죄송하고, 질문해 주셔서 감사합니다(사진)!
- 1
- 3
- 22
Q&A
postgres_loader DAG 에러
안녕하세요 김현지님,이 예제는 PostgreSQL이 Docker에서 돌고 있기 때문에 Airflow도 Docker로 돌리시면 액세스를 하실 수가 없습니다.강의 중에 Apache Airflow 설치하기 보시면 제가 두가지 사용법을 가르쳐 드렸는데, 여기서는 Standalone 모드를 사용해서 Airflow를 시작하셔야지 PostgreSQL을 액세스 하실 수 있습니다. 혼동을 드려 죄송합니다. 제가 따로 영상을 올리겠습니다. (사진)(사진)
- 1
- 3
- 22
Q&A
Replit UI가 업데이트 되서 강의 진행이 멈췄어요
안녕하세요 admin님,기존 답변에 말씀드린대로, 업데이트 동영상 올려놨으니 필요하시면 확인해 보시면 좋을 듯 합니다."[업데이트] 파이썬 패키지 인스톨하는 방법" 감사합니다.
- 2
- 3
- 74
Q&A
Replit UI가 업데이트 되서 강의 진행이 멈췄어요
안녕하세요 admin님,레플릿이 많이 바껴서 어려움을 드려 죄송합니다. 이부분은 제가 동영상으로 다시 올려서 말씀드리도록 하겠습니다. Python 패키지를 인스톨하시는 방법은 다음과 같습니다. 일단 위의 + 버튼을 누르세요(사진) 다음은 developer를 누르세요(사진) 그리고 imports를 누르세요(사진)그리고 Add new package를 누르세요(사진) 그 다음은 필요하신 패키지를 인스톨하세요(사진) 그러면 다음과 같이 사용하실 수 있습니다.(사진) (사진) 마지막으로 질문 남겨주셔서 감사합니다!
- 2
- 3
- 74
Q&A
쇼츠 관련 질문
안녕하세요 JE님,쇼츠는 중요한 거 재미있게 한번 휘리릭 보시라고 올려놔서 선택사항입니다. 모든 내용은 뒷부분 본강의 기초강의에서 다시 나옵니다 ㅎㅎㅎ
- 0
- 1
- 30
Q&A
S3 폴더 구조에 따른 Static Partition Pruning, DPP 질문
안녕하세요 sgjeong1108님,Dynamic Partition Pruning(DPP)이 제대로 동작하려면 스파크가 "파티션 컬럼 -> 디렉터리 위치" 매핑을 메타데이터로 알고 있어야 합니다.이 매핑을 알리는 일반적인 방법이 말씀하신 Hive-style 디렉터리(col=value/…) 이고, 이 경우 메타스토어가 없어도(그냥 spark.read.parquet만 해도) 자동 "파티션 디스커버리"가 됩니다근데, Hive-style이 아니어도 됩니다. 다만 그 경우엔 메타스토어(또는 Delta/Iceberg 카탈로그) 에 파티션을 등록해 스파크가 매핑을 알게 해줘야 SPP/DPP가 작동합니다만약 디렉토리가 /year=2024/data.parquet라면 다음과 같이 하시면 됩니다.df.write .partitionBy("year") .mode("overwrite") .parquet("/path/to/data")그게 아니라면 location을 사용하시면 됩니다.CREATE EXTERNAL TABLE events ( user_id BIGINT, ts TIMESTAMP, ... ) PARTITIONED BY (year INT) STORED AS PARQUET LOCATION 's3://bucket/events'; -- 이거는 상위 루트 -- 폴더명이 'year=2024'가 아니어도 되요 ALTER TABLE events ADD PARTITION (year=2024) LOCATION 's3://bucket/events/2024'; ALTER TABLE events ADD PARTITION (year=2025) LOCATION 's3://bucket/events/2025';
- 0
- 2
- 28
Q&A
Top Queue Interview Questions 질문
안녕하세요 이시우님,수강생님의 생각이 아주 좋습니다. "물리적으로 큐처럼 만드는 건 어렵다"는 부분은 정확해요.다만, 스택 두 개를 통해 논리적으로 큐의 동작을 흉내낼 수 있다는 점이 핵심이에요.즉, 구현 관점에서는 완전히 가능하며 실제로 자주 사용되는 인터뷰 문제이기도 합니다.
- 0
- 1
- 22
Q&A
Queue 강의를 듣고 난 후에 대한 질의
안녕하세요 김제원님,좋은 질문들이 많네요.큐를 지정할 때는 무조건 큐의 이름을 지정해 줘야 하나요? 자동으로 비어 있는 woker에 큐를 할당하는 방법은 없나요?=> 꼭 지정할 필요는 없습니다.. BaseOperator(queue="...")를 지정하지 않으면 기본값(default) 큐로 갑니다. Airflow/Celery 설정의 default_queue를 바꾸면 기본 큐 이름을 바꿀 수 있어요.=> “빈 워커”로의 자동 배정은 큐 단위로만 이뤄집니다. Celery는 “같은 큐를 구독하는(worker -q) 워커들” 사이에서 작업을 분배합니다. “현재 가장 한가한 워커를 자동으로 찾아서” 같은 기능은 같은 큐를 공유할 때에만 자연스럽게 일어납니다(라운드로빈+prefetch 수준). cpu_intensive라는 woker에 여러개의 큐가 동시에 요청이 왔을 경우 동기적으로 처리하나요?=> 동기적이라는 말이.. 직렬 처리를 말씀 하시는 건가요? Celery 워커는 기본적으로 worker_concurrency(프로세스/스레드 수)만큼 병렬로 처리합니다. 한 워커가 여러 큐(-q cpu,gpu,io)를 구독하면 각 큐에서 들어온 작업을 하나의 작업 대기열로 합쳐 자신의 동시성만큼 병렬 실행해요. 직렬 처리를 원하신다면, 그 워커를 worker_concurrency=1로 세팅하시면 될 겁니다. 큐를 생성하면 해당 큐의 물리적 자원은 어떻게 할당 되는 것인가요?=> 큐는 "논리적 라우팅 키"일 뿐, 자원을 직접 할당하지 않습니다. 자원은 Worker에서 알아서 합니다.. 워커 프로세스 수(concurrency), 머신 vCPU/RAM, 컨테이너 리소스 제한(요청/제한), 쿠베라면 노드/네임스페이스 등에서 결정됩니다. 대체로 하나의 DAG에서 강의에 예시와 같이 여러 개의 큐를 사용하는 경우가 있을까요?=> 가능은 하지만, 너무 많이 하나로 넣는 것은 추천드리지 않습니다.. 일반적으로는 “리소스 클래스별” 소수 큐로 충분합니다. 예를 들면 cpu_intensive, io_heavy, gpu, external_api 이런 식으로 말입니다. 워커를 많이 만들어 환경을 구성하는 사례는 어떤 사례가 있는지 알 수 있을까요?=> Work Load를 분리할 때 CPU 바운드/IO 바운드/GPU/대용량 메모리 작업을 서로 다른 워커 그룹으로 격리할 때가 있을 수 있겠고 ...멀티 테넌시/팀 분리가 필요할때 팀별 큐/워커로 나눠 소음(노이즈 네이버) 방지 및 운영 책임 분리를 원할때? 쯤이 있을 것 같습니다.
- 0
- 1
- 30
Q&A
broadcast Join과 boradcast + UDF 차이
안녕하세요 sgjeong1108님,좋은 질문이네요. 일단 실행 계층 측면에서 봤을때, broadcast join은 JVM 내부에서 해시 조인, Whole-Stage Codegen 최적화를 가능하게 하지만 UDF + broadcast(파이썬 UDF)는 JVM와 Python를 계속 왕복해서 비효율적이며, 코드젠/컬럼너 실행도 비활성화되어있습니다.또한 broadcast join는 카탈리스트 최적화, 통계, AQE 활용 가능해서 대체로 빠른 반면에, UDF + broadcast는 필터,프루닝,프레디킷 푸시다운 등 대부분 막혀서 느립니다.결과적으로 기본은 항상 broadcast join로 설계를 하시되, Lookup 자체가 함수형 변환이어야 하거나, 외부 라이브러리를 꼭 써야 할때나... 조인으로 표현이 어려울 때는 UDF + broadcast를 사용하시면 됩니다.
- 0
- 2
- 26






