2009년, 소프트웨어 아키텍트가 반드시 알아야 할 10가지 주제

Posted on tzara.wordpress.com

회사 게시판에 적었던 글.

내 생각이라 적은 부분도 사실 관련 글들 읽으며 거기 나온 키워드들 서로 연결해보는 정도지 제대로 이해못한 내용 대부분이지만 그냥 이런 연관 그림 그려보는 것도 나름 재미있는 짓이라 …

*****
우리랑은 좀 먼 기술들이라 여기지만 어제 누구랑 얘기하다보니 이 주제들 재미있어하는 분들 있을 수 있겠다 싶어 좀 지난 기사이지만 소개드립니다.

원문 : 10 Must-Know Topics for Software Architects in 2009

이 글 쓴 Dion Hinchcliffe 는 Web 2.0 관련 전문가로 Web 2.0 관련 글들에 삽입된 이미지들 잘 살펴보면 이 사람 이름 수시로 볼 수 있을겁니다. 각설하고 원문 중 10개 토픽만 발췌해봤습니다.

  1. Cloud Computing
  2. Non-relational databases
  3. Next-generation distributed computing
  4. Web-Oriented Architecture (WOA)
  5. Mashups
  6. Open Supply Chains via APIs
  7. Dynamic Languages
  8. Social computing
  9. Crowdsourcing and peer production architectures
  10. New Application Models

이미 알고 있던 것도 있고 좀 생소한 토픽도 있을텐데 저도 잘 모르지만 ‘Non-relational databases(이하 N-R DB)’을 중심으로 조금만 얘기해보도록 하겠습니다.

RDBMS 이전에도 N-R DB 있었으니 이것도 Next-generation N-R DB라고 했어야지 않나 싶은데 아무튼 여기서 언급한 것은 요즘 ‘document-oriented DB’, ‘분산 DB’ 등으로 알려진 기술입니다. N-R DB 구현 방식으로 현재 가장 대표적이며 일반적인 것이 Key/Value 저장 방식인데 자바의 Hashmap, 루비나 파이썬의 Dictionary 등을 연상해보면 될겁니다. 좀 더 고급 개발자라면 저는 잘 모르지만 B-Tree 등의 알고리즘과 연관지어 상상해봐도 될 듯 하고요.

좀 이해하기 쉽게 Key/Value 방식의 DB 어떻게 작동될 수 있을런지 (과격할 정도로)단순하게 얘기하자면 RDBMS 는 데이타를 레코드라는 구조적인 형태로 다루는 것에 비해 N-R DB 는 일련의 데이타를 Key/Value 로 잘게 찢어 다루므로 잘게 찢어놓은 놈들을 적당한 기준에 따라 네트웍으로 연결된 컴퓨터들로 분산시켜서 연산하게끔 한 뒤 그 결과를 효과적으로 다시 하나의 컴퓨터로 끌어모아 사용자에게 보여주는 (구글이 공개해서 유명해진) MapReduce 라는 Next-generation distributed computing 의 대표적인 알고리즘과 아주 궁합이 잘 맞게 되겠죠. (위 소개 문서 보면 Hadoop 이라는 기술이 언급되어 있는데 이게 MapReduce 기술을 이용한 분산 컴퓨팅 관련된 오픈소스며 이 기술 위에서 돌아가는 N-R DB 로 HBase 란 것도 있습니다 )

이와 같이 그림 그려보면 위 토픽 중 1, 2, 3 은 서로 아주 밀접한 관계에 있음을 알 수 있죠. 즉, 각각의 개념을 이해하는데 서로 다른 토픽의 지식이 많은 도움이 될 수 있을 것이므로 관련 주제들 혹 공부해볼 량이면 그런 점들 고려해보시면 좋을 듯 싶네요. 사실 좀 더 나아간다면 N-R DB 중 많은 제품(가령 CouchDB 나 Amazon 의 Simple DB 등)이 데이타 처리 결과를 RESTful 한 방식으로 사용 가능하게끔 설계되어 있다하므로 4의 WOA 와도 연결되는 부분있으며 RDBMS 의 데이타 저장 방식에 비해 Key/Value 방식이 Semantic Web 의 핵심 개념과 훨씬 잘 어울린다 하므로 10번의 ‘New Application Models’ 과도 한 다리 걸칠 수 있을겁니다.

그냥 토픽들 보며 꼬리에 꼬리를 무는 상상해보는 정도가 제 즐거움의 끝이고 더 깊이 들어갈 엄두는 나지 않는군요 ㅎ. 더 상세한 내용들 알고 싶으신 분들은 원문 글 중 링크걸린 글들까지 좀 더 섭렵해보시기 바랍니다. 특히 N-R DB 관련해서는 원문 중에도 소개한 기사(Is the Relational Database Doomed?) 참조하시고 그리고 덤으로 좀 된 거지만 Hadoop 관련 간단한 슬라이드 하나 덧붙입니다.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s