발생일: 2016.02.25 키워드: UIImage, imageNamed, imageWithContentsOfFile 문제: UIImage 객체에서 이미지를 불러오는데, 어떤 코드에서는 imageNamed 를 사용하고 어떤 코드에서는 imageWithContentsOfFile 을 사용하고 있다. 어떤 차이일까? 해결책: imageNamed - 로드한 이미지를 캐시에 저장한다. - 디바이스와 해상도에 맞는 확장자의 파일을 로드한다. - 예) img.jpg, img@2x.jpg, img~ipad@2x.jpg imageWithContentsOfFile - 이미지를 불러오지만 캐시에 저장하지 않는다. - 1회성으로 로드해 보여주는 이미지에 적합하다.
발생일: 2016.02.14 키워드: vim, 대소문자, ignorecase, smartcase 문제: Vim 에서 / 를 사용해 검색 시 대소문자를 무시하고 검색하고 싶다. 해결책: /\cfoobar \c 이스케이프 캐릭터를 사용하거나, :set ignorecase 로 설정해두면 된다. :set smartcase 로 설정하면, 검색어에 대문자가 있을 경우 자동으로 대문자만 검색한다. 참고: https://stackoverflow.com/questions/2287440/how-to-do-case-insensitive-search-in-vim/2287449#2287449
발생일: 2015.12.24 키워드: flask, file upload, 파일 업로드, 플라스크, upload multiple files in flask 문제: flask 에서 멀티 셀렉트가 가능한 파일 인풋으로 여러 개의 파일을 업로드하려고 한다. 해결책: 아래와 같이 multiple 옵션을 주고, flask.request.files 객체의 getlist() 를 사용하면 된다. @app.route("/upload", methods=["POST"]) def upload(): uploaded_files = flask.request.files.getlist("file") print uploaded_files return "" 참고: http://stackoverflow.com/questions/1181718..
발생일: 2015.12.24 키워드: sqlite3, python, 파이썬, dictionary, json 문제: 파이썬에서 sqlite 3 모듈로 작업 중이었는데, 아래와 같은 오류가 난다. ProgrammingError: You did not supply a value for binding 1 아래와 같은 코드였다. def insert_data(cursor, stat_type, start_date, app_name, age, value): query = ''' INSERT INTO table (start_date, app_name, age, value) VALUES (:start_date, :app_name, :age, :value) ''' % stat_type cursor.execute(query,..
발생일: 2015.12.23 키워드: python, 파이썬, strptime, 문제: 2015년 첫번째 주의 시작이 몇 일인지 가져오려고 한다. 해결책: datetime 모듈의 strptime() 함수를 사용하면 된다. > datetime.datetime.strptime('201501-1', '%Y%W-%w') datetime.datetime(2015, 1, 5, 0, 0) %w 는 어떤 요일을 한 주의 시작으로 볼 것인지를 판단하는 값이다. 0 = 일요일 1 = 월요일 위 코드는 월요일을 한 주의 시작으로 보았을 때, 2015년의 01번째 주에 해당하는 datetime 객체를 리턴한다. 리턴된 값을 보면, 2015년 1월 5일이 첫 주인 것을 알 수 있다. 마찬가지로, 아래 코드로 2015년의 50번째..
발생일: 2015.12.21 키워드: openpyxl, xlrd, 파이썬 엑셀, python excel, read excel file using python, xlsx 문제: 파이썬으로 엑셀 파일을 읽어오려고 한다. 해결책: 내가 검색을 짧게 해서 그런지 모르겠지만, xls 형식의 파일과 xlsx 형식의 파일을 지원하는 라이브러리는 찾지 못했다. xls 파일을 읽어오려면 xlrd 라이브러리를, xlsx 파일을 읽어오려면 openpyl 라이브러리를 사용하면 된다. - xlrd: http://www.lexicon.net/sjmachin/xlrd.html - openpyxl: https://openpyxl.readthedocs.io 먼저, xls 파일은 xlrd 라이브러 사용해서 아래처럼 가져올 수 있다. w..
발생일: 2016.10.12 키워드: document.write, chrome, script, 스크립트 태크 문제: 잘 동작하던 사이트에서 어느 시점에서부터 아래 워닝이 뜬다. A Parser-blocking, cross-origin script, http://example.com/example.js, is invoked via document.write. This may be blocked by the browser if the device has poor network connectivity. 해결책: document.write()로 스크립트 태그를 삽입할 때 발생하는 워닝이고, 확인해보니 크롬 53버전부터 나오는 것이라 한다. 스크립트 태그가 들어가면 페이지가 블럭킹 된다. 스크립트 태그에서 불러오..
발생일: 2016. 10. 19 키워드: clang, xcode, xcode-select, sphinx, brew, xcode command line tools 문제: 새 아이맥을 장만하고, Xcode를 업데이트한 후에, brew 로 모듈을 하나 설치하려는데 아래와 같은 에러가 나면서 진행되지 않는다. ld: unexpected token: !tapi-tbd-v2 file '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib/libSystem.tbd' for architecture x86_64 clang: error: linker command failed with..
발생일: 2016.07.21 키워드: 카카오스토리, Kakao Story, 코드리뷰, Code Review 문제: 카카오 개발자 블로그에 코드리뷰 경험에 대한 글을 공유한 이후에, 같은 주제로 네이버와 NHN 엔터테인먼트에 초청받아 강연을 하고 왔다. 네이버엔 지난 4월에 다녀왔는데 150분 넘게 신청을 해주셨고, 지난 주엔 엔터에서 발표했는데 200분 넘게 신청해주셨다. 호응도 좋고 질문도 많이 해주셔서, 많은 분들이 코드리뷰 도입에 관심있어 한다는 걸 새삼 느끼게 됐다. 첫 번째 발표 이후에 수 개월이 지났고, 그 동안 새로운 팀에 리뷰를 도입해보는 과정에서 내 생각도 좀 더 다듬어졌다. 강연 내용이 슬라이드만으로 충분히 전달될 지 모르겠지만, 코드리뷰를 도입해보시려는 분들께 도움될 수 있길 바라는 ..
발생일: 2016.06.23 키워드: git submodule, 깃 서브모듈 문제: Git 에서 서브모듈을 사용하려고 한다. 해결책: 서브모듈에 대한 자세한 옵션은 Pro Git 책의 설명을 보는 게 더 나을 것 같아, 여기선 아래와 같이 튜토리얼 형식으로 설명해보려고 한다. ---------------------------------------------------------------- 1. 서브모듈 2. 서브모듈 추가하기 3. 부모 프로젝트에서 자식 프로젝트의 내용 변경하고 업데이트하기 4. 자식 프로젝트에서 수정 후, 부모 프로젝트에 적용하기 5. 서브모듈이 있는 프로젝트 클론하기 6. 변경된 서브모듈 업데이트하기 ----------------------------------------------..