본문 바로가기

소프트웨어 관련 강의 리스트 온라인이나 오프라인으로 들을만한 강의가 뭐가 있나.. 찾아보고 있다. 1. 유데미블로터에서 번역해서 중간 판매도 하고 있다http://www.bloter.net/archives/269946http://udemy.bloter.net/ 2. 티아카데미AWS 기초 강의 : https://tacademy.sktechx.com/live/player/onlineLectureDetail.action모바일 소프트웨어 개발을 위한 Agile 방법론 : https://tacademy.sktechx.com/live/player/listDetailVod.action 3. MOOC??? http://mooc.org/ 4. 한국형 MOOChttp://www.kmooc.kr/courses대학수업을 들을 수 있는듯 ㅎㅎ
카드형 Swipe 라이브러리 리서치 피파 게임 같은 이미지가 웹페이지에서 슥슥 움직이는 그런 라이브러리를 찾고 있다. 1. Swiper 데모 사이트 : http://idangero.us/swiper/demos/#.WKvi-BKLT_Q깃허브 : https://github.com/thebird/Swipe 뭔가.. 삐까뻔쩍해보이지 않는다. 2. Hammer JS 사이트 : http://hammerjs.github.io/ 유용해보이지만, 모바일에 최적화된 인터랙티브 라이브러리여서 PC에서는 부적합하다 3. js-swipe-cards 데모 사이트 : http://apeatling.com/demos/js-swipe-cards/깃허브 : https://github.com/apeatling/javascript-swipe-cards 음.. 역시 모바일에서..
[Spark] 여러개의 로그 파일 한번에 읽어오기 제플린 노트북에서 데이터 소스를 가져올 때, DataFrameReader Class를 주로 사용한다. 아래의 코드 처럼, DataFrameReader의 함수들을 사용해서 구조화되어있는 파일을 읽어들이면 DataFrame을 리턴된다. spark.read.json("s3n://jimin-bucket/a/*") spark.read.parquet("s3n://jimin-bucket/a/*") 그런데 파일을 하나하나 가져오기 보다는 여러 파일리스트를 한번에 가져오고 싶을 때가 있다.이때는 MutableList에 파일 목록들을 담아서, 이를 매개변수로 보내주면 된다. -----------------------------------------------------------------------------------..
[Spark] S3에 파일이 존재하는지 확인하기 Zeppelin 노트북에서 데이터소스를 불러올 때, AWS S3에 올려둔 파일들을 가져다가 사용한다.그런데 만약 없는 파일을 읽어들이려고 하는 경우, 에러가 발생한다.만약 일자별로 쌓인 로그 파일을 한번에 가져와서 읽을 필요성이 있다고 생각해보자. val fileList = MutableList("s3n://jimin-bucket/folder1/20170202/*", "s3n://jimin-bucket/folder1/20170203/*", "s3n://jimin-bucket/folder1/20160204/*") spark.read.json(fileList:_*) 만약 20170203 폴더에 file1이 없는 경우, 파일을 읽어들일 수 없어 에러가 난다.이런 경우, fileList 변수에는 실제로 존재하는..
엔지니어 관점에서 AdExchange 이해하기 (2) - OpenRTB 이전 포스팅에 이어서, AdExchange에서 사용하는 인터페이스인 OpenRTB에 대한 이야기를 할까 한다. OpenRtb의 필요성 이전에 이야기한 것처럼 AdNetwork간에서 광고를 서로 사고, 팔아야하는 필요성이 생겨서, AdExchange라는 개념이 생겼다.그러면서 서로 광고를 교환하기 위한 표준 인터페이스의 필요성이 생겨났다. 애드 익스체인지가 발전하면서 여러 애드네트워크들 간에, 혹은 여러 익스체인지들 간에 광고 교환 작업들이 발생하게 되었는데,이 때마다 서로 어떤 파라미터를 던져주면, 어떤 Result 값을 리턴해줄지 조정하는 작업들이 필요하게 되었다. 그때마다 서로 인터페이스를 맞추기는 번거로웠다. 그리고 한 업체와 포맷을 맞추고, 또 다른 업체와 연동을 하려면 또다시 위의 인터페이스 조..
엔지니어 관점에서 AdExchange 이해하기 (1) 나는 애드네트워크 서비스를 만들고 있다.그러던 중 최근 AdExchange 연동 작업을 진행하면서, AdExchange에 대해서 공부하게 되었다. AdNetwork 사의 관점에서 AdExchange 이해하기AdExchage란 AdNetwork 간에 남은 광고물량을 교환할 수 있도록 시스템화한 것을 의미한다. 예를 들면 카울리, FAN 같은 애드네트워크사인 A사가 광고 1개를 100개의 노출(Impression)을 해주기로 했다고 생각해보자.그런데 A사의 SDK를 심은 매체(Direct Publisher)에서 발생하는 Request 수가 80개라고 생각해보자.이 경우, A사는 결국 광고를 20번 더 노출 시켜야하지만, 20회의 노출을 추가적으로 발생시킬 수 없는 상황이 된거다.즉, 광고 수주를 아무리 잘해..
레일즈 엔진 (Rails Engine) 레일즈 애플리케이션 프로젝트가 여러개 있을 때, 공통으로 사용하는 함수나 상수가 있으면 ruby gem을 사용하면 된다. 그런데 공통으로 사용하는 view가 여러개 있으면 어떻게 할까?공통으로 사용하는 함수가 Model이라면?공통으로 사용하는 함수가 레일즈를 기반으로한다면? 이럴 때는 Gem으로 공통 라이브러리를 관리하기에는 한계가 있다. 이런 상황에 필요한 레일즈 기능은 Engine이다. 처음에 레일즈 Engine을 알게된 배경은, 리멤버의 블로그를 통해서였다.리멤버 개발 블로그 - Rails Engine을 이용한 Zeus 프로젝트 레일즈 엔진은 레일즈를 모듈처럼 쪼개놓은 것 같은 느낌이다.내가 만들고 있는 레일즈 애플리케이션에 엔진을 끼워넣는 느낌으로 사용하는거다.- 공통적으로 사용하는 컨트롤러를 만..
레일즈4 + Mass Assignment + Strong Parameter MassAssignmentMassAssignment가 발생할 수 있는 상황 class UserController