목록아키텍처 (6)
행복한 아빠
우리는 꿈에서 한국말을 사용합니다. 그리고 생각을 하더라도 한국말을 이용하여 생각합니다. 물론 영어권에 사는 사람들은 영어로 꿈을 꾸고 영어로 사고를 하겠지요. 문화의 특성 때문에 각 나라에서 사용하는 언어가 표현할 수 있는 정도는 매우 다양합니다. 예를 들면 에스키모가 표현하는 "눈(雪)"은 수십가지가 됩니다. 우리가 눈에 대해 상상할 수 있는 것과 에스키모인이 눈에 대해 상상할 수 있는 것은 그 차이가 크겠지요. 마찬가지로 우리가 사용하는 기술이 가능성을 제한합니다. 물론 자기가 잘 알고 있는 기술로 안되는 것 없습니다. 다만 시간이 좀 걸리고 비용이 올라가는 것일 뿐이죠. 간단한 아키텍처 vs 복잡한 아키텍처? 이 글은 제가 제품을 개발하면서 느낀 부분이고 새로운 서비스를 만드는 것을 가정하고 쓴 ..
아키텍트는 비즈니스 목표에 맞는 시스템 얼개를 만들기 위해 기술과 관련된 수많은 의사결정을 하는 사람입니다. 이해관계자 사이에서 정당성(rightness), 타당성(rational)을 바탕으로 이해관계를 조율하고 설득해야 하는 올바른 "정치"를 해야 합니다. (제가 학교에서 배운 '정치'는 나쁜 개념이 아니었습니다.) 반면 회사의 제품 영업담당자는 효과적인 마케팅과 판매활동을 통해 이윤을 창출해야 하는 "경제"적인 역할을 담당합니다. 맨발로 지내온 아프리카 원주민에게 구두를 팔고, 에스키모 인에게 냉장고를 파는 영업인에게 '사기 쳤다'고 이야기 하지는 않습니다. 오히려 새로운 시장을 개척했다고 합니다. 그런데 우리 세계에서 이 두 역할의 이해관계가 맞아버리면 문제가 발생합니다. (이미지출처) 신참 때 경..
아키텍트는 흔히 고객(甲)의 비즈니스 목표를 이루어주기 위한 최적의 아키텍처를 만든다고 착각하는 경우가 있습니다. 나도 역시 내 역할에 충실하게 일한다고 생각하고 이런 착각에 빠진 경우가 많습니다. 몇 일전 실력있는 고객과 이런 저런 이야기를 나누고 느낀 점이 있어 글을 올려봅니다. 고객(甲)과 수행업체(乙)의 대화입니다. 괄호는 혼자말입니다. ^^ 乙: 우리 프레임워크를 사용하면 생산력 끝내줍니다. 甲: 다른 업체가 그 프레임워크를 사용하게 되어도 동일한가요? 乙: 음 얼마간의 교육이 필요하겠죠. 甲: 우리가 인수인계받아서 사용해도 생산력 좋겠죠? 乙: 마찬가지입니다. 정기적인 교육이 필요합니다. 게다가 무료입니다. 얼마나 좋아요. 甲: 우리는 다른 것도 써야 하고 업무도 해야 하니 학습곡선도 고려해 ..
아키텍트는 비즈니스 목표(요구사항)를 정의하는 고객(또는 경영진)과 이를 실현하기 위해 실제로 일하는 개발자 사이의 가교역할을 해야합니다. 따라서 아키텍트는 두 가지 언어로 대화해야 합니다. 고객과 비즈니스 용어로 이야기해야하고 그리고 개발자와는 그들의 용어로 이야기해야 합니다. 흔히 아키텍트 경력을 가지면 고객과의 의사소통이 중요하다는 것을 누구나 알고 있습니다. (실천을 안 할 뿐이지..) 그러나 경력이 있는 아키텍트가 놓치는 부분이 개발자와의 의사소통 방법입니다. 내공 흔히 개발자 사이에는 내공이라는게 존재합니다. 개발자 사이에서 사용하는 도구를 능숙하게 다루거나 코딩을 뷰티풀하게 작성하거나 어려운 문제나 버그를 해결하면 보이지 않는 존경심을 갖게 됩니다. 인정하는 거죠. 그 반대로 제대로 하지 못..
오랜만에 아키텍처 이야기를 하게됩니다. 요즘 제품 릴리즈 일정이 얼마 남지 않고 새로운 모듈을 위한 아키텍처 잡는데 정신이 없다가 내가 지금 잘하고 있는지 뒤돌아 볼 기회가 생겼습니다. 아키텍처에 대한 조금은 낭만적인(?) 이야기가 될 것 같네요. 뭐 이렇게 되면 좋겠다만... 이미지출처 사람을 위한 아키텍처 소프트웨어 아키텍처는 소프트웨어를 이용하여 목적하는 바를 이루도록 소프트웨어 얼개를 잘 구성하는 일입니다. 특히 품질을 많이 강조하는데 좀 더 넓게 볼 필요가 있을 것 같습니다. 먼저 소프트웨어를 사용하는 사람들, 즉 사용자를 위한 소프트웨어 아키텍처가 되어야 합니다. 멋지게 보이는 다단계 계층이나 기업 서비스 버스 같은 것으로 인해 사용자가 불편을 느끼면 뭔가 이상하게 흘러가는 것이 되겠죠. 아키..
소프트웨어 아키텍처를 이야기하다보면 건축에서 이야기하는 아키텍처를 메타포로 삼았다는 것을 알 수 있습니다. 특히 아키텍처를 이야기할 때 패턴을 빼 놓을 수 없는데 패턴 언어를 만든 크리스토퍼 알렉산더는 패턴을 공부한 사람이나 아키텍트는 모두 알고 있을 겁니다. 패턴언어 알렉산더는 캠브릿지 대학에서 화학, 물리학, 수학을 공부하고 하버드에서 건축으로 박사학위를 받고 MIT에서 전산학, 교통이론을 하버드에서 인지학 연구를 한 천재로 불리는 사람입니다. 이 사람은 건축에서 자주 발생하는 문제상황과 그에 대한 해결책을 패턴으로 정리하고 각 패턴에 이름을 붙여 패턴언어라는 것을 만들었습니다. 소프트웨어에서의 대표적인 디자인 패턴인 GoF도 이 패턴 언어의 영향을 받았습니다. 물론 소프트웨어에서는켄트 벡이 선두주자..