본문 바로가기

전체 글

rsyslog와 Log Analyzer를 이용한 Log Server 구축 더보기
network-manager를 이용한 Ubuntu Server Wifi 연결 집에서 Ubuntu Server를 노트북으로 운영을 하고 있는데, 자꾸 랜선이 거치적 거리길래 wireless로 바꾸느라 삽질을 많이 했습니다. 보통 많은 포스팅에 보면 /etc/network/interface를 수정하여 사용을 하는데, 잘 안되더라고요... 그래서 더욱 쉬운 방법이 있어서 소개를 해보자 합니다.network-manager를 이용한 방법입입니다.먼저 network-manager를 apt를 이용하여 설치합니다. $ sudo apt-get install network-manager$ sudo service network-manager restart network-manager는 안정성으로 인하여 15.10이후로 변한것이 있어서 버전별로 다르게 설명 드리겠습니다. ubuntu 15.10 이전n.. 더보기
Scala로 AWS Lambda 사용하기 이 포스팅은 https://aws.amazon.com/ko/blogs/compute/writing-aws-lambda-functions-in-scala/를 기반으로 만들어졌습니다. Scala는 기본적으로 Jar파일로 떨어집니다. 요즘 AWS를 많이 사용하고 있습니다. 저번에 AWS User Group 세미나를 참석한적이 있는데, 거기서도 Lambda를 많이 강조를 하는것을 보았습니다. Lambda는 Java를 사용할 수 있습니다. 그 뜻은 Scala도 사용이 가능하다는 뜻이겠지요. 그래서 이번에는 Scala를 이용하여 Lambda를 사용하려 합니다. SBT 설정먼저 SBT Scala Project를 만듭니다. 그 후, project/plugins.sbt를 만들어서 그 안에 다음과 같이 적습니다. addS.. 더보기
Gemfile Versioning 회사 일로 인하여 Ruby on rails를 당분간 쓰게 되었습니다. 비록 루비도 모르고, 레일즈도 모르지만, 온갖 사람들이 말하는 "쉬우니까 괜찮아!" 라는 말을 믿고 시작하려 합니다. 이번 포스팅은 Gemfile내에서 version를 쓰는 방법에 대하여 개시 포스팅(?)을 쓰려고 합니다. Gemfile에서 dependency를 추가하는 방식은 다음과 같습니다. gem 'dependecy' 'version' 여기서 해당 depency의 버전을 나타내는 방법이 여러가지가 있습니다.- Version을 기재하지 않는 경우 : 가장 최신의 Stable version을 사용합니다.- 버전이 명시되어 있는 경우 (ex : 2.3.0) : 해당 Version의 dependency를 사용합니다.- 버전 앞에 '~>'.. 더보기
SBT와 SSH or SFTP를 이용한 개인용 Maven Repository 구축 저는 항상 내가 만든 소스에 대한 관리가 필요하다고 생각하는 사람입니다. 그래서 코드를 더욱 재활용할 수 있게 짜는 방법은 없을까? 또, 코드를 관리하는 방법이 없을까? 라는 생각을 합니다.(그러다 보니... 정작 코드를 많이 짜는 경우가 없네요ㅠㅠ)어찌 되었든, 개인의 Code를 관리하는 가장 좋은 방법은 Git + Maven이라고 생각이 듭니다. Git으로 코드에 대한 버전 관리를 하고, Maven으로 내가 만든 코드를 다른 프로그램에서도 쉽게 쓸 수 있다면 더할 나위 없이 좋으니까요.그래서 Maven을 사용하기 위하여 nexus를 깔고 사용법을 익히다가, "혼자 쓰는데 이렇게 대단하게(?) 할 필요가 있나?" 라는 생각을 하게 되었습니다. 그래서 검색을 해보니, SFTP나, SSH를 이용하여 Mav.. 더보기
Play Framework Remote Debugging Remote에서 Server가 동작을 하는 경우 Debug을 할 때 Brake Point를 잡아야 하는 경우가 있습니다. 이 경우, Intellij + SBT에서는 매우 쉽게 할 수 있습니다. 먼저, Intellij에서 Run을 Remote로 다음과 같이 설정 할 수 있습니다. Intellij에서 Run -> Edit Configuration을 선택할 경우, 다음과 같이 나옵니다. 여기서 사용 할 Host 주소와, Port를 지정합니다. 그 후, SBT를 사용하여 jvm-debug port를 열며 다음과 같이 시작합니다. $ sbt -jvm-debug 5005 ~run 그 후, SBT로 시작이 될 경우, 아까 Configuration 한 방식으로 다음과 같이 Remote선택 한 후, Debug Mode로.. 더보기
Playframework Dependency Injection with Guice Play!도 Dependency Injection이 존재합니다. Spring에서도 많이 사용하듯이 Play!에서도 DI는 매우 유용한 기능입니다 Dependency Injection은 여러가지 방법이 있지만, Play 2.4에서 많이 사용하는 방식은 Google의 DI Library 인 Guice를 사용하는 방법입니다. 물론 여러가지 포스팅이 많지만, 매우 기초적인(?) 한글 포스팅이 없어서 이렇게 씁니다.Guice를 이용한 DI는 Cats에서 많이 보는 implicit 방식을 이용한 API, Impli 방식과 유사한 방식을 사용하고 있습니다.(물론 이 방식이 범용적인 방식인지는… 저의 지식의 깊이가 낮아 알 수는 없습니다.)1. 먼저 필요한 특질을 정의한 trait를 정의 합니다.2. 그 후, 그것에 .. 더보기
Domain, Range, Codomain Category Theory(범주론)을 들어가기 전에 몇가지 미리 정의를 해놓아야 하는 것들이 있어서 포스팅을 합니다. 바로, Domain, Range, Codmain입니다. 사실 우리가 이미 학교에서 배운 내용인데, 영어로 해놓으니까 전혀 모르겠더라고요... 이것저것 공부하다가 위키를 보고 아... 하고 알게 되었습니다.간단하게 요약을 하면, 출처 : http://www.mathsisfun.com/sets/domain-range-codomain.html Domain : 정의역Codmain : 공역Range 또는, Image of Domain : 치역, 정의역의 상입니다. 앞으로는 한글을 쓰지 않고 영어 용어를 쓰도록 하겠습니다. 혹시 기억이 나시지 않는 분들(나와 같은)을 위하여 한번더 정리를 해봅시다.. 더보기
Scala에서 시스템 커멘드를 사용하기 Scala에서는 Bash Shell을 부를 수 있는 방법이 있습니다. 이로 인하여, 쉽게 다른 프로그램을 구동 시키거나, 결과 값을 불러 올 수 있습니다.예제는 Scala REPL을 사용 해 봅시다.먼저, Bash Shell을 사용할 수 있는 scala의 sys.process._를 Import 해 봅시다.scala> import sys.process._import sys.process._ 명령어 실행만약 명령어를 실행 하고 싶다면 scala> "{명령어}" !를 사용하면 됩니다. 그러나, 리턴값은 나오지 않습니다. scala> "ls -al" !warning: there was one feature warning; re-run with -feature for details합계 7156drwxr-xr-x .. 더보기
erlang Garbage collection 저번 포스팅에서 말했듯, Erlang은 기본적으로 JVM과 다른 garbage Collection을 갖고 있습니다. Erlang의 Garbage Collection은 process당 GC를 수행합니다. 그래서 JVM과 같은 Application에 대한 Stop the world 현상이 없습니다. 그리고, Soft realtime을 보장합니다. 먼저, erlang garbage collection을 보기 전에, 먼저 erlang process의 memory 구조를 알아 봅시다. 1. Erlang Process 메모리 구조 출처 : https://hamidreza-s.github.io/erlang%20garbage%20collection%20memory%20layout%20soft%20realtime/201.. 더보기