💪💪💪 최고가 되고 싶다면, 최고의 강사에게 배워야 합니다 💪💪💪
안녕하세요. UC Berkeley에서 💻 컴퓨터 공학(EECS)을 전공하고, 실리콘 밸리에서 15년 이상을 소프트웨어 엔지니어로 일해왔으며, 현재는 실리콘밸리 빅테크 본사에서 빅데이터와 DevOps를 다루는 Staff Software Engineer로 있습니다.
🧭 실리콘 밸리의 혁신 현장에서 직접 배운 기술과 노하우를 온라인 강의를 통해 이제 여러분과 함께 나누고자 합니다.
🚀 기술 혁신의 최전선에서 배우고 성장해 온 저와 함께, 여러분도 글로벌 무대에서 경쟁할 수 있는 역량을 키워보세요!
🫡 똑똑하지는 않지만, 포기하지 않고 꾸준히 하면 뭐든지 이룰수 있다는 점을 꼭 말씀드리고 싶습니다. 항상 좋은 자료로 옆에서 도움을 드리겠습니다
직무 데이터 엔지니어 / SRE / DevOps / Architect
경력 15년+
현직 실리콘밸리 빅테크
미국 취업 성공기
처음 미국 땅을 밟던 날의 설렘과 불안함이 여전히 생생하게 떠오릅니다! 기대와 흥분도 잠시, 과연 이 곳에 내가 발을 디디고 일할 수 있는 곳이 있을까 두렵기도 했는데요. 책을 읽고 격려의 말을 메모장에 적으며 매일을 견뎠답니다.
어느덧, 저는 실리콘밸리 빅테크에서 매일 34B의 이벤트를 처리하고, 10PB 이상의 데이터를 다루고, 100TB 메모리를 활용하는 거대한 데이터 팀에서 일하고 있습니다. 새로운 도전과 난해한 문제를 끊임없이 마주하지만, 누구보다 민첩하게 신기술을 개발하고 실무에 적용하는 멋진 동료들과 덕분에 정말 즐겁게 업무에 임할 수 있습니다.
그 밖에도 취미로 유튜브/인프런을 통해 빅데이터 및 DevOps/SRE(Site Realiability Engineer) 관련 기술 강의를 제작하며, 각 레벨에서 필요한 지식을 전달하며 함께 성장하는 즐거움으로 일상을 채웁니다.
멘토링 카테고리
제 전문분야인 데이터 엔지니어링과 DevOps을 중심으로 멘토링을 진행합니다. 주로 취업/이직/유학을 많이들 물어보시는데, 사실 이 모든 커리어 전환의 핵심은 각 포지션의 최소~최대 요구조건이 무엇이냐에 달려있습니다.
대략적 가이드라인을 드리면 아래와 같습니다.
- 취업/이직: 현재 기술 실력, 경험, 이력서, 취업이나 이직의 목적
- 유학전략: 나이, 전공, 가고자 하는 대학, 집안의 서포트
막연함 대신 전략과 노하우가 연봉상승의 핵심
충분히 실력과 가능성이 있는 분들이 무엇부터 시작해야 하는지 막연함을 느끼며 아까운 시간만 보낼 때, 적절한 멘토링이 원하는 방향을 찾고 나아가는 추진력이 되는 것을 보았습니다.
현지에서 실제로 취업/이직을 하며 여기까지 오며 쌓은 경험와 노하우, 다양한 동료에게 들은 성공담과 전략을 공유하고, 해외 취업을 위한 용기를 드리려 합니다.
연봉에 대해 많이 물어보시는데, 지역마다 다르지만 실리콘밸리 기준 인턴(주니어) 초급 연봉은 대략 150,000불(1억 8천만원)정도입니다. 현재 제가 받는 연봉은 캘리포니아에서 충분히 자가를 구매할 수 있는 정도라고 보시면 됩니다. 조금만 자랑을 하자면, 집 근처에는 고 스티브잡스의 집이 있고, 아침이면 실리콘밸리를 이끄는 IT기업 리더들이 자전거를 타거나 커피 마시는 모습을 심심치않게 볼 수 있는 재밌는 동네입니다.
멘토링 방향 예시/소요시간
- 기술/커리어 상담
- 현재 기술 수준 파악 + 개인 목표를 위해 필요한 스킬/커리어 세팅 및 전략과 실제 사례 공유 (1시간)
- 시뮬레이션
- 코딩 테스트/피드백 (최소 1시간)
- 모의 영어 면접 (최소 1시간)
- 프로젝트 조언
- 비영리 목적 프로젝트/취업 포트폴리오에 대해서 방향이나 기술 조언 (최소 1시간)
- 기타 상담/조언
- 미국 취업 자체에 대해 아직 확신이 없고, 뭐부터 시작해야 할 지도 모르겠는 경우(최소 1시간)
- 전략과 방향성은 수립했지만 여전히 막막해서 격려가 필요하신 분(최소 1시간)
신청 방법/진행 방식
서로에게 주어진 짧으며 값비싼 시간을 최대한 유용하게 사용하고 싶습니다. 아래의 링크를 통해 멘토링을 작성하시고, 저에게 많은 것을 묻고 최대한의 것을 얻어가시길 바랍니다!
- 양식 작성 (https://forms.gle/NLDqfJzBBbP2arhz8)
- 확인 후 준비 과정 및 시간 조율
- 전달된 Google Meet으로 멘토링 진행
멘토 이력/강의
강의
로드맵
전체 3수강평
- 실리콘밸리 엔지니어와 함께하는 Docker
게시글
질문&답변
섹션2 ["환경 vs. 설정 vs. 구성"] 강의 자막 문의
안녕하세요 티읕이응님,예리하시네요 ㅎㅎㅎ 디자이너 님이 실수하신 것 같네요. 말씀하신 점이 맞습니다! 환경 / 구성 / 설정Environment / Configuration / Setting
- 0
- 1
- 19
질문&답변
시스템 디자인 2권이나 머신러닝에 대한 계획
안녕하세요 에반황님,좋은 질문 입니다. 아직까지는 계획에 없습니다. 제가 3권 다 보기는 했는데, 1권 이상은 특정한 산업에 있지 않는 이상 필요가 없어 보이더라구요. 하지만 필요한 자료가 있다 싶으면, 저희의 경험을 중심으로 다시 보충해보겠습니다.
- 0
- 1
- 14
질문&답변
파이썬 data insert to table
안녕하세요 hunter님,현재 코드에서는 executemany()를 사용해 Hive 테이블에 한 줄씩 데이터를 삽입하고 있습니다. 한 줄씩 삽입하는 방식(INSERT INTO VALUES)은 비효율적이며, 파일 단위로 한 번에 적재하는 것이 훨씬 빠릅니다. executemany() 대신 데이터를 CSV 또는 Parquet 파일로 저장한 후, Hive에 로드하는 방식이 더 적절합니다. 그리고 Google Sheets 데이터를 CSV로 변환하여 로드하는 것이 훨씬 빠를 수 있습니다 - get_all_values()는 전체 데이터를 한 번에 가져오므로 데이터가 많을 경우 속도가 느려집니다. 흠... 마지막으로 df.loc[i]를 사용한 반복문은 매우 비효율적이며, 성능을 크게 저하시킵니다. itertuples()을 사용하면 속도가 훨씬 빨라집니다.data = [ (row.a, row.b, row.v, row.d, row.e, row.f, row.g, row.h, row.i) for row in df_hc_list.itertuples(index=False) ]근데, 제가 하이브를 여기서 가르쳐드렸나요? 기억이...
- 0
- 2
- 24
질문&답변
multi node로 띄우는 상황에서 궁금증이 생겨 질문을 남깁니다
안녕하세요 가보자!!님,Docker Compose를 프로덕션 수준으로 구성하려니 해야 할 일이 많네요. Nginx를 설정하여 로드 밸런싱(Client acess)을 구현해야 하고, 인증서 관련 문제(TLS 적용, RBAC 활용, 인증서 개별 적용)도 해결해야 하며, 각 노드별 역할(Master, Data, Ingest, Coordinating Node)도 명확히 지정해야 할 것 같습니다. 또한, 보다 많은 컨테이너가 필요할 것으로 보이네요.아쉽지만 Compose로는 완벽한 Fault Tolerance를 만들기는 힘들어 보입니다.
- 0
- 4
- 18
질문&답변
동시성 관련되어 궁금증이 생겨 질문을 남깁니다
안녕하세요 가보자!!님,네, 그렇습니다.특정 시점에서 조회한 seq no와 primary term을 유지하고, 업데이트 요청 시 함께 보내서 변경된 데이터가 없을 때만 업데이트가 적용되도록 보장해야 합니다.
- 0
- 1
- 15
질문&답변
multi node로 띄우는 상황에서 궁금증이 생겨 질문을 남깁니다
안녕하세요 가보자!!님docker-compose파일을 보면 es01에만 포트 포워딩이 되어있는데! 클라이언트와는 es01만 통신을 하는건가요? primary shard는 es02, es03도 될수 있는거 같아서 질문을 남깁니다.-> 네, 현재 docker-compose.yml 파일에서 es01에만 포트 포워딩이 설정되어 있습니다.# Line 92 ports: - ${ES_PORT}:9200즉, 외부 클라이언트(예: Kibana, 애플리케이션)에서 직접 접근할 수 있는 유일한 노드는 es01입니다.es02와 es03은 클러스터에 참여하지만, 외부에서는 접근할 수 없습니다. 그러나 Primary Shard는 es02, es03에서도 생성될 수 있습니다.Elasticsearch의 기본적인 샤드 할당 방식에 따라 Primary 및 Replica Shard는 모든 노드에서 배치될 수 있기 때문입니다. es01노드를 shut down시키면 service unavailable이 되는데! 이렇게 되면 진정한 의미에서의 Fault Tolerance가 안되는거 아닌가 하는 생각이들어서 질문을 남깁니다.(es01이 shut down되면 시간이 지나도 복구가 안되는 상황입니다..) -> es01을 종료했을 때 클러스터가 복구되지 않는 이유는, es01이 유일한 마스터 노드로 동작하고 있기 때문입니다.현재 설정에서 cluster.initial_master_nodes에 es01, es02, es03이 포함되어 있습니다.- cluster.initial_master_nodes=es01,es02,es03이는 클러스터 초기 부팅 시 es01, es02, es03 중 어느 하나가 마스터로 선출될 수 있도록 보장하는 설정입니다. 그러나, cluster.initial_master_nodes는 클러스터를 처음 시작할 때만 사용되고 이후에는 새로운 마스터 노드를 자동으로 선출하지 않습니다.즉, 클러스터가 실행된 이후에 es01이 마스터 노드가 되었고, es01이 죽으면 클러스터는 새로운 마스터를 자동으로 선출하지 못하게 됩니다.아마 es02와 es03에 - node.roles=master,data 를 넣으시면 아마 마스터 후보에 오를 거 같은데, 제가 한번 해봐야 되겠네요.
- 0
- 4
- 18
질문&답변
0.0.0.0:8000 접속이 안됩니다
안녕하세요 ansghltjd9님,이게 운영체제에 따라서 다른데, Windows에서는 이런 문제가 있더라구요. 우선 여러가지 이유가 있을 듯 한데요? 제가 생각나는 것만 몇가지 적어보겠습니다.Firewall이나 Network configuration 문제일 가능성이 있는데, Firewall룰이 0.0.0.0을 막아 놓을 경우가 있습니다.방화벽에서 예외 규칙을 추가해줘야 합니다.방화벽 예외 규칙 추가 방법제어판 → Windows Defender 방화벽 → 고급 설정으로 이동왼쪽에서 인바운드 규칙 선택 후 새 규칙 만들기포트 선택 후 다음특정 로컬 포트에 8000 입력 후 다음연결 허용 선택 후 다음프로필(도메인, 개인, 공용) 선택 후 다음규칙 이름을 정하고 마침Django Settings.py에 ALLOWED_HOSTS가 있는데 ['*']로 해보시겠어요?Hosts file문제가 있을 수 있는데, 맥이나 유닉스 시스템 같은 경우 /etc/hosts 나 윈도우에서는 C:\Windows\System32\drivers\etc\hosts 를 확인해 보시겠어요?C:\Windows\System32\drivers\etc\hosts 파일을 열어서 0.0.0.0이 특정 도메인과 매핑되어 있는지 확인하세요. 기본적으로 0.0.0.0은 어떤 특정 도메인에 연결되면 안 됩니다.OS 자체에서 막아놓을 가능성도 있습니다.마지막으로 다른 브라우져를 한번 사용해 보시겠어요?
- 0
- 2
- 28
질문&답변
rdd, dataframe, spark sql 각각 언제 사용할까요?
안녕하세요 km9311님,Spark 2 버전에서는 주로 RDD를 활용했지만, Python에서 RDD를 사용할 경우 성능 저하 문제가 발생할 수 있습니다. 따라서 현재 PySpark에서는 DataFrame을 사용하여 데이터를 테이블 형식으로 변환한 후 SQL을 사용하는 방식이 권장됩니다.
- 0
- 2
- 38
질문&답변
수업노트 github 주소가 404가 많아요
안녕하세요 김샬롬님,강의 자료는 "강의 코드 자료"에서 보시면 다운 받으실 수 있습니다. Github이 프라이빗으로 바뀌어서 그런 거 같네요.
- 0
- 1
- 25
질문&답변
gradle build 오류 문의
안녕하세요 kkangssil님,Eclipse에서는 정상적으로 빌드가 동작하지만 CLI에서 실패하는 경우, CLI의 환경 설정 예를들면, Java 경로, Gradle 버전, 캐시 등이 원인일 수 있습니다.java -version하셔서 Gradle과 호환되는 Java 버전을 사용 중인지 확인하시거나, gradle clean 그리고 gradle build 하셔서 캐시를 정리해 보시는 방법도 좋은 방법인 것 같습니다.
- 0
- 2
- 65