의존성 주입에 대한 오해와 실수들

의존성 주입 Dependency Injection 객체 지향 프로그래밍을 하다 보면, 의존성 주입을 자주 사용하게 됩니다. 의존성 주입이 무엇인지 설명하기 전에, 첫 번째 오해를 먼저 소개합니다. 오해 1: 의존성 주입은 배워야 쓸 수 있다? 의존성 주입이라는 모호한 이름과, 의존성 주입을 사용하면 이러이러한 것이 좋다! 하는 설명들 때문에…

객체지향, 테스트에 관련된 정말 좋은 글 소개

인터넷의 숨겨진 보물들 이리 저리 웹 서핑을 하면서 여러 글을 읽다보면, 우연히 정말 멋진 보물들을 발견하곤 합니다. 얼마 전 웹 서핑을 하다가 발견한 멋진 글을 소개합니다. 객체지향의 여러 특징들과 테스트 가능성에 대해 너무나 잘 설명해주고 있습니다. 정진욱님(Github 프로필)의 블로그 글입니다. 2016~2017년에 걸쳐 작성된 글인데요. 더…

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

*이 포스트는 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)을 다루는 방법, 메타데이터, 트랜잭션에 대한…