달력

12

« 2024/12 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'분류 전체보기'에 해당되는 글 216

  1. 2018.11.12 Google Cloud Summit 2018
  2. 2018.11.11 Visual Studio Code의 Text Font 바꾸기 1
  3. 2018.11.10 node js에서 timer를 통한 심플 작업 Queue 구현
  4. 2017.01.30 Gradle에서 Proxy 설정
2018. 11. 12. 23:00

Google Cloud Summit 2018 좋아하는 것/전시회, 세미나2018. 11. 12. 23:00

지난 10월 25일에 코엑스에서 개최 되었던 Google Cloud Summit에 다녀왔다. 간만에 Blog를 정리하면서 다녀온 소감을 짦게나마 정리했다.


회사에서도 Google과의 협력에 대해서 자주 이야기도 나오고, Google에서 한국에서는 처음 열리는 Summit 행사라고 해서 꼭 참석하겠다는 의지를 가지고 이른 아침에 8시 15분경에 코엑스에 도착하였는데, 생각보다 많은 사람들이 벌써 참가 등록을 하고 있었다.  오랜만에 팀과의 코엑스 나들이어서 나를 기대를 가지고 참관에 동참하였는데, IT업게는 정발 좋다. 이곳 저곳에서 아는 얼굴들이 보인다. 이제 다들 나와 더불어서 나이가 적지 않은데도 열심이다. 



나는 보통 Summit 또는 세미나와 같은 행사에 참석하면, 가장 중요한 순서는 "키노트(keynote)"라고 생각한다.

가장 그 행사에 대해서 축약적이지만 확실한 비젼과 생각들에 대해서 이야기하고, 가장 중요한 발표자가 설명을 해주기 때문이다.


이날 발표하신 분들중에는 안면 있으신 분들이 몇분 계셨었는데, 반갑기도 하고 새로운 것에 대해 소개해 주는 모습을 보니, 새로운 회사에 잘 적응하고 있다라는 생각이 들었다.

 




이날 발표하신 분들중에는 안면 있으신 분들이 몇분 계셨었는데, 반갑기도 하고 새로운 것에 대해 소개해 주는 


구글의 인프라와 인터넷을 통한 글로벌한 인프라 환경에 대해서는 이전에 많이 이야기 들어왔던 것이라 사실 이날 기대를 품고 참석하게된 이유는 "AI"라는 시대의 도전앞에서 어떻게 걸어나가야 하는지에 대해, IT 거인들은 어떻게 준비하고 있는지 알고 싶어서였다. 아니, 이건 너무 거창하고 그냥 "AI", "머신러닝", "딥 러닝"에 대해서 알고 싶어서다.


일단, 머신러닝과 관련된 세션들만 들었는데, 알아야 할 것 들에 대한 리스트만 잔득 들었다.

아직도 잘 모르겠다. 아래는 살펴볼 리스트이다.

1. TenserFlow

2. AutoML

3. Jupyter Notebook

...

그리고, python과 R



    

:
Posted by 행복상자

Visual Studio Code를 사용한지 벌써 3년은 된것 같다.  이전에 남겨 놓았던 글을 보니 정식 1.0 버전이 2016년 4월 14일에 발표 되었다. 지금도 일하면서 여러가지 IDE를 사용하기는 하지만, 가볍기 때문에 가장 많이 사용하고 있는 IDE 이다. 


내가 사용하는 IDE는 "Visual Study Code", "Visual Study 2017", "IntelliJ" 그리고 "Ultra Editor"의 순으로 사용하고 있다.


가장 손에 익은 툴에 맞어서서 셋팅을 변경해서 사용하는데, 단축키는 Eclipse에 맞추어서 사용하고 있다. Eclipse와 Spring Tool Suits를 오래동안 사용해서 단축키는 Eclipse  편하다. 그리고, VS Code를 만들고 있는 에릭 감마는 마이크로 소프트로 옮기기 전에 Eclipse를 설계/개발 하였기 때문에 VS Code도 기본 키셋팅은 영향을 받은 듯 많이 유사하다.


가끔 사용하는 Ultra Editor은 VS Code가 대용량 파일을 잘 읽어내지 못 할 때에 사용

하고 있다.


집에서다 VS Code를 깔아서 사용하고 있는데, 보통 내가 사용하는 IDE의 폰트는 'Courier New'로 설정해서 사용하고 있는데, iMac에서만 기본 폰트로 사용중이어서, 오늘은 변경해 보기로 했다.


기본 설정 폰트는 다음과 같은 순서로 변경하면 되는데, Mac에서 변경하기 때문에 Mac의 메뉴 기준으로 설명하겠다.



1. Code의 메뉴에서 아래와 같이 설정 메뉴로 이동한다.

 


2. 아래와 같은 화면이 나타나게 되는데, 상단의



여기에서 "font"라고 입력한다.



3. 아래의 화면에서 텍스트 편집기를 선택하면, 오른쪽에 "Editor: Font Family"라고 화면이 나오는데, 

   아래와 같이 4개의 Font들의 리스트를 볼수 있을 것이다.



4. 여기서 "Courier New"을 아래와 같이 앞으로 옮겨 오게 되면, 바로 변경됨을 확인할 수 있다. 
   (
"Courier New"만 남기도 다른 3개의 폰트를 지워도 된다.  없을 경우에 있는 폰트를 사용하도록 순서를 지정하는 것이기 때문에, 필요에 맞추어서 설정하면 된다.) 


5. 지금은 설정을 보면서 바꾸었는데, 이전 방식처럼, User Setting 설정은 다음과 같이 가능하다.

    아래와 같이 오른쪽의 "..."으로 되어 있는 버튼을 누루고, "Open settings.json" 를 선택하면 된다.



6. 그러면, 아래와 같이 json 파일이 열리고 Editor상에서 변경이 가능하다.


변경을 해 놓고 보니, 너무 가늘어 보이는데, "bold"로 변경하고 폰트 크기도 "12"에서 "13"으로 변경하니 괜찮아 보인다.


:
Posted by 행복상자

아주 오래전(약 2년 6개월전)에 글을 쓰기는 했는데, 마무리 짓지 못했던 글인데, 요즘은 await과 async 키워드를 통해서 자연스럽게 사용하고 있어서 필요가 없을 수 있다. 이전에 내부에 Timer와 간단한  Queue를 만들어서  batch 작업을 수행하는데 사용했었다. 


(Async와 Awat 키워드를 사용하거나, Promise를 이용해서 제어하는 것이 아래 방식보다는 훌륭하다.)


Node Js를 이용하여, 개발할 경우에 싱글 쓰레드가 하나의 CPU Core에서도 자연스럽고 부드럽고 너무도 가볍게 동작하는 것을 보고 놀랐었다.

I/O에 대한 Blocking 문제를 자체적으로 처리해주는 똘똘한 녀석이라고, 자랑스러워하였지만, Callback hell이라고 불리우는 지저분해지는 코드는 또다른 문제를 안겨주기도 한다. 


개인적으로는 시각적으로 가독성이 떨어지는 코드는 좋아 하지 않기 때문에, 머신의 성능이 보장해주는 한도에서 가능하면 가독성이 좋고, 이해하기 좋은 코드를 쓰는 것을 좋아한다.

그리고, 리펙토링을 꼭 해서 좀 더 중복을 없애고, 보기 좋은 짜임새 있도록 만들고는 혼자 좋아라 한다.


Node Js의 Callback 함수 호출은 굉장히 개발을 쉽게 해주기도 하지만, 중첩된 콜백과 이벤트 방식으로 인해 사용하기가 쉽지 않다. 오히려 UI가 있는 Visual Basic은 event호출에 의한 callback 함수가 UI 개발에 직관성을 높이고 코드를 분리해 줄수 있지만, 스크립트와 같은 순차적인 작업은 불편하기 짝이 없다.


이때문에 node Js에서는 Sync함수들을 별도로 제작해서 제공하고 있는 것으로 보인다.

(→ node의 file system과 관련된 라이브러리 참고: https://nodejs.org/api/fs.html)


아래는 개인적으로 이러한 환경에서 사용할 수 있는 non-sync 환경에서 Timer를 이용한 간단한 Queue 방식으로 실행할 수 있는 코드이다. 예를 들명 파일에서 라인별 데이터를 읽어 들이고, 이을 Mysql과 같은 DB에 쿼리를 실행하여 데이터를 저장하거나, 반대로 데이터를 읽고 이를 분석하는 기능을 동시에 실행할 경우에 이용할 수 있다. 


var count = 10;
var queue = [];

for(var i = 0; i < 3; i++)
{
    queue.push(i+5);
}

var tid = setInterval(function() {
    if(count == 0){
     if(queue.length > 0){
            console.log("queue: " + queue.length )
          count = queue.shift();
            return;
        }

        clearInterval(tid);
    }

console.log("count " + count--);
}, 1000);


:
Posted by 행복상자
2017. 1. 30. 19:29

Gradle에서 Proxy 설정 Tip & Tips/Eclipse Tip & Tips2017. 1. 30. 19:29

최근에는 Build환경을 구성하기 위해 Maven 보다 Gladle을 많이들 사용하고 있다.

신규 프로젝트의 기본 Frame을 만들고 팀원들간에 Java 프로젝트의 뼈대와 빌드환경을 구성하기에 수월하기 때문이다.


사용하고 있는 IDE에서, 나의 경우는 Eclipse를 사용하고 있는데, 정상적으로 Build가 되지 않았다.

로그를 확인하니 문제는 필드를 위해 필요한 Package를 정상적으로 받지 못해서 발생한 것인데, 회사의 보안 정책으로 외부의 Package Repository 서버에 접속이 안되기 때문이다.


Gradle에서 이를 해결하기 위해서는 다음과 같이 3가지 방식을 통해서 HTTP Proxy 설정이 가능하다.

1) from gradle.properties in project build dir.  

    프로젝트의 빌드환경에서 "./gradle.properties"를 통한 설정 

2) from gradle.properties in gradle user home.  

    사용자 홈디렉토리 환경의  "$HOME/.gradle/gradle.properties"를 통한 설정

3) from system properties, e.g. when -Dsome.property is set on the command line. 

   명령행에서 "-Dsome.property" 설정을 통한 설정


예를 들어 설명할 방식은 "gradle.properties" 상에서 설정하는 방식이다 (위 1번과 2번)

아래는 HTTP Proxy 설정에 대한 예이다.

systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost


HTTPS상에서는 아래와 같이 설정해 주면 된다.

systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost


한가지 주의할 점은 "www.somehost.org"와 같이 URL을 넣어야 하는데, "http://www.somehost.org"와 같은 형태로 넣어주면, 정상적인 결과를 얻을수 없는 점만 주의 해야 한다. 또는 IP address를 직접 넣어 주는 것이 확인하기도 수월할 것이다.

 

Proxy 설정하는 방식이 툴에 따라 다르기 때문에 주의가 필요하기 때문이다. 

보통 linux의 셀 환경에서는 "http://www.somehost.org:8080"의 형태로 프로토콜을 pre-fix로 넣어주지만,

툴과 환경에서 요구하는 방식은 다르다는 점에 대해서 주의해야 한다. 


이에대한 자세한 내용은 아래의 링크를 참고하면 도움이 될 것이다.

  https://docs.gradle.org/current/userguide/build_environment.html




:
Posted by 행복상자