한국에서 끝낼 거야? 영어로 세계 시장을 뚫어라! 🌍🚀
안녕하세요. UC Berkeley에서 💻 컴퓨터 공학(EECS)을 전공하고, 실리콘 밸리에서 15년 이상을 소프트웨어 엔지니어로 일해왔으며, 현재는 실리콘밸리 빅테크 본사에서 빅데이터와 DevOps를 다루는 Staff Software Engineer로 있습니다.
🧭 실리콘 밸리의 혁신 현장에서 직접 배운 기술과 노하우를 온라인 강의를 통해 이제 여러분과 함께 나누고자 합니다.
🚀 기술 혁신의 최전선에서 배우고 성장해 온 저와 함께, 여러분도 글로벌 무대에서 경쟁할 수 있는 역량을 키워보세요!
🫡 똑똑하지는 않지만, 포기하지 않고 꾸준히 하면 뭐든지 이룰수 있다는 점을 꼭 말씀드리고 싶습니다. 항상 좋은 자료로 옆에서 도움을 드리겠습니다
講義
受講レビュー
- シリコンバレーエンジニアとのAmazon Webサービス(Core)編
- Docker を使用したシリコンバレー エンジニア
- シリコンバレーエンジニアとのアンサーブル
投稿
Q&A
append 모드 사용 시 집계
안녕하세요 권지혁님,핵심은 “Append 모드로는 ‘최종값만 확정된 행’만 쓸 수 있다”는 점이에요. 집계(aggregation)는 원래 값이 계속 변하므로, 최종값을 판정할 기준(이벤트 시간이 닫혔다 등)이 없으면 append가 불가합니다하지만, 이벤트 타임 열과 워터마크를 설정하고, 시간 윈도우(또는 세션 윈도우) 로 집계하면, 워터마크를 넘어 늦게 올 데이터는 무시되고, 해당 윈도우의 결과를 최종값으로 확정할 수 있어 append가 됩니다.from pyspark.sql import functions as F events = ( spark.readStream .format("kafka") .option("kafka.bootstrap.servers", "broker:9092") .option("subscribe", "events") .load() .selectExpr("CAST(value AS STRING) AS value", "CAST(timestamp AS TIMESTAMP) AS ts") ) agg = ( events .withWatermark("ts", "15 minutes") # 늦게 오는 데이터 허용 한도 .groupBy(F.window("ts", "10 minutes"), F.col("value")) .count() .select( # 윈도우 컬럼 평탄화(선택) F.col("value"), F.col("count"), F.col("window.start").alias("window_start"), F.col("window.end").alias("window_end"), ) ) query = ( agg.writeStream .outputMode("append") # 윈도우가 ‘닫히면’ 최종 레코드만 append .format("kafka") .option("kafka.bootstrap.servers", "broker:9092") .option("topic", "events_agg_10m") .option("checkpointLocation", "/chk/agg_10m") .start() )왜 되나? 윈도우는 끝 시각이 있고, 워터마크가 지나면 “이 윈도우 값은 더 이상 바뀌지 않는다”라고 판단 가능 → 최종 레코드만 append.즉, Kafka/File 등 append-only 싱크로 집계를 쓰고 싶다라고 하시면 withWatermark + window 집계 + outputMode("append")로 디자인 하시면 될 듯 합니다.
- 0
- 2
- 12
Q&A
CDC 기반 스파크 아키텍처 구현 방법이 궁금합니다.
앗 죄송합니다. 제가 질문이 들어온 걸 인지를 못하고 있었네요RDS -> (CDC) -> S3(Parquet) -> EMR/Spark 는 매우 보편적이고 잘 쓰이는 패턴입니다. 다만 “CDC → S3” 구간은 DMS로 단순 적재만 하고, 실제 ‘업서트/삭제 반영·컴팩션·스키마 진화’는 Lakehouse 포맷(Hudi/Iceberg/Delta)로 관리하는 것이 실무에서 가장 깔끔합니다. 즉, DMS는 추출·전달(Extraction), EMR/Glue는 테이블 관리(Upsert/Compaction/Optimize) 역할을 분리하는 구성이 베스트 프랙티스에 가깝습니다.도움이 되셨다면 좋겠네요.
- 0
- 2
- 33
Q&A
Dockerfile 질문
안녕하세요,코멘트 남겨주셔서 감사합니다. 부모 디렉토리를 app이라고 해놨기 때문에 혼동이 되는 경우도 있기도 하겠지만, 말씀하신 점은 맞습니다.COPY app /app/→ 호스트의 app 디렉토리를 컨테이너 안의 /app/ 디렉토리 밑으로 복사합니다.따라서 컨테이너 안에는 /app/ 이 위치하게 됩니다.코드를 다커 안에 /app 밑으로 존재하게 만들어놨기때문에 코드는 맞습니다만 혼동이 되셨을 수도 있겠네요.
- 0
- 2
- 23
Q&A
공식 compose 내 postgres db 설치시
안녕하세요 임해빈님,좋은 코멘트 감사합니다. 밑에 AI 인턴이 말한 것 같이 Compose를 사용하실때 서비스명은 호스트명으로 사용 가능합니다. 단 같은 네트워크 상에 있어야합니다.도움이 되실지 모르겠지만 https://inf.run/mrzP8 제 무료 Docker 강의가 있으니, 들으시면 개념 이해하는데 도움이 되실 것 같습니다.
- 0
- 2
- 33
Q&A
vs code 환경에서 실행방법
안녕하세요 sugmug님,일단 불편을 드려 죄송합니다. 지금 바로 녹화해서 공지사항 올려놨으니, 인코딩 끝나고, 영상 보시면 도움이 될 수도 있을 것 같습니다. 제가 추측해서 넣은 내용인데 도움이 되었으면 좋겠습니다.나중에 좋은 리뷰도 부탁드려요 ㅎㅎ(사진)
- 0
- 2
- 22
Q&A
실전문제풀이 영상 코드 폰트가 작으며 영상이 뭔가 흐릿합니다.
안녕하세요 슷파맨님,먼저 불편을 끼쳐드린 점 진심으로 사과드립니다.어떤 강의인지 알려주시면 바로 확인하여 도와드리겠습니다.현재 모든 강의의 코드가 자료실에 올라와 있으니, 먼저 확인해 보시면 불편함이 다소 해소될 수 있을 것 같습니다.추가로 도움이 필요하시면 언제든지 말씀해 주세요.다시 한 번 사과드립니다.
- 0
- 1
- 33
Q&A
[한글화된 강의자료 요청]
안녕하세요. 강의 들어주셔서 정말 감사합니다.말씀해주신 부분 충분히 공감되며, 저 역시 학습 시 가독성이 얼마나 중요한지 잘 알고 있습니다.다만, 현재는 영어 버전의 자료만 보유하고 있어 한국어 자료를 별도로 제공해 드리기 어려운 점 양해 부탁드립니다.번역본의 경우 오역이나 의미 왜곡의 우려가 있어, 강의에서는 최대한 공식 문서를 기반으로 정확하게 설명드리기 위해 영어 원문을 중심으로 구성하였습니다.불편을 드려 죄송하며, 강의 내용 중 이해가 어려운 부분이 있으시면 언제든 편하게 질문 주세요. 최대한 도와드리겠습니다.감사합니다.
- 0
- 2
- 43
Q&A
영상이 소리만 나오고 영상은 안보입니다.
네 인프런 문제일 겁니다. 인프런에 문의해 주시면 도움을 받으실 수 있습니다! 불편을 드려 죄송합니다
- 0
- 2
- 32
Q&A
시니어엔지니어 지원
네, 이 정도 스코프만 충분히 숙지하셨다면 시니어 레벨 시스템 디자인 인터뷰에서도 상당 부분을 커버할 수 있습니다. 특히 핵심 개념들과 아키텍처 간의 트레이드오프를 명확하게 이해하고 설명할 수 있다면, 인터뷰어 입장에서도 신뢰를 가질 수 있는 수준입니다. 물론 회사마다 강조하는 영역이 조금씩 다를 수는 있지만, 지금의 준비 방향은 확실히 좋은 방향이고, 계속 다듬어 나가신다면 충분히 경쟁력 있는 실력을 갖추게 되실 거예요.
- 0
- 1
- 51
Q&A
퀴즈6번 문의
안녕하세요 jnkim님,혹시 어떤 퀴즈를 말씀하시는 건지 알 수 있을까요? 제가 퀴즈를 만들었던 적은 없는데, 인프런에서 자동으로 내용을 바탕으로 퀴즈를 만들었나 보군요.
- 0
- 2
- 35