발생일: 2016.12.07 키워드: mysql, fulltext, boolean mode, innodb_ft_min_token_size, aws 문제: MySQL에서 BOOLEAN MODE 로 FULLTEXT 쿼리를 하려고 하는데, 검색어가 2글자인 경우 검색이 되지 않는다. 해결책: FULLTEXT 인덱스를 생성하는 기준에 캐릭터 개수에 대한 최소값이 있었기 때문이었다. innoDB인 경우 기본적으로 3글자, MyISAM DB인 경우 4글자가 기본값이다. 최소값 기준은 MySQL의 innodb_ft_min_token_size 설정하면 변경할 수 있다. 인스턴스의 기본 설정값이기 때문에, 값을 변경한 후엔 디비 인스턴스를 리스타트해야 하고, 인덱스도 새로 만들어야 한다고 한다. 우린 innoDB를 사용..
발생일: 2016.10.21 키워드: nginx, log, access log, nginx logging is not working 문제: nginx 에서 access_log가 제대로 출력되지 않는다. 해결책: 몇 가지 의심되는 부분이 있다. 아래 사항을 체크해보자. 1. nginx의 설정 파일에서 access_log off 로 해둔 것은 아닌지 확인해보자. 2. 권한 이슈일 수 있다. nginx 의 worker process 가 로그 파일에 쓰기 권한이 있는지 확인해본다. nginx 설정에서 user 에 할당한 사용자가, access_log 파일이 있는 디렉토리와 파일에 쓰기 권한이 있는지 확인해보면 된다. 아래 명령으로 워커 프로세스의 사용자를 확인해보자. $ ps -eo "%U %G %a" | gr..
발생일: 2016.04.14 키워드: 정규식, regular expression, regexp, re, re.escape, r literal string, raw string notation, r 표기법 문제: 정규식 구문에 변수에 할당한 값을 포함해 매칭하려고 한다. 해결책: 기본 문자열을 처리하듯이 구문 문자열에 변수를 더해 처리하면 된다. text = 'bar' re.match(r'foo' + text + r'bar', target) 논의: 파이썬의 정규식 구문은 주로 r'' 형태의 raw string notation 을 사용한다. r'' 표기법을 사용하면, 백슬래시를 일반 문자열처럼 처리할 수 있어 편리하다. 예를 들어, >>> r'\t' '\\t' >>> r'foo\nbar' 'foo\\nbar..
발생일: 2016.04.08 키워드: python, 파이썬, 구글 스프레드시트, Google Spreadsheet, Read google spreadsheet from python 문제: 파이썬에서 구글 스프레드시트에 인증해 시트를 읽어오고 싶다. 해결책: gspread 라는 라이브러리가 있고, 이 라이브러리를 사용하면 손쉽게 읽어올 수 있다. 구글 스프레드시트에 인증하는 방법에 대해서도 잘 설명해뒀다. http://gspread.readthedocs.io/en/latest/oauth2.html Credentials 파일을 생성한 후에, 읽어올 시트에서 client_email 에 공유 권한을 꼭 줘야 한다. 난 시트에서 공유하는 걸 빼먹어 한 동안 삽질했었다. 참고: - gspread: https://g..
발생일: 2016.03.17 키워드: UIImageView, 라운드, round 문제: UIImageView에 라운드를 적용하려고 한다. 해결책: 여러 가지 방법이 있는데, 고정된 사이즈의 이미지라면 layer의 cornerRadius를 사용하는 것이 간단한다. @property (nonatomic, weak) IBOutlet UIImageView imageView; ... self.imageView.layer.cornerRadius = CGRectGetWidth(self.imageView.frame) / 2.0f; Clic subview를 선택하고, Mode를 원하는 값으로 설정하는 것을 잊지 말자. 참고: http://stackoverflow.com/questions/4314640/setting-co..
발생일: 2016.02.29 키워드: NSDictionary, NSMutableDictionary, NSKeyValueCoding, Key-Value Coding, 키-값 코딩, KVC 문제: 사전 객체에서 valueForKey를 호출할 때, 키 앞에 @를 넣는 코드가 있다. 뭘 의미하는 걸까? 해결책: 사전 클래스 NSDictionary 와 NSMutableDictionary 는 NSKeyValueCoding 프로토콜의 메서드를 제공해서 키-값 코딩에 대응한다. NSDictionary 에는 다음 메서드가 정의되어 있다. - (id) valueForKey: (NSString *)key; 키 문자열의 앞 부분이 '@'로 시작하는 경우 슈퍼 클래스의 valueForKey: 를 호출하고, 그렇지 않은 경우엔 ..