본문 바로가기

신입 프로그래머에게 유용한 크롬 확장 프로그램 ㅎㅂㅎ ... 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가 나는 케이스이다.참고 링크
[경험과사례로풀어낸성공하는애자일]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 파일명' 명령어를 사용하면 손쉽게..