분류 전체보기 194

RabbitMQ Simple Queue

RabbitMQ Simple Queue용어 정리Producing메세지를 큐에 보낸다.Queue우편통처럼 메세지를 저장해놓는 장소Consuming큐를 통해 메시지를 받는다.Hello World!Sending#!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))channel = connection.channel()connection과 channel를 생성channel.queue_declare(queue='hello')channel를 통해 queue 선언(declare) 한다.channel.basic_publish(exchange='', routing_key='hell..

RabbitMQ

RabbitMQ비동기 메시지 큐 플랫폼Brew를 이용하여 설치하는 방법https://www.rabbitmq.com/install-homebrew.htmlbrew update brew install rabbitmqUbuntu에서 설치하는 방법https://www.rabbitmq.com/install-debian.htmlrabbitmq.com APT Repostiroy 추가echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.listapt-get updatesudo apt-get updateinstallsudo apt-get install rabbitmq-serverCommandSer..

Guava Java 라이브러리

Guava Java 라이브러리Guava Java 라이브러리에서 자주 사용되는 기능을 정리해보자.EventBusPublish/Subscribe 방식의 이벤트 처리 방식AsyncEvnetBushttps://google.github.io/guava/releases/17.0/api/docs/com/google/common/eventbus/AsyncEventBus.htmlSample Code// Class is typically registered by the container. class EventBusChangeRecorder { @Subscribe public void recordCustomerChange(ChangeEvent e) { recordChange(e.getChange()); }} // somew..

Programing/Java 2017.07.02

Akka Tutorial

Akka TutorialReferencehttp://developer.lightbend.com/guides/akka-quickstart-java/?_ga=2.240985411.172449809.1498889504-939982481.1485157124Actor Model의 좋은 점이벤트 기반의 모델Actor는 메시지를 통해 작업Actor 사이간의 통신은 비동기, blocking 없이, 응답을 기다리지 않고 다른 작업을 할수가 있다.강한 격리 원칙일반적인 자바 객체와 달리 Actor는 자신이 가지고 있는 상태에 대한 API 존재하지 않는다. 대신에 메세지를 통해 공유가 가능하다.이는 다른 액터간의 상태(State)를 공유하는 것을 막는다.오로지 메세지를 보내는 것을 통해 다른 액테의 상태를 볼수가 있다.가벼..

Programing/Akka 2017.07.01

@Value 어노테이션 활용

@Value 어노테이션 활용Code exmaple@Value("${property_name}")private String name; @Value("${property_boolean_name}")private Boolean name;Property관련 설정이 있어야 가능.PropertySource 어노테이션을 이용하여 가능(참고) PropertySource AnnotationProfile에 따라 PropertySource를 다르게 설정하는 법.@Componentpublic class PropertyConfig { @Configuration @Profile("develop") @PropertySource("classpath:develop.properties") public static class Develo..

OpenpyXL를 이용하여 Excel 파일 읽기

OpenpyXL를 이용하여 Excel 파일 읽기파이썬 Excel 2010 Library (xlsx/xlsm/xltx/xltm 파일)Install$ pip install openpyxlSimple Sample Codefrom openpyxl import Workbookwb = Workbook() # grab the active worksheet ws = wb.active # Data can be assigned directly to cells ws['A1'] = 42 # Rows can also be appended ws.append([1, 2, 3]) # Python types will automatically be converted import datetimews['A2'] = datetime.date..

Programing/Python 2017.06.27

Minor gc/Major gc/Full gc

Minor GC, Major GC, Full GCGCMinor GCMajor GCFull GCJVM의 Heap 메모리 구조Eden/Young SpaceSurvivor 1Survivor 2Tenured/Old SpaceMinor GCMinor GC는 새로운 객체에 대해서 작동이 된다.Minor GC는 JVM이 새로운 객체를 생성할때 메모리가 부족하다면 발생되는 GCEden 영역이 가득차게 되면 Minor GC가 발생된다.Minor GC가 발생되었을때 Tenured 영역의 객체 생성은 무시된다.일반적으로 알려진 내용과 달리 Minor GC가 발생될때도 Stop-The-World 상태이다Major GC와 Full GC의 차이Major GC : Tenured 영역대부분의 경우에는 Minor GC가 발생되고 그 ..

Programing/Java 2017.06.27

SubQuery 활용

SubQuery 활용JoinQuerySELECT C.co_cd, C.district, SUM(emp_nbr) as sum_empFROM Comapnies CINNER JOIN Shops SON c.co_cd = S.co_cdWHERE main_flg = 'Y'GROUP BY c.co_cd결합을 먼저 수행회사테이블과 사업소 테이블의 결합(join)를 먼저 수행하고, 결과를 Group by를 적용해서 집약SubQuerySELECT C.co_cd, C.district, CSUM.sum_empFROM Comapnies CINNER JOIN ( SELECT co_cd, SUM(emp_nbr) as sum_emp FROM Shops WHERE main_flg = 'Y' GROUP BY co_cd) CSUMON C...

Database/MySQL 2017.06.25

LLVM

LLVMLLVM이란?Low Level Virtual MachineLLVM으로 언어에 가상기계를 생성, 가상 기걔가 언어의 독립적인 최적화를 실행코드를 정적으로 컴파일할수도 있고, 자바처럼 한번 더 컴파일되는 중간언어로 컴파일이 될수가 있다.코드 표현독립적인 명령어 집합과 형식 시스템3-어드레스 코드 형식과 유사3-어드레스 코드 방식 : 2개의 입력용과 1개의 출력용 메모리 주소 혹은 레지스터를 사용하는 방식.배열, 벡터, 구조체, 함수의 5가지가 존재C++의 클래스는 구조체와 함수와 함수에 대한 포인터의 배열을 함께 사용하여 표현구성 요소프론트 엔드 표현중간 표현백엔드 표현프론트 엔드 표현C, C++, Swift 등의 컴파일을 지원일부는 GCC 4.0.1 및 4.2에서 가지고 온것.LLVM의 중간 표현@..

Programing 2017.06.25