본문 바로가기

[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가 나는 케이스이다.참고 링크
더 홀 - 편혜영 장편소설 홀 중 아내의 불행은 그것이었다. 늘 누군갗럼 되고 싶어 한다는 것. 언제나 그걸을 중도에 포기해버린다는 것....사십대를 생각하면 가장 먼저 떠오르는 것은 어머니였다. 마흔은 어머니가 스스로 목숨을 끊은 나이였다. 아버지가 회사에서 자리를 잡고 개인 사업을 궁리하며 바깥으로 나돈 것도 그 무렵이었다. 말하자면 사십대는 세상에 적응하거나 완벽하게 실패하는 분기점이 되는 시기였다. 오기는 물론 세상에 적응하고 싶었다....오기가 생각하기에 죄와 잘 어울린다는 것 만큼 사십대를 제대로 정의 내리는 것은 없었다. 사십대야말로 죄를 지을 조건을 갖추는 시기였다. 그 조건이란 두 가지였다. 너무 많이 가졌거나 가진 게 아예 없거나. 즉 사십대는 권력이나 박탈감, 분노 때문에 쉽게 죄를 지었다. 권력을 가진 자는 ..
[경험과사례로풀어낸성공하는애자일]4장. 기민함을 위해 이터레이션 수행하기 과거에는 조직에서 변화가 필요할 때 "변화 프로그램"을 사용했었다. 위에서는 변화 프로그램대로 프로세스가 변하기를 원했고, 당시에는 이 프로그램의 시작과 끝이 명확했다. 과거에는 몇년에 한번씩 진행되는 이 "변화 프로그램"이 잘 맞았지만, 현재는 시장이 빠르게 변하고 있기 때문에 이게 적합하지 않다. 그래서 이제는 한번에 몇년에 걸쳐서 변화를 만들어가기 보다는, 잘게 나눠서 변화를 만들어가야한다.경험과 사례로 풀어낸 성공하는 애자일 4장에서는 이러한 변화를 잘게 나눠서 진행하는 이터레이션에 대한 내용을 담고 있다. 책에서는 실제 사례로 2004년도의 샴록 식품의 이야기가 나온다. 샴록 식품의 전략 수립 과정에서 스크럼을 도입하였다는 내용이다. 샴록에서는 분기별 전략을 스크럼 스프린트로 봤다. 매 분기마다..
[Rspec]:all VS :each 차이 before(:all) VS before(:each) before(:all)을 하면 모든 알스펙이 돌기 전에 한번만 블럭을 실행하는 거고, before(:each)는 각각 알스펙이 돌 때 한번씩 여러번 실행되는 걸 의미한다.아래와 같은 케이스일 때 before(:all)을 사용하면 좋았다.카우치베이스 테스트코드를 작성할 때 캐시에 값이 남아있어서 테스트코드가 마구 깨지는 케이스가 있었다. 그래서 각 테스트코드가 돌기전에 캐시들을 flush 해주는 함수를 넣어서, 캐시들을 다 날려버려줬었다. 그런데 flush는 응답속도가 느려서 테스트코드를 돌리는 데에 시간이 많이 걸렸다. 그래서 eache(:all) 블럭 안에 캐시를 flush하는 기능을 넣어서 테스트 코드를 돌릴 때 한번만 캐시를 날리도록 고쳤더니 조..
[카우치베이스]Insert와 Select의 시간차 금일 과제를 진행하면서 카우치베이스에서 Insert를 하고난 직후에 Select를 하면 Insert했던 값이 반영이 안되는 이슈가 있었다. 왜 그럴까? 이유를 확인한다면 이걸 수정하려면 어떻게 해야할까? 궁금했다. 왜 그럴까?1. insert의 메모리 객체 반영론카우치베이스의 Insert 메서드(add)는 데이터가 디스크에 완전히 반영되기 전에 메모리 객체에 반영되고 나면 성공 메시지를 되돌려 준다. 입력된 데이터는 디스크에 저장되고, 이 데이터가 다시 복제 설정된 개수만큼 다른 노드로 복사되게 된다. >즉, 디스크에 값이 저장되기 전에 true를 리턴해줘서, select를 할 때 직전에 insert 한 값이 바로 반영이 안되었던 거다. (그렇다면 select는 디스크에 직접 접근해서 계산해온다는 거겠지..
[Git] 신입 소프트웨어 엔지니어에게 유용한 Git 명령어 원래는 git을 사용할 때는 소스트리를 사용해서, Git 명령어를 사용하지 않았었다. 그러나 최근에 git에 훅을 추가하면서, 소스트리 사용이 불편해진 케이스가 있었다.Push 전에 도는 Rspec의 실행상태를 보고 싶다거나 할 때는 소스트리보다는 터미널에 Push 명령어를 쓰는게 더 편했다.이 때 사용했던 명령문들을 아래에 정리해보고자 한다. git 상태조회하기git statusgit stage 환경 등을 확인할 수 있다. 나는 소스트리로 원하는 소스코드 Hunk, line을 스테이지로 옮긴 후, 이 변경 사항을 터미널에서 커밋하고는 했었다. 그래서 터미널에서 처음 정상적으로 스테이지에 올라왔는지를 확인하기 위해 저 명령어를 사용하였었다. commit 하기git commit -m 'ABC-123 커밋하..
[리눅스/유닉스] 신입 소프트웨어 엔지니어에게 유용한 명령어 나에게 에버노트는 개발 비법 같은 존재이다 ㅎㅅㅎ 내 에버노트가 사라진다면, 나 또한 사라질 것이다 ㅎㅅㅎ ...오늘은 내 에버노트에서 꾸준히 찾아보는 한 게시물을 블로그로 옮겨볼까 한다. 오늘의 주제는 리눅스 / 유닉스 환경에서 유용한 명령어 정리이다.나같은 리눅스 / 유닉스 환경을 1도 몰랐던... 신입 or 왕초보에게는 유용한 명령어이다 ㅎㅅㅎ 데이터 처리에 유용한 명령어 1. CSV 파일 길이 보기 wc -l 파일명.csv일을 하다보면 데이터를 CSV 파일에 저장해서 사용하고는 한다. 특히, 운영성 업무에서는 데이터를 전달할 때 CSV 파일을 사용하고는 하는 데, 이때 내가 전달하는 데이터의 크기가 몇인지, 길이가 얼마나 되는지 궁금할 때가 있다.이때 'wc -l 파일명' 명령어를 사용하면 손쉽게..
[루비스타일가이드]RUBY String의 to_s와 += 회사에서 최근 품질관리를 위하여 루보콥을 사용하고 있다.어떻게 사용하고 있냐 하면은, git을 커밋할 때 마다 루보콥이 돌고 remote 브랜치에 push를 할 때면 RSPEC이 돈다.그래서 commit 할 때, Rubocop과 Rspec이 도는 것을 이번 주에 처음 해보았다.RSPEC이 REMOTE push 때마다 매번 도는건 여전히 귀찮지만 루보콥이 도는건 꽤 만족한다. 루보콥에서 걸린 것들을 고쳐나가면서, 루비 스타일 가이드를 읽게되니 기존의 소스코드가 아닌 다른 방법으로 루비를 배워가는 기분이여서 좋다 ㅎㅁㅎ 그러면서 알게된 String Class와 관련된 루비 스타일 가이드를 정리해보고자 한다. 1. to_s를 쓰지 말라! [link]"#{object}" 이런식으로 "#{ }" String 형태..