tag:blogger.com,1999:blog-41374467519616900292024-03-06T01:29:05.012-08:00POTATOSOFT.COM개인적인 이야기와 관심사들을 기록하는 곳. Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.comBlogger518125tag:blogger.com,1999:blog-4137446751961690029.post-66619906965942179832019-07-26T23:17:00.002-07:002019-07-26T23:28:54.160-07:00요즘 포스팅을 모두 medium쪽으로 하고 있습니다안녕하세요?<br />
<br />
어쩌다보니 그냥 한번 써보기로 한 medium.com 에다가 죄다 최근 포스팅을 하고 있습니다.<br />
<br />
현재 도메인인 potatosoft.com 은 제가 대학때인가 사회 취업한지 얼마 안됐을때부터 유지해 온 도메인이고, 블로그 시스템은 그동안 네띠앙(기억하는 분들이 계실려나요)에서 웹호스팅 제로보드 이곳저것을 거쳐 네이버 블로그로 옮겼다가 블로거까지 온 것이었는데요 ..<br />
<br />
1) 일단 현제 도메인이 지극히 개인적이지 않은 데다가<br />
2) Blogger의 글쓰기 시스템이나 에디터도 썩 만족스럽지 않습니다.<br />
<br />
특히나 최근에 깔끔한 medium.com의 에디터나 markdown으로 github에다가 글쓰는 것에 비하면 더욱 그러하네요. 유일한 장점은 구글 에드센스 붙이기 쉽다는 정도...<br />
<br />
아무튼 뭔가 변화를 주긴 줘야겠다고 생각을 하다 보니 시간이 훌쩍 지나버렸네요.<br />
블로그 시스템을 github jekyll로 옮기던지 아니면 워드프레스로 옮기고 도메인도 충분히 개인적인 걸로 하나 새로 만들 예정입니다. 미디엄은 다 좋은데... 구글 에드센스를 붙일 수 없다는 치명적인 단점이 있네요. (뭐 제가 그걸로 돈을 벌거나 하는건 아닙니다만)<br />
<br />
아무튼 그렇습니다. 제 medium 주소는 http://medium.com/@wjung 이니 와서 팔로우 부탁드리고요, 블로깅에 또 변화가 있으면 여기와 미디엄쪽에 모두 공지를 띄우도록 하겠습니다.<br />
<br />
아참, 그동안 UIUC MCS-DS 과정 외에 개인적으로 한국에서 직장생활하는 동안 겪었던 에피소드들을 글로 몇개 작성했습니다. 뭐 흥미진진한 이야기는 아니지만 금수저 인싸 이야기는 아니고 흔하다면 흔한 보통 소프트웨어 개발자로서의 기억을 정리해 봤습니다.<br />
<br />
<a href="https://medium.com/@wjung/%ED%95%9C%EA%B5%AD%ED%9A%8C%EC%82%AC%EC%97%90%EC%84%9C%EC%9D%98-%EA%B8%B0%EC%96%B5%EB%93%A4-prologue-fc87fbb214dc" target="_blank">한국회사에서의 기억들 — Prologue</a><br />
<a href="https://medium.com/@wjung/%ED%95%9C%EA%B5%AD%ED%9A%8C%EC%82%AC%EC%97%90%EC%84%9C%EC%9D%98-%EA%B8%B0%EC%96%B5%EB%93%A4-1-21c780d3c5a6" target="_blank">한국회사에서의 기억들 (1) — 46만 5천원</a><br />
<a href="https://medium.com/@wjung/%ED%95%9C%EA%B5%AD%ED%9A%8C%EC%82%AC%EC%97%90%EC%84%9C%EC%9D%98-%EA%B8%B0%EC%96%B5%EB%93%A4-2-i-is-she-is-d555992c24d1" target="_blank">한국회사에서의 기억들 (2) — I is she is?</a><br />
<a href="https://medium.com/@wjung/%ED%95%9C%EA%B5%AD%ED%9A%8C%EC%82%AC%EC%97%90%EC%84%9C%EC%9D%98-%EA%B8%B0%EC%96%B5%EB%93%A4-3-death-march-project-vmc-1-2de233a245c4" target="_blank">한국회사에서의 기억들(3) — Death March Project, VMC(1)</a><br />
<a href="https://medium.com/@wjung/%ED%95%9C%EA%B5%AD%ED%9A%8C%EC%82%AC%EC%97%90%EC%84%9C%EC%9D%98-%EA%B8%B0%EC%96%B5%EB%93%A4-4-%EB%B3%91%ED%8A%B9-%EC%9D%B4%ED%9B%84-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EB%8C%80%ED%95%99%EC%9B%90-33243f9027a" target="_blank">한국회사에서의 기억들(4) — 병특 이후, 그리고 대학원?</a><br />
<br />
시간 나는대로 계속 적을 예정인데, 아마도 대략 10편 안쪽으로 끝날 것 같습니다. 그럼 이만.Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-63863962270795662472018-12-31T12:04:00.001-08:002018-12-31T12:04:50.059-08:00UIUC MCS-DS 2018 가을학기 끝, 그리고 2019 봄학기 등록 과목이 포스팅은 제 미디엄(https://medium.com/@wjung/) 에 작성된 것의 중복포스팅입니다.<br />
<br />
<div class="graf graf--p" name="789a">
2018년 가을학기의 과목이었던 CS410 Text Information System을 드디어 끝냈다. 기말고사는 거의 2주 쯤 전인 12월 초에 끝났는데 과목 프로젝트와 technical review가 오늘까지 마감이었던 것.</div>
<div class="graf graf--p" name="789a">
<br /></div>
<div class="graf graf--p" name="23f8">
이제 이번주만 지나면 사실 크리스마스에 새해에 이래저래 미국은 노는 분위기라(더군다나 대학교는 더더욱?) 제대로 성적 처리가 제때 나올 것 같지 않지만, 일단 들리는 이야기로는 12월 28일 정도에 성적이 나올거 같다고 한다. 기말 프로젝트는 비디오 또는 음성녹음 등으로 자신의 프로젝트를 설명하는 프리젠테이션까지 제출해야 해서 좀 성가시긴 했지만… 아무튼 모든 건 끝났고 내가 할 수 있는 건 이제 없다. 그냥 28일을 기다리는 수 밖에.</div>
<div class="graf graf--p" name="23f8">
<br /></div>
<div class="graf graf--p" name="520d">
그것과는 별개로 벌써 한달쯤 전에 2019년 봄학기 수강신청을 끝냈었다. 아직까지도 내가 학생으로 등록되어 있는 Orange Coast College라는 이동네 커뮤니티 대학교에서도 그랬는데, 우선 등록할 때 현재 재학생한테 우선권이 있다. 그 다음에 신입생. 그래서 보통 재학생 등록신청 기간이 신입생보다 늦어도 며칠, 빠르면 몇주 전에 먼저 열린다. 그래서인지 학비 싸고 UC계열로 트랜스퍼가 쉬운 이동네 몇몇 커뮤니티 컬리지는 학생들은 넘쳐나는데 과목과 교수진이 부족해서 신입생으로 막 입학을 해도 막상 들을 과목이 없다. 거의 인기 과목/인기 시간대는 만석이고, 그래서 비인기/비선호 시간대의 과목을 등록해서 학기를 시작하게 되는 경우가 많은 듯. </div>
<div class="graf graf--p" name="520d">
<br />그러한 이유로 이미 재학생인 나를 비롯한 기존 학생들은 이미 수강신청을 끝냈는데, 수강신청 시스템의 문제 + 학교 행정상의 문제로 MCS-DS 봄학기 가장 인기과목인 CS 498 Applied Machine Learning 의 수강신청이 이상하게 꼬였고, 다행히도(?) 나를 비롯해서 문제가 생기기 전에 잽싸게 등록했던 학생들만 그 자리를 여전히 보장받을 수 있게 되었다. 이 CS498 AML이 이렇게 인기있는 이유에는 몇가지가 있는데</div>
<ol class="postList">
<li class="graf graf--li" name="d307">다른 과목(CS 598 / STAT 578 Advanced Bayesian Modelling) 의 prerequisite이라서 반드시 ABM을 수강하고 싶은 사람이라면 반드시 이 과목을 들어야 하고</li>
<li class="graf graf--li" name="6167">졸업까지 들어야 하는 8과목 중 4과목이 Breadth Coursework에 있고, 거기에 있는 machine learning, data mining, data visualization, 그리고 cloud computing 카테고리에서 유일하게 machine learning 카테고리에 있는 과목이기 때문이다. ( 같은 이유로 Data Visualzation에서 유일한 과목인, 그리고 여름학기에 가능한 몇개 안되는 과목 중 하나인 CS 498 Data Visualization 역시도 인기때문에 박이 터질 예정이다. )</li>
<li class="graf graf--li" name="f218">MCS-DS 로 모집을 했는데, 이미 전에도 언급했겠지만 사실상의 졸업장은 MCS-DS를 타든 그냥 MCS를 타든 Master’s degree in Computer Science다. 이 온라인 과정에 온 많은 사람들이 data science쪽에 관심을 가지고 배우러 온 사람들일텐데, 대부분의 과목이 수학을 어느정도 다루고 있긴 하지만 이 CS498 AML처럼 딱 대놓고 머신러닝/데이터 사이언스 관련해서 가르치는 과목이 몇개 없다.(이 둘은 사실 좀 다르긴 하지만…) 좀 더 정확하기 에야기하자만 교과목 제목에 대놓고 머신러닝이라고 들어가는 과목이 없다고 해야 맞는 이야긴 거 같다. 왜냐면 내가 이번에 들은 CS410 도 텍스트 마이닝인데 사실 거기서 배운 내용들이 ‘머신 러닝’ 이라고 포장만 안해서 그렇지 앤드류 응 교수의 머신러닝에서 다로는 거의 모든 내용을 직간접적으로 다루고 연관되어 있기 때문이다. 심지어 내 과목 프로젝트는 Multinomial Naive Bayes classification과 TF-IDF를 이용한 toxic chat classifier다. 말이 잠시 샜는데 아무튼 그래서 이 과목과 더불어 대놓고 직접적으로 머신러닝/데이터 사이언스와 관련이 있는 과목은 CS 598 / STAT 578 Advanced Bayesian Modeling 정도다. 참고로 이 5로 시작되는 과목 중 3개를 또 반드시 수료해야 졸업이 되기 때문에 이 ABM도 인기가 하늘을 찌른다.</li>
</ol>
<figure class="graf graf--figure" name="9990"><img class="graf-image" data-height="245" data-image-id="1*ZP6P-hqY9175tvWlWeS0Lw.jpeg" data-width="300" src="https://cdn-images-1.medium.com/max/1600/1*ZP6P-hqY9175tvWlWeS0Lw.jpeg" /></figure><div class="graf graf--p" name="0e3c">
자 그래서 봄학기 수강한 과목 중 하나가 이 CS498 AML이고, 다른 한 과목은 역시 CS498 쪽인 CS948 Cloud Computing Application이다. 가을 학기에는 CS410하나로도 힘들어 죽을 뻔 했는데 왜 두개나 했냐고? 왜냐면 이래야 2021년 봄학기 한과목을 더 듣지 않고 빨리 졸업을 할 수 있는데다가, CCA 는 클라우드 컴퓨팅쪽 캡스톤 프로젝트를 하기 위한 요구과목이기 때문이다. 그리고 이 CCA가 지금까지 살펴본 syllabus와 학생들의 이야기를 종합해보면, 다양한 클라우드/분산시스템 관련 주제를 다루는데 아마도 목표는 다양한 주제에 학생들을 노출시키는 것이 주요 목적인 것 같고 심각한 프로그래밍 과제나 프로젝트는 없는 것 같다. 실제로 syllabus에 있는 대부분의 기술들은 이미 내가 다 회사일을 하면서 알고 있는 것들이라서…</div>
<div class="graf graf--p" name="0e3c">
<br />아마 본인 돈 내고 빡시게 ‘내가 모르는 것만’ 다 배워서 대학원을 졸업할 사람들이라면 상당부분 CS425와 내용이 겹치므로 피하겠지만, 가을학기 빡시게 한 나로써는 CS498 AML을 하면서 쉬엄쉬엄 추가로 학점을 좀 쉽게 딸 과목이 하나쯤 필요하다. 더군다나 클라우드쪽 캡스톤도 할 수 있게 해주는 3개의 선수과목 중 하나이고.</div>
<div class="graf graf--p" name="0e3c">
<br /></div>
<div class="graf graf--p" name="8ba0">
그래서 일단 등록을 하긴 했는데, 이거 모른다. 일단 코세라에 CCA의 공개수업(일반인 대상)이 있기 때문에 그걸 4주까지 들어본 바로는… 이걸 2,400달러 내고 듣는건 정말 돈아까운 일이라는 생각이지만 -_- 학비도 회사에서 나오고 나름 다른 과목을 듣기위한 징검다리 과목이기 때문에 내 입장에서는 굳이 수강하지 않을 이유가 없다. 과목 드랍도 수업 시작하고 거의 한달 뒤까지 가능하기 때문에 AML 과 CCA 다 같이 하기 힘들면 그때 가서 한과목(아마도 CCA?) 드랍해도 되고.</div>
<div class="graf graf--p" name="8ba0">
<br /></div>
<div class="graf graf--p" name="8225">
일단 학교 관련 내용은 여기서 끝. 나중에 28일쯤에 혹시라도 성적이 잘 나오면 별도로 포스팅을 한번 하고, 조용하면 아 A 못받았구나 하고 이해하면 될 것 같다.</div>
<br />
<br />Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-47040627012526305802018-08-30T11:09:00.000-07:002018-09-12T17:37:28.616-07:00UIUC MCS-DS첫번째 날 시작<div class="graf graf--p graf-after--h3" id="fb1a" name="fb1a" style="color: rgba(0, 0, 0, 0.843137); letter-spacing: -0.003em; line-height: 1.58; margin-top: 10px;">
오늘이 학생들에게 UIUC MCS-DS 의 코세라 수업이 할당되고 공식적으로 일정이 시작된 (Aug 27, 2018) 첫날이다. 아직까지 기존에 공개되어 있어 진도를 나갈 수 있었던 specialization 클래스들의 진행상황이 MCS-DS 과정으로 넘어가지 않고 있는 문제가 있는데 일단 그건 제껴두고 차이점을 언급해 보자면</div>
<div class="graf graf--p graf-after--p" id="3250" name="3250" style="color: rgba(0, 0, 0, 0.843137); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
1. specialization course 의 두 과목이 하나로 합쳐졌다. 즉 CS 410 혹은 CS 425 같은 애들은 한개짜리 14~16주 짜리 과목이 되서 UIUC MCS-DS과정에 등록한 본인의 코세라 계정으로 로그인 했을때만 수업이 보인다. CS 425같은 경우는 specialization 코스에서 cloud computing concept 1 과 2로 나눠져 있던 것인데 그냥 퉁쳐서 CS 425 distributed system으로 수업이 열렸다.</div>
<div class="graf graf--p graf-after--p" id="5217" name="5217" style="color: rgba(0, 0, 0, 0.843137); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
2. public으로 가능한 코스들은 대부분 퀴즈가 한번에 3번까지 시도할 수 있고, 또한 3번 모두 틀려도 8시간 있으면 다시 시도가 가능해서 공부할 마음 없이 작정하고 계속 퀴즈만 시도하면 어쨌든 계속 만점을 받을수는 있는 구조였다. 문제은행 식으로 문제가 중간중간 다르게 바뀌긴 하지만 어차피 그것도 한계가 있어서 한 서너 문제가 번갈아 가면서 나온다.<br />
그런데 이 MCS-DS 석사과정으로 만들어진 건 그 퀴즈 외에도 Practice Quiz라고 해서 일반에 공개된 과정에는 없는 별도의 퀴즈들이 있다. 그리고 기존의 Quiz들은 딱 두번만 시도할 수 있다. 정확히는 두번 응시했을때 다음번 재시도 가능할때까지 100일 이상이 필요하기 때문에 사실상 이번 텀에서 재시도는 불가능하게 되어 있다. 이렇게 비뀐 이유는 아마도 처음의 문제를 해결하기 위해서 “최대한 많이 공부하고 니가 다 안다고 생각할때만 시도하렴” 의 취지인 듯 하다.<br />
그나마 다행인 건, 예를 들어 12번의 Quiz가 있다면 제일 높은 점수 10개만 합쳐서 점수에 반영한다는 것. 혹시나 모를 퀴즈를 망치는 경우에도 한두번 정도는 사정을 봐주겠다 뭐 이런 뜻인 듯 하다.</div>
<div class="graf graf--p graf-after--p" id="e7de" name="e7de" style="color: rgba(0, 0, 0, 0.843137); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
3. 공개 과정에는 없는 1~3개의 프로그래밍 숙제가 있고, 그 외에 개인 프로젝트가 하나 있다. 그리고 요즘 추세에 맞춰서(?) 학생들간에 up to 3명까지 협동으로 프로젝트를 할 수 있는 과정도 있고, 공부 내용과 관련된 최신 기술에 대한 technical review도 하도록 시키고 그것의 결과도 학점에 포함시키는 듯 하다. 또 5%의 extra credit이 있는데 이건 Piazza라고 해서 미국 대학생들이 사용하는 포럼의 해당 수업에 최대한 많은 활동을 한 사람들(질문과 답변?)을 나중에 리스트를 쭉 뽑아서 다른 학생들을 많이 도와준 사람(들)에게 5%의 추가 크레딧 학점을 주는 듯 하다.</div>
<div class="graf graf--p graf-after--p" id="129e" name="129e" style="color: rgba(0, 0, 0, 0.843137); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
일단 오늘 하루 파악한 바는 대충 이러하고,</div>
<div class="graf graf--p graf-after--p" id="e26b" name="e26b" style="color: rgba(0, 0, 0, 0.843137); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
느낌상 CS410과 CS425를 같이 하는건 진짜 무리일 수도 있을 것 갔다. 그리고 CS410 만만하게 봤는데 뒤쪽을 보니 구문분석 및 유사도, 랭킹 이런걸 넘어서 추천시스템 — collaborative filtering/contet-based filtering도 있고, 확률/통계를 기반으로 하는 내용도 보인다. 잘해 놓으면 분명히 개발자 손 놓을 때까지 피와 살이 될 내용임은 분명하나.. 얼른 또 학위 따버리고 말고 싶은 충동 역시 있는 게 사실이다.</div>
<div class="graf graf--p graf-after--p" id="b217" name="b217" style="color: rgba(0, 0, 0, 0.843137); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
글을 적다 보니 어차피 취업도 한 상태이고 지금 당장 학위가 필요한 것도 아닌데 2년만에 따나 2년반이나 3년만에 따나 뭐가 그렇게 차이가 있을까 싶기도 하다. 하나라도 제대로 해놓는게 좋지 않나 싶은데..</div>
<div class="graf graf--p graf-after--p" id="9d3f" name="9d3f" style="color: rgba(0, 0, 0, 0.843137); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
CS410과 CS425모두 다 재밌을 것 같은데, 문제는 이 두 과목은 가을학기에만 열린다는 것이 또 문제라면 문제다. 즉 지금 한과목 드랍하면 그 드랍하는 과목은 내년 2019년 가을학기가 와야 신청을 할 수 있다는 거…</div>
<div class="graf graf--p graf-after--p graf--trailing" id="1ba4" name="1ba4" style="color: rgba(0, 0, 0, 0.843137); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
일단 오늘은 여기까지.</div>
Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-11859344330299811542018-08-23T20:45:00.000-07:002018-08-23T20:46:08.531-07:00University of Illinois MCS-DS 온라인 과정 입학하기<br />
<br />
<figure class="graf graf--figure" name="7743"><img class="graf-image" data-height="208" data-image-id="1*FiluyY0oLttYRenRxwnEtQ.png" data-width="473" src="https://cdn-images-1.medium.com/max/800/1*FiluyY0oLttYRenRxwnEtQ.png" /></figure><br />
<div class="graf graf--p" name="902b">
이 글은 제가 <a href="https://medium.com/@wjung/university-of-illinois-mcs-ds-%EC%98%A8%EB%9D%BC%EC%9D%B8-%EA%B3%BC%EC%A0%95-%EC%9E%85%ED%95%99%ED%95%98%EA%B8%B0-3b9d1b9abbee?source=friends_link&sk=6cdc5aa39041ea775a302f782d4f37c8" target="_blank">미디엄에 썼던 글</a>을 이곳으로 가져와서 중복포스팅한 글입니다.<br />
<br />
지난번에 이야기했듯이 올 가을부터 University of Illinois at Urbana-Champaign(이하 UIUC)와 코세라가 함께 진행하는 온라인 석사과정인 MCS-DS의 학생이 되어서 첫 학기 수업을 8월 말부터 시작합니다.</div>
<div class="graf graf--p" name="902b">
<br /></div>
<div class="graf graf--p" name="8315">
페이스북으로 지인들에게 합격소식은 알렸는데요, 의외로 주위에서 해당 MCS-DS과정 뿐만 아니라 조지아택 등에서 진행하는 100% 온라인 학위 과정에 관심을 갖고 있는 분들이 많았고 또 MCS-DS 입학에 대해서 물어보시는 분들도 많아서 정보공유를 위해서 글을 씁니다. MCS DS과정의 코세라 링크(<a class="markup--anchor markup--p-anchor" data-href="https://www.coursera.org/degrees/masters-in-computer-data-science" href="https://www.coursera.org/degrees/masters-in-computer-data-science" rel="nofollow noopener noopener noopener noopener noopener noopener" target="_blank">https://www.coursera.org/degrees/masters-in-computer-data-science</a>) 를 보시면 대략적인 내용을 알 수 있겠지만 그래도 제가 추가로 알게 된 내용, 그리고 몇몇 분들이 물어보셨던 내용을 Q&A 형태로 정리해 보았습니다.</div>
<div class="graf graf--p" name="8315">
<br /></div>
<div class="graf graf--p" name="f7e6">
<strong class="markup--strong markup--p-strong">학위를 따는데 걸리는 기간</strong></div>
<div class="graf graf--p" name="f7e6">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="faa0">
대략 12개월 ~ 36개월. 졸업까지 8과목을(정확히는 32크레딧을 수료해야 하는데 전공과목 한 과목이 4크레딧이므로 32 / 4 = 8) 이수해야 하는데, 1년에 학기가 3개가 있습니다. 봄, 여름, 그리고 가을 학기. 따라서 한 학기에 1개씩 수업을 들으면 총 8학기가 필요하므로 대략 봄학기부터 이 과정을 시작하면 봄여름가을 봄여름가을 그리고 또 다시 봄여름 해서 2년반 여름방학이 끝나는 시점에 졸업을 할 수가 있습니다. 두 학기 정도를 학기에 두 과목을 수강하면 2년만에 끝낼 수도 있고, 매 학기당 3과목씩 수강하면 이론적으로는 봄여름가을학기 해서 1년만에 마칠 수도 있습니다. (12개월) 제약이 있어서 아마도 한 학에 4과목씩 듣고 2학기만에 졸업한다든가 하는건 불가능했던 것 같습니다.</div>
<div class="graf graf--p" name="faa0">
<br /></div>
<div class="graf graf--p" name="b138">
이론적으로는 이렇지만 특정 과목들은 특정 학기에만 강좌가 개설되기 때문에 본인이 듣고 싶은 수업을 다 들으면서 학위를 따고 싶은 경우에는 실제로는 이보다 기간이 더 걸릴 수 있습니다.</div>
<div class="graf graf--p" name="b138">
<br /></div>
<div class="graf graf--p" name="68ab">
<strong class="markup--strong markup--p-strong">졸업까지 이수해야 할 과목 수 또는 학점</strong></div>
<div class="graf graf--p" name="68ab">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="0e8c">
위에서 언급했던 대로 총 32크레딧을 이수해야 합니다. 과목당 4크레딧이므로 졸업을 위해서는 8과목을 이수해야 합니다. 이 중 5과목은 Breadth Courework(일반과목? CS의 일반교양? 전공과목 중에 일반과목? 아무튼) 에서 들어야 하는데 B- 이상의 학점을 받아야 인정됩니다. Advanced Coursework(전공심화?) 과목은 3개(12크레딧)의 과정을 이수해야 하고 C이상의 학점을 받아야 합니다.</div>
<div class="graf graf--p" name="0e8c">
<br /></div>
<div class="graf graf--p" name="b5a0">
<strong class="markup--strong markup--p-strong">예상학비</strong></div>
<div class="graf graf--p" name="b5a0">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="0ca9">
UIUC 학교 수업료 : 본인이 등록하는 수업의 1크레딧 당 $600 USD입니다. 즉 한 과목이 보통 4크레딧(4학점) 짜리이니까 한과목당 $2,400 USD이고 8과목이면 $19,200 USD정도가 되겠네요.</div>
<div class="graf graf--p" name="0ca9">
<br /></div>
<div class="graf graf--p" name="2003">
Coursera : 각 과목의 대부분의 수업이 Coursera를 통해서 이루어지기 때문에 코세라쪽에 지불해야 하는 비용이 있습니다. 이건 해당 과목의 첫 퀴즈를 풀 때 비용을 결재해야면 퀴즈를 풀고 제출해서 점수를 받을 수 있는 구조로 되어 있고, 보통 2개 정도의 코세라 specialization과목이 하나의 MCS-DS 과정과 연계되고 첫 결제시 일괄적으로 $158 USD 를 지불하게 됩니다. 158 x 8과목 하면 $1,264 USD가 되네요.</div>
<div class="graf graf--p" name="2003">
<br /></div>
<div class="graf graf--p" name="6d92">
기타 : 그 외에 처음 MCS DS에 응시원서 낼 때 접수료가 있는데, 미국 시민이나 영주권 소지자는 $70달러이고 그 외에는 $90 달러입니다. 또한, 중간/기말 고사 칠 때 ProctorU 라는 서비스를 이용하는데 이게 비용이 시험 기간에 따라 30분 단위로 10달러 안쪽으로 수수료가 있습니다. 또한 수업 내용에 따라 AWS와 같은 서비스를 이용하게 될 수도 있다는데 거기에 추가로 약간의 비용이(수업료 기준) 들어가게 됩니다.</div>
<div class="graf graf--p" name="6d92">
<br /></div>
<div class="graf graf--p" name="754a">
수업료 + 코세라 비용 + 시험감독비 이래저래 하면 대략 졸업까지 21,000 달러 정도의 지출이 예상되네요. 물론 여기에 본인이 추가로 지출하게 될 텍스트북(꼭 안사도 되는 경우가 대부분이지만), 참고자료, 랩탑 등등의 비용은 있겠네요.</div>
<div class="graf graf--p" name="754a">
<br /></div>
<div class="graf graf--p" name="d323">
<strong class="markup--strong markup--p-strong">수업은 어떻게 진행되나?</strong></div>
<div class="graf graf--p" name="d323">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="48c1">
우선 100% 온라인입니다. 서류 접수부터 시작해서 석사학위를 받는 것 까지 시카고에 있는 UIUC를 전혀 방문할 필요가 없구요, 수업도 100% 온라인입니다. 대부분의 수업은 코세라 플랫폼 상에서 진행되고 그 외 중간/기말 고사라든가 일부 수업은 UIUC자체웹사이트 등을 통해서 진행될 수 있습니다.</div>
<div class="graf graf--p" name="48c1">
<br /></div>
<div class="graf graf--p" name="75da">
<strong class="markup--strong markup--p-strong">온라인 석사학위는 일반 캠퍼스에서 석사학위를 받는 것과 졸업장 내용에 차이가 있나?</strong></div>
<div class="graf graf--p" name="75da">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="cb00">
MCS-DS ( Master’s degree in Computer Science in Data Science ) 라고는 하지만 실제로 받게 되는 학위는 Master’s degree in Computer Science, 즉 CS 석사학위입니다. 학위 그 어디에도 Data Science 학위라는 내용은 들어가지 않습니다. 또한 학위 내용에 온라인 과정이라든가 하는 내용드 들어가지 않습니다. 캠퍼스에서 수업받고 졸업하는 학생들과 100% 동일한 졸업장과 학위입니다.</div>
<div class="graf graf--p" name="cb00">
<br /></div>
<div class="graf graf--p" name="ed4a">
<strong class="markup--strong markup--p-strong">입학절차</strong></div>
<div class="graf graf--p" name="ed4a">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="0bc3">
<a class="markup--anchor markup--p-anchor" data-href="https://www.coursera.org/degrees/masters-in-computer-data-science#admissions" href="https://www.coursera.org/degrees/masters-in-computer-data-science#admissions" rel="nofollow noopener noopener noopener noopener" target="_blank">https://www.coursera.org/degrees/masters-in-computer-data-science#admissions</a>여기를 보시면 자세한 내용을 확인할 수 있습니다.</div>
<div class="graf graf--p" name="4a1a">
일단 학사 학위가 있어야 하고, 졸업 학점이 3.0 이상이어야 합니다. 넵 온라인 과정이지만 일반적인 specialization 이나 certificate 과정과는 틀린 제대로 된(?) 석사과정이기 때문에 요구사항이 좀 까다롭습니다.</div>
<div class="graf graf--p" name="4a1a">
<br /></div>
<div class="graf graf--p" name="c8bd">
프로그래밍과 전반적인 CS 관련 내용을 알고 있길 요구합니다. 어차피 죄다 하이레벨 CS관련 내용이기 때문에 프로그래밍이나 학사과정 수준에서 요구하는 전산/수학 관련 내용 모르면 모든 수업이 그냥 고통의 연속이 될 것 같습니다.</div>
<div class="graf graf--p" name="4acf">
실제 입학 절차는</div>
<ol class="postList">
<li class="graf graf--li" name="85db">온라인으로 서류접수를 하고 비용을 지불. 이 이후의 것들은 최종 마감일 이전까지 하나씩 해결해 나가면서 처리하면 됩니다.</li>
<li class="graf graf--li" name="e939">비공식 학부 성적표 제출. 기존에 갖고 있던 거 스캔해서 보내거나 아니면 온라인으로 서류 떼서 보내거나 해도 됩니다. 나중에 서류전형 통과학고 입학 허가가 나면 그때 공식적으로 학교에서 공식 성적표 제출을 요청합니다. ( 졸업 학교 학적과나 행정부서에서 UIUC로 곧바로 밀봉/서명된 성적표를 우편으로 송부해야 함)</li>
<li class="graf graf--li" name="9130">추천서 3장. 해당 지도교수나 졸업학교 교수님의 추천서 등 학교로부터의 추천서를 제출해 주길 권고하고 있지만, 저처럼 학교 떠난지 15년도 넘은데다가 졸업후 학교나 교수님을 한번도 찾아간 적이 없는 사람에게는, 그리고 심지어 해외에 있어서 학교에 물리적으로 찾아갈 수도 없는 사람에게 그런게 가능할 리가 없죠. 그런 경우에는 지금 자기가 다니고 있는 회사의 동료나 바로 직속 메니저, 혹은 higher level의 아는 누군가로부터 추천서를 받아서 제출해도 된다고 합니다. 이 면에서는 상당히 융통성이 있어서 마음에 들었습니다. 추천서는 별도로 받아서 스캔하는 방식이 아니라 온라인 서류접수하는 UIUC 웹사이트에서 해당 추천서를 써 줄 사람의 이름과 이메일, 직급, 회사 등등을 제출하면 추천서를 써 줄 사람의 이메일로 추천서를 온라인으로 작성할 수 있는 링크가 전송되는 것 같더군요. 제출 후에는 본인의 신청사이트에서 누구에게 추천요구 이메일을 보냈고 누가 추천서 작성을 완료했는지를 볼 수 있습니다.</li>
<li class="graf graf--li" name="87c6">Statement of Purpose 작성하기. 이건 뭐라고 한국어로 해야 하는지 모르겠는데, 아무튼 왜 내가 이 대학원 과정에 등록하는지 뭘 공부하고 싶은지 혹은 공부해서 앞으로 이걸 어디다가 써 먹을 것인지, 혹은 내가 예전에 학부에서 무슨 공부를 했고 회사에서는 뭘 하고 있고 등을 작성합니다. 말 그대로 “내가 왜 이 석사과정을 하려고 하는가?” 에 대한 에세이를 쓴다고 생각하시면 되겠네요. 구직 과정으로 치자면 자기 소개서 라든가 혹은 Overview 같은건데요, 당연히 영어로 작성해야 하고요 1~2장 정도의 분량으로 작성하길 요구합니다.</li>
<li class="graf graf--li" name="f00f">그리고 이력서도 제출해야 합니다.</li>
<li class="graf graf--li" name="766c">GRE점수가 있으며 제출을 권장하지만 필수사항은 아닙니다. 저도 이거 안냈습니다.</li>
<li class="graf graf--li" name="8f26">영어가 모국어가 아닌 경우에(넵 거의 모든 한국 사람들의 경우), TOEFL이나 IELTS점수를 제출해야 합니다. 최소 점수 요구사항은 다음과 같습니다. <a class="markup--anchor markup--li-anchor" data-href="https://grad.illinois.edu/admissions/instructions/04c" href="https://grad.illinois.edu/admissions/instructions/04c" rel="nofollow noopener noopener noopener noopener" target="_blank">https://grad.illinois.edu/admissions/instructions/04c</a><br />영어점수 면제 조항이 있는데 다음 중 하나에 해당되면 되고, 영어가 제1언어인 국가의 회사에서 2년 이상 전문적인 일(소프트웨어 엔지니어, 프로그래머 등등)을 해 온 분이라면 영어시험 면제조건에 해당되기 때문에 시험성적을 제출하지 않아도 됩니다. 단 이 경우에는 자동적으로 면제되는 게 아니고 해당 회사에 재직증명서(proof of employment) 같은 걸 요구해서 그걸 UIUC adminssion에다가 보내야 합니다. 그러면 며칠 있다가 해당 영어성적 관련 요구사항이 온라인 웹사이트에서 제거됩니다.</li>
</ol>
<ul class="postList">
<li class="graf graf--li" name="e771">Completion of at least two years of post-secondary full-time study, as defined by the home institution, in a country where English is the primary language and at an institution where English is the primary medium of instruction, within five years of the proposed term of initial enrollment at the University of Illinois at Urbana-Champaign.</li>
<li class="graf graf--li" name="d973"><strong class="markup--strong markup--li-strong">Completion of at least two years of professional work experience in a country where English is the primary language within five years of the proposed term of initial enrollment at the University of Illinois at Urbana-Champaign.</strong></li>
<li class="graf graf--li" name="c852">Completion of a post-secondary degree in a country where English is the primary language and at an institution where English is the primary language of instruction, within five years of the proposed term of initial enrollment.</li>
</ul>
<div class="graf graf--p" name="3dd7">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="3dd7">
<strong class="markup--strong markup--p-strong">수업 동영상이나 교제에 한국어 버전이 제공되나?</strong></div>
<div class="graf graf--p" name="3dd7">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="49a3">
몇몇 Coursera 과정에는 번역 자원봉사자들이 한국어로 자막을 만들어 둔 것들이 있습니다만, 대부분의 CS 4XX / STAT 4XX 혹은 CS 5XX / STAT 5XX 과정에는 한국어 자막이 없습니다. 또한 교제나 PDF 등도 전부 영어입니다. 학생들끼리 의논할 수 있는 코세라 포럼과 Slack채널, Piazza 포럼 등이 있지만 여기서도 모두 영어를 사용합니다.</div>
<div class="graf graf--p" name="49a3">
<br /></div>
<div class="graf graf--p" name="1f00">
<strong class="markup--strong markup--p-strong">UIUC 라는 데는 처음 들어보는데 학교 인지도가 걱정된다</strong></div>
<div class="graf graf--p" name="1f00">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="9f03">
학교 자체에 대해서는 구글링 해보면 내용을 충분히 찾아볼 수 있을테고, 이 MCS-DS를 진행하는 UIUC CS 석사과정에 대해서만 언급하자면, 물론 온라인 과정이 아니고 캠퍼스 석사과정에 대한 이야기이긴 하지만 2018년 미국 5위입니다.</div>
<div class="graf graf--p" name="b492">
<a class="markup--anchor markup--p-anchor" data-href="https://www.usnews.com/best-graduate-schools/top-science-schools/computer-science-rankings" href="https://www.usnews.com/best-graduate-schools/top-science-schools/computer-science-rankings" rel="nofollow noopener noopener" target="_blank">https://www.usnews.com/best-graduate-schools/top-science-schools/computer-science-rankings</a></div>
<div class="graf graf--p" name="bc1c">
MIT, UC버클리, 스탠포드, 그리고 카네기멜론이 나란히 타이로 1등 먹고 그 다음이 UIUC 죠. 학교 전체로는 모르겠습니다만 CS만 놓고 보자면 상위랭킹인 석사과정입니다. MCS-DS의 모든 교수진과 TA들은 현역 UIUC 학교 직원들입니다.</div>
<div class="graf graf--p" name="bc1c">
<br /></div>
<div class="graf graf--p" name="9eee">
<strong class="markup--strong markup--p-strong">수업량이 어느정도인가?</strong></div>
<div class="graf graf--p" name="9eee">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="0319">
이 과정을 풀타임 직업을 가지고 있는 상태에서 진행하려는 분들은, 회사에서 진짜 엄청나게 배려를 해줘서 회사 업무시간에도 공부할 수 있도록 해주지 않는 한 ( = 대부분의 미국회사에서는 씨알도 안먹힐 소리 ), 한 학기에 두과목 이상을 진행하기가 정말 어려울 수 있습니다. 과목에 따라 다르지만 본인이 잘 아는 내용의 수업이라고 해도 일단 수업량이 그렇게 적진 않습니다. </div>
<div class="graf graf--p" name="0319">
봐야 하는 동영상 강좌만 하더라도 두 과목을 동시에 하게 되면 평일에도 꾸준히 최소한 한두시간을 하던지 아니면 주중에 띄엄띄엄 공부하고 주말에 쭉 대여섯시간 몰아서 강좌를 봐야 하는 정도의 분량입니다. 강좌를 보는 자체로 학점을 주거나 그런게 아니고 각 주별 강좌내용 끝에 나오는 퀴즈를 풀거나 중간/기말 고사를 치거나 아니면 프로그래밍 과제를 제출해야 점수를 얻을 수 있기 때문에 그냥 주말에 비디오만 쭉 의미없이 몰아서 넘기는 식으로는 안됩니다. </div>
<div class="graf graf--p" name="0319">
2018년 가을학기에 열린 CS410을 기준으로 보자면 인정학점인 B-가 되려면 70점을 받아야 하는데 전체 100점 기준 퀴즈가 25%, 프로그래밍 과제가 25%, 코스 프로젝트가 20%, 중간고사 15%, 기말고사 15% 이런 식이라, 출석했다는 자체로 점수를 받을 수 있는 부분이 없습니다.</div>
<div class="graf graf--p" name="0319">
<br /></div>
<div class="graf graf--p" name="bcd3">
<strong class="markup--strong markup--p-strong">다른 온라인 CS 석사과정은 없나?</strong></div>
<div class="graf graf--p" name="bcd3">
<strong class="markup--strong markup--p-strong"><br /></strong></div>
<div class="graf graf--p" name="d389">
이 UIUC MCS-DS를 하기 전에 나름 상위 티어 CS석사과정 중에 온라인 과정이 있는 몇군데를 알아본 적이 있습니다. 그 중 두군데가 UC Berkeley와 Georgia Tech인데요, 조지아택은 은근히 MCS-DS 랑 비슷한 점이 많으면서도 코세라에서 수업이 진행되지 않고, 학비가 UIUC과정보다 더 저렴하고, 또한 회사 다니면서 토플공부해서 점수 따야 하는 바쁜 직작인들의 편의를 봐줘서(?) GRE점수를 요구하지 않고, 영어점수 면제 조항도 UIUC의 MCS-DS와 비슷합니다. 아래 조지아택 온라인 MCS과정의 내용을 보면</div>
<blockquote class="graf graf--blockquote" name="db7a">
If my country’s primary language is English, do I still have to provide a TOEFL score?</blockquote>
<blockquote class="graf graf--blockquote" name="7e0a">
Exceptions are given to the applicants from countries where English is the SOLE OFFICIAL language of instruction (Australia, Bahamas, Barbados, Canada-except Québec province, England, Ghana, Ireland, Jamaica, Kenya, New Zealand, Nigeria, Scotland, St. Vincent and the Grenadines, Singapore, Trinidad, Tobago, Uganda and Wales). <strong class="markup--strong markup--blockquote-strong">An applicant is exempt from TOEFL only if they are a naturalized citizen, a Green Card holder or have spent at least one year in residence and enrolled at a U.S. college or university.</strong></blockquote>
<div class="graf graf--p" name="81e1">
시민권자거나, 영주권자거나, 혹은 미국에서 최소한 1년 이상 거주하고 있으면서 미국의 대학(2년제 커뮤니티 컬리지나 4년제)에 입학한 상태이면 영어점수 면제입니다. 만약에 한국에서 미국회사에 취업해서 일하고 있는 상태라면 본인의 영주권 여부 혹은 해당 회사에서의 근무기간 여부에 따라서 일리노이나 조지아택 중에 본인의 영어점수 제출을 면제받을 수 있는 곳을 고르면 될 것 같습니다. 한국에서 곧바로 지원하는 분들은 알짤없이 토플 시험에 응시해서 점수를 보내는 방법밖에 없습니다.</div>
<div class="graf graf--p" name="81e1">
<br /></div>
<div class="graf graf--p" name="8841">
UC 버클리의 경우 우선 이름이 MIDS입니다. (Master of Information and Data Science. 우선 CS가 아니고 학위를 받는데 27유닛이 필요합니다. 문제점이라고 한다면 </div>
<div class="graf graf--p" name="8841">
<br /></div>
<div class="graf graf--p" name="8841">
1)학비가 온라인임에도 불구하고 어마어마하게 비쌉니다. 학교 이름값인 것 같긴 한데, 유닛당 학비가 $2,450 USD입니다. 2,450 x 27 = $66,150 USD. 그리고 </div>
<div class="graf graf--p" name="8841">
<br /></div>
<div class="graf graf--p" name="8841">
2) 제가 담당자랑 통화까지 해봤는데 GRE 점수 면제조항 없고 TOEFL점수 면제조항도 없습니다. </div>
<div class="graf graf--p" name="8841">
<br /></div>
<div class="graf graf--p" name="8841">
3) 마지막으로 이게 말만 온라인이지 실제로는 온캠퍼스 학생들과 동일한 분량의 학습량을 요구한다고 했습니다. 그리고 놀랍게도 회사 풀타임으로 잘 다니면서도 이걸 소화해내고 졸업하는 사람들도 있다고… 분명히 초천재거나 이미 내용을 다 알고 있거나 아니면 월급루팡. </div>
<div class="graf graf--p" name="8841">
<br /></div>
<div class="graf graf--p" name="8841">
아무튼, 그래서 UC 버클리는 자동적으로 탈락.</div>
<div class="graf graf--p" name="8841">
<br /></div>
<div class="graf graf--p" name="c3f8">
우선 여기까지가 제가 지금까지 알고 있는 내용들입니다. 언젠가 누군가가 저랑 같은 길을 걸으려고 구글링하다 이 글을 우연히 찾아서 많은 도움이 되길 바랍니다. 그리고 그때 제가 졸업을 했을지 안했을지도 사실 상당히 궁금해지네요. 지금 목표는 2020년 졸업입니다만… 좋은 결과 있으시길!</div>
Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-5305112829386706342018-08-06T00:51:00.000-07:002018-09-07T13:07:15.852-07:00UIUC MCS-DS 코세라 Fall 2018수강신청중 이런저런 내용 정리<div style="box-sizing: inherit; color: #333333; font-family: "source serif pro", serif; line-height: 28.799999237060547px; margin-bottom: 1.5rem; padding: 0px;">
UIUC MCS-DS과정에 관심있어하는 분들이 보이는 것 같아(혹은 코세라에서 진행하는 다른 온라인 코스) 중간중간에 내용 업데이트를 해봄.</div>
<div style="box-sizing: inherit; color: #333333; font-family: "source serif pro", serif; line-height: 28.799999237060547px; margin-bottom: 1.5rem; padding: 0px;">
UIUC 의 CS 410의 첫 반은 코세라의 Text Retrieval and Search Engines 과목인데, UIUC로 지불하는 학비 외에 코세라에서 이 수업을 듣기 위한 비용이 159달러 정도 된다. specialization 수업들을 듣는게 한달에 대략 50달러 정도의 구독 비용을 지불해야 하니까 대략 3달 정도의 코세라 specialization 과정 비용을 지불하는 셈.</div>
<div style="box-sizing: inherit; color: #333333; font-family: "source serif pro", serif; line-height: 28.799999237060547px; margin-bottom: 1.5rem; padding: 0px;">
융통성 있게 하려는 건지 시스템의 한계인지는 모르겠지만 학기 시작전에 혹시라도 개인적으로 해당 수업을 듣고 있었다면(그리고 진도가 좀 나갔다면) UIUC학기 시작 바로 전날 코세라의 과목에 배정될 때, 진행중이던 과목이 자동으로 UIUC 크레딧 코스로 변경된다. 즉 가을학기 수업이 8월 27일이고 26일날 학생들이 코세라 수업에 배정되는데 만약 지금부터 수업을 시작하면 대략 20일정도 먼저 진도를 뺄 수 있는 기회가 생기는 셈이다. (그리고 퀴즈 역시도)</div>
<div style="box-sizing: inherit; color: #333333; font-family: "source serif pro", serif; line-height: 28.799999237060547px; margin-bottom: 1.5rem; padding: 0px;">
다만 문제는 specialization 코스에 포함되는 과목들은 $49/mo를 지불하지 않고 그냥 audit으로 수업을 듣는 경우 quiz는 풀 수 있으되 퀴즈 푼 내용을 submit할 수가 없다. 따라서 만약에 2학기에 좀 빡시게 2~3과목을 듣고 싶은데 지금 당장 여유가 있어서 한과목 정도는 진도를 빼놓고 싶은 경우라면 $49를 내고 지금 수업을 시작하고 또 8월말 수업이 시작되면 첫 퀴즈를 submit할 때 요구되는 $150달러 정도의 비용을 또 지불해야(아마도?) 한다.<br />
다행히(?)도 specialization 코스의 $49/mo 지불은 7일간의 free trial기간이 있어서 7일간 열심히 해서 quiz까지 죄다 풀 수 있는데까지 풀고 나서 7일이 되기 전에 subscription을 취소하는 식으로 돈 안들이고 진도를 미리 빼놓을 수 있을 것 같긴 한데(안해봐서 안될지도)... 아무튼 그렇다.</div>
Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-60173813011651863882017-08-02T16:47:00.000-07:002017-08-02T16:47:13.053-07:00도커 이미지에 볼륨 마운트시 소유권한 문제<div style="color: #1d2129; font-family: "San Francisco", -apple-system, BlinkMacSystemFont, ".SFNSText-Regular", sans-serif; font-size: 14px; letter-spacing: -0.24px; margin-bottom: 6px; margin-top: 6px; text-size-adjust: auto;">
Docker 이미지를 VM 이나 기타 환경에서 동작시킬 때 문제 중 하나는, 특정 프로퍼티파일이나 볼륨 마운트를 실시간에 Puppet등으로 docker -v 를 통해서 붙이는 경우의 파일 퍼미션이다. 이를테면 도커 이미지에서 동작하는 톰캣의 UID와 GID가 각각 1200:1200 이런 식이라고 할 때, 볼륨 마운트 시킨 파일의 퍼미션이 위와 같이 일치하지 않거나 최소한 읽기 권한 등이 없으면 파일에 접근할 수가 없다.<br />이것의 또 다른 문제점은 해당 docker 이미지 내의 UID / GID가 puppet이나 도커 이미지를 실행하는 VM에 의해서 생성된 것이 아니라는 것이다.<span class="Apple-converted-space"> </span></div>
<div class="text_exposed_show" style="color: #1d2129; display: inline; font-family: "San Francisco", -apple-system, BlinkMacSystemFont, ".SFNSText-Regular", sans-serif; font-size: 14px; letter-spacing: -0.24px; text-size-adjust: auto;">
<div style="font-family: inherit; margin-bottom: 6px;">
언뜻 생각하기에는 실행하는 VM이 해당 도커 이미지 안으로 로그인하여 파일 소유 권한을 바꿔야 하는 특정 디렉토리에 접근해서 해당 디렉토리/파일의 UID GID를 VM의 것으로 바꾸던지(이런 경우 passwd와 group의 것도 바꿔야 함) 하면 될 것 같지만 이런 경우 immutable environment 라는 컨셉이 깨질 수가 있고( 도커 이미지로 만들어질 때와 그 이후 실행될 때의 상태가 다름), 또한 의도치 않게 도커 이미지 안에서 해당 UID GID로 실행되어야 하는 다른 것들이 있을 경우 그 프로세스들이 접근 퍼미션 문제를 겪을 수가 있다.</div>
<div style="font-family: inherit; margin-bottom: 6px; margin-top: 6px;">
또 다른 방법으로는 도커를 실행하는 프로세스가 docker run -t <image name> /bin/bash 등으로 도커 이미지 내부에 들어가서 /etc/password와 /etc/group 등에 접근해서 UID PID를 알아낸 다음 그걸 이용해서 도커에 마운트하는 로컬 볼륨의 소유권한을 바꾸는 방법이 있을 수 있다.<span class="Apple-converted-space"> </span></div>
<div style="font-family: inherit; margin-bottom: 6px; margin-top: 6px;">
이것도 뭔가 구리다 싶으면 마지막 방법으로는 그냥 서로 "약속"을 통해서 해당 마운트를 읽어들여야 하는 계정의 UID와 GID를 미리 정해놓는 것이다. 즉 도커 이미지를 생성할 때 추가할 tomcat의 UID GID를 1200으로 미리 맞춰놓고 도커 이미지를 실행하는 VM의 Puppet등이 docker -v 로 마운트하는 볼륨의 소유권한을 죄다 1200:1200으로 바꿔놓는 것이다. 유저명이나 그룹 이름은 매칭할 필요가 없다 어차피 UID GID가 같으면 그냥 같은 애들이니깐.</div>
<div style="font-family: inherit; margin-bottom: 6px; margin-top: 6px;">
좀 무식한 것 같지만 사실 마지막 방법이 제일 편하다. -_-;; (퇴근전에 왜 이런 뻘글을 쓰고 있나)</div>
<div style="font-family: inherit; margin-bottom: 6px; margin-top: 6px;">
제일 쉬운 방법은 그냥 읽어들여야 하는 내용을 파일에 넣지 말고 어디 데이터베이스나 key/value storage(etcd같은?) Vault 같은 곳에 넣고 읽으면 될 것 같지만.. 그럼에도 볼구하고 파일을 런타임시 마운트해서 읽어야 하는 케이스는 종종 존재한다. 혹시 같은 문제를 겪고 있는 혹은 곧 겪을 분들은 참고하시라.</div>
</div>
Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-26753750577932633052017-07-24T13:23:00.003-07:002018-09-07T13:06:29.159-07:00Hyper X Cloud II vs. Logitech G633 비교<div class="graf graf--p graf-after--h3" id="47b5" name="47b5" style="color: rgba(0, 0, 0, 0.8); letter-spacing: -0.003em; line-height: 1.58; margin-top: 10px;">
페이스북에서 쓰기 시작하다가 내용이 길어져서 미디엄과 블로거로 옮김.</div>
<div class="graf graf--p graf-after--p" id="8c8c" name="8c8c" style="color: rgba(0, 0, 0, 0.8); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
집에서는 HyberX Cloud II Gaming Headset을 쓰고 회사에서는 Logitech G633을 쓰고 있는데 나름 두개 다 게이밍 헤드셋 중에서는 가격이나 성능이 중급 이상은 되는 기기들이다. 혹시라도 게이밍 해드셋 고민중이신 분들께 도움을 드릴 겸 평을 써보자면…</div>
<div class="graf graf--p graf-after--p" id="e235" name="e235" style="color: rgba(0, 0, 0, 0.8); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
헤드셋의 마이크 감도는 로지텍쪽이 월등한 듯 하다. 문제는 굳이 들리지 않아도 되는 주변 소음까지 너무 잘 잡는 듯한 느낌. 마이크의 성능이나 상대방이 듣는 음질 자체는 HyberX Cloud II가 나은 듯.</div>
<div class="graf graf--p graf-after--p" id="6040" name="6040" style="color: rgba(0, 0, 0, 0.8); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
G633은 헤드셋 자체에 매크로 버튼이랑 볼륨 조절 버튼이 왼쪽 헤드셋 자체에 붙어 있어서 게임하거나 음악 듣다가 음량 조절이 무척 쉽다. 매크로 키는 거의 쓸데가 없고… HyberX Cloud 는 다른 헤드셋과 마찬가지로 헤드셋 줄에 붙어있는 컨트롤러를 통해서 조절가능. 다만 여기 마이크랑 헤드셋, 그리고 7.1채널 시뮬레이션을 해주는 버튼이 같이 붙어 있어서 마이크와 헤드셋 음량을 동시 조절하긴 이쪽이 편함.</div>
<div class="graf graf--p graf-after--p" id="baab" name="baab" style="color: rgba(0, 0, 0, 0.8); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
G633은 USB와 3.5mm잭을 동시에 입력받을 수 있음. 이 말이 뭐냐면 만약에 PC와 맥을 동시에 가지고 있다면 PC에 G633의 USB 포트를 연결하고 맥에 3.5mm잭을 연결하면 PC로 게임이나 작업을 하면서 소리를 듣다가도 혹시라도 맥쪽에서 이벤트가 발생하거나 뭔가 소리가 시스템으로부터 발생하면 그 소리도 같이 들을 수 있음. 쓸데없다면 쓸데없지만 또 유용하게 쓸 수 있는 기능. (당연히 3.5mm용 컨트롤러도 붙어 있어서 볼륨조절이나 마이크 뮤트가 가능)</div>
<div class="graf graf--p graf-after--p" id="709a" name="709a" style="color: rgba(0, 0, 0, 0.8); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
글을 쓰고 있는 현재 시점에 가격대는 둘 다 비슷비슷한 $100 USD근처. 다만 무선 버전을 원한다면 G633의 무선버전인 G933도 있다. G933은 유선기능은 G633과 동일하고 거기다가 무선 연결도 지원하는 버전. 가격은 현재 기준으로 대략 $140USD.</div>
<div class="graf graf--p graf-after--p" id="2e6a" name="2e6a" style="color: rgba(0, 0, 0, 0.8); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
귀와 접촉하는 부분의 재질을 보자면, HyberX Cloud II는 두가지, 가죽과 천 모두를 지원한다. 근대 개인적으로 가죽 재질은 게임할때 정말 덥다. 특히나 게임하다 보면 몰입해서 얼굴이나 귀에 땀이 차기 쉬운데(나는 그럼 -_-;; 안그런 게임은 재미가 없으니까) HyperX Cloud II는 가죽과 천 재질 두가지를 제공하고 이걸 교체 가능하긴 한데.. 가죽은 덥고 땀 차이고.. 천 재질은 이상하게도 먼지가 잘 들러붙는다. 정전기가 잘 발생하는 재질인거 같기도. 반면에 G633은 천재질만 재공하긴 하는데 최소한 먼지가 들러붙진 않는다. 다만 G633은 약간 귀를 감싸는 부분이 사각형 비슷해서 귓볼이 좀 크거나 귀 모양이 많이 둥근 사람이라면 귀 일부분이 헤드셋 커버 부분과 접촉될 수 있어서 불편함을 느낄 수 있음. 반면 Hyper X Cloud II 는 거의 완벽하고 둥근 모양이라서 덜 그런 듯.</div>
<div class="graf graf--p graf-after--p graf--trailing" id="b8f6" name="b8f6" style="color: rgba(0, 0, 0, 0.8); letter-spacing: -0.003em; line-height: 1.58; margin-top: 29px;">
두가지 모두 6개월 이상 쓰고 있는 사용자로써의 리뷰는 여기까지.</div>
Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-6784010189182822792017-03-08T21:14:00.001-08:002017-03-08T21:14:44.045-08:00Hackerrank Array Left Rotation test case failing at test case 6, 8, 9I'm learning GoLang and decided to do some algorithm quiz at Hackerrank with Go instead of reading and just follow up the tutorial code.<br />
<br />
The one I tried yesterday was <a href="https://www.hackerrank.com/challenges/ctci-array-left-rotation" style="-webkit-text-decoration-skip: objects; box-sizing: border-box; color: #0366d6; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; text-decoration: none;">https://www.hackerrank.com/challenges/ctci-array-left-rotation</a><br />
<br />
Following was my initial solution. It's kind of brute-force algorithm for shift things left, but anyway...<br />
<br />
<pre>package main
import (
"fmt"
"strings"
"bufio"
"os"
"bytes"
)
func main() {
var len, nToRotate int
var input string
var buffer bytes.Buffer
fmt.Scanln(&len, &nToRotate)
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
<span style="background-color: yellow;">buffer.WriteString(scanner.Text())</span>
}
input = buffer.String()
var items []string
items = strings.Fields(input)
//fmt.Printf("%d", len(items))
for i := 0; i < nToRotate; i++ {
items = append(items[1:], items[0])
}
fmt.Println(strings.Join(items[:]," "))
}
</pre>
<br />
My code passed the test when I clicked "Run Code", but it's failing unit test 6, 8, 9 when submitting the code. Those 6, 8, and 9 is pretty long one line input string and I was wondering if it's some kind of timeout or library error due to input string size.<br />
<br />
After hours of investigation and asking questions to other GoLang experts ( than me ), I was able to pass all the tests and submitted the solution. Here is my answer. I changed algorithm a bit to be more time/space efficient as well. Check the highlighted line which was the solution of Runtime Error in Hackerrank page.<br />
<br />
<pre>package main
import (
"fmt"
)
func main() {
var (
length, nToRotate int
)
fmt.Scanln(&length, &nToRotate)
items := make([]string, length)
for i := 0; i < length; i++ {
<span style="background-color: yellow;">fmt.Scan(&items[i])</span>
}
items = ShiftLeft(items, nToRotate)
for i := 0; i < len(items); i++ {
fmt.Printf("%s ", items[i])
}
}
func ShiftLeft(items []string, nToRotate int) []string {
var (
i, j, k int
temp string
)
size := len(items)
for i = 0; i < gcd(nToRotate, size); i++ {
temp = items[i];
j = i
for {
k = j + nToRotate
if k >= size {
k = k - size
}
if k == i {
break
}
items[j] = items[k]
j = k
}
items[j] = temp
}
return items
}
func gcd(x, y int) int {
for y != 0 {
x, y = y, x % y
}
return x
}
</pre>
<br />
<br />
And I just found that someone already had same issue (of course) with Go, and opened issue at GoLang's GitHub page. Check those conversation if you want to understand more about the issue.<br />
<br />
<a href="https://github.com/golang/go/issues/17910">https://github.com/golang/go/issues/17910</a><br />
<br />
<br />Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-81087020195180044442017-03-02T23:57:00.001-08:002017-03-02T23:57:55.512-08:00HVAC 수리 및 견적 요령아파트가 아닌 스스로 관리해야 하는 개인주택 혹은 콘도 등에 살게 되면 HVAC(Heating Ventilation and Air-Conditioning) 문제를 꼭 한번씩은 겪게 된다. 새로 지은 주택이 아닌 이상 미국에서 주택을 구입하면 주택이 20~50년 된 경우가 아주 흔한데, 이런 경우 에어컨이나 히터, 혹은 그 공기들을 집 안으로 배분해주는 Duct등에 꼭 문제가 있기 마련이다.<br />
<br />
특히나 태양이 뜨거운 Southern California지역이라면 한여름에 에어컨이 고장나서 온 가족이 고생하고, 수리기사를 불러도 죄다 바빠서 2~3주 후에나 올 수 있는 경우가 있기 때문에 다가오는 여름을 대비해서 날씨가 더워지기 전에 미리미리 에어컨을 점검하고 손봐두는 것이 필요하다.<br />
<br />
오래된 집의 에어컨이 고장나서 기사를 부르게 되는 경우 간단한 수리 이외에도 열에 아홉은 에어컨 교체를 권유하는 경우가 흔하다. 특히나 전국적으로 체인을 가지고 있는 큰 회사일수록 이런 upselling을 하려는 경우가 많은데, 그 대부분은 예전 에어컨들이 사용하는 냉매인 R22의 생산이 금지되었고 대체제인 R410A를 사용하는 제품들이 나와 있기 때문에 멀쩡한 것도 고장났다든가 혹은 냉매가 어디선가 세고 있다면서 이번 기회에 R410A를 쓰는 에어컨으로 교체해야 한다라는 식으로 유도한다.<br />
R22는 환경을 파괴한다는 오존성분이 들어가 있어서 그렇다고 하는데, 아무튼 돈이 넘쳐난다면 뭐 죄다 바꿔버리면 되겠지만 그렇지 않고 에어컨을 교체해야 하는 경우라면, 이 에어컨이 실외기(AC condenser)만 교체하면 되는게 아니라 R22에서 R410A로 냉매를 바꾸게 되면 집 안 attic이나 기타 위치에 설치되어 있는 evaporate coil도 함께 교체를 해야 한다. 요렇게 두개만 교체하게 되더라도 이미 기기값이 대략 2천후반에서 4천달러 가까이 되고(SEER라고 해서 에너지 효율이 높은 것일수록 크고 비쌈), 역시나 미국답게 인건비가 거의 한 태반을 차지하게 되서 아무리 저렴한 기본 14 SEER정도의 대략 1200~1600 sqft를 커버하는 장비로 설치를 하더라도 6천달러는 쉽게 넘어가고 혹시나 규모가 크고 upselling하는 곳이랑 진행을 하면 8천달러도 훌쩍 넘어간다. 아마도 흥정하기 전에 처음 받는 quote는 이미 만불을 훌쩍 넘었을 것.<br />
이뿐만이 아니라 하면서 duct도 오래되었고 효율이 안좋고 insulation이 잘 안된다면서 이것도 교체하라고 권하는데 처음에 이미 만달러라는 견적을 듣게 되면 나름 큰 금액인 덕트 재 설치 비용인 2천~3천달러는 아무것도 아닌 것 처럼 느껴지게 됨.<br />
<br />
미국에서는 뭐든 그렇겠지만, 절대로 한 군데서 견적을 받아서 그대로 진행하지 말고 COSTCO랑 하는 서비스든 아니면 Yelp에서 별다섯개짜리 리뷰를 받는 업체든 최소한 3군데 이상 HVAC 기사 불러서 견적을 내봐야 함. 대충 느낌은 전국적으로 체인이 있는 곳이 가장 비싸고(대신 뭐 24시간 출동서비스, lifetime warranty등등 바가지 씌우는 만큼 뭐 보증은 빠방하다고 말함), 집근처 동네 로컬엣어 장사하는 사람들일 수록 저렴하다. 동네라고 해도 한국의 철물점 수준인 곳도 있지만 family business 등으로 해서 꽤 오랫동안 지역주민들과 교류를 하면서 규모도 나름 큰 곳들도 있다. 특히나 furnace나 AC condenser 등은 캐리어라든지 하는 브랜드의 것을 설치하기 때문에 장비에 대한 워런터는 대형회사로부터 딸려오고, 수리가 필요할 경우 labor warranty를 설치한 업체에서 제공해주기 때문에 크게 워런티를 신경쓸 필요는 없다. 아 물론 돈 많으면 lifetime warranty를 제공해 주는 곳에서 그냥 furnace부터 AC condenser 그리고 덕트까지 쫙 바꿔버리는게 속편하긴 하겠다.<br />
<br />
아무튼 서너군데 비교해보면서 슬쩍슬쩍 앞쪽 받았던 애들의 견적보다 조금씩 싸게 부르면서 견적을 또 보면 또 업체마다 어디가 문제다 어디가 문제다 이야기를 하는데, 어떤 부분은 굳이 고칠 필요가 없는 upsell인 부분이 있고, 또 어떤 부분은 실제로 문제가 있어서 꼭 고쳐야 하는 부분이 있다. 여러 업체에서 공통으로 지적하는 부분이 있다면 그 부분이야 말로 정말로 고쳐야하는 부분.<br />
<br />
내가 얼마 전에 겪은 케이스도, 처음에는 home depot의 프로모션이라면서 heater tune up 서비스를 39달러? 29달러? 정도에 해준다길래 그쪽에 연락을 했더니 처음 온 회사가 전국규모의 서비스회사였는데... 튠업 한다고 attic으로 올라가더니 이것저것 지적을 시작, 아무튼 정확하게 위에서 이야기한 것 처럼 evaporator coil 바꾸고 AC condenser 바꾸고 또 덕트 작업도 하고 이래저래 해서 그들이 지적한 부분을 고치는데 처음 견적이 만불이 나왔다. 아무리 그래도 이건 아니지 싶어서 2천 달러를 후려쳐서 8천달러 해주면 내가 주말동안 생각해보고 월요일 전에 이야기해주겠다 했더니 선뜻 2천 달러를 깎아주는 게 아닌가?<br />
어라 이것봐라? 하는 생각에 Costco쪽 HVAC에도 연락하고 그 외에 yelp에서 찾은 근처 지역 리뷰 좋은 곳 두곳을 추가로 불러서 견적을 받아 봄. 처음 애들은 furnace도 바꿔야하니 어쩌니 하는데 그 뒤에 온 3군데는 furnace는 교체된 지 3~4년밖에 안된것 같고 아무 문제가 없다는 이야기는 동일했고, 3 업체 모두 일부 leaking duct가 있는데 이 부분을 잘라내고 새 덕트로 연결하는 작업이 필요하다는 이야기까진 동일, 그런데 이 작업을 하는데 업체마다 견적이 225달러, 300달러, 그리고 800달러가 나왔다. 단 800달러를 부른 업체는 덕트 수리해야 하는 부분이 이전 두 업체에서 지적한 곳 외에도 여기저기 이음새 부분등을 해야 한다고 이야기 함.<br />
evaporate coil과 AC condenser의 경우에는 뒤의 세 업체 중 두 업체는 R22를 쓰긴 하지만 현재 에어컨 기능에는 문제 없고 굳이 바꿀 필요없다, 그리고 한 업체는 롱텀으로 보고 교체하면 좋고 매년 R22 가스 가격도 오를거기 때문에 하면 좋다.. 근데 꼭 안해도 되긴 한다.. 라는 이야기였다.<br />
<br />
결국은 leaking duct를 손보면(지금 생각해보니 그 부분은 처음 현재 살고 있는 집을 살때 인스펙터가 한번 지적해서 동네 핸디맨을 불러서 패치를 했던 부분) 된다고 했던 업체에 $225를 지불하고 다음주 중에 수리를 할 예정. leaking duct가 있으면 여름에는 가열된 attic 속 공기가 냉방시설쪽으로 유입되어 냉방 효율이 안좋아지고 반대로 겨울에는 차가운 공기가 난방해야 되는 히터쪽으로 유입되거나 duct를 통해서 안쪽의 공기를 차갑게 만들어 난방효율이 또 안좋아지고 또한 attic의 먼지가 필터를 통하지 않고 바로 유입되어 evaporate coil에 쌓이게 되는 등등의 다양한 문제가 발생 가능하니 발견되는 대로 고쳐주는 것이 좋다.<br />
<br />
그 외에도 이번에 HVAC이랑 attic / duct 관련 단열과 많은 것들을 알게 되었고 또 고려중인 프로젝트 들이 있는데 아무튼 하나씩 천천히 해 보는대로 포스팅을 해볼까 함.<br />
<br />
한줄요약 : HVAC관련 수리가 필요할 때 반드시 여러군데 견적을 받아 볼 것.<br />
<br />
<br />Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-81354104798095807802017-02-28T21:03:00.001-08:002017-02-28T22:47:14.967-08:00사진 온라인 2차 백업을 위한 선택. 아마존 프라임 포토 vs 구글 포토<div style="color: #1d2129; font-family: 'San Francisco', -apple-system, BlinkMacSystemFont, '.SFNSText-Regular', sans-serif; font-size: 14px; letter-spacing: -0.23999999463558197px; margin-bottom: 6px;">
현재 내가 아이폰과 카메라로 찍는 모든 사진과 동영상은 아이맥의 Photos를 통해서 가져오기를 하고 있고, 그 아이맥을 외장 USB 하드디스크를 이용해서 타임머신으로 백업을 하고 있다. 그리고 만약의 경우를 대비해서 잘 나온 사진들이나 즐거운 추억이 담긴 사진들은 코스트코를 이용해서 사진출력을 해서 앨범에 보관하고 있다.</div>
<div style="color: #1d2129; font-family: 'San Francisco', -apple-system, BlinkMacSystemFont, '.SFNSText-Regular', sans-serif; font-size: 14px; letter-spacing: -0.23999999463558197px; margin-bottom: 6px;">
문제는 이 모든 사진 소스들이 집이라는 한 곳에 모여 있다는 곳이고, 심지어 타임머신 백업 하드는 본체 아이맥과 10cm도 안떨어져 있는 관계로 화재라든지 혹시라도 지붕을 통한 워터 데미지, 지진, 도난 등이 발생하는 경우 통째로 디지털 원본과 백업이 사라질 수 있다는 것. 불나면 뭐... 앨범까지 홀라당 다 터버릴 것이고. 애플 아이클라우드를 통해서 백업하는 방법도 있겠지만, 이미 사진과 동영상의 용량이 1TB에 달하고 있어서 이것도 추가 공간 구입등의 문제로 비용이 만만치 않다.</div>
<div style="color: #1d2129; font-family: 'San Francisco', -apple-system, BlinkMacSystemFont, '.SFNSText-Regular', sans-serif; font-size: 14px; letter-spacing: -0.23999999463558197px; margin-bottom: 6px;">
그래서 뭔가 클라우드나 온라인 백업을 고려하기 시작햇는데, 어디 듣도보도 못한 이상한 그냥 웹하드랑 별반 다름없는 영세기업이나 언제 사라질지 모르는 스타트업이 운영하는 서비스는 이용하기 싫고, 저장용량 문제도 있고, 개인적으로 이것저것 따지다 보니 결국 아마존 프라임 포토와 구글 포토 두 가지가 물망에 올랐다.<br />
<br />
Amazon Prime Photo : https://www.amazon.com/photos<br />
Google Photo : https://photos.google.com<br />
<br /></div>
<div style="color: #1d2129; font-family: 'San Francisco', -apple-system, BlinkMacSystemFont, '.SFNSText-Regular', sans-serif; font-size: 14px; letter-spacing: -0.23999999463558197px; margin-bottom: 6px;">
아마존 프라임 포토의 경우 이게 사실 별게 아니고 아마존 드라이브 서비스의 일종인데.. 프라임 포토를 통해서 업로드를 하면 그냥 아마존 드라이브 저장공간 중에 Pictures 쪽으로 저장이 된다. 아마존 프라임 멤버쉽이 있는 이용자의 경우 사진에 한해서는 무제한 용량을 제공하고, 동영상의 경우에는 5G의 용량 제한이 있어서, 이것보다 더 업로드를 하려면 추가로 1년에 $60 달러 정도를 지불하면 사진과 동영상 뿐만 아니라 아마존 드라이브에 업로드하는 모든 형태의 파일 저장 공간이 무제한이다.</div>
<div style="color: #1d2129; font-family: 'San Francisco', -apple-system, BlinkMacSystemFont, '.SFNSText-Regular', sans-serif; font-size: 14px; letter-spacing: -0.23999999463558197px; margin-bottom: 6px;">
구글 포토의 경우 업로드하는 이미지를 손실압축해서(여전히 high quality이긴 하겠지만) 업로드하는 옵션을 선택하면(웹이든 구글 포토 데스크탑 업로더든) 용량이 무제한, 그렇지 않고 아마존 프라임 포토처럼 오리지널을 업로드하려면 15G 정도의 제한이 있다. 다만 이 경우에는 사진과 동영상 구별을 하지는 않는 듯. 추가로 공간을 구입할 수 있긴 한데, 일단 테라 단위로 올라가면 구입 가격이 만만치가 않네. 10TB구입하려면 한달에 $99.99 라는 엄청난 금액을 내야 한다는 -_-; 다만 데스크탑 업로드의 편리함은 아마존 프라임 포토(아마존 드라이브) 보다는 구글 포토가 나음. 맥 Photos Library에 파일이 추가되면 구글 포토 데스크탑 앱은 자동응로 백업을 해주는데 아마존 프라임 포토는 그런게 없음. </div>
<div style="color: #1d2129; font-family: 'San Francisco', -apple-system, BlinkMacSystemFont, '.SFNSText-Regular', sans-serif; font-size: 14px; letter-spacing: -0.23999999463558197px; margin-bottom: 6px; margin-top: 6px;">
또 다른 아마존 프라임 포토의 장정은 업로드한 사진을 출력하는게 엄청 편하다는 것. 그냥 선택해서 출력하기 하면 Amazon Print쪽을 통해서 인화가 가능한데 4x6사이즈 한장 인화가격<span class="text_exposed_show" style="display: inline; font-family: inherit;">이 고작 9센트. 이건 진짜 그 어디보다도 가격이 저렴하고 코스트코의 인화 서비스보다도 저렴하다( Costco 4x6 : 0.13센트 )</span></div>
<div class="text_exposed_show" style="color: #1d2129; display: inline; font-family: 'San Francisco', -apple-system, BlinkMacSystemFont, '.SFNSText-Regular', sans-serif; font-size: 14px; letter-spacing: -0.23999999463558197px;">
<div style="font-family: inherit; margin-bottom: 6px;">
그래서 제 최종 결정은요~~</div>
<div style="font-family: inherit; margin-bottom: 6px;">
<br /></div>
<div style="font-family: inherit; margin-bottom: 6px;">
아마존 프라임 포토 ( or 저장할 파일이 엄청 많은 경우에는 아마존 드라이브. 1년 무제한 공간 단돈 USD $60 )</div>
<div style="font-family: inherit; margin-bottom: 6px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjytoz8cJ31Z00OiDqpW0zEs9ESPew9MJ3KA72SA9pzrW49FDwVVpfBVjroxf_um6hD2qTGcCehIAlMGsvG-lek-WjYyY98P2pK7BmyIjq1NSjTnx42ZT6LIBCH8mAC-iRYgsf9AmE8P3Q/s1600/Screen+Shot+2017-02-28+at+8.38.58+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjytoz8cJ31Z00OiDqpW0zEs9ESPew9MJ3KA72SA9pzrW49FDwVVpfBVjroxf_um6hD2qTGcCehIAlMGsvG-lek-WjYyY98P2pK7BmyIjq1NSjTnx42ZT6LIBCH8mAC-iRYgsf9AmE8P3Q/s320/Screen+Shot+2017-02-28+at+8.38.58+PM.png" width="292" /></a></div>
<div style="font-family: inherit; margin-bottom: 6px;">
<br /></div>
</div>
Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com1tag:blogger.com,1999:blog-4137446751961690029.post-52981627686955165362016-04-18T13:52:00.000-07:002016-04-18T13:52:29.077-07:00근황 포스팅혹시라도 제 오랜 친구들 중에 이 도메인만 알고 있고 아직 페이스북 친구가 아닌 분들을 위해, 제 페이스북은 https://www.facebook.com/AaronJung 여기입니다.<br />
<br />
여기 마지막으로 글을 올린게 벌써 2년전이라 간단하게 근황 포스팅을 할까 합니다.<br />
<br />
1. 여전히 미국에서 같은 회사를 다니고 있습니다.<br />
2. 이제는 부모가 되었습니다.<br />
<br />
안타깝게도 이정도가 전부인 듯 하네요 -_-; 블로그에 꾸준히 포스팅을 하고 싶었지만 사실 페이스북이 너무 편하고 .. 뭐 그렇습니다. 언젠가 또 여기로 돌아올 날아 올수도 있겠지만요.<br />
<br />
아무튼 그렇습니다. 도메인도 참.. 개인 블로그를 운영하기에는 참 적절치 않은 도메인이라서 이걸 어떻게 할까 싶네요. 거의 10년 넘게 유지하고 있는 도메인이라고 계속 가지고 싶기는 하나... 조만간에 변화를 조금 주어 볼까 합니다.<br />
<br />
그럼 이만.Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-58505108079511063742014-10-21T01:57:00.000-07:002014-10-21T01:57:06.497-07:00인천국제공항 랜트카 이용 후기, 팁인천국제공항에는 출국장(1층)에 두개의 랜트카 회사가 있습니다. AJ(아주) 에이비스랑 KT 금호랜트카. 보아하니 AJ는 해외 예약시 Avis 이고 KT금호는 Hertz인 듯 합니다.<br />
지난 2주동안 한국을 방문하면서 이래저래 돌아다닐 곳이 많아서 Kayak을 통해서 예약을 하고 도착하는 날 차를 받아서 잘 쓰고 방금 반납했기에 몇가지 팁을 공유차 글을 남겨봅니다.<br />
(글쓰는 시점이 2014년 10월말이니까 이 글을 나중에 확인하시는 분들은 내용이 달라질 수 있으니 꼭 확인해보시길)<br />
<br />
Kayak에서 예매하는 경우 kayak을 통해서 예매할 수도 있고 avis사이트로 바로 이동해서 예매도 가능합니다. 어찌된 일인지 모르겠으나 avis웹사이트로 이동한 후 거주국가를 korea로 바꾸면 가격이 치솟게 됩니다. 2주 랜트 기준으로 그냥 달러결재 선택했을때는 대략 500달러 정도였는데(세금 포함) 이걸 거주국을 한국으로 '굳이' 바꾸면 금액이 800달러인가 가까지 올라갔습니다. 아마도 적용되는 할인이나 그런게 없어져서 그런거 같은데, 굳이 똑같은 차를 빌리는데 돈을 더 낼 필요는 없겠죠?<br />
<br />
해외에서 예약하고 차를 찾는 경우 자동으로 보험이 다 가입되는데 사고가 아무리 크게 나도 본인 면책금 30만원까지만 부담하면 되는 보험으로 가입됩니다. 이건 자동으로 들어가는거라서 빼거나 할 수가 없는 것 같습니다.<br />
<br />
아마도 마일모아이던가? 에서 인천공항 랜트카 관련된 글을 보신 분이 있으시다면 차 찾기가 엄청 어려웠다는 내용의 글을 살펴보신 적이 있을실텐데, 전 그 글때문에 더 헷갈렸습니다. 랜트카 업체 두개가 딱 나란히 부스를 공유하고 있고, 1층 출국장의 4C쪽으로 가시면 쉽게 찾을 수 있습니다. 예약확인하고 나면 확정되었던 달러 금액의 인천공항 내 상점들이 쓰는 환율 전일 환율 마감 기준으로 원화로 결제를 해야 합니다. 네 그렇습니다. 해외카드로 달러결제가 아니되니 반드시 미리 원화를 가져오시거나 한국 신용카드를 준비하시기 바랍니다. ( 환율이 인천공항 은행들의 미친 바가지보다는 저렴했던 듯 )<br />
예약을 확인하고 나면 직원 중 한명이(기본으로 두명 이상 있을겁니다. 새벽 5신가 6시에 갔을때도 두명이 있었음) 바깥쪽으로 나가서 택시 승강장쪽보다 약간 앞에 있는 랜트카 주차장으로 안내해서 차량 확인 시켜줄 겁니다. 이게 무슨 LAX나 미국의 다른 공항처럼 랜트카 전용의 건물이 있거나 그런게 아니니까 눈씻고 AVIS나 Hertz이런 간판 찾아봐야 없습니다. 조그마하게 입간판으로 랜트카 어쩌고 저쩌고 하는게 길가에 서 있긴 합니다만...<br />
<br />
연료는 딱 받았던 대로 돌려주면 되고 모자라면 모자란 만큼 돈을 더 내야 하고, 받을때보다 많이 넣어서 돌려주면 더 넣은 만큼 환불을 해줍니다(avis기준) 전 받을때 연료가 두칸이었는데(신형 아반떼 기준) 돌려줄때 3칸이어서 칸당 8천원 해서 돌려받았습니다. 마일리지로 받을수도 있는 것 같고, 환불을 원할 경우는 기준 결제를 취소하고 환불된 금액을 제한 나머지 금액을 재결제 하는 방식입니다.<br />
<br />
차를 리턴할 때는 똑같이 차를 몰고 출국장쪽으로(입국장쪽 2층 고가도로로 올라가심 안됨, 1층으로 가셔야 됨) 가다보면 얼마 안가서 4C쪽 근처에 차 받았던 곳이 보일겁니다. 거기 AJ지권이 나와 있으면 그 직원한테 계약서랑 차량 체크했던 거 보여주시고 짐 다 빼서 4C쪽에 있는 랜트카 업체로 가셔서 확인하시고 정산할 거 있으면 하시면 됩니다.<br />
<br />
네비가 필요할 수 있는데, 랜트카 업체에서도 빌려주는 거 같으니 이삼일 빌리실거면 그냥 네비도 같이 빌리면 될 것 같고, 아니면 스마트폰용 김기사 같은 앱을 받아 쓰시면 됩니다. 본인 인증인가 가입을 위해서 휴대폰 번호가 필요한데 대부분의 분들은 막 입국하자 마자 이게 있을 리가 없으니 그냥 아는 친구분의 아이디/패스워드를 알려달래서 그 정보로 로그인하거나(제가 그랬음), 아니면 최근에 보니까 카카오톡 아이디로 로그인하는 기능이 추가된거 같으니 그걸 이용해 보셔도 좋을 듯 합니다.(테스트는 못해봤음)<br />
스마트폰 데이터로밍이 엄청 비싼데 말이 되는 소리를 해라 라고 하시는 분들은 네네.. 전 한국 오기 전에 아이폰6사면서 AT&T에서 티모바일 옮기고 Simple Choice Plan 으로 플랜을 바꿨습니다. 한국 있는 동안 아~~~주 잘 썼고, 급할때 해야 하는 전화통화등은 쓰던 아이폰5 언락해 와서 올레 만원짜리 선불요금제 꼽아 썼습니다. (아직 5천원 넘게 남음)<br />
와이파이콜링과 데이터 로밍이 아주 그냥 끝내주네요.<br />
<br />
그럼 이만.Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-88440910921191443902014-10-03T01:47:00.000-07:002014-10-03T01:47:06.321-07:00신형 마쯔다 MX-5 2016년형, 미국은 2.0L, 그 외에는 1.5L최근 마쯔다의 신형 MX-5 공개에 따라 많은 사람들이 이 차에 관심을 보이고 있는데(물론 나도), 아직까지는 구체적인 배기량이나 마력이 공개되지 않았다.<br />
<br />
2.0L 엔진이면 신형 Mazda 3에 들어가는 155마력 엔진일텐데, 그 엔진이 그대로 들어가는 건지 경량화와 출력증가가 좀 있을지는 모르겠다. 추구하는 자체가 무거운 그란투리스모형태가 아니기 때문에 아마 그대로 또는 무게만 좀 경량화 하고 손봐서 나올 가능성이 커 보인다.<br />
<br />
자세한 출처는 http://bit.ly/ZwR3Ta<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXg_d9n8gDenMx4EKHs9ykBDjBE2aUpQKGVGYZXwbcPQtiSIpQsXLTec1ovc7XW-25RRhmpHvkayn7zM7Z0XTgvWH8Xw9m6gpi2D9idE2eOkoWCRJE5-K52UurDQvjzKfq_EXIB7s2teg/s1600/2016-mazda-mx-5-miata-live-photos_100479179_h.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXg_d9n8gDenMx4EKHs9ykBDjBE2aUpQKGVGYZXwbcPQtiSIpQsXLTec1ovc7XW-25RRhmpHvkayn7zM7Z0XTgvWH8Xw9m6gpi2D9idE2eOkoWCRJE5-K52UurDQvjzKfq_EXIB7s2teg/s1600/2016-mazda-mx-5-miata-live-photos_100479179_h.jpg" height="426" width="640" /></a></div>
<br />Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-8484868677657878632014-08-06T23:35:00.003-07:002014-08-06T23:35:32.667-07:00OSCON 2014 정리매일매일 오스콘 관련 정리를 한다는게 그냥 그날 그날 빡시게 세션 듣고 저녁에 스폰서들이 주최하는 파티 잠시 들러서 놀고 이야기좀 하고 이것저것 먹고, 저녁에는 Yelp를 뒤져서 숙소와 행사장 근처에 있는 맛집을 전전하다 보니 행사가 금방 끝나버렸다. 화수목에 각각 뭐 했는지가 자세히 기억나지 않고, 오스콘 다녀온지 벌써 일주일도 훨씬 지나서 그냥 간단히 내용정리겸 글을 씀.<br />
<br />
작년과 비슷하게, 아니 어쩌면 작년보다 Netflix쪽의 세션이 많았다. 작년에 들었던 Netflix API관련된 비슷한 세션도 있었고 Netflix에서 몇년간 일하다가 Riot Games로 넘어가서 그쪽에서 일하는 엔지니어가 어떻게 Netflix OSS 쪽 라이브러리들을 이용해서 라이엇에 AWS기반 시스템들을 구축했는지 발표하는 내용도 있었으니까 직간접적으로 대략 네다섯개는 넷플릭스쪽 발표였던 거 같다. 대충 보면 일단 한번 어딘가에서 발표하면 그 후에 여기저기 초청을 받아서 비슷비슷한 내용을 서너군데, 많으면 그 다음해까지 계속 발표하는거 같다. 블리자드도 내년쯤에는 누구든 오스콘 같은데서 발표 하나 하면 좋지 않을까?<br />
<br />
Scala관련된 세션이 몇개 있었고, 그 외에 올해는 작년과 달리 이상하리라만큼 Erlang 관련 세션이 많았다. Erlang 커뮤니티쪽에서 밀어주는건지 아니면 Erlang이 요즘 추세로 올라오고 있는건지는 모르겠지만..<br />
<br />
하둡관련 세션은 그렇게 많지 않았거나 별로 흥미로운 내용이 없었거나 그랬던 거 같다. NoSQL관련된 세션이 몇개 있었고, Elasticsearch나 ELK스택관련된 세션이 몇개 있었다. 그 중 흥미로운 세션 하나가 Parrot AR Drone쪽 엔지니어가 나와서 드론을 조종하면서 그 실시간 움직임 정보들을 ELK로 받아서 보여주는 데모였는데, 안타깝게도 그날 아침에 엔지니어가 패치한 뭔가가 제대로 동작하지 않아서 계속 드론이 이상동작하고 추락하고.. 그냥 그렇게 싱겁게 끝났다. ( 역시 데모 직전에 뭔가 고치면 안된다는 ... )<br />
<br />
구글이 스폰서 중 하나라서 그렇기도 하겠지만 작년보다 GO 관련 세션이 늘었다. Rust 세션은 없었거나 하니면 눈에 안띄었거나 그런 거 같았는데, 광고하는걸로 보나 커뮤니티로 보나 밀어주는 업체의 파워로 보나 내 생각에는 그냥 앞으로 GO가 쭉 흥할 것 같고 Rust는 그냥 dust가 될 것 같다. 많은 기술이나 언어가 단순히 다른 기술보다 뛰어나다는 이유만으로 흥하거나 널리 받아들여지는 건 아니지 않은가?<br />
<br />
흥미로운 것 중 하나는 오픈소스관련 행사인 오스콘에 Microsoft가 부스를 차렸다는 것. 크게 오픈소스 프로젝트와 관련된 내용은 없었던 걸로 기억하지만 부스가 입구에 위치해 있었고 규모가 상당히 컸다. MS의 변화가 느껴지는 부분이었는데, 앞으로 어떤 활동을 할지 기대된다.<br />
<br />
작년에는 없었던 하드웨어 관련 부스들이 생긴 것도 달라진 점이었다. Raspberry Pi라든가 몇몇 널리 사용되는 하드웨어 컨트롤러, 보드, 기타 DIY프로젝트들을 소개하는 부스들이 있었는데, 요즘 분위기를 따라 OSCON쪽에서 앞으로 소프트웨어 뿐만 아니라 오픈소스 하드웨어(?) 진형도 끌어들여 행사를 키울 생각인 듯 싶다.<br />
<br />
작년에는 한국에서 두명의 발표자가 정보통신산업진흥원인가의 후원을 받아 아시아와 한국의 오픈소스 활동에 대한 발표세션이 있었는데, 올해는 스폰서 중 하나인 삼성전자쪽에서 타이젠 UI와 관련된 발표가 하나 있었던 것 같다. 들어가 보고 싶었지만 개인적으로 타이젠 프로젝트와 관련된 일을 하고 있지도 않고 다른 관심있는 세션과 시간이 겹쳐서 생략했다.<br />
<br />
그러고보니 삼성전자 부스도 있었는데 둘째날인가 회사동료 둘이랑 잠깐 들러서 거기 있던 한국분 두분이랑 짧게 이야기를 나눌 기회가 있었다. 부스의 내용이 타이젠 하나 뿐이었는데, 기왕이면 삼성전자에서 진행하고 있는 다른 프로젝트도 소개를 한다든가 아니면 뭔가 삼성전자 북미 연구소 같은데서 온 네이티브 분위기의 개발자도 한명쯤 있었으면 좋지 않았을까 싶다.<br />
<br />
삼성전자가 자체 플랫폼을 가지는 것의 중요성을 깨달은 것도 좋고 아마 뭔가 필요한 기능들이 구글 안드로이드 OS에 빨리빨리 추가되지 않는 등의 이유도 있을거라고 생각하긴 하지만, 개인적으로는 안드로이드 OS 대신 타이젠으로 가는 것에 대해서는 아직까지 좀 의아한 점이 있다.<br />
물론 타이젠이 앞으로 삼성에서 나오는 스마트폰에도 들어가고 TV나 다른 가전제품에도 들어가고 뭐 그런다고 하지만 어쨌든 그렇게 되면 타이젠은 그냥 삼성제품에만 들어가는 OS로 남게 되지 않을까 싶다. 타이젠쪽 얼라이언스들이 꽤 있었지만, 북미쪽 든든한 후원자(?) 중 하나이자 미국 3대 이동통신사 중 하나인 스프린트가 타이젠 진영에서 빠졌고 타이젠 폰의 출시되 최근 지연이 된 터라.. 글쎄 오픈소스로 남아 있더라도 얼마나 이게 커뮤니티의 후원을 받아 널리 사용되고 안드로이드OS 랑 대적할만큼 성장할지는 모르겠다. 게다가 삼성전자는 자체 개발해서 한참 광고하고 홍보하던 바다 OS도 그냥 때려쳐 버린 경력이 있으니... 건승을 바란다.<br />
<br />
사실 오스콘이 미국에서 회사생활을 하는 사람들이라면 꽤 매력적이다. 컨퍼런스 자체도 그렇지만 날짜가 거의 7월 여름휴가쯤이고, 행사가 열리는 포틀랜드와 포틀랜드가 속한 오래곤주는 맥주와 와인으로 유명하다. 그리고 포틀랜드에서 다리 하나 건너면 워싱턴주 밴쿠버랑 연결되고 두시간인가 정도만 운전해서 위로 올라가면 시에틀이 나온다. 여름휴가 콤보 + 오스콘 이렇게 하면 거의 7월의 반은 쉬게 된다는 점.<br />
<br />
오스콘을 직접 갈 수 없었거나 혹은 갔었지만 다시 한번 정리를 하고 싶다면 http://www.oscon.com/oscon2014 를 방문하면 대부분의 발표자료와 동영상을 볼 수 있다. (그리고 거기 행사장 사진 중 하나에 내가 찍힌 걸 방금 발견 -_-;; )<br />
<br />
<br />Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-4846106446661515532014-07-22T01:06:00.003-07:002014-07-23T09:45:14.276-07:00OSCON 2014 - 월요일작년에 이어 올해도 운좋게 OSCON에 오게 되었다. 물론 회사가 돈을 잘 벌고, 같은 미국내에 있어서 한국에서 미국으로 직접 날라오는 것보다는 경비가 적게 드는 건 사실이지만, 그래도 회사에서 개발자에게 투자하려는 의지가 없다면 가능하지 않은 일이리라. 일단 회사에 감사(아부아부)<br />
<br />
이번 OSCON은 일요일부터 시작해서 목요일까지 진행되고 내 티켓은 화수목 3일짜리인데, 실제 주요 세션들은 화요일부터 시작되고, 빨간색 OSCON 티셔츠도 화요일부터 나눠준다고 한다. 어제(현지시간으로 지금 화요일 새벽 12시 55분이니) 잠깐 컨퍼런스 체크인도 할 겸 같이 온 회사 동료들도 만날 겸 나갔다 왔는데, 일단 엑스포 홀쪽 분위기는 작년이랑 비슷해 보였다. 오렐리 코너는 작년보다 약간 규모가 작아진거 같았고, 내 기억이 맞다면 작년에는 Riot Games의 부스가 보였는데, 일단 월요일날 오후에 확인해 봤을때는 부스가 없었다. 구글이 제법 규모가 있게 부스를 차렸고, Microsoft부스도 보였다. 그 외 클라우데라나 Pivotal, 아파치 등의 부스도 있었는데, 작년에 부스가 있었던 JFrog는 아직 없는 듯.<br />
<br />
전체적인 컨퍼런스의 세션 내용은 OSCON 2014에서도 살펴볼 수 있겠지만 작년보다 Puppet이나 Chef에 대한 내용은 거의 없다시피 했고 대신 Docker나 가상환경, 클라우드 환경에 대한 세션이 늘었다. 구글이 부스를 크게 차리고 본격적으로 GO를 밀려고 하는건지 모르겠지만 아무튼 GO관련 세션이 꽤 보였고, 작년에 꽤 여러개의 세션을 했던걸로 기억하는 Netflix의 세션은 딱 한갠가 보이는거 같다. Erlang쪽 세션이 많이 보이고, Elasticsearch랑 ELK쪽 세션이 꽤 많이 보인다. 하둡이랑 NOSQL쪽도 한쪽으로 잔뜩 치우치지는 않고 그냥 골고루 한두개 정도씩 세션이 있다.<br />
<br />
자세한 내용은 화수목 세션을 좀 들어보고 시간이 되면 정리해서 다시 올리든가 해야 할 듯.<br />
<br />
아참, OSCON의 발음은 오스콘이다. 오픈 소스 컨벤션(Open Source Convention). OS + CON이라고 생각하고 가끔씩 오에스콘이라고 발음하시는 분들은 참고하시길.Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-61017722498463209602014-02-23T02:34:00.000-08:002018-07-18T14:47:16.467-07:00개발자, 영어, 그리고 해외취업. 글쎄 과연 그렇게 호락호락할까?오랜만에 포스팅하는 글이 영어 관련 쓸데없는 뻘글이라 좀 그렇지만, 페이스북에 적기 시작한 글이 너무 길어져서 블로그에 포스팅하기로 함.<br />
<br />
<br />
미국에 2011년에 넘어왔으니까 올해로써 이제 미국생활 4년차 들어간다. 처음에 왔을때는 4년정도 여기 있으면 영어는 잘 하겠지라고 했는데 웬걸, 확실히 영어 울렁증은 없어지고 최소한 내가 지금 하려고 하는 말들이 100% 실시간으로 나오긴 하지만 여전히 그 수준은 내가 한국어를 구사하는 수준은 아닌지라 한 단어로 표현이 가능한 복잡미묘한 명사나 동사를 표현하기 위해 쉬운 단어들 몇개를 합쳐서 빙빙 둘러서 설명을 하는 그런 수준. 관심사인 부동산이라든가 게임이라든가 최신개봉 영화 뭐 이런 이야기들은 곧잘 하고 농담따먹기도 잘 하지만, 여전히 미국 문화의 베이스가 없으면 이해하기 어려운 내용들이 많다. 당연히 깨알같은 문법 실수와 관사 생략은 기본.<br />
<br />
작년인가 재작년인가 부터 부쩍 한국쪽 개발 커뮤니티나 컨퍼런스에 보면 개발자와 영어를 관련시킨 발표가 많아졌다. 어떤 사람들은 본인의 해외 어학연수 경험을 공유하기도 하고 또 어떤 사람들은 오픈소스 활동 경험을 공유하기도 하고.. 아무튼 기본적으로는 실력만 있으면 영어를 못해도 해외에서 개발자로 일하는데 전혀 문제가 없다라는 글들도 보인다.<br />
<br />
물론 미리 겁 집어먹고 도전을 안하는 것도 바람직하진 않겠지만, 글쎄 과연 실력만 있으면 정말 괜찮을까? 개발자로써 상위 10%정도의 실력이라 코드로 진짜 모든 걸 말할 수 있는 수준이라면 가능하다고 생각한다. 영어 관련 개발자 포럼의 글들 보면 그런 댓글들이 많이 보인다. 개발자는 코드로 말한다고. 근데 스스로 그런 수준인가 하는 건 다시 한번 생각해 볼 일이다. 보통 개발자들이 자기는 다른 개발자보다 좀 더 특출나다고 생각하는 경향이 많은데(여기에는 나 자신도 포함되는 듯), 좋든 싫든간에 그들 중 90%는 상위 10%가 아니니까.<br />
바다 건너 이억만리에서 인터넷으로 버그 수정하고 코드 커밋하고 이메일로 비실시간 대화를 할 수 있는 오픈소스 개발이라면 영어실력이 그렇게 꼭 중요하진 않을 수 있다. 그리고 그 영어라는 것도 주로 읽기(이건 한국사람들 다 잘하니까) 와 쓰기에 한정되는 경우가 많다. 문제는 한국사람들의 최악의 약점인 말하기인데... 실제로 영어로 일을 하는 회사에 출근을 해서 일을 해야 하는 경우에 이 말하기 능력은 엄청 중요하다.<br />
<br />
한 회의실에서 개발자 대여섯명, 혹은 어디 발표라도 해야 하는 날에는 수십명 앞에서 실시간으로 대화를 하고 의사소통을 해야 하고, 실시간으로 내 의견을 말하고 상대방의 말에 논박을 해서 내 의견을 설득시켜야 한다. 그걸 할 수 없으면 그냥 입닫고 시키는 대로 일을 할 수 밖에.<br />
또 하나, 실제로 내가 얼마나 개발자로서 실력이 있든간에 외국애들이 보는 내 실력은 딱 내 영어실력만큼이다. 의사소통이 안되는데 당연하지 않겠나? 물론 앞에서 또 말했듯이 실력이 엄청 좋으면 코드로 모든걸 말할 수도 있겠지만... 개발주제로 회의하는 시간에 코드를 짜서 보여줄 순 없지 않나? 코드를 짜서 보여준다고 해도 다른 동료 개발자들이 코드리뷰 진행시 물어보는 것들에 대해서 명확하게 대답을 할 수 없다면 실력이 무슨 소용이 있나. 설사 본인이 맞고 다른 사람들이 그걸 이해못한다고 해도 그 자체를 상대방에게 이해시키지 못한다면 그들에게는 내가 틀린 것일 수 밖에. 그리고 말했듯이 개발자의 90%는 10% 상위개발자가 아니다.<br />
<br />
해외취업을 한 사람들 중에서 영어 잘 못해도 회사생활 하는데 아무런 문제가 없다고 말하는 사람은 내가 보기에는 딱 두가지 부류다.<br />
진짜 별로 개발자들간의 의사소통할 필요가 없이 자기 혼자 북치고 장구치는 포지션을 맡은 경우(one man army)거나, 그게 아니라면 실제로 본인이 하는 일이 전혀 다른 개발자들과 의사소통을 하지 않아도 될만큼 크게 중요한 결정이 필요없는 경우.<br />
<br />
그게 아니고 진짜 제대로 업무에서 영어쓰면서 일해야 하는 상황에 놓여 있고, 또 영어가 얼마나 중요한지를 아는 개발자들은 내가 생각하기에는 '영어 하나도 못해도 해외 취업하는데 전혀 문제가 없다' 라는 이야기는 하지 않을 듯 하다.<br />
만약 그럼에도 불구하고 그렇게 말하는 사람이 있다면 아마도 채용을 해야 하는데 겁주면 안올까봐 안심시키는 말일 가능성이 아주 높거나, 아니면 팀에 한국사람들이 아주 많고 본인이 맡을 포지션은 그렇게 다른 팀들과 회의를 할 일이 없는 포지션일 경우.<br />
이 경우 본인의 해외취업의 목표 중에 '영어' 가 들어 있다면, 글쎄.. 취업하고 3년이 지나고 5년이 지난다고 하더라도 실제로 영어실력은 한국에서 목표의식을 가지고 매일매일 아침에 한시간씩 어학원에서 원어민 영어를 하는 사람에 비해서 얼마나 늘지 의문스럽다.<br />
물론 생활영어, 서바이벌 영어는 늘겠지. 마트도 가야하고 음식도 주문해야 하고, DMV나 관공서 가야 할 일도 있을테니까.<br />
<br />
해외취업에 겁 먹을 필요는 없다. 말하기에 익숙하지 않을 뿐이지 중고등학교 그리고 대학교때 나름 어느정도 영어공부에 노력을 했고 독해랑 쓰기가 어느정도 가능하다고 생각하면(이것도 본인 생각으로 그럴거 같다 그러지 말고 영어시험이든 어학원 레벨 테스트든 한번 받아보고 나름 객관적인 판단을 해 볼 필요가 있다), 개발실력이 어느정도 있다면 해외 취업에 도전을 해볼 만 하다. 그리고 해외에 나와 살면서 영어환경에 노출되면 좋든 싫든 어느정도 수준까지 영어는 늘어나는 거 같다. 물론 그 영어의 질과 발전속도는 본인이 어떻게 하느냐와 본인이 놓인 환경에 따라 천차만별이겠지만. <br />
<br />
다만, 운이 좋거나 처음부터 누군가의 눈에 잘 들어서 끌어주는 사람이 생기지 않는한, 외국인 개발자들 사이에서 일을 한다는게 결코 쉬운 일은 아니라는 건 미리 각오를 해 두는 게 좋다. 본인 스스로 생각에 사교성이 좀 떨어지거나 소심하다고 생각되는 사람들은 각오를 좀 더 해야 할 것이고.Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com1tag:blogger.com,1999:blog-4137446751961690029.post-11122396357709801082014-01-05T01:24:00.001-08:002014-01-05T01:24:33.314-08:00Bitcoin mining result of BitcoinPlus mining poolSince Bitcoin is kind of famous nowadays, I tried some Bitcoin mining through BitcoinPlus mining pool(http://www.bitcoinplus.com). You just need to install Java, sign up BitcoinPlus service, and press "Start Generating" button. That's it.<br />
<br />
Because I have two Mac ( Actually three, but I just bought 2013 late Retina MacBook Pro and still setting up, so I didn't want to use it ), I ran those BitcoinPlus mining on both Macs.<br />
<br />
Here are some results :<br />
<br />
Late 2009 MacBook White : 8G 1067 MHz DDR3 RAM, 2.26GHz Intel Core 2 Duo, Hitachi 5400RPM HDD ( 512G )<br />
OS : OS X Mavericks<br />
<br />
Average speed : 1181000<br />
Estimate time for payout : 1.03 hours<br />
0.00000001 BTC per payout<br />
<br />
<br />
Late 2012 iMac 27" : 16G RAM, 1600MHz DDR3 RAM, 3.2GHz Intel i5, Fusion Drive 1G<br />
OS : OS X Mavericks<br />
<br />
Average speed : around 4 times faster than late 2009 MacBook white<br />
Estimate time for payout : 15~20 mins<br />
Same 0.00000001 BTC per payout<br />
<br />
One important thing about this is, you can't transfer those Bitcoin payout until it reached 0.01 BTC.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhonccYHwehuUZ_9OdIw_cWD3Q966kXM98DOCderrW_Skbg9j8-KRaC1QHt5jZ-hXzCTGjQrZhUgselsOHJF_0qfXpPSebTbhYPhXmebyqG4mldSYumMMijJZrfU9QtwiUAffRTtudMwKs/s1600/Screen+Shot+2014-01-05+at+1.04.56+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="324" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhonccYHwehuUZ_9OdIw_cWD3Q966kXM98DOCderrW_Skbg9j8-KRaC1QHt5jZ-hXzCTGjQrZhUgselsOHJF_0qfXpPSebTbhYPhXmebyqG4mldSYumMMijJZrfU9QtwiUAffRTtudMwKs/s640/Screen+Shot+2014-01-05+at+1.04.56+AM.png" width="640" /></a></div>
<br />
<div>
This is what I ran today with two Macs, and it's very obvious that, although it's fun to experience those service, expectation of getting actual Bitcoin through this mining pool at home is pretty much lower.<br />
<br />
2 Macs * almost 3 hours = 11 payouts ( 0.00000011 BTC )<br />
0.01 BTC / 0.00000011 BTC = about 9,000 hours = 375 days<br />
<br />
As of Jan 5th, 2014, Bitcoin exchange rate is around $840 USD. So, 0.01 BTC = $8.4 USD.<br />
<br />
It looks like Bitcoin mining market is already turned into enterprise scale and the person actually getting money fro this business is the Bitcoin ASIC manufactures.<br />
<br />
If you check http://minr.info website, CoinTerra's TerraMiner II has 12 days of break even, and it costs $3,499 USD. Well.. if you are seriously considering Bitcoin mining, probably you can try this??</div>
Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-58967686565355297432013-12-19T23:57:00.000-08:002013-12-20T00:00:19.415-08:00Nissan Leaf - 3 months of experience, tips, etc. I leased 2013 Nissan Leaf S trim ( quick charger package installed, which has DC charge port and backup camera) almost three months ago and spent some time before I picked the car to get info, so I’d like to share some.<br />
<h2>
Tax/benefit/Deal</h2>
1. You can’t get full federal $7,500 tax credit with purchase if you have nothing to pay more tax for 2013. To maximize this benefit, you have to lease with more than 36+ months period, which is what I dd.<br />
<br />
2. Why Lease? Not purchase?<br />
Nissan and other automaker is trying to increase their battery capacity and range to double until 2015 or something, so EV purchasing now wasn’t an option to me. ( also to maximize $7,500 federal tax benefit )<br />
<br />
3. CA benefit will takes up to 60 days once you apply for it. There are limited amount of funds for this benefit. CA still have some, but it will be gone soon, so you need to hurry.<br />
<br />
4. There are another “free charging station(level2)” promotion by CA. They put certain amount of free EV charger at the first Tuesday(or Monday) of every month. Once it’s all gone, you can’t have it and need to delay your purchase/lease until next month if you want to apply for it.<br />
It’s monthly base, so let’s say if you purchased or leased EV this month and there are no more free charging station this month, then you can’t get one and can’t apply for next month. You better need to wait until next Month until it’s back.<br />
Also, EV charging station installation fee need to be covered by your own cost. You can apply for this with your temporary registration paper, so do it ASAP.<br />
FYI. The Irvine Company Apartment leasing center won’t allow you to install level 2 charger in your garage.<br />
<br />
5. For carpool lane decal, you need to wait until you get number plate from DMV.<br />
<br />
6. Other benefits like free public parking (meter based one) in Santa Monica and other area needs “carpool lane decal”, so wait #5.<br />
<br />
7. I paid around $1,700 for out-of-pocket for my 36 months lease, and monthly is $229 incl tax from OC Nissan Irvine.<br />
<br />
I went other Nissan dealerships in OC as well to get the best price, and then ended up with OC Nissan Irvine since they provided the lowest price and also my Costco membership Auto program suggested me OC Nissan Irvine as their partnership.<br />
I thought I had very nice deal, but then Costco Auto staff reached out to me and asked to send my lease contract to see if I actually got benefit with Costco Auto program. A week later, I got $440 check from OC Nissan Irvine.(!!!!!) <3 Costco!<br />
<br />
<h2>
Equipment</h2>
<br />
1. CarWings in Nissan Leaf needs subscription and use 2G network, although it’s given as free during first 3 years.<br />
<br />
2. Only benefit you can get from CarWings + Navigation from my perspective is, you can set up “start” and “end” charging time. Without this, you can set up “end” time only and charging started immediately either 1) when you plugged in or 2) turn off “charging timer” manually.<br />
It’s not uncomfortable to me at all, and You can use another mobile phone apps like “CatStations”, “PlugShare”, also other apps like “Blink”, “WattStation”, and “ChargePoint” which comes from commercial charging station network. FYI. Blink is recently acquired by ChargePoint, still almost every service of Blink are functional though.<br />
<br />
3. Basic S trim comes with steel-wheel, not alloy, so if you really want alloy wheel you need to go with SV or SL.<br />
<br />
4. Almost every S trim comes with quick charger package, which includes DC charge port and backup camera, so skip any vehicle which does not have it. Nissan and CA is trying to increase DC charging station, which charge up to 80% in 30 mins, so you’ll need it.<br />
Every time I go near LA with my Leaf, I visit Downtown LA Nissan and charge my Leaf with DC charger.<br />
<br />
<h2>
Charging</h2>
1. With 100% charging, you’ll have about 85 miles to move without eco mode. So far, I tried from Irvine to LA Korean town/Getty museum. If you over-speed, air condition use, heater on, etc, it will drain more battery power and decrease your range.<br />
<br />
2. Almost every Nissan dealership has at least two level 2 charging station and provide it to their Nissan Leaf owners for free. Sometimes I see some article/comment that you don’t allow other EV owners to use it, which is makes sense to me.<br />
There are Nissan dealership everywhere you can use if you get Leaf, and that’s the most important thing. Unlike Volt EV, you can’t move without having them.<br />
<br />
3. There are many commercial charging station around. It’s mostly level 2 charger and costs $1 per hour for their member. ( membership is free for most case )<br />
Some place you might want to use if you are living in/near Irvine, CA, that would be<br />
<br />
Irvine Spectrum Center : has 4 WattStation level2 charger outside of parking building.<br />
Costa Mesa IKEA : has 3 Blink level 2 charger<br />
Carl’s Junior near Irvine Center Dr : has ChargePoint level2 charger. ( It looks like other Carl’s Junior also has charging station, not every store has it though )<br />
Quail Hill Shopping Center : New 2~3 level charging station and two DC quick charging stations are recently located in the shopping center. Charging cost for level 2 is $1/hour, and DC was $4/hour ( well.. with 30 minutes you can charge up to 80% though.. ) if I recall correctly.<br />
Orange outlet near Santa Ana : There are three~four “free”(yes, FREE as of Dec 2013) level2 charging station installed near D&B.<br />
New Irvine Company's apartment communities have several charging stations as well. <br />
<br />
4. There are several different types of charging station, and some of them are just for earlier EV model. So, if you use apps like CarStations, you need to know charging station types you can use.<br />
J1772 : charging station type for latest EV model like Nissan Leaf or Chevy Volt/Spark.<br />
CHADEMO : DC quick charge station you can use for Nissan Leaf if your vehicle has DC charge port installed.<br />
SPI : For earlier model EV, latest EV can’t use it.<br />
5. With given level1 120V “emergency charging device”, full charging from 0% to 100% takes more than 20 hours!! You might think it’s not ideal to commute, but you don’t use 100% battery in a day usually, so charging from 9PM to 6AM with your home 120V will works. Also you can upgrade your charging device given by Nissan to use 220V with small upgrade costs, that way you don't need to install expensive charge station in your garage.<br />
You can use other commercial charging station when you go there to see a movie, shopping, etc.<br />
<br />
Hope this is helpful to you.<br />
<br />Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-4200898303648555302013-12-19T23:32:00.001-08:002013-12-19T23:34:05.013-08:00How to block spamming IP coming to your environment in Tomcat?<div style="background-color: white; font-family: verdana; font-size: 13.333333969116211px; line-height: 21.111112594604492px;">
There is a case that ton of requests are rushing into your Tomcat webapps, mostly because your service becomes rock star, the bug of your new implementation cause user's "refresh", or maybe something else.</div>
<div style="background-color: white; font-family: verdana; font-size: 13.333333969116211px; line-height: 21.111112594604492px;">
<br /></div>
<div style="background-color: white; font-family: verdana; font-size: 13.333333969116211px; line-height: 21.111112594604492px;">
For non-heavy requests which hits cached data most of the time would be fine for those cases, but other types of requests like new login account creation, real-time status query like server status, place order, etc are highly related to database call, and mostly will not be cached. Those calls can exhaust your Tomcat webapps JDBC connection pool too fast and make the service unrecoverable.<br />
Implementing throttling in app would be definitely helpful in this case, but even the solution might need some time to coding. There are other ways you can filter spamming IP in OS level using iptables things or Apache mod_xxx plugin, etc, but probably<span style="font-size: 13.333333969116211px; line-height: 21.111112594604492px;"> the easiest and fastest way to block those spamming(well, at least to you) IP would be adding following "Valve" configuration into Tomcat's server.xml.</span></div>
<blockquote class="tr_bq">
<div class="line number1 index0 alt2" style="background-color: white; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;">
<code class="java spaces" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"> </code><code class="java plain" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"></Host></code></div>
<div class="line number2 index1 alt1" style="background-color: white; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;">
</div>
<div class="line number3 index2 alt2" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;">
<span style="background-color: yellow;"><code class="java plain" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><Valve className=</code><code class="java string" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 51, 102) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"org.apache.catalina.valves.RemoteAddrValve"</code> <code class="java plain" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">deny=</code><code class="java string" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(0, 51, 102) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"xx.x.xx.xxx"</code> <code class="java plain" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">/></code></span></div>
<div class="line number5 index4 alt2" style="background-color: white; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;">
<code class="java spaces" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"> </code> </div>
<div class="line number6 index5 alt1" style="background-color: white; background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;">
<code class="java plain" style="background-image: none !important; border-bottom-left-radius: 0px !important; border-bottom-right-radius: 0px !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"></Engine></code></div>
</blockquote>
<div style="background-color: white; font-family: verdana; font-size: 13.333333969116211px; line-height: 21.111112594604492px; margin-top: 10px;">
This set up need to be located under <Engine> section, and at the same level with "Host". ( chanse xx.x.xx.xxx to the IP which you want to block).<br />
You can either use "deny" or "allow" for Valve configuration, but "deny" would be what you ant to use at this moment.</div>
<div style="background-color: white; font-family: verdana; font-size: 13.333333969116211px; line-height: 21.111112594604492px; margin-top: 10px;">
For more information about Valve configuration in Tomcat, check <a class="external-link" href="http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html" rel="nofollow" style="color: #3b73af; text-decoration: none;">http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html</a>. </div>
Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-8446203261741046692013-10-18T14:18:00.002-07:002013-10-21T09:39:39.035-07:00미국 L1 비자 갱신하기어느덧 3년의 시간이 흘러 L1 비자를 갱신할 때가 되었습니다. 아마도 블리즈컨 2013이 끝난 바로 직후에 한국에 대략 2주 정도 비자 갱신 겸 머물게 될 것 같은데 지금부터 비자 갱신하고 미국 돌아올 때까지의 과정을 정리해둡니다. 혹시라도 나중에 L1 갱신해야 하는 분들은 참고하세요. 3년 전 내용이긴 하지만 L1 처음 신청하시는 분들은 <a href="http://www.potatosoft.com/2011/01/blanket-l-1b_20.html" target="_blank">여기</a>를 참고하시면 될 것 같은데, 전반적인 비자 수수료 납부라든지 몇몇 절차는 바뀐 듯 하니 참고하시기 바랍니다. 여전히 은행에서 수수료를 납부하는 방법은 유효하지만, 예전과 달리 우선 수수료를 납부해야 인터뷰 스케쥴을 잡을 수 있다는 게 달라진 점인 것 같습니다. <br />
<br />
<h3>
DS160 재작성 </h3>
<br />
<a href="https://ceac.state.gov/genniv/">https://ceac.state.gov/genniv/</a> 여기 가셔서 처음 L1 비자 받을때처럼 DS160 다시 작성하셔야 합니다. 저도 지금 열심히 작성 중인데, 3년전보다 그나마 시스템이 좀 나아진 거라면, 일단 작성을 시작하다가 save를 해두면 30일간 유효합니다. 이전에는 한참 쓰다가 중간중간 파일을 내려받기 해두어야만 나중에 session expire가 갑자기 되는 경우 다시 다운로드 받았던 파일을 업로드해서 계속 작성이 가능했는데, 이제는 30일 이내라면 굳이 그렇게 번거롭게 하지 않아도 됩니다. ( 만 저는 만일의 경우를 대비해서 종종 저장해 두고 있습니다. )<br />
<br />
작성시 application receipt/petition number입력하라고 할껀데 이건 현재 L1 Visa에 찍혀있는 그 번호를 쓰시면 안되고 회사 HR이나 변호사한테 이야기해서 새로 받은 petition number를 입력하셔야 합니다.<br />
<br />
모두 다 작성한 다음에 submit을 하면 confirmation number를 줄건데 출력을 하든 이메일로 보내기를 하든간에 반드시 이 confirmation number 가 찍힌 걸 가지고 계셔야 합니다. 나중에 대사관 인터뷰 보러 갈때 가져가야 하거든요.<br />
<br />
<h3>
비자 수수료 납부 및 대사관 인터뷰 예약 </h3>
<br />
DS 160 마지막 페이지에서 이후의 절차에 대해서 설명해주는 내용이 있는데, 다음 과정은 비자 진행을 위한 수수료를 내고( 대략 한화 기준으로 20만원 내외 ), 대사관에 예약을 잡는 것입니다. 아마 링크가 걸린 페이지를 클릭하면 https://cgifederal.secure.force.com/ 이쪽으로 연결될 텐데, 처음 접속하는 경우에는 아이디(이메일 주소)와 패스워드를 입력해서 새로 등록을 하고 진행해야 합니다.<br />
<br />
구글에서 "미국 대사관 비자 인터뷰 예약" 으로검색을 해보면 http://korean.seoul.usembassy.gov/visas_how_to_get_an_appt.html 이 사이트를 알려주고, 거기 보면 전화로 예약을 하던지 <a href="http://www.us-visaservices.com/">www.us-visaservices.com/korea</a> 여기로 접속해서 예약을 하라고 하는데, 분명히 3년 전에는 이런 절차를 통해서 PIN을 받고(결제해야 됨) 이걸로 했던 거 같은데, 아무튼 저 사이트는 지금은 먹통입니다. 한국내 번호라는 곳도 전화를 해보면 받는 사람이 없고 안내 이메일로 문의를 했는데도 이틀이 지난 지금까지 아무런 답변이 없습니다. 아마도 더 이상 저 페이지는 쓰이지 않는 듯 하니 괜히 시간낭비 하지 마시길.<br />
<br />
링크가 걸린 페이지로 이동하면 우선 비자 수수료를 내야 하는데, 예전에는 PIN으로 대사관 예약을 하고 그 다음 수수료는 미국 대사관 근처 신한은행인가에서 돈 내고 영수증을 confirmation 종이에다가 붙여서 갔던 거 같은데, 이제는 예전처럼 해도 되지만 인터넷을 통해서 곧바로 온라인계좌이체를 하는 방법도 있습니다. 인터넷 계좌이체를 하면 BOA(Bank Of America) 쪽의 임시 계좌번호를 알려주는데, 이 계좌번호가 나중에 예약을 할때 비자 수수료 입금 확인용으로 입력해야 하는 번호이니 송금하시면서 어디다가 잘 적어두시기 바랍니다. 대략 한화로 20만원 정도 될겁니다.<br />
그렇게 입금을 하고 나서 두시간쯤 지나면 입금확인이 되고 그때부터 실제 예약이 가능해집니다. 아 물론 그 전부터 사이트 접속해서 id/pass 만들고 그 외의 여러 가지 정보를 입력해도 되는데, 별로 많은 입력을 요구하진 않으니 그냥 느긋하게 두시간쯤 있다가 진행하시면 될 것 같습니다.<br />
<br />
비자 타입 선택하는 화면에서는 L1은 non-immigrant visa 을 선택하고 그 다음에 쭉 나오는 여러개 중에 petition based 뭐라고 적힌걸 선택하시면 됩니다. 이 말은 미국회사에서 스폰서 해주는 경우 가능한 취업비이민 비자라는 이야기이지요. 저걸 선택하고 나면 상세 옵션이 여러개 쭉 나오면서 L1을 포함한 여러가지 옵션을 선택할 수 있습니다. 웹페이지 UI가 좀 구려서 왠지 L1용은 없어보이지만, 화면 스크롤 해서 좀 내려보시면 petition 쪽 항목에 L1이 있으니 잘 살펴보시기 바랍니다.<br />
<br />
넣고나서 이런저런 정보를 입력하고 나면 마지막 단계에서 예약가능한 날짜와 가능한 시간대를 선택할 수 있습니다. 이 글을 쓰는 시점에서는 대략 제일 빠른 인터뷰 가능 날짜는 3일 이후네요. <br />
<br />
그 다음 절차는 비행기 티켓 끊어서 한국 가서 인터뷰 보고, 일주일 정도 기다려서 L1 갱신된 패스포트 받고 미국으로 돌아오는 과정만 남게 되겠네요.<br />
<br />
가족의 경우는 한꺼번에 같이 해도 되는 거 같긴 한데, 온 가족의 비행기표 티켓값이 부담스럽거나 한국에서 온 가족이 머무를 장소나 일정이 애매하거나 하는 경우 그냥 본인 것만 하셔도 됩니다. 어차피 L1비자 holder 의 것만 갱신되면 그 이외의 L2 같은 배우자/자녀용 비자들은 별다른 걱정 없이 미국에서도 갱신이 가능한 것 같더군요. HR에 문의했더니 그냥 제꺼만 갱신하고 나서 갱신되 비자랑 아내의 이전 비자 사본이랑 혼인관계증명서 영어 번역본 뭐 이런 서류들을 HR로 보내주면 변호사가 알아서 준비한다고 하네요.<br />
<br />
그럼 도움 되셨길. Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-49278028121685210112013-10-15T22:26:00.002-07:002013-10-15T22:55:20.339-07:00RabbitMQ prefetchCount and txSize in spring-rabbit Due to following implementation in SimpleMessageListenerContainer of spring-rabbit(1.1.2-RELEASE at this point) library, you should always change txSize as well if you want to decrease prefetchCount for some reason, otherwise txSize will override prefetchCount value.<br />
<br />
<blockquote class="tr_bq">
protected BlockingQueueConsumer createBlockingQueueConsumer() {<br />
BlockingQueueConsumer consumer;<br />
String[] queues = getRequiredQueueNames();<br />
// There's no point prefetching less than the tx size, otherwise the consumer will stall because the broker<br />
// didn't get an ack for delivered messages<br />
int actualPrefetchCount = prefetchCount > txSize ? prefetchCount : txSize;<br />
consumer = new BlockingQueueConsumer(getConnectionFactory(), this.messagePropertiesConverter, cancellationLock,<br />
getAcknowledgeMode(), isChannelTransacted(), actualPrefetchCount, this.defaultRequeueRejected, queues);<br />
return consumer;<br />
}</blockquote>
<br />
<br />Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-90545231597992626342013-10-15T15:18:00.002-07:002013-10-15T20:55:02.673-07:00Weird RabbitMQ admin webpage behavior with ReferenceError: queue_length is not defined messages.When you upgrade your RabbitMQ from 3.0.x to 3.1.5 or something, you might see following error on RabbitMQ admin webpage, and admin function doesn't work properly.<br />
<blockquote class="tr_bq">
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]--><span style="color: #484848; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "맑은 고딕"; mso-fareast-language: KO; mso-fareast-theme-font: minor-fareast;">ReferenceError: queue_length is not defined</span></blockquote>
<span style="color: #484848; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "맑은 고딕"; mso-fareast-language: KO; mso-fareast-theme-font: minor-fareast;"> </span>One and only thing you just need to do in this case is, "Clean your web browser cache", especially cookie.<br />
Once you remove those and reload page, RabbitMQ will require admin/password again. Do log in, you'll see problem has solved. <br />
Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-34915347570934490862013-09-27T01:04:00.001-07:002013-09-27T01:07:03.508-07:002013 Nissan Leaf 리스!2011년 미국 와서 그동안 차 한대로 용케도 잘 버텨왔었습니다. 일부러 차 두 대 만들지 않으려고 아파트도 걸어서 혹은 자전거 타고 갈 수 있는 가장 가까운곳에서 계속 살고 이래저래 노력을 많이 했었는데, 3년째 되어 가니까 회사에서 일하다가 점심때든 저녁때든 회사 밖에 나가서도 좀 먹고 싶고 어디 가까운 데 살짝 다녀오거나 할 때 매번 아내한테 차 가지고 와달라고 한 다음에 아내를 집에 바래다 주고 다시 또 갔다오기도 이래저래 번거롭더군요.<br />
<br />
몇몇 경우를 제외하고는, 특히 돈 관련된 것들은 쉽게 결정을 하지 않는(못하는?) 성격 때문에 거의 두세달을 차종을 고르고 그 다음 그 차를 현금구입을 할지 파이낸스를 할지 리스를 할지 또 고민하고 고민하고... 아 그러고보니 처음 차를 한대 더 사야겠다고 생각한 건 거의 1년 전쯤인거 같네요.<br />
<br />
후보로 올라왔던 애들은 미니 하드탑(S모델 아닌)과 닛산 리프 EV, 2014년형 마쯔다3, 지난번 OSCON 2013때 포틀랜드에서 며칠 렌트카로 타보았던 쉐비 말리부, 그리고 스마트 EV. 마지막에는 거의 미니로 가는 분위기였는데, 여전히 차가 그래도 좀 너무 작다라는 것과 연비가 좋음에두 불구하고 프리미엄 휘발유를 먹는다는 점이 불만사항이었습니다. 물론 이쁘니까 그런거 다 덮고 그냥 살까 싶기도 했지만, 아내가 탈 차량이 아니고 제가 탈 차량인데다가 차 가지러 가기로 결정한 전날 저녁에 부쩍 눈에 미니가 엄청 많이 보이더군요. 그 때 갑자기 '아 그래, 리프로 하자' 라고 생각이 번뜩 들었습니다.<br />
$1,999 다운페이에 $199 월 페이먼트 리스가 마침 닛산USA에서 프로모션으로 밀고 있었고, 캘리포니아에서 $2,500 달러 리베이트를 주는데다가 카풀 레인도 맘대로 이용할 수 있고, 몇몇 캘리포니아 지역에서는 미터기 달린 주차장도 공짜. 게다가 아직까지 southern california 애들은 베이 지역보다는 충전시설 등의 이유로 테슬라나 리프 같은 100% EV가 별로 많이 없는 상태. 완전 유니크 + 얼리 어답터 + 지구의 환경을 생각한다라는 변명이 가능하기 때문에 바로 리스로 결정했습니다.<br />
<br />
구입이 장기적으로 이익이긴 하지만 현재 베터리를 포함한 전기차 기술이 계속 발전하고 있고 닛산을 비롯한 전기차 메이커들이 지금 항속거리를 두배로 늘리려는 등의 노력을 하고 있기 때문에 2~3년 후에는 지금보다 훨씬 멀리 갈 수 있는 전기차가 나올 거라 기대하며 그냥 리스.<br />
<br />
여러군데 딜러들한테 견적 넣고 여기 받은 견적 저기 보내고 저기 받은 견적 여기 보내고 한 결과 베이스 S모델에 퀵차저( + 후방카메라가 같이 딸려옴) 달린 모델을 월 $229(세금 포함)에 out-of-pocket $2,800 ( 다운페이먼트, 첫달 리스비, 각종 fee, 세금, etc ). 캘리포니아 리베이트 $2,500이 들어올 거니까 실제로는 $300불만 out-of-pocket.<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBGKATLDX0TUVil4KHnNx-okCuwmli-r09O1xl3qWlhB9DWPd8DF_-Pw_bgPDK-M05V_EQIeHavDLblrQ7NDZS7d-9Y1ldsHYwCpXkFJWSnCbkfi3mvTNjPLjFpfdJQhqpGG-7dHtPkVY/s1600/IMG_8082.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBGKATLDX0TUVil4KHnNx-okCuwmli-r09O1xl3qWlhB9DWPd8DF_-Pw_bgPDK-M05V_EQIeHavDLblrQ7NDZS7d-9Y1ldsHYwCpXkFJWSnCbkfi3mvTNjPLjFpfdJQhqpGG-7dHtPkVY/s640/IMG_8082.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixdjVPpHOkelRhviEe-NjTaPV5nc3RJ-W-rhBLc9BhjZPhtV8vuow4f1gJ-9lVzWIz1m2w873RF7ueHmXEilAaZF5l3yhZDNHFLxyoyG-Fbzimw_tY_JpBwoObwr2qM6NfejBWH2il46o/s1600/IMG_8083.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixdjVPpHOkelRhviEe-NjTaPV5nc3RJ-W-rhBLc9BhjZPhtV8vuow4f1gJ-9lVzWIz1m2w873RF7ueHmXEilAaZF5l3yhZDNHFLxyoyG-Fbzimw_tY_JpBwoObwr2qM6NfejBWH2il46o/s640/IMG_8083.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgefyfymiYxZIXf0OsFWdAO8gdU8U6xcs7ncoHsVJ47-lPwldm3HPenks1qrflbLeRJRQ3NX8yCkCXFshf51EsK3Jmo_io-vjU4hmleOMge1OZYKpKqoXqwYrbqe7Ba7JvkEudlKpbJWQA/s1600/IMG_8084.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgefyfymiYxZIXf0OsFWdAO8gdU8U6xcs7ncoHsVJ47-lPwldm3HPenks1qrflbLeRJRQ3NX8yCkCXFshf51EsK3Jmo_io-vjU4hmleOMge1OZYKpKqoXqwYrbqe7Ba7JvkEudlKpbJWQA/s640/IMG_8084.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0zY8cZfq74hGp3J5uDP5FNkoeU4NTnGEZTFm1fofzWlSNpt2JQHcLLaSOZovsStYcKRZTqozqdMZODbWTzB7caE5T8QMY0HPbSNqzfxVGYX3wrDrpbOKWtzu9cLm8onzjSjZZSDZpvBw/s1600/IMG_8085.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0zY8cZfq74hGp3J5uDP5FNkoeU4NTnGEZTFm1fofzWlSNpt2JQHcLLaSOZovsStYcKRZTqozqdMZODbWTzB7caE5T8QMY0HPbSNqzfxVGYX3wrDrpbOKWtzu9cLm8onzjSjZZSDZpvBw/s640/IMG_8085.JPG" width="640" /></a></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGFMAO-3o2bFGDfyez1JIYWIMzzWqQeep0FFHsMxjMLuKP0CU1XYUMLLsTLcTvTtU5Yzbc1gznFnVSQCaWX-pdVd8VQw9xnGgz0vS2P8Qfo5EDmF691R3sJ2S_2Gd9U7pz4FUIwII_No0/s1600/IMG_8096.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGFMAO-3o2bFGDfyez1JIYWIMzzWqQeep0FFHsMxjMLuKP0CU1XYUMLLsTLcTvTtU5Yzbc1gznFnVSQCaWX-pdVd8VQw9xnGgz0vS2P8Qfo5EDmF691R3sJ2S_2Gd9U7pz4FUIwII_No0/s640/IMG_8096.JPG" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">원래는 8마일이었으나 차가 이상없는지 확인하기 위해 근처를 좀 달려서 26마일이 됨</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
지난주 목요일 저녁에 받아와서 지금 딱 일주일째 탔는데, 아주 대만족입니다.<br />
출발 할 때 멈출때 내연기관의 그 매케한 소리 대신 전철이나 KTX 소리가 나서(슈우우우우웅~~) 신기하기도 하지만, 기본적으로 전기차의 특성상 순간가속이 엄청 좋고(하지만 최고속도는 그닥) 처음 사려고 했던 미니보다 내부공간도 훨씬 넓습니다. 은근히 집 근처에 level 2 차저가 꽤 있다는 걸 알게 되었고, 저녁마다 조금씩 집의 차고에 있는 120V 에다가 차를 살때 받은 level 1 가정용 충전기로 충전하니까 가까운 거리 이동할때는 휘발유를 태우는 SUV를 탈 일이 전혀 없더군요. Irvine에서 LA에 있는 CGV까지도 무사하게 다녀 왔습니다. 물론 LA downtown Nissan 에 잠시 들러서 DC quick charger로 살짝 충전을 하긴 했지만요.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtBRKNttfKQV9CwS_XQPiXyI6Og5Rq7r8-lRdbSwesIwHd0pRUhbrnj0m4k3kjh3rQRia1D4cF59TcxDNwCSO2D1F-5HK9tU73DQbV0dRTfJHWjuLeVpnuP_x5SmvcmNhKs4S29Ob2YaI/s1600/IMG_8127.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtBRKNttfKQV9CwS_XQPiXyI6Og5Rq7r8-lRdbSwesIwHd0pRUhbrnj0m4k3kjh3rQRia1D4cF59TcxDNwCSO2D1F-5HK9tU73DQbV0dRTfJHWjuLeVpnuP_x5SmvcmNhKs4S29Ob2YaI/s640/IMG_8127.PNG" width="360" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">EV운전자의 필수품. 아이폰용 CarStation 앱.</td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbfcSjTqSsKGcKvPBbuaSnPsCiO4HJUEQAroAPsL_POWO-Xkq7Cn0UhTUgNDh34VyDTqbcfcfS_v7GYXZeMrwI1Sp9Ad8p5hWnaDS1hgDTX9Z_TeXqOngBgsbuQNzIaHi3mnhpIPzJ38o/s1600/IMG_8128.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbfcSjTqSsKGcKvPBbuaSnPsCiO4HJUEQAroAPsL_POWO-Xkq7Cn0UhTUgNDh34VyDTqbcfcfS_v7GYXZeMrwI1Sp9Ad8p5hWnaDS1hgDTX9Z_TeXqOngBgsbuQNzIaHi3mnhpIPzJ38o/s640/IMG_8128.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Nissan LA Downtown점에 설치되었던 DC Fast Charger</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9ffeK7bEpYij0slgV4yu9l8Cf19w4Ud515EwjdqJNwcefIOb6MMoWjDJ5l7gdQYOLBO8tACRb_alKQJeNk8NG60JQyaj9cXZXQumbSjTtjOGtS4bqbWZNYvvCV3RBuClfObLfUqqReA/s1600/IMG_8130.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9ffeK7bEpYij0slgV4yu9l8Cf19w4Ud515EwjdqJNwcefIOb6MMoWjDJ5l7gdQYOLBO8tACRb_alKQJeNk8NG60JQyaj9cXZXQumbSjTtjOGtS4bqbWZNYvvCV3RBuClfObLfUqqReA/s640/IMG_8130.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">DC Fast Charger는 80%를 30분 이내에 충전시켜줍니다.</td></tr>
</tbody></table>
<br />
<br />
세워놓거나 정지신호 받고 서 있으면 사람들이 쳐다보고, EV에 관심은 있으나 막상 도전해 본적이 없고 타 본 적이 없는 동료들이 이것저것 물어보고, 아주 그냥 관심 끌기에도 그만이더군요. 이 동네에 BMW나 벤츠, 뭐 기타 비싼 차들이 넘쳐나는 관계로 왠만한 차들은 사람들이 쳐다보지도 않는데 MSRP 3만 달러 정도의 전기차( 하지만 7500달러 federal tax 혜택을 리스할 때는 100% 다 받는 관계로 실제로는 $23,000정도에 $2,500 CA리베이트까지 받으면 실제로는 2만 달러 이하 )로 사람들의 시선을 받을 수 있다는 게 참 좋네요.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMdw8klvokq_lkNV32Ql9_Yk_1tMzHSOPodsEcb9OwtlK0BJJyeyy5nvPKcx-ATIWZg1ooqHDYVLtJ9LFwE4hvlXew9fg37w9v7kks231GmmCrEzOR9QL7Ma5YgPKRZLb23iyD2NQ3iyg/s1600/IMG_8141.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMdw8klvokq_lkNV32Ql9_Yk_1tMzHSOPodsEcb9OwtlK0BJJyeyy5nvPKcx-ATIWZg1ooqHDYVLtJ9LFwE4hvlXew9fg37w9v7kks231GmmCrEzOR9QL7Ma5YgPKRZLb23iyD2NQ3iyg/s640/IMG_8141.JPG" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Costa Mesa IKEA 설치되어 있는 3대의 level 2 charge station. 요긴 Blink 네트워크.</td></tr>
</tbody></table>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2YRD1AQ5kEvsa9XTb8zW-SzdhdXt5An3rR9pTkIv4rpXtik_c8UfYVQY5D9jE6eomU1NvZzGx7qWIJX9WXz7dLBGoqEqAAvfaZC-l6bbbSbE5mBqW4zPylHAj0uze7fDHMTI6ia_IEPc/s1600/IMG_8142.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2YRD1AQ5kEvsa9XTb8zW-SzdhdXt5An3rR9pTkIv4rpXtik_c8UfYVQY5D9jE6eomU1NvZzGx7qWIJX9WXz7dLBGoqEqAAvfaZC-l6bbbSbE5mBqW4zPylHAj0uze7fDHMTI6ia_IEPc/s640/IMG_8142.jpg" width="480" /></a></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ6yuk4MJUFA2O9vgyBvdNRa8s015bemUhyphenhyphen_tbUTQV6uM1McgyYBXlHezZte1kQWXHdRlAPgPfgb5eR7y5nXxJjFsuRNenZG6mCtDiTE-YRGxwB_tYUDWM89o0oQ6ji2lbPUgZVOZ-_Kc/s1600/IMG_8143.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ6yuk4MJUFA2O9vgyBvdNRa8s015bemUhyphenhyphen_tbUTQV6uM1McgyYBXlHezZte1kQWXHdRlAPgPfgb5eR7y5nXxJjFsuRNenZG6mCtDiTE-YRGxwB_tYUDWM89o0oQ6ji2lbPUgZVOZ-_Kc/s640/IMG_8143.PNG" width="360" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Blink 아이폰용 앱. Blink멤버쉽(무료) 가입하면 시간당 $1, guest는 시간당 $2<br />
카드를 주문해서 터치를 할 수도 지만 아이폰 앱으로 1회용 코드를 생성해서 이를 입력하는 방법도 가능.<br />
$2라고 화면에서 알려주지만 멤버로 가입된 경우 $1만 차징됨.</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Iu8aUym87PZ3qIxgco51eLsKX_43W2mLAym597JfCy4rdbZcMkYimt6XV3XNWV3kXNJ81Vfos8Mfh_TbifqxY0FI4gGZayfxlalnrH0sfYIH5gvX3WppXyvGd4FuPRzj8FK5Dz1xMow/s1600/IMG_8144.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Iu8aUym87PZ3qIxgco51eLsKX_43W2mLAym597JfCy4rdbZcMkYimt6XV3XNWV3kXNJ81Vfos8Mfh_TbifqxY0FI4gGZayfxlalnrH0sfYIH5gvX3WppXyvGd4FuPRzj8FK5Dz1xMow/s640/IMG_8144.PNG" width="360" /></a></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDEqYLOzwvV-eb9Kuw0F8pmHCp7ENjJ9stEHqqpVEA8_p88uVcY-RdYDGWKuGwi0Yg5wvbsvGrNCfo7dv74QKUjubUTI482mDm06uz7K5jl9jowiOrJwvXIppt49UYFVPUnj-gv4ri6ag/s1600/IMG_8145.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDEqYLOzwvV-eb9Kuw0F8pmHCp7ENjJ9stEHqqpVEA8_p88uVcY-RdYDGWKuGwi0Yg5wvbsvGrNCfo7dv74QKUjubUTI482mDm06uz7K5jl9jowiOrJwvXIppt49UYFVPUnj-gv4ri6ag/s640/IMG_8145.PNG" width="360" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">충전 상태 알람</td></tr>
</tbody></table>
<br />
<br />
<br />
일주일 정도 타보니 베이스 S보다는 한단계 위의 SV 트림이 좀 더 나은 선택일 거라는 생각입니다. SV에서 제공되는 네비게이션이랑 CarWings, 알로이 휠 등 여러가지 옵션이 좋기도 하지만 무엇보다 충전할때 SV에서는 네비게이션 화면을 통해서 충전 시작시간과 중료시간을 설정할 수 있는데, S트림에서는 충전 종료 시간만 지정할 수 있습니다. 따라서 충전기를 연결하는 순간부터 무조건 충전이 시작되어서 충전 타이머가 켜져 있는 경우 설정한 종료시간까지만 충전이 되는게 좀 아쉽습니다. 근데 집에다가 240V level2차저 설치 안하신 분들은 어차피 120v로 충전하면 8시간이상은 충분히 걸릴 테니 크게 상관은 없을듯요. 베터리 앵꼬낸 다음 120v로 차징하면 20시간 넘게 걸릴 것 같습니다.<br />
<br />
궁금해 할 최대 이동 가능 거리는, 100% 충전하면 95마일 정도 가능하다고 차량이 알려줍니다. 근데 이 거리 그대로 갈려면 히터 에어컨 안틀고 고속도로에서 너무 속도 내면 안되고 이래저래 신경 많이 쓰셔야 할겁니다. 휘발유차처럼 계속 전기를 생산해낼 수 있는 전기차가 아니니까 혹시나 외장 네비게이션을 설치해서 쓰는 것도, 스마트폰을 충전하는 것도, 오디오로 음악을 듣는 것도 모두 베터리를 사용하고( 윈드실드 와이퍼나 뭐 이런건 일단 12v 베터리를 먼저 쓰는 것 같습니다만 )... 이런식으로 쓰면 95마일 못갑니다. 네네 -_-;; 하지만 단거리 이동용으로는 확실히 최고!<br />
<br />
아무튼 3년 리스 했으니까 앞으로 그냥 줄기차게 시내주행도 하고, 기회가 된다면 'EV로 어디까지 가봤니?' 같은 것도 도전해 보고 싶습니다. 101이나 5번 프리웨이 중간중간에 DC quick charger 같은거 몇개만 있으면 샌프란시스코까지 가는 것도 문제는 아닐텐데 말이지요. 샌디에이고 까진 어떻게든 가질 것 같긴 합니다.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4XgyNW3dRMlqNmxtI5K-7Il53OsRwvjsPJPcquEAxEpL11Cx2xAHx4NQ_1og504JV1Mui2BYrO1u0Q3zUEQAnSVAWFgTG4hyqi3YRjbT3iTTHShz9iSMOxQy600Oc2ey4o484iTFuhAs/s1600/IMG_8149.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4XgyNW3dRMlqNmxtI5K-7Il53OsRwvjsPJPcquEAxEpL11Cx2xAHx4NQ_1og504JV1Mui2BYrO1u0Q3zUEQAnSVAWFgTG4hyqi3YRjbT3iTTHShz9iSMOxQy600Oc2ey4o484iTFuhAs/s640/IMG_8149.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">집 근처 Irvine Spectrum Center 야외주차장에 설치된 4대의 차저. 여긴 WattStation</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwylay9Ktqqs2kRzYwtEdAI3HBjW9c5CRAhy7orePEPUaEv2E35-2EQK8xIVNfIGTSjuTBFC6Vo9zy4uY_SlONX9LQRyXQQmnkzQuzdtgVHGZfkHcZymu0Nk9k2sB-8UTnHIJfOq8ldd8/s1600/IMG_8154.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwylay9Ktqqs2kRzYwtEdAI3HBjW9c5CRAhy7orePEPUaEv2E35-2EQK8xIVNfIGTSjuTBFC6Vo9zy4uY_SlONX9LQRyXQQmnkzQuzdtgVHGZfkHcZymu0Nk9k2sB-8UTnHIJfOq8ldd8/s640/IMG_8154.JPG" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">파란색은 ready, 초록색은 charging중</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGIOMnBtLoI9CODVRofNR392ALy3StbUxWFbAIjUxAGv2m-3OjmxfUTJQWSTnf-gGVy0dFhxVmqe97G3XX7Lgq3uF6FylA_7esJwHTbKWkcrI9q-1gs9Tso3dngEgyJcTMAsv-n14b2Hs/s1600/IMG_8156.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGIOMnBtLoI9CODVRofNR392ALy3StbUxWFbAIjUxAGv2m-3OjmxfUTJQWSTnf-gGVy0dFhxVmqe97G3XX7Lgq3uF6FylA_7esJwHTbKWkcrI9q-1gs9Tso3dngEgyJcTMAsv-n14b2Hs/s640/IMG_8156.PNG" width="360" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">WattStation 아이폰 앱. WattStation 역시 전용 카드를 이용하거나 혹은 charge station마다 표시된 QR code를 앱에서 카메라로 읽은 다음 차징을 시작. 1시간 단위로 시간을 정할 수도 있고 그냥 충전하는 만큼 쭉 낼 수도 있습니다.</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-vTamNiyLggsKemFdg5-0yQd-VfNJj-IvpTI0v1yJdGoB0wMZg4gMubDd4PTCw9P-5V80VszqJcQVCjXCY9L1Q26tVJ_o40-mzHWUeSvx6yXz-IAkMO2D9Zi0i1cSukxLnFiQyryZJGc/s1600/IMG_8157.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-vTamNiyLggsKemFdg5-0yQd-VfNJj-IvpTI0v1yJdGoB0wMZg4gMubDd4PTCw9P-5V80VszqJcQVCjXCY9L1Q26tVJ_o40-mzHWUeSvx6yXz-IAkMO2D9Zi0i1cSukxLnFiQyryZJGc/s640/IMG_8157.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Charge Station 안내판. EV를 사기 전까지는 이런 안내판 따위 보이지 않았다는.</td></tr>
</tbody></table>
<br />
<br />Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-84500213684220588252013-09-13T15:56:00.002-07:002013-09-13T15:56:35.883-07:00Google Protobuf 에서 객체 안에 있는 배열에 값 세팅하기<br />
Java 에서 Google Protobuf 객체를 생성할때는, 예를 들어 Classroom안에 ArrayList인 People 이 있고 이를 세팅해야 한다고 할때<br />
<br />
Classroom classroom = Classroom.newBuilder().setPeople(0, people1).build();<br />
<br />
와 같은 형태로 작성해 놓고 ArrayIndexOutOfBoundsException 이 발생하는 이유를 몰라서 끙끙대는 경우가 종종 생기는데, 이럴때는 setXXX 를 쓰지 말고 addXXX 로 생성되어 있는 메소드를 사용하면 된다.<br />
<br />
다시 말해, people1을 위에다가 먼저 생성하고 그걸 가지고<br />
<br />
Classroom classroom = Classroom.newBuilder().addPeople(people1);<br />
<br />
이런식. 왜 그런지 궁금하면 생성된 Protobuf로 생성한 자바 파일을 까보시라.Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0tag:blogger.com,1999:blog-4137446751961690029.post-64490851647845001202013-08-11T23:56:00.000-07:002013-08-11T23:56:18.575-07:00"얼음 적게 넣어주세요" 를 영어로 뭐라고 해야 할까한국에서도 마찬가지였지만 미국 와서 스타벅스 등의 커피숖에서 아이스 음료 주문할 때 음료의 반 이상을 얼음으로 채우는 거 싫어하는 분들 많으실겁니다. 더구나 여긴 아이스 음료 주문하면 얼음을 작살로 많이 넣어주는지라. 얼음 작게 넣어 달라고 말하고 싶을때 뭐 다양한 표현이 있겠지만 가장 쉽게 그냥<br />
<br />
Easy ice please 또는 Easy on the ice please 등으로 이야기하면 얼음 작게 넣어줍니다. 요 Easy ~ 표현은 얼음 말고도 설탕, 소금, 소스 등등 다른 음식 주문할때도 유용하게 쓸 수 있습니다.<br />
<br />
가끔 주문받는 분들 중에 못 알아든는 사람들이 있으니 참고하시고요, 네이티브 영어권자 사람들은 거의 다 알아듣는 것 같았습니다.Wonheehttp://www.blogger.com/profile/07281310563269684844noreply@blogger.com0