본문 바로가기

소프트웨어-이야기

[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 변수에는 실제로 존재하는..
레일즈 엔진 (Rails Engine) 레일즈 애플리케이션 프로젝트가 여러개 있을 때, 공통으로 사용하는 함수나 상수가 있으면 ruby gem을 사용하면 된다. 그런데 공통으로 사용하는 view가 여러개 있으면 어떻게 할까?공통으로 사용하는 함수가 Model이라면?공통으로 사용하는 함수가 레일즈를 기반으로한다면? 이럴 때는 Gem으로 공통 라이브러리를 관리하기에는 한계가 있다. 이런 상황에 필요한 레일즈 기능은 Engine이다. 처음에 레일즈 Engine을 알게된 배경은, 리멤버의 블로그를 통해서였다.리멤버 개발 블로그 - Rails Engine을 이용한 Zeus 프로젝트 레일즈 엔진은 레일즈를 모듈처럼 쪼개놓은 것 같은 느낌이다.내가 만들고 있는 레일즈 애플리케이션에 엔진을 끼워넣는 느낌으로 사용하는거다.- 공통적으로 사용하는 컨트롤러를 만..
레일즈4 + Mass Assignment + Strong Parameter MassAssignmentMassAssignment가 발생할 수 있는 상황 class UserController
리팩토링:루비에디션 오늘부터 읽고있는중...!! 루비 기반 리팩토링 책은 다 번역이 엉망이라서 쳐다도 안봤는데, 읽어보니 번역이 매끄러워서 술술 익힌다 ㅎㅅㅎ 회사에서 일하면서 배운, 리팩토링에 대한 사고방식이랑 같은 내용이 들어가있어서 더 재미있게 잘읽힌다 ㅎㅎ 책을 읽으면서 궁금했던 것들 리스트 * each루프 대신, inject 같은 메서드를 사용하는 것의 장점은 ? ( p. 27, Replace Loop with Collection ) - 간단하다는 점의 구체적인 이유는?
[Spark]DataFrame을 Parquet으로 저장하기 http://spark.apache.org/docs/latest/sql-programming-guide.html 파케이파일로 데이터프레임이 저장되면, 스키마 정보를 유지한 채로 데이터를 저장할 수 있다.위의 코드 예시를 보면, 데이터프레임을 파케이로 저장한 후 => 해당 파케이파일을 읽어들이면 스키마를 유지하고 있어 TempVIew를 생성할 수 있다.
신입 프로그래머에게 유용한 크롬 확장 프로그램 ㅎㅂㅎ ... 1년 전, 소프트웨어 개발 직군에서 일을 시작하기 전에 티아카데미에서 서버 전문가 과정을 들으며 공부를 했었다. 그 때 강사님에게 추천받은 확장 프로그램들을 지금도 아주아주 유용하게 잘 사용하고 있다. 내게 티아카데미에서 배운 것들 중에서 좋았던 것들 중 하나는 이런 팁들을 알게 된 것! 실제로 일 할 때도 다들 이 확장 프로그램을 사용하고 계시기도 한다! 추천하는 프로그램은 툴팁 딕셔너리와 포스트맨이다. 1. Tooltip Dictionary (English-Korean) 설치 링크 : https://chrome.google.com/webstore/search/Tooltip%20Dictionary%20(English-Korean)?hl=ko 마우스 오버 시, 영어 단어를 한글 단어로 보여..
[couchbase]카우치 베이스에서 테이블이란? 카우치베이스와 RDB의 논리적 개념 차이에 대해서 헷갈려서, 찾아봤다. 카우치베이스의 bucket은 RDB의 database의 개념과 유사하다고 한다. 그러면 카우치베이스의 table의 개념은 무엇일까 궁금했다. 카우치베이스에서는 별도의 TABLE이 없다. 때문에 document에 type이라는 속성을 추가해서, 유사한 데이터를 묶어서 관리해주어야 한다. 참고 : http://blog.couchbase.com/10-things-developers-should-know-about-couchbase 위는 카우치베이스 사용할 때 알아야하는 10가지에 대한 포스팅의 캡쳐 이미지이다. 하나의 버킷은 RDBMS에서 database로 볼 수 있다. 때문에 다른 속성을 가진 도큐먼트여도 같은 버킷에 저장되어야 한다. ..
[Ruby]nil? VS blank? VS empty? VS any? VS present? .nil? .blank? .empty? .any? and .present?.nil?.blank?.empty?.any?.present?nilTRUETRUExxfalse[]falseTRUETRUEfalsefalse{}falseTRUETRUEfalsefalse""falseTRUETRUExfalse" "falseTRUEfalsexfalsefalsefalseTRUExxfalse99falsefalsexxTRUE0falsefalsexxTRUEx: NoMethodError가 나는 케이스이다.참고 링크