애자일의 몰락과 소프트웨어 장인정신의 비극

*이 포스트는 Robert C. Martin 님의 허락을 받아 blog.cleancoder.com 의 글“The Tragedy of Craftsmanship.“를 번역한 것입니다. 저작권에 유의하시기 바랍니다. 원문에 대한 설명 (역자주) 이 글은 클린 코드의 저자로 유명한 Robert C. Martin 님이, 리팩토링의 저자로 유명한 Martin Fowler 님의 2018년 애자일 오스트레일리아 키노트 발표의 내용을…

객체지향 5원칙 (SOLID)은 구시대의 유물 ?

*이 포스트는 Robert C. Martin 님의 허락을 받아 blog.cleancoder.com 의 글“Solid Relevance“를 번역한 것입니다. 저작권에 유의하시기 바랍니다. 서론 얼마 전 누군가의 고민이 담긴 메일을 받았습니다. 이런 내용이었죠: 오랫동안 객체지향 5원칙, SOLID principle에 대한 이해도는 저희 채용 프로세스에서 중요한 부분을 차지하고 있습니다. 지원자가 원칙들을 잘 이해하고…

이상적인 객체지향 if else switch 조건문?

*이 포스트는 Robert C. Martin 님의 허락을 받아 blog.cleancoder.com 의 글 “if-else-switch“를 번역한 것입니다. 저작권에 유의하시기 바랍니다. 서론 얼마 전 누가 트위터에 올린 글이 있습니다. 아래 PHP 코드 스타일 중에 어떤 것이 최고냐, 아니면 혹시 더 좋은 스타일이 있냐 하는 질문이였죠. 그래서 저는 아래처럼 암호문같은…

학교 도움 없이 비전공자 개발자가 되는 방법

개발자가 되는 데는 돈이 필요없다? 그렇습니다. 열정만 있다면 돈은 전혀 필요가 없습니다. 개발자들은 가지고있는 지식들을 전부 인터넷에 풀어놓기 때문입니다. 그것도 스스로, 아주 적극적으로요. 정보 공유가 가지는 힘을 다들 알고 있기 때문입니다. 그렇기 때문에 좋은 정보들을 잘 찾아내는 능력만 기른다면, 누구든 좋은 개발자가 될 수 있습니다….

함수형 프로그래밍 vs 객체지향 프로그래밍

*이 포스트는 Robert C. Martin 님의 허락을 받아 blog.cleancoder.com 의 글 “FP vs. OO“을 번역한 것입니다. 저작권에 유의하시기 바랍니다. 서론 지난 몇 년간 저는, 함수형 프로그래밍을 배우면서 “음.. 그건 너무 객체지향인데요.”라는 식으로 객체지향 프로그래밍에 반감을 표현하는 사람들을 봐왔습니다. 왜인지는 몰라도 함수형 프로그래밍과 객체지향 프로그래밍이 상호…

알고리즘 문제를 잘 풀면 뛰어난 개발자일까?

뛰어난 개발자는 문제도 잘 푼다 결론부터 말하자면, “알고리즘 문제를 잘 풀면 뛰어난 개발자일까?”의 답은 “아니오.”입니다. 하지만 뛰어난 개발자는 당연히 알고리즘 문제도 잘 풉니다. 오잉? 같은 이야기를 조금 더 자극적으로 표현해보겠습니다. 문제풀이를 잘 하지 못하면 뛰어난 개발자가 될 수 없다. 뛰어난 개발자 중에 문제풀이를 잘 못하는…

SQLite 데이터베이스를 10배 빠르게 만드는 방법들

SQLite 데이터베이스를 사용하다보면, 데이터가 많을 경우 처리 속도가 만족스럽지 못한 경우가 생길 수 있습니다. 그럴 때에는 무작정 다른 종류의 데이터베이스를 찾아보거나 다른 기술을 도입하려고 하기보다는, SQLite 데이터베이스를 사용하는 코드를 최적화해볼 필요가 있죠. 그럼 아래에 적용해볼 수 있는 방법들을 정리해보겠습니다. 예제 코드는 SQLite C Library를 기준으로…

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 를 사용하고 있습니다. 대단하죠!?

C++ Named Constructor Idiom: 이름을 가진 생성자?

Named Constructor Idiom? 다들 아시다시피 C++의 생성자는 특별한 이름을 가질 수 없습니다. 그런데 가끔씩 가독성을 위해서 Self-descriptive한 이름의 생성자를 만들고 싶을 때가 있습니다. 아니면, 문법적 한계 때문에 꼭 필요한 경우도 생각해볼 수 있죠. 이럴 때 사용할 수 있는 것이 Named constructor idiom 입니다. 첫 번째…