2018년 13번째 주
이 포스팅은 그냥 지난 한 주간 읽었던 것들을 정리하는 포스트입니다. 그냥 예전에 봤던 글 중 나중에 필요한데 뭐였는지 기억 안 나는 글들이 있어서 쓰기 시작했습니다. 보통 하는 일과 관련된 글들이 올라오겠지만 딱히 정해둔 주제는 없고, 그때그때 관심 있었던 것을 읽었기 때문에 지난주에 쓰인 글일 수도 있고 몇 년 전에 쓰인 글일 수도 있습니다. 이때까지 정규식에서 \d는 당연히 [0-9]와 동일하다고 생각했는데 아니였다... c#에서는 \d가 digit이라는 이름에 걸맞게 아라비안 숫자[0-9]뿐이 아닌 페르시안 숫자[۱۲۳۴۵۶۷۸۹] 등 유니코드 평면에 존재하는 모든 숫자 노테이션을 매칭함. 그래서 [0-9]와 \d는 interchangeable 하지 않음... pic.twitter.com/7i4cnzeECU — 전세계 300억개의 장비가 (@devunt) 2018년 3월 28일 정규 표현식 에서 \d 가 의미하는 것이 언어마다 다 다르다고 한다. 언어가 지원하는 문자열이 single byte문자열이면, \d가 [0-9]를 의미하는 것이 맞지만, 유니코드라면 [0-9] 이외의 문자열도 처리할 것을 고려했어야 한다. 그런 의미에서 파이썬 2의 string literal은 유니코드가 아니기 때문에 [0-9]를 처리하는 것이 이상하지 않지만, Java나 JavaScript처럼 유니코드 string literal을 지원하는 언어에서 \d를 [0-9]에만 대응하는 건 조금 안일한 결정이 아니었나 싶다 자바스크립트 디자인 패턴: RORO RORO는 Receive an Object, Return an Object의 약자로, 이름 그대로 함수에 넘기는 인자와 함수가 넘기는 인자를 object로 하자는 것이다. 함수의 인자로 object를 넘기자는 것은 꽤 옛날부터 있었던 주장이다. 최소한 내가 처음 웹 개발을 했던 2009년경에는 이미 함수의 인자로 객체를 넘기는 패턴이 유행했다. 함수의 인자로 객체를 넘겼을 때의 장점은 두 가지로 정리할 수