코딩테스트를 하루종일 두개 치르고 와서 오늘은 좀 가벼운(?) 회고록을 남겨보려고 합니다
ICT 학점연계 인턴십 글로벌 과정을 통해서 실리콘 벨리에서 인턴십을 6개월간 수행했습니다
2022.03.02 ~ 2022.08.26
1. 선발 및 준비
서류(이력서) -> 코딩테스트 -> 회사별 면접 -> 매칭결과안내
1) 서류
절차는 간단합니다 !! 특이점은 미국에 있는 기업들이다보니 영문/국문 이력서를 둘 다 제출했습니다
기업을 1지망~3지망까지 고를 수 있었습니다
그리고 기업별로 서류를 낼 수 있어서, 간절했던 만큼 이력서를 3장 각각 회사별로 썼습니다..
일부러 수행한 프로젝트도 회사에서 뽑는 포지션 별로 조금씩 다르게 맞춰서 쓰려고 했어요
2) 코딩테스트
코딩테스트는 HackerRank 플랫폼을 사용해서 봤습니다. 문제는 영어로 출제되긴 하지만 크게 프로그래머스와 다를 것이 없었습니다.
5문제에 , 6시간정도? 꽤 긴 시간이 주어졌고, 난이도는 평이한 문제들 + 어려운 문제 섞여있었습니다
코딩테스트 보기 전에 백준을 그래도 좀 꾸준히 풀어놓은 상태여서 무난하게 봤던 것 같습니다
이거 코딩테스트 결과 안본다는 소문이 많았는데 ㅋㅋ 이후에 뽑히고나서 사수님과 이야기를 할때는 꽤 많이 보셨다고..
어처피 단기인턴이니까 결국 코딩이 중요하다고 생각하시는 것 같았어요 (물론 회사마다 다를듯 합니다)
3) 면접
운좋게도 1, 2, 3지망 회사에서 모두 면접기회가 와서 인터뷰를 세번 볼 수 있었습니다
대체로는 프로젝트 위주로 물어봤었습니다. 특이하게도 한 회사에서는 라이브 코딩테스트를 봤었는데 정말 무난한 BFS 문제가 나왔습니다
라이브 코딩테스트는 처음이었는데 시간복잡도와 공간복잡도를 문제 풀면서 생각을 해보면 좋겠다..는걸 느꼈습니다
그리고 라이브 코딩테스트 진행하시는 분은 외국분(?) 이셔서 풀이를 영어로 설명해야하는 재미있는 경험이었습니다 ㅎㅎ
4) 합격 통지와 비자 준비
Enuma 라는 교육 서비스를 만드는 회사에 인턴으로 합격했습니다
이때부터 미국가기전까지 굉장히 정신이 없었는데, 비자 인터뷰 및 비자 관련 서류가 많습니다..
그리고 한국에서 자취 경험이 zero인 상태에서 미국에서 자취방을 구하려니 참 머리아팠지만 그래도 한국과는 다른 집들을 보며 재미있었습니다
5) 집
- zillow 와 craglist 웹사이트를 열심히 조건에 맞게 필터링해서 후보들을 찜해놓습니다
- 열심히 집주인에게 컨택을 합니다
- 그리고 현지에 가면 집 투어를 해보고, 찾고있는 조건에 feel 오는 곳에 계약을 했습니다
2. 나는 대체 미국에서 무엇을 했나
3월
한국에서의 적응기간
비자 발급 이슈로 인해서 3주정도는 한국지사에서 근무를 했다. 우선 full-time 회사 경험이 완전 처음이라서 회사에 익숙해지는 것이 먼저였던 것 같다. 맥북을 새로 회사에서 받고, (16인치 pro 였다 ㅎㅎ) 환경셋팅을 해줬다
Xcode도 깔고 안드로이드 스튜디오도 깔고 terminal 환경셋팅도 쭉쭉 해줬다
그리고 방대한 양의 클라이언트 앱 코드들에 익숙해지며, 공부하는 시간을 가졌다
4월
미국 버클리 오피스 근무 시작
드디어 Bay area에서 정착을 막 시작했다. 일주일 동안 은행 계좌 개설, 집구하기 등등 모~든 필요한 일들을 다 처리했다. 너무 바쁘고 피곤해서 시차적응이 저절로 되었다. 버클리 오피스로 출근을 시작했다.
3 ~ 4월에는 음성인식 포켓스핑크스 라이브러리를 이용해서 iOS 프로토타입 앱을 만드는 일을 하게 되었다.
앱을 만들기 전에 포켓스핑크스 라이브러리에 대한 설명을 듣고.. 발음사전을 직접 만들어서 음성인식이 되는지 CLI 환경에서 테스트를 해봤다
iOS 프로토타입 앱에서는 iOS 라이브러리를 이용해서 녹음 모듈을 만들었는데, 단순히 .wav 파일을 만드는 것 말고도 pcm 데이터를 추출해주어야 해서 low level의 라이브러리를 사용해야 했다
5월
로그와 애증의 관계 (?) 시작..
그렇다.. 이때부터였다..
나는 '레이블러리' 라는 iOS 앱을 앱스토어에 런칭했던 상태였고, 사수님이 이를 캐치(?) 하시고 실제 서비스에 써볼만한 third-party 툴들을 리서치하는 일을 주셨다 내 앱에 직접 로그를 심으면서 사용할만한 가치가 있는지 검증을 했다.
이때 Avo, RudderStack, PostHog 세 가지 third-party 툴을 사용했다
Avo는 쉽게 말해, log schema를 정의할 수 있는 웹앱이다. log schema를 JSON 파일이나 xml 파일으로 export해주는 기능도 있다
그리고 클라이언트에서 Avo가 log schema를 코드화해준다
terminal에서 avo pull을 하면 업데이트된 log schema를 반영할 수 있다
RudderStack또한 event를 수집할 수 있는 sdk를 제공한다 그리고 avo로 쏜 event들을 datalake로 보내는 역할을 한다
PostHog는 GA(Google Analytics)와 비슷한 일을 하는 툴인데, GA와 다른 점은 데이터를 흡수하지 않는다고 해서 테스트해보게 되었다 쌓인 로그들을 시각화해서 그래프로 볼 수 있다. 듣기로는 기획자분들이 데이터를 요청을 많이 하신다고 하는데, PostHog는 기획자분들도 간단한 쿼리들은 쉽게 시각화해서 볼 수 있을 것 같다 PostHog도 event를 수집할 수 있게 하는 sdk를 제공한다 - 이게 요즘 트렌드일까~
샌프란시스코 사이트 지원
샌프란시스코에 있는 학교에서 우리 회사 앱을 파일럿 사용해본다고 해서 pixelC에 에누마스쿨 apk를 설치하는 일을 했다 pixelC를 플래시작업하거나 리셋하고, apk 열심히 깔았다 .. ㅋㅋㅋ 플래싱 작업하는건 처음해본다 !!
아이들이 사용하는 용도의 태블렛이어서, 수업시간에 아이들이 인터넷이나 유투브를 하지 못하게 (?) 방지할려고 아예 OS에 apk를 설치해두신 것 같다 그리고 새로운 버전의 apk를 깔아야 하니까 다시 플래싱 작업으로 지우고, 이번엔 app으로 설치했다
6월
데이터브릭스 작업 참여!
ETL 작업이 이루어지던 기존 코드를 데이터브릭스로 이사를 하는것에 참여했다
회사오기 전에는 ETL작업이 뭔지도 몰랐는데 ㅋㅋ 참 배우는게 많다
다른 회사에서는 어떻게 관리하는지 궁금한데, 이전 회사에서는 '메달리안' 이라는 룰을 가지고 있다
그래서 bronze - silver - gold table로 나눠져있고, bronze table에는 raw data를 가공한 데이터들이 담겨있다. silver data에서는 bronze table에서 또 한번 가공한 데이터들이 있고, 마지막으로 gold table에는 통계 자료에 필요한 가공된 데이터들이 담긴다.
아.. 개인 프로젝트하면 참 데이터가 안쌓이는데.. 회사에서 직접 대량의 데이터들을 다뤄보니까 신기하고 재밌다
그리고 이런건 스타트업이라서 좀 더 자유롭게 개발이 가능한 것 같다. 듣기로 모 대기업에서는 테이블별로 권한이 달라진다고..
7월
로그 심기
본격적으로 Avo 를 이용해서 EnumaSchool 앱에 로그 코드를 개편하는 작업을 시작했다!
작업을 시작하기 전에 인턴 동기들과 같이 Avo 리서치 및 EnumaSchool 로그 관련 코드를 정리해서 스크럼 시간에 발표를 했다
시니어 개발자분들의 피드백은... 실질적으로 avo를 사용했을 때 일어날 수 있는 문제점들에 대해 도움이 많이 될 것 같았다
회사에서는 cocos2dx로 안드로이드와 iOS 앱을 동시에 개발한다. 그래서 공통으로 들어가는 로그 함수들은 C++로 코드를 작성했다
그리고 iOS 네이티브 코드는 Objective-C/C++, 안드로이드는 java로 작성했다.
왜 Swift를 안쓰나요 ? 라고 대표님께 질문을 한번 드린적이 있는데,
앱 특성상 게임앱처럼 리소스가 큰편이라서 Swift보다 빠른 C++과 Objective-C를 선택하셨다고 한다. 그리고 Swift는 문법이 계속 바뀌는데 Objc는 2 에서 끝났으니.. 유지보수에 유리하다고 하셨다.
8월
로그 QA 진행
로그 심은 코드에 대해서 QA를 진행했다 서버 작업 다 안됐을 때는 클라이언트에서 봤었고, 이후에는 데이터브릭스에서 쿼리로 데이터들을 조회하여 확인했다.
3. 생활 / 문화적 측면
캘리포니아 생활 적응과 문화적인 측면에서의 적응은 정말 사람마다 개인차가 심할 것 같다. 음식이 입맛에 안 맞거나 문화적으로 한국을 그리워하는 케이스도 종종 봤다. 개인적으로는 새로운 걸 시도하는걸 항상 좋아하고 그걸 지향하는 성격이어서 힘든점은 없었다.
또한 영어도 캘리포니아 쪽은 발음 알아듣기 편해서 좋았다. 그리고 아시아인들 비율이 상당히 높아서 적응하기에는 다른 미국 지역보다 편한 것 같다.
다만 !!!!! 물가가 참 비싸서 힘들었다. 돈 말고는 힘든 점이 없었다. 근데 이건 한국을가나 어디를 가나 마찬가지 (?) 일 것 같다. 인플레이션이 점점 심해져서 식료품비가 비쌌다.
회사가 있는 곳은 실리콘벨리 산호세 부근보다는 북쪽의 버클리어서, 교통도 더 편한 편이었고 샌프란시스코 다운타운도 비교적 가까운편이었다. 그리서 사실 나는 차도 없이 잘 다니고 잘 놀았다. 차가 없어서 불편한 점도 있긴하지만 그럭저럭 꽤 이겨낼만하다 ㅋㅋ 그런데 하도 많이 걸어서 기름지고 살찌는걸 먹어도 살이 안찐다..
4. 느낀점
개인적으로는 취업이 적성에 맞구나 라는 걸 느꼈다. 원래도 대학원 진학보다는 , 우선 취업을 하고 싶다고 생각은 했다.
또 인턴십 하기전에는 개발자로 일하는것도 꽤 막연하게 느껴졌는데 , 이제는 회사에서 일을 하면서 작은 성취감들을 느껴서인지 좀 자신감이 붙은 것 같다. 그래서 현재 개발직 직무를 준비중이다 !
한국에서 근무할때는 거의 99.9% 리모트 근무를 했다 이렇게 flexible한 분위기의 회사가 존재하다니.. 난 자율성을 존중해 주는 부분이 참 마음에 들었다.
버클리 오피스에서도 몇몇 분들을 제외하고 대체로 리모트 근무를 하신다. 그리고 한달에 한번은 다같이 얼굴보고 만나서 일하자는 의미의 Office gathering day가 있다. 그런데 이 또한 자율이다. 나는 맛있는거 먹을려고 열심히 나갔다 ㅋㅋ 이런 부분에서 회사의 컬쳐는 되게 friendly 하고 좋았던 것 같다
보는 시야가 많이 넓어졌고 마음에 여유가 생겼다. 추상적으로 들리지만, 사실 굉장히 현실적인 도움을 준다. 이전에는 대기업에만 가고 싶다고 생각했는데, 요즘은 어떤 규모의 회사더라도 내가 성장할 수 있는 환경이면 제일 좋다고 생각이 든다
또한 회사에서 실무에 필요한 기술들은 학교 프로젝트에서의 범위와 너무나도 다르다는 걸 느꼈다. 또 데이터베이스 관리는 사업에 직접적인 영향을 받는다(?)는 것도 옆에서 배우게 되었다. 원래 data engineering에 대해서는 아는 것이 없었는데 인턴십을 통해서 클라이언트 개발 뿐만 아니라 data도 보고 쿼리도 좀 쳐보고 하면서 흥미가 생겼다
마지막으로 미국에서 - 캘리포니아만 6개월이다보니 극히 일부를 겪었겠지만 - 일하고 먹고 사는게 큰 문제는 없는 것 같고, 실리콘벨리 기업들의 문화가 정말 마음에 든다. 내가 있을 당시는 tech winter의 시작에 covid로 인해서 오프라인 네트워킹 행사라던지 job opportunity가 많이 줄었다. 경제 상황이 어려운게 피부로 참 와닿았다. 상황이 호전되면 다시 꼭 실리콘벨리 지역으로 가서 일하고 싶다.
'개발일기' 카테고리의 다른 글
DevOps 로드맵 (0) | 2022.12.07 |
---|---|
221127 GitHub (0) | 2022.11.27 |
[GitHub] 깃허브 잔디 안 심어질 때 해결방법 (0) | 2022.03.14 |
거의 1일 1커밋 한 겨울! (2) | 2022.03.13 |
씨젠의료재단 - 미국 출국 pcr 결과 당일에 받을 수 있는 병원!!!!! 오예 (0) | 2022.02.25 |