간만에 다시 블로그에 들어와 기록을 남겨봅니다 🙂 원래 새해가 되면 이런거잖..

SpringBoot, PhantomJS를 이용해 바코드, QR 코드가 포함된 동적 이미지 쿠폰 만들어보기

http://brantiffy.axisj.com/archives/498

바코드나 QR코드 lib으로 생성하고, 생성된 코드를 HTML template과 함께 렌더링, 이것을 다시 PhantomJS로 화면 캡처 (실제로 예전에 해본경험으로 잘 되더군요 .. ) 하여 image로 저장후 이 이미지를 서비스하는 방식..

여기서 좋은팁을 하나 얻었는데..

 <img id=“barcode” alt=“Barcode” src=“data:image/png;base64,${barcode}” /

처럼 image를 base64로 인코딩하고 이를 img src로 지정할 수 있었다는 사실!!

 

Customer Lifetime Value (고객총가치)

http://www.andrewahn.co/marketing/customer-lifetime-value/

CLV를 이용한 마케팅을 이해하기 위한 좋은자료로 보입니다.  또 하나 도움이 되는 자료는

고객 생애 가치(Customer Lifetime Value) 이해하기

 

CLV란 말 그대로 고객 생애 가치로.. 고객이 가입하여 탈퇴할때까지의 이익의 총합이라 보면 되겠다.

다시 말하면 고객이 매년 기업에게 기여하는 이익에서, 그 고객을 이탈하지 않게하려는데 들인 비용을 빼고, 여기에 실제로 이탈하지 않을 확률을 곱한 것을.. 매년 더해가면 된다.

마케팅비를 들여서라도 이탈률을 줄이는게 이득이라면 CLV가 올라 것이고, 그렇지 않다면 마케팅을 잘못한것!

마케팅을 하지 않고, 다른 방식으로 이탈율을 줄일 수 있다면 더욱 CLV가 좋아질 것. 회사는 이 CLV가 올라가는 방향으로 의사결정을 하면 될것입니다.

Open Source S/W Applicaiton Performance Monitoring – Scouter

https://github.com/scouter-project/scouter

https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Quick-Start_kr.md 을 보는게 더 도움이 될수도 🙂

Java기반 환경이라면 모니터링 용도로 사용해볼만 할수도 있지 않을까 하는 생각이 드는.. 오픈 소스이므로 필요하면 기여도 가능!

 

라이브러리 Vs 프레임워크

http://www.wegra.org/blog/?p=1220

저도 가끔 면접볼때 질문하는 내용중의 하나입니다. 둘의 차이점을 말해보라구요. 제 지인인 wegra가 정리한 내용인데 깔금한 도식이라 공유!

프레임워크 : 전체의 틀이 정해져있고, 그 틀에 본인 코드를 맞춰야 하는 것!

라이브러리 : 본인 코드에 라이브러리 기능을 불러와 사용하는 것!

 

나도 제다이가 될 수 있다!!

http://gizmodo.com/a-new-wearable-lets-you-control-spheros-bb-8-using-the-1750989688?utm_campaign=socialflow_gizmodo_facebook&utm_source=gizmodo_facebook&utm_medium=socialflow

스타워즈 BB-8을 force band로 컨트롤하는 .. 마치 포스를 사용해서..

BB-8은 현재 $150 정도, force band는 프로토타입이라 현재는 스마트폰으로 컨트롤 해야하는군요.

 

Java 8 람다와 Functional ?

http://blog.naver.com/PostView.nhn?blogId=tmondev&logNo=220412722908&parentCategoryNo=&categoryNo=6

람다와 FP에 대한 개념을 뒤섞여서 설명해놓은 글로 보이지만.. FP의 기본 개념을 알아가는 과정에서 빠르게 훑고 지나갈만한 글 같습니다.

람다는 FP의 표현식중의 하나라고 그냥 생각하는게 더 나을것 같습니다.  익명 함수를 간결하게 표현하는 방법 정도?

http://blog.naver.com/PostView.nhn?blogId=tmondev&logNo=220415977706&parentCategoryNo=&categoryNo=6&viewDate=&isShowPopularPosts=false&from=postView

이글도 자바 8의 새로운 기능에 대해  빠르게 훑고 지나갈 수 있습니다. 🙂

자세한 내용은 좀 더 심도있는 글을 보셔야 겠지만요.. 그냥훑고 지나가는 정도만..

 

드론이 벌써..

드론이 회자된게 얼마되지 않은것 같은 느낌이었는데.. 벌써 승객용 드론이 나왔네요.

세계 최초 승객용 드론, EHang 184

물론 아직 안전성이나 법규적인 측면이나 실제로 운행은 불가능해보이지만.. 여기까지 기술이 온게 대단해보입니다.

미국은 벌써 이 드론의 관제시스템까지 개발하고 있다니 이미 한참이나 앞서있군요.

많은 드론들을 충돌없이 어떻게 관제할까?

관제 시스템까지 구축되면 군사, 물류부터 승객 이송도 현실화 될 것 같습니다. 아마 법규도 곧 따라오겠지요.

 

ORM은 언제 사용해야하나?

http://mikehadlow.blogspot.ca/2012/06/when-should-i-use-orm.html

Model Complexity 가 높고, Throughput도 높아야 하면 역시 expert만이 ..

성능상 이슈가 적고, Model Complexity가 높은경우 ORM을 사용하라고 되어 있는데.. 대체로 동감.  성능 이슈가 나오면 아직 ORM은 대응하기가 쉽지 않은게 사실.

개인적으로는 Model 복잡도와 관계없이, 성능 이슈가 적은 시스템에서 ORM을 적용하여 경험을 쌓은 뒤, Model 복잡도가 높은 곳에 적용, 그 다음에 둘다 해당하는 곳에 적용하는 식으로 가는게 어떨까 싶다.

확실히 ORM일 잘 안다면..(ORM이 내부적으로 어떻게 동작한다는 것을 잘 파악하고 있다는 의미.)  유지보수나 개발 생산성은 상당히 개선될 수 있을 것으로 보인다.

BASE (basically available, soft state, eventually consistent) – An ACID Alternative

http://queue.acm.org/detail.cfm?id=1394128

Atomic, Consistency, Isolation, Durability 속성을 보장하는 DB로 인해, DB는 굉장히 믿을만한 시스템이고, 트랜잭션 자체를 안심하고 사용할 수 있었던데 반해, 대용량 웹 서비스에서는 확장성의 한계가 명확했다.

이 확장성의 한계를 극복하고자하는 방법으로 BASE를 설명하는데, 실제로 이 방법은 이미 내가 차명하는 프로젝트에 개념이  적용되어 있었다… 분산 DB가 아닐뿐..

이벤트 드리븐, 메시지 큐,  몇가지 방법으로 한 트랜잭션을 짧게 가져가면서도 분산된 데이터를 보관하고, 성능을 상당히 향상시키면서도 데이터의 정합성을 보장할 수 있다.

다만, DB가 아니라 개발자가 이 부분을해야한다는 단점!!

Advantages of Monolithic Version Control

http://danluu.com/monorepo/

단일 repository의 장점들을 언급한 글인데, 상당히 동감하는 바가 있다. 지금도 프로젝트를 진행할때 프로젝트를 나누는 기준 (즉, repo를 분리하는 기준)을 정할때 항상 의견이 분분하다.

나는 보통 이렇게 정한다. 디펜던시가 프로젝트간에 굉장히 높다라면.. 단일 repo에 하나의 parent 프로젝트로 하고, 하위에 모듈을 두는 형태로 진행한다.

이렇게 했을때의 장점중 하나는, 디펜던시로 인한 오류의 확률을 줄이고, 개발할 당시부터 개발툴의 도움을 받아 오류의 포인트를 빠르게 찾아낼 수 있다. 단점은 뭐 말할필요도 없이 프로젝트가 커지는것이고!!

Swagger

HTTP에 JSON으로 제공하는 API가 있다면 Swagger로 커뮤니케이션 수단과 테스트 수단으로 사용해보자.

얼마전까진 없었는데 이젠 client lib도 자동 generation까지 해주네요. 우왕 굿!

공식 사이트  http://swagger.io/

요약하면.. 컨트롤러와 request, response 엔티티의 코드 주석겸 어노테이션을 달면,  괜찮은 퀄리티의 테스트가 가능한!! API I/F 화면을 구성 + client library까지 자동으로 생성해줍니다.

경쟁 제품으로 spring-restdocs, iodocs 등도 있습니다. 🙂

 

Click to access SCALE%2014x-%20Swagger.pdf

Click to access SCALE%2014x-%20Swagger.pdf

 

FaceBook의 새로운광고 포맷 Canvas

페이스북, 새로운 광고 포맷 ‘캔버스’ 테스트 중

페이스북이 새로운 브랜드나 영화, 제품을 홍보할 수 있는 멀티미디어 스토리텔링 광고 포맷을 테스트 중이다. 모바일에 최적화되어 있으며 페이스북 타임라인의 글을 클릭하면 동작하고 사진과 동영상으로 구성되어 있다. 페이스북에 따르면 기존 모바일 웹보다 10배 빠른 로딩 속도를 보이며 BMW, Universal 같은 기업이 이미 사용중이라고 한다.

음. 모바일 웹보다 10배 빠른 로딩속도는 무슨 근거일까 궁금.. 🙂