분류 전체보기
프레임워크 만능주의
프레임워크 만능주의
2023.10.15지금, 이 순간 당신이 처음부터 다시 시작해서 개발자가 된다고 상상해보자. 열정이 넘치고 똑똑한 당신이라면 무엇부터 어떻게 시작할까? 평소 컴퓨터에 관심이 많고 관련 정보를 일부러 찾아 읽는 수준이라면, 프론트엔드는 React, 백엔드는 Spring이 대세라는 정도는 알고 있을 것이다. 물론 여전히 프레임워크가 무엇인지조차 정확히는 모르겠지만, 나름대로 깊이 고민한 끝에 프론트엔드 개발자로서의 길을 선택하고 React부터 차근차근 알아가 보기로 결심한다. React에 대한 첫인상은 그리 나쁘지 않다. 파이썬으로 기본적인 알고리즘을 몇 번 공부해본게 전부라 두려움도 있었지만, 그러나 프레임워크 자체는 생각보다 복잡하지 않다. 무엇보다 개발한 결과물이 즉시 화면에 표시되면서 개발하는 맛을 느낀다. 개발이 재..
소프트웨어 개발의 본질에 대하여
소프트웨어 개발의 본질에 대하여
2023.09.29소프트웨어 개발이 창조의 영역이라면 도로시 세이어즈의 관점에 따라 (1) 개념적 구조의 형성 (2) 실제 표현 수단으로 구현 (3) 실사용자와의 상호작용으로 이뤄질 것이다. 이 중 소프트웨어 개발자의 주된 업무는 (1)에 해당하는 현실 세계 문제를 해결하기 위해 소프트웨어 차원의 개념적 구조를 모델링하는 일과 (2)에 해당하는 프로그래밍 언어, 프레임워크, 인프라와 같은 기술적 요소를 사용해 모델링한 개념적 구조를 컴퓨터 시스템으로 구현하는 일이다. 나는 (1)에 해당하는 개념적 구조의 모델링을 소프트웨어 개발의 본질적인 부분으로 (2)에 해당하는 개념적 구조의 구현을 소프트웨어 개발의 부수적인 부분으로 나누고, 소프트웨어 개발이 어려운 이유는 본질적인 부분 때문임을 명확하게 하고자 한다. 개념적 구조의..
[개발자의 서재] 만들면서 배우는 클린 아키텍처
[개발자의 서재] 만들면서 배우는 클린 아키텍처
2023.09.28로버트 마틴의 를 읽었는가? 도메인 주도 설계에 흥미가 생겼는가? 헥사고날 아키텍처를 프로젝트에 적용해 보고 싶은가? 그렇다면 이 책이 도움이 될 것이다. 톰 홈버그의 는 조금은 추상적인 개념일 수 있는 클린 아키텍처(혹은 헥사고날 아키텍처)를 어떻게 구현해야 할지에 대한 구체적인 방법들을 제안한다. 단순히 구현 코드 예제를 제시할 뿐만 아니라 구현하면서 고민해 봐야 할 지점들을 공유하고 저자의 경험에서 도출한 의견을 피력한다. 이러한 내용은 실제로 클린 아키텍처를 도입해 보고 싶은 사람들에게 많은 도움이 될 것이라 확신한다. 와 다른점은? 로버트 마틴의 가 클린 아키텍처에 대한 개요를 설명한다면 이 책은 클린 아키텍처의 디테일 적 측면을다룬다고 볼 수 있다. 조금 재밌는 점은 저자가 를 완전히 받아들이..
[개발자의 서재] 현대 물리학과 동양사상 - 경계를 넘어선 의미 찾기
[개발자의 서재] 현대 물리학과 동양사상 - 경계를 넘어선 의미 찾기
2023.09.20이번 작품은 프리초프 카프라의 이다. 정말 하나도 관계없어 보이는 현대 물리학과 동양사상이 왜 하나의 제목에서 만났을까? 그리고 개발자인 나는 왜 이 책을 읽었을까? 현대 물리학은 무엇인가? 책이 출판된 1975년 기준으로 보면 상대성 이론과 양자역학 2가지로 설명할 수 있으며 주로 서구사회에서 발전했다. 동양사상은 무엇인가? 도교, 불교, 힌두교 등으로 대표되며 다소 종교적이며 철학적인 학문으로 동양 사회에서 발전했다. 실제로도 둘은 관계가 전혀 없으며 오히려 극단 점에 있다고 해도 과언이 아닐 것이다. 그렇다면 개발은 어떠한가? 둘과 유사성이 있는가? 당연하게도 없어 보인다. 이쯤에서 책 앞부분에 등장하는 하이젠베르크의 말을 경청해 보자. 인류의 사상사에 있어서 , 두개의 다른 사상의 조류가 만나는 ..
[개발자의 서재] 객체지향의 사실과 오해 - 이제는 객체지향을 알아야 할 때
[개발자의 서재] 객체지향의 사실과 오해 - 이제는 객체지향을 알아야 할 때
2023.09.20객체지향 프로그래밍이란 도대체 뭘까? 우리 분야에서 이만큼 정의가 갈리는 주제도 없다. 실제로 주변 동료들에게 객체지향 프로그래밍이 무엇인지 한번 물어봐 봐라. 정말 다양한 답이 나올 것이다. 그리고 그중 대부분은 우리가 흔히 알고 있는 객체지향의 오해로부터 나온다. 우리 중 더 이상 객체지향을 하지 않는 사람은 없지만, 객체지향에 대해서 제대로 알고 있는 사람은 과연 얼마나 될까? 그렇다면 책 를 읽으면 객체지향이 무엇인지 제대로 알 수 있는가? 안타깝게도 그렇지 않다. 그렇지만 적어도 객체지향에 대한 많은 오해들, 잘못된 부분들을 바로잡고, 객체지향이 무엇인지 올바르게 생각할 수 있는 토대를 마련할 수 있다. 먼저 이야기하지만, 국내 도서 중 이만한 책이 없다. 이 책은 정말 누구나 읽을 수 있을 정..
[개발자의 서재] 싯다르타 - 영원한 방랑자
[개발자의 서재] 싯다르타 - 영원한 방랑자
2023.09.14이번 작품은 으로 유명한 헤르만 헤세의 다. 헤르만 헤세의 작품에 가장 큰 특징은 그의 작품에서 일관적으로 등장하는 ‘단일성(Einheit)’이다. 인간의 다양성, 갈등, 양면성이 ‘단일성’으로 귀결되는 그의 독특한 깨달음은 그의 작품에서 일관적으로 등장하며 핵심을 이룬다. 1919년에 출간된 에서는 단일성의 인지를, 1922년에 출간된 에게서는 단일성의 완성을, 이후 그의 후기 작품인 1943년에 출간된 에서는 단일성의 해체를 작품에 담았다. 이러한 변화는 자신과 세상의 갈등 속에서 평화를 찾고자 하는 헤세의 끊임없는 시도라고 볼 수 있다. 단일성 그렇다면 단일성은 무엇일까? 내 나름의 해답을 적어보겠다. 세상의 모든 것은 다양성, 양면성을 가지고 있다. 쉽게 인간은 나쁜 것도 생각할 수 있고, 좋은 ..
[개발자의 서재] 클린 아키텍처 - 클린 아키텍처란 무엇인가?
[개발자의 서재] 클린 아키텍처 - 클린 아키텍처란 무엇인가?
2023.09.12이번에 리뷰할 책은 너무나도 유명한 로버트 마틴의 다. 로버트 마틴의 책은 왜 이렇게 인기가 많을까? 내 생각에 로버트 마틴 책의 가장 큰 장점은 ‘명쾌함’이다. 복잡한 문제를 단순하게 해결한다. 그 해결책이 피상적이지 않고 누구나 적용가능하며 실용적이다. 저자의 오랜 경험에서 나온 통찰 없이는 불가능한 일이다. 이 책 는 그런 로버트 마틴의 ‘명쾌함’이 가장 잘 드러난 책이다. 소프트웨어 아키텍처라는 복잡한 주제를 로버트 마틴 특유의 단순함으로 해결한다. 실로 명쾌하지 않을 수 없다. 소프트웨어 아키텍처 혹은 설계에 어려움을 느끼거나, 입문하려는 사람, 실무에 적용 가능한 강력한 원칙을 가지고 싶은 사람은 이 책이 도움일 될 것이다. 약간의 사견을 이야기해 보면 로버트 마틴의 책은 현대 소프트웨어를 설..
[개발 이야기] 다 빈치의 수태고지와 도메인 주도 설계(Domain-Driven Design)
[개발 이야기] 다 빈치의 수태고지와 도메인 주도 설계(Domain-Driven Design)
2023.09.03이탈리아 피렌체에 시뇨리아 광장에 가면 우피치 미술관이 있다. 르네상스 시대의 메디치 가문의 연출가였던 조르조 바사리가 설계했다. 빡빡한 도리아식 열주에서 절대주의 건축의 질서감이 느껴지는 공간이다. 이곳에는 레오나르도 다 빈치의 가 전시되어 있다. 는 서양 회화의 고전 주제로 예수의 잉태를 알리는 천사와 놀라는 마리아의 모습을 담고 있다. 섬세한 표정과 부드러운 채색, 밀도 있는 구도가 인상적인 그림이다. 가봤냐고? 물론 사진으로 봤다. 그런데 가면 보면 그림이 좀 이상하다. ‘원근법(perspective)’이 완전 엉망이다. 마리아의 오른팔이 왼팔에 비해 너무 길어 보이며, 마리아와 책상 사이의 거리는 부자연스럽게 멀리 떨어져 있다. 더 심각한 건 마리아의 뒤쪽 벽돌이다. 다시 한번 자세히 보자. 벽..
[개발자의 서재] 도메인 주도 설계 첫걸음 - 도메인 주도 설계란 무엇인가?
[개발자의 서재] 도메인 주도 설계 첫걸음 - 도메인 주도 설계란 무엇인가?
2023.08.31도메인 주도 설계에 입문하는 가장 친절한 방법도메인 주도 설계를 들어는 봤는데 정확히 뭔지 모르겠거나, 대충 개념은 훑었는데 이걸 왜 쓰는지 모르겠는가? 그렇다면 도메인 주도 설계에 입문하기 아주 적절한 책이 있다. 이 책은 매우 친절하다. 다소 모호할 수 있는 도메인 주도 설계의 개념을 저자의 경험과 비결을 담아 명확하게 설명한다. 충분한 사례와 코드 예제를 수록해 이해에 부족함이 없도록 했다. 또한 이론만 담는 것이 아니라 어떻게 실무에 적용할 수 있는지에 대한 저자의 조언은 이 책의 가장 큰 장점이다. 그러면서도 이 책은 충분하다. 첫걸음이라는 제목이 붙었지만, 책에서 다루는 내용이 절대 가볍지 않다. 도메인 주도 설계의 입문을 넘어 정복하기에 필요한 모든 개념과 충분한 깊이를 다루는 책이다. “도..
[개발자의 서재] Extreme Programming Explained : 변화를 포용하라
[개발자의 서재] Extreme Programming Explained : 변화를 포용하라
2023.08.26특정 분야에서 현재까지 가장 큰 영향을 미친 단 하나의 책을 뽑아야 한다면 어떻게 될까? 모르긴 몰라도 대부분 분야에서 수많은 논쟁이 오갈 것이다. 철학과 인문학 분야에서는 서로 죽일 듯이 덤빌지도 모른다. 하지만 소프트웨어 분야는 간단하다. 바로 이 책 익스트림 프로그래밍이다. 물론 내 생각이다. 이 책은 소프트웨어 분야에서 우리 시대의 패러다임을 이끌었고 이끌고 있다. 1999년 초판이 나온 지 25년이 지났지만 내 생각에 우리는 아직도 이 책에서 한 발짝도 더 나아가지 못했다. 또한 이 책은 지금껏 내가 읽었던 어떤 프로그래밍 관련 도서보다도 인간적이고 진심 어린 책이다. 이 책의 저자 켄트가 얼마나 프로그래밍의 본질을 잘 이해하고 있는지 알 수 있는 대목이다. 말 그대로 극단이다 Extreme P..