본문 바로가기

전체 글

(76)
테스트 코드 작성의 가장 큰 장점 테스트 코드를 작성해야 하는 가장 중요한 이유는,테스트 코드의 유무가 바로, 시스템 리팩토링의 결정적인 역할을 담당한다는 점이다. 아주 간단하게 설명할 수 있다. 다음중 리팩토링하고 싶은 시스템은??? 1. 양질의 테스트 코드가 존재하는 시스템2. 테스트 코드가 없는 시스템
애플, 보이지 않는 도로 AR 표시…‘타이탄 프로젝트’ 순항 중 애플에서 애플카를 개발하던중(?) 그에 맞는 오퍼레이션 시스템을 구축하고 있는 모양이다. 위의 기능은 눈에 보이지 않는 '산에 가려진 도로'를 AR 기술을 이용해서 미리 사용자에게 알려주는 기술이다. 이런걸 보면 애플의 플랫폼에 대한 안목은 이미 넘사인듯.... 출처 : http://www.itnews.or.kr/?p=26246
테이블을 생성할때 상태(state) 설정에 대한 고찰 서비스를 개발하다보면 모델 생성을 위한 테이블 생성시 모델의 상태 항목을 추가할 경우가 많다. 보통은 boolean형으로도 충분한 경우가 많지만 또 많은 경우에 true, false 외에 제 3의 상태가 필요한 경우가 많다. 그렇다고 특정경우에 boolean, Integer를 병행하면 코드의 일관성이 깨져서 좋지 못한 방법이 된다.(쿼리를 날릴때마다 해당 테이블의 상태값이 Boolean인지 Integer인지 생각하는건 좋지 않다.) 처음부터 Integer로 하는 것이 좋다. 아마도...
인덱스가 걸려있는 컬럼을 지우면 어떻게 될까? 데이터 수집 서비스를 하나 운영하다, 쓸모없는 컬럼이 생겨서 삭제하고 싶어졌다. 문제는 해당 테이블이 1억 2천만 줄이라는 사실......... 과연 컬럼을 삭제하면 인덱스는 어떻게 되지??????결론은 해당 컬럼만 빠진 인덱스가 생긴다. 요약:루비온 레일즈에서 1억 2천만 줄의 테이블에서 다중 인덱스가 걸린 컬럼 하나를 삭제함약 1시간이 걸려서 컬럼이 삭제됨인덱스는 해당 컬럼만 제외하고 존재함
Apple의 Face ID가 가지는 의미 아이폰 10주년을 맞이하여 애플은 새로운 기종의 아이폰을 선보였고, 또한 새로운 기능을 선보였다. 바로 ‘페이스 아이디’이다. ‘페이스 아이디’는 말 그대로 사용자의 얼굴이 아이디가 된다는 것이다. 아이폰 전면에 있는 새로운 카메라가 사용자의 얼굴을 도트(점)화 하여 패턴을 확인한다. 터치 아이디 잘 쓰고 있었는데...왜?? 라고 생각할 수도 있지만, 이것은 유저 인터페이스 개념에서 매우 중요한 부분이다. 우리가 사용하는 기계들의 입력 방식은, 과거 키보드를 거쳐 마우스, 그리고 요즘은 터치가 보편적으로 쓰인다.최근 대부분 모바일 기기들은 사용자의 지문을 아이디로 인식해서 입력을 간편화하고 있다. 하지만 위에서 열거된, 키보드, 마우스, 지문은 모두 손에 의한 입력이다.결국 비밀번호를 손으로 치던가, 마..
디자인 패턴과 개발 방법론의 현실 약 두달전쯤해서 최신(?) 디자인 패턴과 개발 방법론으로 심혈의 기울여 적용한 신규 프로젝트가 하나 있다.....만.사실 잘 안팔려서 잠깐 두달정도 잊고 살다가, 이번에 신규 업데이트 관련해서 수정할게 있어서 다시 소스를 열어 봤다..............근데 잘......모르겠음 최근들어 고민하는 것이, 과연 어떤 코드가 좋은 코드인가 라는 질문이다. 인터넷에 즐비한 기교를 가지고 구문을 최소화 하는 것이 좋은 코드인가.최신 방법론과 디자인 패턴을 적용한것이 좋은 코드인가. 나름의 결론은 보기 편한 코드가 좋은 코드이다. 흐름이 존재하고, 그 흐름을 따라가면 프로그램의 흐름을 이해할 수 있는 것이 좋은 코드이다. 그 쉬운 흐름을 만들기 위해 사용하는 것이 디자인 패턴이고, 개발 방법론이다. ps. 간만..
DB - SQLite, Mysql, MariaDB 초당 50개가 insert되는 시스템을 구축 중이다.처음에 내가 선택한 DB는 SQLite. 따로 설치하지 않아도 걍 되는 그것이다. 이것이 재앙의 시작이었다. SQLite는 초당 50개의 insert를 그럭저럭 소화하는듯이 보였다.이모티콘도 알아서 잘 기록했다. 근데 insert 도중에 무언가를 할려면 DB가 넘 바빠서 못하겠어. 20000 이라는 건방진 메세지를 남기고 로직을 종료해 버렸다…순진한 나는 코드를 개선해서 이 문제를 해결할려고 했다. ... 그리고 당연히 해결하지 못했다…..고민끝에 나는 귀찮지만 Mysql을 쓰기로 했다.(사실 이때 동료 개발자가 MariaDB를 쓰라고 권유했지만 이미 타이핑을 brew install mysql 을 쳐서 말을 듣지 않았다……그리고 이것도 나중에 재앙이 되..
레일즈 벨리데이션은 믿을 수 있는가? 초당 약 50개를 insert하는 시스템을 구축하고 있다. 0.1초에 5개를 insert한다.데이터는 간단한데 4개의 String 데이터를 insert하는 구조이다. 그 중 컬럼 A + C는 중복 될 수 없다.A에 “고기” C에 “강남”이면 다시 테이블에 A가 고기고 C가 강남인 데이터가 들어갈 수 없다.즉 복합 고유키 설정이다. 나는 모델에 벨리데이션을 줘서 해당 규칙을 유니크로 만들었다. > validates : A , uniqueness: { scope: :C } 아니 근데 왠걸…..계속해서 중복값이 들어온다. 여러가지 방안으로 분석한 결과,놀랍게도 시분초까지 완벽하게 일치하는 데이터 여러개가 입력되었다. 해당 row는 id값만 달랐다. 레일즈의 벨리데이션은 완벽하게 자신의 역할을 수행하지 못한다는..