그래도 상관이 없어서 정답은 그래도 아무런 상관이 없어서. 맞다. 리브레오피스가 한글(hwp) 파일을 읽지 못한다고 해서 세상에 위험이 찾아오지는 않는다. 한글뷰어를 다운받으면 문서 내용을 읽을 수 있고, 편집은 뭐.. 다른 방법이 있을 것이다. 리브레오피스는 돈 한 푼 들이지 않고 오피스 파일들을 편집할 수 있도록 해주는 착한 프로그램이지만, 어쨌거나 주 사용층은 유럽…
메이크 타임: 게으름을 극복할 수 있을까?
머리와 몸이 따로 논다 머리는 항상 생각합니다. “위대한 사람이 되어야지!” “열심히 운동해서 몸짱이 되자!” “노력해서 젊은 부자가 되자!”. 몸이 대답합니다. “싫은데?” “일단 좀만 더 누워있다 일어나자.” “아무 생각없이 유튜브, 넷플릭스나 보자.” 젠장. 나는 왜이렇게 게으른 걸까요? 난데없이 TMI 를 시전하자면, 제 MBTI 유형은 ENTP 입니다. 하고 싶은 것도 많고, 이미…
함수형 프로그래밍 vs 객체지향 프로그래밍
*이 포스트는 Robert C. Martin 님의 허락을 받아 blog.cleancoder.com 의 글 “FP vs. OO“을 번역한 것입니다. 저작권에 유의하시기 바랍니다. 서론 지난 몇 년간 저는, 함수형 프로그래밍을 배우면서 “음.. 그건 너무 객체지향인데요.”라는 식으로 객체지향 프로그래밍에 반감을 표현하는 사람들을 봐왔습니다. 왜인지는 몰라도 함수형 프로그래밍과 객체지향 프로그래밍이 상호 배제 관계에 있다는 생각 때문으로…
봉투 뒷면 계산법: 구글의 설계 기술
*이 포스트는 Todd Hoff 님의 허락을 받아 highscalability.com 의 글 “Google Pro Tip: Use Back-Of-The-Envelope-Calculations To Choose The Best Design“을 번역한 것입니다. 저작권에 유의하시기 바랍니다. 어떤 문제가 주어졌을 때, 최적의 설계가 무엇일지는 어떻게 알 수 있을까요? 예를 들어 30개의 섬네일을 표시하는 이미지 검색 결과 페이지를 만들어야 한다고 합시다. 이미지는 순차적으로 로드할까요?…
알고리즘 문제를 잘 풀면 뛰어난 개발자일까?
뛰어난 개발자는 문제도 잘 푼다 결론부터 말하자면, “알고리즘 문제를 잘 풀면 뛰어난 개발자일까?”의 답은 “아니오.”입니다. 하지만 뛰어난 개발자는 당연히 알고리즘 문제도 잘 풉니다. 오잉? 같은 이야기를 조금 더 자극적으로 표현해보겠습니다. 문제풀이를 잘 하지 못하면 뛰어난 개발자가 될 수 없다. 뛰어난 개발자 중에 문제풀이를 잘 못하는 사람은 없다. 이게 무슨 말인지에…
SQLite 데이터베이스를 10배 빠르게 만드는 방법들
SQLite 데이터베이스를 사용하다보면, 데이터가 많을 경우 처리 속도가 만족스럽지 못한 경우가 생길 수 있습니다. 그럴 때에는 무작정 다른 종류의 데이터베이스를 찾아보거나 다른 기술을 도입하려고 하기보다는, SQLite 데이터베이스를 사용하는 코드를 최적화해볼 필요가 있죠. 그럼 아래에 적용해볼 수 있는 방법들을 정리해보겠습니다. 예제 코드는 SQLite C Library를 기준으로 했습니다. 또 설명을 위한 예제이므로…
LibreOffice: 무료 오피스 프로그램
LibreOffice? (다운로드 링크) LibreOffice, 한글명 리브레오피스는 대표적인 무료 오피스 프로그램입니다. MacOS, Linux 계열 운영체제를 사용하는 사람들에게는 익숙한 편이지만 Windows 사용자에게는 생소할 수 있죠. 오피스 프로그램은 PC를 사용하면서 한 번쯤은 사용하게되는 흔한 프로그램이지만 개인이 Microsoft 365 Office, 한글과컴퓨터 한컴오피스를 구매해 사용하기엔 가격이 부담스럽습니다.(각각 가정용 기준 179,000원, 63,800원) 그래서 불법 다운로드나 불법…
Windbg C++ 예외(0xe06d7363) 정보 얻기
0xE06D7363 ? 평소 Windbg 를 통해 메모리 덤프를 분석하다보면, 가끔씩 ExceptionCode: e06d7363 (C++ EH exception)을 만나볼 수 있습니다. e06d7363은 Visual C++ 컴파일러가 C++ 예외에 사용하는 예외 코드입니다. 따라서 프로그램이 C++ 예외로 인해 종료되었을 때, 이 코드와 함께 메모리 덤프가 남게 됩니다. 이 경우에는 e06d7363 이라는 예외 코드 외에는 별다른 정보가…
SQLite 데이터베이스 C/C++에서 사용하기 2: 심화 (번역)
SQLite 데이터베이스 심화편 SQLite 데이터베이스 C/C++에서 사용하기 시리즈의 이전 편에서는 기본적인 내용에 대해서 알아봤습니다. SQLite 툴의 사용법과 C 코드로 쿼리를 실행하는 방법 정도만 알아도 사용하는데 큰 문제는 없죠. 이번 편은 약간 심화적인 부분에 대해서 다룹니다. 정확히는 이미지같은 Blob(Binary Large OBject)을 다루는 방법, 메타데이터, 트랜잭션에 대한 내용입니다. 바로 시작합니다. 이미지 데이터…
SQLite 데이터베이스 C/C++에서 사용하기 1: 기본 (번역)
SQLite 는 관계형 데이터베이스 엔진입니다. 개발자는 SQLite 를 자급자족하는, 서버도 필요 없고, 설정도 필요없는 트랜잭셔널 SQL 데이터베이스 엔진이라고 표현합니다. 지금은 전세계에 수십 수백만 개가 사용되고 있을 정도로 유명하죠. SQLite 는 Solaris 10, Mac OS, 안드로이드, 아이폰에도 사용됩니다. Qt4 라이브러리도 파이썬, PHP 와 함께 SQLite 를 내부적으로 지원하죠. 또 파이어폭스, 구글 크롬 등의 아주 유명한 애플리케이션들도 내부적으로 SQLite 를 사용하고 있습니다. 대단하죠!?