태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'2010/01'에 해당되는 글 5건

  1. 2010/01/25 웹기획자는 무엇을 하는 사람일까요? - 개발에서의 웹기획자 역할
  2. 2010/01/20 Entity Framework 에 대한 변론 (4)
  3. 2010/01/12 인포메이션 아키텍처 - Information Architecture
  4. 2010/01/06 우리 할머니에게 웹사이트 개발 방법 가르쳐 주기 - 웹 개발자가 하는 일 (10)
  5. 2010/01/02 테크놀로지의 종말 - 테크놀로지의 자연 선택을 밝히다.

웹기획자는 무엇을 하는 사람일까요? - 개발에서의 웹기획자 역할

Human Information Interaction 2010/01/25 11:01
웹기획자는 무엇을 하는 사람이고 어떤 결과물을 내놓아야 할까요?

이번에는 웹개발자의 역할에 이어 웹기획자의 역할을 포스팅 합니다.


정확히 말해서 개발 세상에서 '웹기획자'라는 직분은 모호합니다.

고객의 요구사항과 개발에 대한 모든 것을 모든 개발자가 알고 개발을 하면 이상적이겠죠. 
하지만, 개발 도메인 자체가 너무 큰 이유로 이상대로 한다면 개발자들은 커뮤니케이션만 하다가 프로덕트는 나오지 않고 볼짱 다보고, 회사는 문을 닫겠죠.  국민들 모두가 직접 정치를 하는 것과 같습니다.

  그래서 시니어 개발자(경험/경력이 있는 선임 개발자)가 전략 및 요구사항 분석에 참여 하여 개발의 큰 틀을 짜는 역할을 합니다. 개발이 진행 되는 동안 이해 관계자들과 지속적인 커뮤니케이션을 통해 개발을 보정(수정)하고 개발 진행을 지휘하게 됩니다. 간과 하지 말아야 하는 것은 이 일을 하면 능력의 대부분을 커뮤니케이션 하는데 보내야 한다는 것입니다. 이런 역할을 소프트웨어 엔지니어링에서는 '소프트웨어 아키텍트'라고 하죠.

'웹기획자'의 대두
이 과정에서 '웹기획자'라는 역할이 대두 됩니다. 개발자는 기술적인 부분을 전문화 하도록 뇌가 프로그램 되어 있습니다. 개발 세상의 전략이 아닌 실세계의 전략을 세우는 사람이 필요해 지는 것입니다.
 
프로젝트의 목표를 달성 , 개발자가 개발 할 수 있도록 
1. 개발로 번역 가능한 언어로된 문서를 작성 할 줄 아는
2. 실세계의 전략을 세울 수 있는
3. 개발 이외의 세상과의 대화능력을 가지고 있는
4. 프로덕트를 부드럽게 완성시키는데 조율 능력을 가지고 있는.

 개발 이외의 전문적으로 그 일들을 할 수 있는 그런 역할이 필요하게 된겁니다. 
- 마틴 파울러의 [소트웍스 앤솔러지]에서 '반복관리자'라고 표현하고 있는 역할이 이와 비슷하다고 말할 수 있습니다.


이런 역할을 하는 사람을  개발 세상에서는 "웹 기획자"라는 명함을 박아 줬습니다.


또는, 대한민국에서 '소프트웨어 아키텍트'를 거세하고 '개발자(Developer)'만을 남겨두고 '소프트웨어 아키텍트'의 역할을 '웹 기획자'에게 주었습니다. 그럼 "소프트웨어 아키텍트" ≒ "웹 기획자"의 개발 역할이 무엇일까요.

물론, 소프트웨어 아키텍트가 존재하고 논리적인 전략 차원에서 기획자가 존재하는 회사가 존재할 수도 있습니다.

하지만, 개발자가 기획요소에 참여하는 것을 월권으로 여기고, 코딩 이외의 일(도메인 분석, 아키텍처, 소프트웨어 디자인)을 하는 것은 놀고 있다는 시각을 인정한다고 가정하고, 그럼 웹기획자 ≒ 소프트웨어 아키텍트 의 역할이 무었인가 입니다.

제대로 된 프로덕트가 나오기 위한 개발 TASK를 폭포수(waterfall)방식으로 살펴 본 후 웹기획자의 역할을 말하겠습니다.


개발 TASK 폭포수
1.프로덕트가 달성해야 하는 비지니스 목표와 전략을 도출 합니다.
2. 고객의 요구사항을 분석합니다. Requirements Analysis
3. Use Case를 도출 합니다.
4. 1~3을 만족 시키기 위한 IA를 설계합니다.(인포메이션 아키텍처, UI, UX)
5. 1~4를 만족시키기 위한  플렛폼, 언어를 선택합니다. 또는 1~4의 과정 동안 잠재적인 플렛폼과 언어는 선택되어 있습니다.
6. 오브젝트 모델링, 데이터 모델링을 합니다.
7. Use Case를 구현 합니다.
8. 프로덕트를 릴리즈 합니다.
9. 1~8을 반복합니다.



웹 기획자 ≒ 소프트웨어 아키텍트 역할에게는 어떤 산출물을 기대하나
1~4 까지의 산출물을 내놓아야 합니다.
1. 프로덕트가 달성 해야 할 비지니스 목표와 전략, 컨셉 문서
2. 요구사항 명세서 ( Software Requirements Specification, SRS) : SRS 위키
     1) 고객 요구사항
     2) 기능 요구사항
     3) 비기능 요구사항
     4) 성능 요구사항
     5) 디자인 요구사항
     6) 파생 요구사항
     7) 배치 또는 구성 요구사항

시스템 공학소프트웨어 공학 분야에서 요구사항 분석은 수혜자 또는 사용자와 같은 다양한 이해관계자의 상충할 수도 있는 요구사항을 고려하여 새로운 또는 변경된 제품에 부합하는 요구와 조건을 결정하는 것과 같은 업무를 포함한다.

체계적인 요구사항 분석은 요구사항 공학으로도 알려져 있다. 이것은 요구사항 수집, 요구사항 획득, 또는 요구사항 명세로도 가끔 부정확하게 언급된다.

요구사항 분석은 개발 과제의 성공에 결정적이다. 식별된 업무의 필요성과 기회와 관련하여 실행 가능하며, 측정 가능하고, 시험 가능하며 시스템 설계를 위해 충분히 상세한 수준까지 정의되어야 한다.
출처 : Wikipedia


3. Use Case 명세서
시스템에서 '누가' '무엇'을 할 수 있는지 , 행위, 룰, 결과물을 기술 하는 것 입니다.

1) Use Case 이름
2) 버전
3) 목적
4) 요약
5) 행위자 (사람, 시스템 또는 디바이스)
6)  이해 관계 계층 - 요구 사항  끼리의 연관 계층
7) 트리거
8) Basic course of Event - 최소한 하나의 주 시나리오
9)  대안 패쓰
10) Postcondition : Use Case가 달성 해야 할 출력
11) 비지니스 룰 : Use Case가 준수 해야 하는 비지니스 규칙, 도메인 내에서 Use Case끼리 상충 되지 않도록 해야 함.
12) Notes
13) 작성자 , 작성일



4. 화면 설계서
사용자가 1~3을 달성 할 수 있도록 통로를 제공하거나 네비게이션 패스, 정보의 구성을 담은 화면 설계서를 의미 합니다. 디자이너는 이 설계서를 기반으로 그래픽 디자인을 수행하고, 개발자는 Use Case 프리젠테이션 레이어를 구성합니다.


실무 개발자는 위의 1~4를 가지고 데이터 모델링을 하고, 프리젠테이션을 구성하고, 유즈케이스에 기술된 기능을 구현합니다. 이 과정이 진행 됨에 따라서 눈에 볼수 있는 프로덕트가 나온게 되는 것이죠.
이제 부터는 개발자가 웹사이트 개발하기 과정: 웹 개발자가 하는 일을 밟아 갑니다.



자! 현실로 돌아와 봅시다.



개발자가 전달 받는 산출물은 어떻습니까?  "1~3이 약간씩 첨가된 [산출물 맛] 4번의 스토리 보드" 입니다.



기획자는 "자 스토리 보드 건넸으니 일정을 주시죠"라고 말을 하죠. 개발자는 "이 기능은 어떻고, 저 기능은 결과가 어떻습니까?" 등등의 수천가지 확인 해야 하는 일이 남아 있습니다.

도저히 뭘 만들고자 기획 했는지 모를 문서를 받아 드는 경우가 많습니다. "좀 더 세부 정의를 해 주세요" 라는 개발자에 요구에, 기획자는 "여기에 그림 다 그려 놨는데 뭘 더 달라는 겁니까?", "뭘 더 줘야 하는지 설명해 보세요!", 개발자는 설명을 위한 설명을 시작합니다.



자! 제가 모든 기획자와 개발자들을 위해 "뭐가" 필요한지 말해 드립니다.

"바로 1~4를 말하는 겁니다. 1~4", 그리고 "부드러운 조율"

위의 과정을 열심히 해도 "소프트웨어 위기 Software Crisis"라는 것이 옵니다. 부정확한 요구사항 분석, 빈번한 요구사항 변경, 구현 실패 등. 위에 언급한 것들이 프로젝트 성공의 "필요조건" 이라는 것이죠. 절대 "충분조건" 이 아닙니다.


싫다 좋다 말씀 마시고, "바로 1~4를 말하는 겁니다. 1~4", 그리고 "부드러운 조율" 입니다.




추신:

"네가 언급한 것 들은 개발자들인 해야 할 일 아니야?" 라고 말씀 하시는 분들도 있으실 겁니다. 개발팀은 코딩 이외에도 위에 언급한 1~4의 작업을 개발을 위해서 , 유지보수를 위해서, 작성합니다. '개발 관점'이라는 것으로 작성됩니다. 귀사에 '소프트웨어 아키텍트'라는 TO가 있습니까?, '소프트웨어 디자이너'라는 TO가 있습니까? 개발팀이 모든 것을 다 해야 한다면, 그럼 님께서 생각하시는 기획자는 뭘 하는 사람인거죠? 


"어느 사이트에 있는 그 기능을 넣어 주세요!"는 고객의 사전에 있는 용어이지, 기획자에게 허락된 용어가 아닙니다.

저작자 표시
이올린에 북마크하기(0) 이올린에 추천하기(0)

현재글 : 웹기획자는 무엇을 하는 사람일까요? - 개발에서의 웹기획자 역할 posted By - 반더빌트 2010/01/25 11:01
Trackback 0 : Comment 0

Trackback Address :: http://smack.kr/trackback/353 관련글 쓰기


[생각을 적어 주세요~ 댓글은 작은 인연의 씨앗입니다.]


Entity Framework 에 대한 변론

.Net/.Net Framework Design Guide Line 2010/01/20 13:41
C-Thinker 님의 많은 포스트를 읽고 매우 상쾌해지는 느낌과 동시에 많은 도움이 되었습니다.

하지만  Entity Framework 4.0 - 아직도 헤메는 MS 라는 포스트는 많은 부분에 동의를 하지 못하였고, 이렇게 EF에 대한 변론(?) 을 하는 포스트를 작성하게 되었습니다.

일단, 포스트 내용을 반박하게 되는 글이 될 것과 C-Thinker님의 글에서 EF에 대한 문제의식을 제대로 집어 내지 못한 것이 포스트를 작성하는 것에 대해 조심 스럽게 만듭니다. 하지만 논쟁을 통해서 서로가 발전할 수 있다는 변증법 사고에 기반을 두고 EF에 대한 저의 의견을 적어 봅니다.


Table Module Pattern 의 개발 모델 문제에 대해 말 해 보도록 하죠.

이상한 모습도 그렇지만 아직도 테이블 기반 (Table Module Pattern) 의 애플리케이션 개발 모델을 버리지 못하고 있는 느낌이다.


우선 EF가 테이블 기반인가? 테이블로 부터 EDM을 생성하므로 테이블 기반이라고 말 할 수 있겠네요. 하지만 마틴 파울러가 말한 Table Module Pattern이냐? 라는 것에는 이견이 있군요. 파울러의 Table Module Pattern은 Data Access Layer를 작성할 때 1:1 테이블로 사상된 일명 DataSet을 통해 작업을 하느냐. 다시 말하면 직접적인 RecordSet을 통하여 작업 하느냐 라고 봅니다.  개발자가 이용하는 관점에서는 EF는 Domain Model 이며, Data Mapper를 구현 할때 Table의 메타 데이터를 이용한다. 라고 볼수  있네요.

매퍼 자체가 매핑을 하기 위해서 Gateway를 이용해야 하는데 Gateway는 Table Data Gateway, Row Data Gateway, Active Record를 사용할 수 있으나,  이것은 매퍼를 구현하는 방법에서의 적절한 것을 선택하는 것의 문제이지 Table을 기반으로 생성된 EDM이 문제일 수는 없다고 봅니다.





ORM과  Persistence Ignorance를 아래의 글로 언급하셨는데

ORM 의 근본 목적이라면 OO (Object Orientation) 프로그램 상에서 생성되고 관리되는 객체들과 관계형 (Relation) 으로 구성된 데이타베이스와의 구조적 차이 (Impedance Mismatch) 를 극복하기 위한 반복되는 코드를 줄이고 어떻게 저장되는 지에 대해서는 상관하지 않겠다 (Persistence Ignorance) 는 관점에 있다고 볼 수 있다.


저는 "ORM 이라는 것은 Object Oriented 객체와 RDBMS와의 임피던스 미스매치(Impedance Mismatch)를 조절하며 데이터 영속화(Data Persistence)를 자동화(Automate) 함으로써 비지니스 로직을 작성하는 개발자에게 Domain Model로 작업하도록 지원해 주는 것이 목표 라는 것"이라고 정리하고 있는데,  artofsoftwaredev님의 의견과 거의 같으면서도 다름이 느껴집니다.


Persistence Ignorance는 Jimmy Nilsson 의 책 Applying Domain-Driven
Design and Patterns: With Examples in C# and .NET (Addison-Wesley Professional, 2006)에서 제시한 용어로써 "keep your domain model decoupled from your persistence layer " 로써 정확한 정의가 모호합니다.

Eric Evans의 DDD 방법론과 마틴 파울러의 생각을 정의해 보자면  "도메인 모델이 저장 장소에 무지하도록 한다." 라고 할 수 있습니다. 저장장소가 인-메모리 가 되었건 , 파일 시스템이 되었건, SQL Server가 되었건 몰라도 영속화를 할 수 있어야 함을 의미 하는 것으로 , "어떻게" 보다는 "어디"에 또는 "무엇"에 영속화 되는가에 관심이 있겠다 말할 수 있습니다.

영속화 매체가 파일 시스템, 또는 오라클이냐, MySql이냐, MS SQL 이냐를 도메인 모델이 인지를 하지 않고 특정 영속화 인터페이스를 사용한다면 영속화 할 수 있다는 개념으로 Repository 패턴을 생각해 볼 수 있습니다.





객체와 테이블이 1:1의 관계이냐?
데이타베이스로 부터 모델을 생성하고 코드만 자동으로 생성을 하지 않은 후, 그 모델에 맞는 객체를 만들어야 한다. 예를 들어 주문 테이블이 있다고 하면 이 테이블로 부터 주문이라는 모델을 만들고 이 주문이라는 모델이 갖고 있는 필드들을 갖고 있는 객체를 만들어야 한다는 얘기다. 여기서 다시 객체와 테이블의 1 : 1 관계를 벗어나지 못한다. 그래도 여기까지는 큰 문제가 없다고 봐 줄 수도 있다. 정작 문제는 이 객체들을 데이타베이스에 넣고 빼는 과정을 자동화 해 주는 ObjectContext 이다.

우선 EF는 상속받아 구현되는 컴플렉스 타입을 지원하며 1:1 관계라는 것 자체가 사실과 다릅니다.
OO의 객체를 영속화 하기 위해서 테이블을 모델링 할 때 상속받아 구현된 모든 객체를 테이블과 1:1로 구현 할 수도 있고, 타입으로 구분하여 상속받아 구현된 모든 객체를 한개의 테이블에 저장할 수도 있습니다. 이 두가지 모두 전략에 따라 적절한 패턴의 선택 문제입니다.




그럼 문제가 된다고 말씀하시는 ObjectContext의 POCO 지원시에 의존성 문제를 볼까요
객체들을 자동으로 생성하지 않았으므로 POCO 를 사용할 경우 ObjectContext 는 어떤 객체들이 어떤 모델들과 어떤 관계를 갖고 있는지 알 수가 없게 된다. 따라서 ObjectContext 를 상속받는 객체를 만들어 사용을 해야 하는데 문제는 각 POCO 객체를 Entity Framework 에서 Entity 로 인식을 하고 처리를 하기 위해 이 POCO 객체타입으로 EntitySet 을 만들어야 한다는 것이다. 다시 말해서 도메인 객체를 데이타 엑세스 레이어에서 알고 있어야 한다는 얘기다. 어라... 이건 뭐가 거꾸로 되도 한참 거꾸로 됐다. 프로젝트를 UI, 도메인, 데이타 레이어로 나누었을 경우 UI -> 도메인 -> 데이타 순서가 아니라 UI -> 데이타 -> 도메인 순서의 의존성 (Dependency) 가 생긴다.


객체를 영속화 하기 위해서는 상태 관리, CRUD의 인터페이스를 제공하는 그 어떤것이 필요하게 되는데 ObjectContext가 그 역할을 하는 것입니다. POCO의 영속성을 지원하기 위해서는 지원하는 '그 무엇'이 있어야 합니다. 그것이 Transaction Script가 되었건, Table Module이 되었건 말이죠. EF 4에서는 POCO를 지원하기 위해 POCO를 EDM에 추가하는 것으로 해결하는 것이죠.

도메인에서 만들어진 객체를 데이터 레이어에서 알아야 하는 것이 문제라고 말씀하셨는데, 언어의 Primative 타입만을 데이타 레이어에 전송하지 않고 Object로 전달하기로 결정하는 순가. DTO라고 하는 객체가 필요하게 됩니다. DTO는 도메인 모델과 데이터 모델에서 알지 않고서는 작업이 되지 않기 때문에 EDM의 엔터티 자체가 DTO 역할을 하면서 엔터티의 상태 관리와 CRUD 및 데이터 매핑 작업을 ObjectContext가 해 주는 구조 입니다.

다시 말해서 DTO가 필요해 지는 순간 도메인 레이어와 데이터 레이어가 동시에 알아야 할 필요성이 생기고, 이것을 의존성이라고 말한다면 Primative Type 만으로 작업하는 것 이 외에는 방법이 없다고 생각합니다.

의존성의 순서는 둘째 치고, 의존성이 있다는 얘기는 변경발생시 두군데의 변경이 불가피 하나는 얘기이고 굳이 두개로 나눌 이유가 없다는 말일 수도 있다. 이는 다시말해 도메인 로직과 데이타 엑세스가 분리 될 수 없다는 것을 말하고 결국 데이타베이스에 대한 의존성은 줄지 않았다는 얘기가 된다.


의존성 문제는 개발자의 코드 자체가 레이어 간의 의존성을 가지냐의 관점으로 봐야 옳으며, 중간자 (Mediator)가 의존성을 알고 있느냐의 관점으로 보는 것이 아니라고 생각합니다. 데이터베이스의 변경 마다, 데이터 레이어와 도메인 레이어의 수직 변경을 메터데이터(EDM)에 위임하고 , EDM의 업데이트로 변경을 반영함으로써 , 수직 변경을 최소화하는 것은 옳은 관점이라고 생각합니다.


artofsoftwaredev 님의 말씀대로 모든 레이어가 Ignore 하고 서로의 변경에 전혀 관심 갖지 않아도 된다면 얼마나 좋겠습니까 만은 , 그 개념은 아직 이상적이며 완벽한 솔루션이 없습니다.


현재로써는 "관심의 분리 , Seperate of Concern"로 "한 곳에서만 관리하도록 하자 Single Point Management "의 관점으로 디자인 하는 것이 옳다고 볼수 있습니다.


EF가 완벽하냐? 라고 묻는다면 대답할 수 없습니다만, 디자인 관점이 옳으냐 라고 묻는다면 "예" 라고 하겠습니다.
저작자 표시
이올린에 북마크하기(0) 이올린에 추천하기(0)

현재글 : Entity Framework 에 대한 변론 posted By - 반더빌트 2010/01/20 13:41
Trackback 0 : Comments 4

Trackback Address :: http://smack.kr/trackback/357 관련글 쓰기

  1. C-Thinker 2010/01/20 16:58 Modify/Delete Reply

    안녕하세요. 변론을 하신다기에 들어와 봤습니다. ^^
    우선 지적하신 부분들에 대해서 변명을 하겠습니다.

    Table Module 에 대해서는 그 패턴을 사용했다기 보다는 개념적인 기반이 되어 있다고 표현을 한 것입니다.
    ORM 과 Persistence Ignorance 에서는 솔직히 무슨 말씀을 하려 하시는지 잘 이해가 가지 않는군요.
    객체와 테이블이 1:1 관계라고 표현한 부분에서는 테이블이라고 썼는데 사실 그 전에 언급한 모델을 그렇게 써 버렸군요. 도메인 모델을 지원을 하려면 기존의 도메인 모델과 EF가 만들어낸 모델과의 자유로운 매핑이 가능해야 한다고 생각합니다.
    POCO 와 ObjectContext 에 대해서 말씀드리자면, 개발자가 어떤 이유에서든 자유의지로써 의존성을 만들게 될 수는 있지만 프레임워크에서 강제해서 발생되는 의존성하고는 많은 차이가 있다는 생각입니다. 개발자가 만든 의존성도 나중에 문제가 되는데 프레임웍에서 의존성을 갖도록 강제를 당한다면 추후 확장성에 많은 문제가 발생할 소지가 많습니다.

    어쨋든 다른 관점에서 볼 수 있는 기회를 주신것에 감사드립니다.

    • 스맥 반더빌트 2010/01/20 18:04 Modify/Delete

      네 Thinker님 또 뵙게 되었습니다.

      Table Module Pattern에 대해서는 L2S이 가깝다고 할 수 있습니다. EF는 L2S에 논리 모델이 더해진 것으로 생각할 수 있네요, 또한 EF Table Module Pattern 을 기반으로 한다 해도 그것이 문제인가? 라는 의견입니다.

      "PI는 PI 의 정의 및 룰이 완벽하지 않은 데다가, 전적으로 ORM의 책임은 아니다 라는 의미이며, 도메인 모델은 Repository 패턴 등을 이용함으로써 PI를 일정부분 충족 시킬수 있다" 라는 의미입니다.


      POCO와 ObjectContext의 문제에 대해서는 Thinker님의 문제 의식에는 동의 하나, POCO를 영속화하기 위한 또다른 방법의 필요가 요구됩니다. 이것을 ObjectContext가 담당하도록 하는 일관적인 패턴에 대해서 동의 한다는 말입니다.

      DTO 예를 든 것은 불가피한 의존성의 발생 현실을 말하고자 함이며 , 의존성이 없이도 작동하는 해결책이 있다면 저도 매우 기뻐하고 싶습니다.

  2. 권효중 2010/01/21 16:41 Modify/Delete Reply

    EF 베타버전을 아직 저도 써보지는 않았지만 지난 PDC2009 의 EF 세션에서 보여준 데모에는 객체에서 데이타베이스를 생성하던데요..

    • 스맥 반더빌트 2010/01/21 21:01 Modify/Delete

      네 효종님

      EF는 .NET Framework 3.5 SP1에 정식 포함 되어 V1 이었으나, 다음 버전은 .NET Framework 4.0에 포함되어 EF4 로 불리웁니다.

      EF V1에서는 Entity를 DB에서 부터 생성 + 모델 디자이너에서 생성 할 수 있으나, Custom Entity에 대해서 DB에 반영 할 수는 없었습니다.

      EF 4.0(V2) 에서는 EDM 디자이너에서 생성한 Custom Entity를 DB에 테이블로 생성 할 수 있도록 기능이 업그레이드 되었답니다.

      EF 4.0의 새로운 기능은 EDM으로 부터 DB로의 테이블 생성, POCO 지원 등이 있습니다.


[생각을 적어 주세요~ 댓글은 작은 인연의 씨앗입니다.]


인포메이션 아키텍처 - Information Architecture

Human Information Interaction 2010/01/12 15:01
인포메이션 아키텍처(Information Architecture)란 무엇일까요?
컨텍스트에서 컨셉을 만족하는 정보의 구성과 최적의 탐색 루트 정의라고 말할 수 있습니다.
분류를 하자면 기획서에 들어 있어야 할 내용입니다.


Information Architecture(IA) 소개
데이터를 사람들이 사용할 수 있는 의미있는 정보로 변환할 필요성이 있음을 묘사하기 위해,  1975년 Richard Wurman에 의해서 만들어진 용어입니다. 완전히 새로운 생각은 아니지만 현재의 용어를 일반적인 IA Label 에 결합한 최초의 시도였습니다.

아키텍처에 컨셉, 정보 디자인(inforamtion design), 타이포그래피, 그래픽디자인을 세우는 Wurman의 세로운 비전은 1990년대 월드와이트웹이 태동하기까지 관심을 받지 못했습니다.


IA의 정의

공식적인 정의 없이, Mosenfield 와 Morville 이 여러개의 정의를 제안 했습니다.

1. 정보시스템에서의  organization, labeling, navigation scheme의 조합.
2. 정보 스페이스를 작업 완료를 용이하게 하고, 직관에의해 컨텐츠에 접근할 수 있게 구조적으로 디자인 하는 것.
3. 사람들이 웹사이트와 인트라넷의 정보를 찾을 수 있고, 관리할 수 있게 분류하고 설계하는 예술과 과학.
4. 디지털 세상을 설계와 디자인을 가능케 하는 새로운 공동체의 실제적인 초점과 규칙.


왜 IA인가? 정보시스템이 사용자 관점 : 인트라넷에서 뭐가 문제일까?
-사용자들이 원하는 것을 찾을 수 없습니다.
어떻게 당신 부서와 우리 부서가 같은 상품을 만드는데 내가 모를 수가 있을까?
왜 중요 예측을 위한 비슷한 케이스를 찾을 수가 없을까?
왜 세일즈와 고객지원 스텝이 우리의 고객들에게 비일관적인 정보를 제공할까?

왜 IA인가? 정보시스템이 소유자 관점 : 인트라넷에서 뭐가 문제일까?
-소유자들은 정보 관리 문제로 압도당합니다.
컨텐츠 관리 압박
자원 배치
기술 선택
높은 분산 환경에서 통합 인트라넷을 만드는 도전


Big IA vs. Little IA
정식 정의가 없는 가운데 Big IA 와 Little IA 진영으로 갈렸습니다.

Big IA 란 정보 자원과 디자인 프로세스를 세우는 모든 과정을 IA로 규정합니다. 이런 관점에서 사용자 경험과 자원의 구조화 까지 수용합니다.

Little IA란 IA의 개념을 정보 구조화와  관리만으로 제한 합니다. 정보공간에서 사용자 응답과 그래픽 디자인은 고려 사항이 아닙니다. UX 중요도의 향상은 UX를 하나의 업무영역으로 분류하고 Little IA를 지지하는 요소가 됩니다.


Information Architect는 무엇을 하는 사람인가?
1. 키 컨셉 또는 그래픽을 통하여 묘사합니다.
2. 컨텐츠 와 네비게이션 발전을 브랜드화 하기 위한 메타포(비유 또는, 은유)를 창조합니다.
3. 정보 요소를 위한 템플릿 포멧과 스타일을 개발합니다.
4. 사용자 분석을 지휘합니다.
5. 시나리오와 스토리보드를 창조합니다.
6. 분류와 색인화합니다.
7. 사용자 경험을 테스트 합니다.

Information Architect Task
1. Creating Content Organization Systems
2. Creating Semantic Organzation Systems
3. Creating Navigation Systems
4. Creating Interaction Design

IA 목표
일찍 등장하고 보고, 만질수 있는 것이 이긴다.

컨텐트에서의 문제점
우리의 CMS 툴이 무엇을 약속하는지 모른다.
우리는 컨텐트를 꺼냈는데 어디에서 시작할지 모른다.
때때로 우리는 문서에 관심을 보이고, 다른 때는 문서의 부분을 의식한다.




컨텐츠 구조화 필수 요소 : 더블린 코어(Dublin Core) 15요소

더블린 코어 한국어 온라인 북: http://www.xmlidc.com/baseXML/xmldoc/portal/DublinCore_kr/DublinCore_kr.xml
요소명: Title
레이블: Title
정의: 자원에 부여한 명칭
해설: 일반적으로 해당 자원을 공식적으로 지칭하는 명칭이다.
요소명: Creator
레이블: Creator
정의: 자원의 내용을 작성하는데 주된 책임을 진 개체
해설: 사람이나 단체, 서비스가 포함된다. 일반적으로 저작자의 이름을 사용하여 해당 개체를 지시한다.
요소명: Subject
레이블: Subject and Keywords
정의: 자원의 내용이 지닌 주제
해설: 주제는 일반적으로 자원의 주제를 기술한 키워드나 중요한 구, 또는 분류기호로 표현된다. 제어어휘나 공식적인 분류표에서 값을 선정하는 것이 가장 좋은 방안으로 권고되고 있다.
요소명: Description
레이블: Description
정의: 자원의 내용에 대한 설명
해설: 기술에는 제한은 없으나 주로 초록이나 차례, 지명에 대한 참조, 혹은 내용에 대한 자연어 설명이 포함된다.
요소명: Publisher
레이블: Publisher
정의: 해당 자원을 이용할 수 있도록 책임을 진 개체
해설: 발행처에는 사람과 단체, 서비스가 포함된다. 일반적으로 개체를 지시하기 위해 발행처의 명칭을 사용해야 한다.
요소명: Contributor
레이블: Contributor
정의: 자원의 내용에 기여한 개체
해설: 기여자에는 사람과 단체, 서비스가 포함된다. 일반적으로 개체를 지시하기 위해 기여자의 이름을 사용해야 한다.
요소명: Date
레이블: Date
정의: 해당 자원의 일생에서 발생한 이벤트 날짜
해설: 일반적으로 해당 자원의 제작과 이용과 관련된 날짜이다. 날짜의 값을 입력하기 위해 권고되는 최선의 방안은 ISO 8601[W3CDTF]에 정의되어 있으며, 그 중에서 YYYY-MM-DD 형식의 날짜를 포함한다.
요소명: Type
레이블: Resource Type
정의: 해당 자원의 내용에 관한 성격이나 장르
해설: 내용에 대한 일반 범주와 기능, 장르, 또는 통합수준을 기술하는 용어를 포함한다. 권고되는 최선의 방안은 제어어휘집(예를 들어 DCMI Type 어휘[ DCT1 ])에서 값을 선정하는 것이다. 자원의 물리적, 디지털 구현형을 기술하기 위해서는 FORMAT 요소를 사용하라.
요소명: Format
레이블: Format
정의: 자원의 물리적, 디지털 구현형
해설: 일반적으로 포맷은 매체 유형이나 자원의 크기를 포함한다. 포맷을 사용하여 자원을 표시하고 처리하는데 필요한 소프트웨어와 하드웨어, 기타 장비를 식별할 수 있다. 크기에는 자료의 크기와 연주시간이 포함된다. 권고되는 최선의 방안은 제어어휘집(예를 들어 컴퓨터 미디어 포맷을 정의한 Internet Media Types [MIME] 리스트)에서 값을 선정하는 것이다.
요소명: Identifier
레이블: Resource Identifier
정의: 특정한 상황에서 자원에 대한 분명한 참조
해설: 권고되는 최선의 방안은 공식적인 식별시스템에 맞는 문자열이나 번호를 사용하여 자원을 식별하는 것이다. 공식적인 식별 시스템은 제한은 없으나 URI(웹주소인 URL을 포함하여)와 디지털 객체 식별기호(DOI), 국제표준도서번호(ISBN) 등이 포함된다.
요소명: Source
레이블: Source
정의: 현재의 자원이 유래한 자원에 대한 참조
해설: 현재의 자원은 그 전체나 일부가 원자료에서 유래된 것일 수 있다. 권고되는 최선의 방안은 공식적인 식별시스템에 맞는 문자열이나 번호를 사용하여 참조된 자원을 식별하는 것이다.
요소명: Language
레이블: Language
정의: 자원의 지적 내용의 언어
해설: 권고되는 최선의 방안은 ISO 639[ ISO639 ]와 관련하여 두 자리나 세 자리 문자로 된 주요 언어 태그와 선택요소인 하위태그를 정의한 RFC 3066[ RFC3066 ]을 사용하는 것이다. 예를 들어 "en" 이나 "eng"는 영어를, "akk"는 아카디아어를, "en-GB"는 영국에서 사용되는 영어를 의미한다.
요소명: Relation
레이블: Relation
정의: 관련된 자원에 대한 참조
해설: 권고되는 최선의 방안은 공식적인 식별시스템에 맞는 문자열이나 번호를 사용하여 참조된 자원을 식별하는 것이다.
요소명: Coverage
레이블: Coverage
정의: 자원의 내용 범위
해설: 일반적으로 범위는 공간(지명이나 지리좌표)이나 시대(시대나 날짜 날짜의 범위), 관할구명(명칭을 지닌 행정당국과 같은)을 포함한다. 권고되는 최선의 방안은 제어어휘집(예를 들어 지명 시소러스)에서 값을 선정하는 것이고, 적절하다면 좌표나 날짜 범위와 같은 숫자 식별기호보다는 지명이나 시대를 우선하여 사용하는 것이다.
요소명: Rights
레이블: Rights Management
정의: 자원에 관한 권리에 관한 정보
해설: 일반적으로 자원에 대한 권한관리에 관한 사항이거나 그러한 정보를 제공하는 서비스에 대한 참조를 포함한다. 대체로 권리 정보는 지적재산권(IPR)과 저작권, 기타 재산권을 포괄한다. 만약 이 권리 요소가 없는 경우에는 그 자원과 관련한 어떠한 권리에 관한 전제도 있을 수 없다.



Infromation Design - 정보를 비주얼라이즈 하다.
Wiki : http://en.wikipedia.org/wiki/Information_Design


참고 :
[Information Architecture ] , Andrew Dillon , Don Turnbull, Univesity of Taxas
Designing the Enterprise Information Architecture, Louis Resenfeld


IA Resources
서적 :
Information Architecture for the World Wide Web – Louis Rosenfeld & Peter Morville
Elements of user experience – Jesse James Garrett
Information Architecture – Blueprints for the Web – Christina Wodtke
Don’t Make Me Think – Steve Krug
Designing Interfaces - Jenifer Tidwell, 2005
Designing Web Interfaces, 1st Edition - Bill Scott; Theresa Neil, 2009
Designing Social Interfaces - Chritian Crumlish & Erin Malone, OREILLY | Yahoo! Press
Visual Design for the Modern Web - Penny Mcintire

온라인 :
Smashing Magazine - http://www.smashingmagazine.com/
blog Jesse James Garrett
http://www.adaptivepath.com/
http://informationarchitects.jp/
information aesthetics.Where form follows data.
places and spaces
Boxes and Arrows – http://www.boxesandarrows.org/
IAslash - http://www.iaslash.org/
IAwiki – http://www.iawiki.org/
donna weblog – http://www.maadmob.net/donna/blog/






저작자 표시
이올린에 북마크하기(0) 이올린에 추천하기(0)

현재글 : 인포메이션 아키텍처 - Information Architecture posted By - 반더빌트 2010/01/12 15:01
Trackback 0 : Comment 0

Trackback Address :: http://smack.kr/trackback/351 관련글 쓰기


[생각을 적어 주세요~ 댓글은 작은 인연의 씨앗입니다.]


우리 할머니에게 웹사이트 개발 방법 가르쳐 주기 - 웹 개발자가 하는 일

Human Information Interaction 2010/01/06 00:14

이번 포스트의 주제는 우리 할머니에게 웹사이트 개발 방법 가르쳐 주기 입니다. - how to teach my grandmother to  development website 입죠

현재 대한민국의 학부생 또는 청소년들이 개발자 또는 웹개발자가 되기를 희망하는 사람이 얼마나 될지 모릅니다. 후배들에게 개발자를 직업으로 추천 할 수 있을지 또한 의문입니다.

개발자의 세계가 현실 세계와 너무 동떨어져 있는 것과 개발자 이외의 집단이 개발자를 이해하는 것, 그리고 개발자 집단 내부에서도 개발자를 이해하는 것은 쉽지 않습니다.

개발자는 디테일 하나 하나에 집착 합니다. 작은 것 하나쯤이야 하고 소홀히 대했을 때 석달 열흘을, 원인 모를 오류로 디버깅을 하면서 밤을 세울 수도 있기 때문입니다. 그런 개발자들에게 그냥 두리뭉실 좋은 게 좋은 것 아니냐며 대충 이래 저래 돌아가게 만들어라 하는 것은 타협 할 여지가 없음을 이외의 사람들은 이해하지 못합니다.

개발자들도 개발이외의 집단에서의 요구사항인 "뭔가 좀 맘에 안들어요, 그 뭔가를 좀 고쳐줘 봐요" 의 그 뭔지 모를 "뭔가"를 이해 하는 회로가 뇌에서 빠져 버린 듯 합니다.
 
아무리 연관 관계를 줄이려고 해도 코드들 객체(오브젝트)들은 연관을 가지고 있습니다. 현실 세계와 마찬가지로 프로그램의 세계에서도 독야청청 홀로 떨어져 있는 객체는 존재 할 수 없음을 개발자들은 알고 있으니까요. 개발자 이외의 집단에서 하는 말인 "그거 하나 수정하는데 뭐가 그렇게 어려워!?"라는 말에 속시원히 답하기 어려운 개발자들 마음은 더욱 답답합니다.



그럼 개발자들이 왜 그렇게 생각이 많고, 혼자서 집중할 수 있는 공간을 요구하는지 우리 할머니에게 설명하는 것처럼 말해 보겠습니다.

개발자들이 하나의 웹사이트를 개발하기 위해서, 또는 개발자가 되기 위해서는 무엇을 공부해야 하나?  ASP.NET 개발자의 경우로 말해 보도록 하죠.



웹사이트의 컨셉, 목표, 해결해야 할 현실 문제, 요구사항, 기획, 디자인이 나왔다고 가정하도록 하죠.

첫번째, 윗 줄에 열거한 모든 것을 이해 해야 합니다. 그리고, 머리 속으로 시스템을 그립니다. 머리 속으로 그리려면 열거한 모든 것들에 대해서 공부 해야 합니다. 업무 영역, 업무 프로세스, 업무가 해결해야 할 과제 등등. 현실 세계의 거의 모든 상식을 지니고 있어야 합니다.

개발자의 좀더 구체적인 세계로 들어가 보도록 하죠.

두번째, 윈도우즈 서버 환경에 대해서 공부하고 이해 해야 합니다. 여러개의 서버가 함께 일할 수 있는 서버팜 , High availability 환경에 대해 이해하고 통제 할 수 있어야 합니다.

세번째, 웹사이트를 구동 시켜 줄 수 있는 IIS(Internet Information Services)를 공부하고 이해하고 통제 할 수 있어야 합니다. 버전 별로 특성과 지원되는 기능을 알아야 합니다.

네번째, web application framework인  ASP.NET을 공부하고 이해해야 합니다.

다섯번째, ASP.NET 위에서 구동할  주로 사용할 언어에 통달 해야 합니다. C#.NET 또는 VB.NET을 공부 해야 합니다.

여섯번째, 언어가 구동되는 프레임워크인 .Net Framework를 공부해야 합니다. 주요 모듈이 Common Language Runtime 이라는 CLR에 대한 공부가 필요 합니다.

.net framework 3.5

닷넷 프레임워크란 것이 요놈 입니다.




일곱번째, 언어를 가지고 문제를 해결하기 위해서 알고리즘자료구조, 객체를  구조화 하기 위한 디자인 패턴 , 아키텍쳐를 공부하고 머리에 담고 있어야 합니다.  

여덟번째, 드디어 사용자들이 볼수 있는 화면을 구성하는 언어인 HTML: Hypertext Markup Language 을 공부해야 할 시간입니다. <html></html><body></body><a href="src" ></a> <img src="" alt="" /> 이런 것들이 HTML입니다.

아홉번째, 내용을 디자인과 분리하기 위해서 CSS(Cascading Style Sheet) 를 공부 해야 합니다.

열번째, 사용자에게 더욱 좋은 경험 또는 서비스 요구 사항을 들어 주기 위한 언어인 Javascript 라고 불리우는 ECMA Script를 공부해야 합니다. javascript를 좀더 사용가능한 언어처럼 사용하기 위해서 javascript framework인  jQuery 또는 Prototype을 익혀야 합니다.

열한번째, 위에서 만든 서비스의 데이터를 영구적으로 저장 하기 위한 Server인 RDBMSSQL 서버를 공부 해야 합니다.T-SQL이라고 불리우는 언어를 공부해야 합니다.

열두번째, 웹서비스에서 DB 서버와 통신하는 여러가지 기술을 익혀야 합니다. ADO.NET, 최근의 LINQ TO SQL, ENTITY FRAMEWORK, NHibernate, iBatis.NET등의 ORM( Object-Relation-Mapping)이라는 것을 익혀야 합니다.

열세번째, 소프트웨어를 구동할 수 있는  물리적인 컴퓨터의  네트워크, RAID, SCSI, HBA, SAN등의하드웨어와  기술들에 대해서 알고 있어야 합니다.

열네번째, 첫번째에 이해한 것들을 구현하기 위해서 열세개의 영역을 엮어(Weaving) 나갑니다. 위에 언급한 언어들(흡사 영어,프랑스어,스페인어와 같은 언어로 보시면 됩니다.)을 적절히 섞어가며 감동과 재미를 동시에 충족하는 문학작품 같은 것을 써 내려 갑니다. 아니 부분 부분을 써서 적재 적소에 엮습니다.
 
드디어 뭔가 돌아가는 화면을 볼 수 있습니다.

웹사이트 개발을 진행 하는 동안 요구사항의 변경과 버전의 변경, 개발 트렌드의 변화을 추적하면서 위에 언급한 열 세가지를 반복합니다.

개발자 이외의 잡단이 볼때 키보드나 또닥 거리며, 사무실 주변을 어슬렁 거리는 행위를 하는 동안 머리 속으로 , 또는 문서에 , 또는, 노트에 위의 열 세가지를 엮고 있는 것입니다. 비지니스의 선행조건 , 후행조건 등의 제약사항을 준수 하면서 말이죠.


개발자들은 위의 열세가지의 요소를 엮고 있으니, "제발 좀 나를 내버려 둬"라고 무언으로 말하지만, 회사 인간 관계에 서툰 미친놈 소리를 듣지 않기 위해서 뇌의 일부 영역을 주변 인간 관계를 위해서 남겨둡니다. 가끔 다른 팀의 컴퓨터도 고쳐줘야 하고, 윈도우도 깔아주거나 오피스도 깔아줘야 합니다. 개발자들이 자신의 세계로 다시 돌아가서 자신의 일을 하기 위해  갖추어야 할, 책에서 가르쳐 주지 않는 소양입니다.


인고의 시간이 지나고 프로덕트가 나옵니다. 많은 아니 대부분의 프로젝트가 아래의 결과를 보입니다.

요구사항 분석과 프로젝트

출처 : http://www.linuxkungfu.org/images/fun/geek/project.jpg



위의 프로젝트 결과에 고객과 여타의 팀에서 볼맨 소리가 빗발칩니다. 비에 홀딱 젖어 익사하지 않기 위해서는 구멍난 우산이나 스노클이라도 준비 해야 합니다.

새로운 요구사항을 들어주고 변경된 제품을 내놓기 위해서 개발자들은 위의 열세가지를 수정하고, 삭제하고, 재배치하고, 새로 작성하고 동시에 유지관리를 걱정하며 엮어갑니다.

열세가지의 실로 엮은 스웨터가 구멍이 숭숭 난 누더기가 아닌 명품 캐시미어 스웨터로 만들려고 머리 속이 꽉차 있는 하루 하루를 보내는 것입니다.

실력이 있는 개발자 이건  부족한 개발자이건 모두가 같은 입장입니다. 한 가지도 소홀 할 수 없습니다.

개발자를 꿈꾸고 있거나 개발자이외의 우리 할머니, 개발자가 하는 일이, 되기 위해 하는 일이 무엇인지, 개발자들의 뇌속이 조금 머리 속으로 그려 지십니까? 다른 세계에 사는 사람인 듯 타협하기 힘든 개발자들의 속성을 조금 이해 하시나요?

이런 끊임없이 공부 해야 하고 머리속이 꽉찬 하루 하루를 보내는 개발자라는 직업이 쉽지만은 않습니다. 개발팀을 영원한 '을'로 여기는 대한민국의 인식은 후배들에게 개발자를 추천 하는 것을 망설이게 합니다.

그러나 개발자들은 무형의 그 상상을 현실화 하는 것에 무한한 행복을 느낍니다. 무한한 기쁨을 느낍니다. 한단계 한단계 성장하는 자신을 느끼면서 세상 그 무엇도 부럽지 않습니다. 현실로 돌아오면 깨지기 쉬운 유리 그릇 같은 만족감 이지만 행복합니다. 개발을 사랑합니다.

이 행복이 노력의 댓가로 지불되는 것이 아니기에 망설여집니다. 이것도 딜레마에 빠지게 합니다. 모두가 개발자를 하지 않으면 유능하며, 발전하며 행복을 느끼는 후임 개발자를 볼 수 없기 때문입니다.

"그거 하나 고치는데 뭐가 그렇게 어려워?" 라는 질문에 대한 답이 조금 되셨습니까? 물론 고치기 쉬운 것이 얼마간 있는 것도 인정합니다.
 
개발자 이외의 분들 이제 개발/개발자가 되기 위해 뭘 해야 하는지 아셨으니 한번 직접 개발해 보시겠습니까?
저작자 표시
이올린에 북마크하기(0) 이올린에 추천하기(0)

현재글 : 우리 할머니에게 웹사이트 개발 방법 가르쳐 주기 - 웹 개발자가 하는 일 posted By - 반더빌트 2010/01/06 00:14
Trackback 0 : Comments 10

Trackback Address :: http://smack.kr/trackback/352 관련글 쓰기

  1. 도둑갈매기 2010/01/06 09:23 Modify/Delete Reply

    트랙백 보고 왔는데, 많은 공감이 가는 글 입니다. 정리도 깔끔하게 잘 하셨네요.
    저는 현재 작은 프로젝트 PM 을 하고 있는데 ,개발자 태생이 아닌 경영학 태생이다 보니
    개발자를 이해 못하는 부분도 많은 것 같습니다.
    프로젝트를 위하여 그리고 나 자신을 위하여 좀 더 상대방이 하는 일에 잘 알아야 할 것 같네요

    • 반더빌트 2010/01/06 10:05 Modify/Delete

      안녕하세요 도둑갈매기님.
      개발자가 기획자에게 가장 바라는 것은 "기획서가 비지니스 목표를 논리적으로 만족 시키느냐" 일 겁니다. 완벽하게 논리적인 것을 소프트웨어로 구현 하는 것도 100% 확신 할 수 없는데 , 기획의 비논리는 소프트웨어도 비논리적으로 만듭니다. 소프트웨어가 비 논리적 이라는 것은 '동작하지 않는다'의 의미입니다.

      최종 결과물을 책임지고 있는 개발자는 제품을 두고 변명이 불가능 합니다. 요구사항을 안 들을 수도 없습니다. 결국에는 개발자 자신이 제품을 수정해야 하니까요.

      자신의 분야에서 최대한의 노력한 결과물을 전달 하는 것이 서로를 이해 하는 첫번째 라고 생각합니다.

  2. 아름드리 2010/01/06 09:49 Modify/Delete Reply

    Java나 .NET 혹은 다른 플랫폼을 사용해서 개발을 진행하게 되더라도 위와 비슷하게 필요하다고 생각됩니다.
    이런 것을 보면 우리나라의 4~6개월 IT 교육과정은 정말 터무니 없다고 생각됩니다.

    • 반더빌트 2010/01/06 10:11 Modify/Delete

      아름드리님 생각에 전적으로 동의 합니다. 컴퓨터공학을 전공하고, 개발업무에 수년을 몸담아도 내가 개발자로서의 자격을 가지고 있는 것인가를 고민하게 만드는 영역이 개 영역이라고 느껴집니다. 끝이 없는 자기계발이 필요함은 몇년을 개발로 버틸수 있을 것인가를 자문하게 만듭니다.
      개발을 4~6개월 교육과정으로 가능하다고 생각 하는 자체가, 교체가능한 단순노동으로 보는 현실을 만들어낸 큰 요인으로 생각합니다.

  3. DIFF 2010/01/07 14:43 Modify/Delete Reply

    저도 비슷한 일들을 해 오고 있는 입장이지만, 이렇게 길게 차곡차곡 쉽게 설명하기란 쉽지 않은 일인데 글을 참 잘 쓰셨습니다. 영원한 "을"이란 부분도 가슴이 아프네요.
    어찌보면, 컴퓨터공학에서 우리가 제일 먼저 배워야 할 것은
    어떻게 프로그래밍하느냐 혹은 어떻게 데이터를 모델링하느냐가 아니라,

    "어떻게 돈이 되는 소프트웨어 사업을 구상하느냐" 일 지도 모른다는 생각을 해 봅니다.

    아마도 개발자들이 인정받으려면, 갑이 정해져 있는 프로젝트를 하는 회사가 아닌,
    다수의 고객이 존재할 수 있는 제품을 만드는 회사의 일원이 되어야 하지 않나 싶습니다.

    • 스맥 반더빌트 2010/01/07 22:17 Modify/Delete

      네 DIFF님, 실세계의 비지니스를 단순 지원 하는 역할에서의 개발은 많은 시간이 흘러도 '을'의 입장을 벗어날 수 없을 듯 합니다.

      모든 개발자들의 꿈이 겠죠.

      개발된 서비스나 제품 자체가 수익을 만들어 내는 회사의 일원 되는 것.

      서로 토론하며 세상의 지식과 정보를 더욱 가치있고 쓸모 있게 만드는 것.

      희망합니다. 우리가 개발하는 서비스가 인간이 인간답게 살 수 있도록 지원하는 것이 되기를...

  4. 우군 2010/01/12 13:04 Modify/Delete Reply

    제 블로그의 엮인글을 보고 찾아왔습니다. 웹기획을 하는 기획자이자 막 걸음마를 시작한 PM으로서 비단 개발자 뿐 아니라 모든이와의 커뮤니케이션이 얼마나 중요한 요소인지 깨닫고 있는 중입니다. 커뮤니케이션만 잘 이루어져도 반은 먹고 들어갈 수 있을거 같은 생각입니다. 목표를 논리적으로 만족시키기 위한 기획을 위해 부단히도 노력해야겠다는 생각을 추가로 하고 갑니다. 좋을 글 잘 읽었습니다.

    • 스맥 반더빌트 2010/01/12 14:46 Modify/Delete

      우군님이 말씀하신대로 커뮤니케이션이 절반이라고 할 정도로 중요합니다. 문제는 '모든 문제의 답은 어떤 문제의 정답도 아니다'라는 것에 있겠죠.

      사람마다 커뮤니케이션에 대한 개념이 다릅니다. "내가 원하는 것은 A라는 것인데 해주세요!" 라고 말 할때는 기대하는 답이 사람마다 다릅니다. "되, 안돼?, 되면 언제까지 되"를 커뮤니케이션의 개념이라고 탑재한 사람들이 너무 많습니다. 그런 이유가 제가 장문의 포스트를 남긴 이유 중 하나이기도 합니다.

      인정하긴 싫지만 '좋은 개발자와 나쁜 개발자는 타고 나는 것'이라고 느껴집니다. 같은 이유로 '좋은 기획자와 나쁜 기획자는 정해져 있습니다.' 그렇다고 노력하지 말라는 얘기가 아닙니다.

      정확한 고객의 요구사항도 알지 못하고, 자신의 생각도 정확히 묘사하지 못 한 기획서(?: 기획서의 정의가 뭘까요.)를 내밀면서 "됐고!, 되, 안돼? 언제까지 되?"를 외치는 기획자가 많은 것은 문제 입니다.

      중요한 것은 '공동의 비지니스 목표를 이루기 위해서 자신의 역할을 최대한 하면서 경청하는 자세' 라고 생각합니다.

      커뮤니케이션 할 때마다 "됐고!"의 빈도는 '좋은 기획자와 개발자의 척도'죠.

  5. 박제성 2010/01/15 04:40 Modify/Delete Reply

    트랙백을 보고 찾아 왔습니다.

    이 분야에 긍정적인면과 부정적인 면을 면밀히 분석하고 생각하여 신중한 진로가 되기를 바랍니다.

  6. Tiger Kim 2010/01/15 13:19 Modify/Delete Reply

    트랙백 보고 찾아왔어요. ^^
    블로그 잘 둘러보고 갈께요~ 반갑습니다. :)


[생각을 적어 주세요~ 댓글은 작은 인연의 씨앗입니다.]


테크놀로지의 종말 - 테크놀로지의 자연 선택을 밝히다.

교양서 2010/01/02 14:39
화상전화와 같이 성공을 믿어 의심하지 않았던 기술이 성공하지 못한 이유는 무엇일까? 마티아스 호르크스의 테크놀로지의 종말(TECHNOLUTION)은 기술 혁명, 혁신의 조건을 기술한 책이다. 번역된 제목 "테크놀로지의 종말"은 독자를 혼란스럽게 한다. 책의 내용은 테크놀로지의 종말이 아닌 혁명과 혁신의 조건과 과정이기 때문이다.

minic , population , selection , ncbi.nlm.nih.gov



서비스의 기획 개발에서 우리가 혁신적인 서비스를 만들었는데 폭발적으로 성공하지 못하는 이유가 뭘까? 라고 고민하는 회사가 많을 것이다. 역사상에서도 혁신적인 기술 이었음에도 불구하고 성공하지 못한 이유가 뭘까? 테크놀로지의 종말은 그 구조와 과정을 밝힌다.

테크놀로지의 종말 = 과학혁명의 구조 + 미디어의 이해 + 에세이 로 이해 할 수 있다.

화상전화 성공의 방해 요인 - 음성 전화기가 당연히 화상 전화기로 발전하리라는 예상은 커뮤니케이션의 본질을 잘못 이해한 근본적인 오류에서 비롯된다. ~ 중략 ~  개인주의로 대표되는 선진 문화에서 통신은 결코 가까움을 위해 봉사하지 않는다. 오히려 거리 유지에 봉사한다. 그리고 바로 이것이 화상전화를 가로막는 근본적인 훼방꾼이다. p.50

매체의 멸종하지 않는다 - 어떤 경우든 한 매체가 다른 매체를 완전히 흡수하는 사례는 매우 드물다. 물론 오늘날 파피루스나 양피지를 찾아보기는 힘들다. 그러나 이것은 책의 멸종이 아니라 단지 책의 소재가 바뀐 것이다. p56.

주) TV가 등장 했을 때 많은 사람들이 영화산업은 죽었다고 말했지만, 오히려 영화 산업은 매우 큰 시장을 가지고 성공하고 있다.
  
커뮤니케이션의 세계와 테크놀로지 - 복잡성은 어쩔수 없이 개별기능의 성능을 떨어뜨린다. 전문화는 성능을 높인다. pp68-69

진보를 위한 조건
- 고대 그리스때 이미 도르래 장치가 발명 되었음에도 불구하고 그리스 로마는 장비를 거의 이용하지 않았다. 무거운 짐을 옮기거나 방앗간을 돌리는 데에도 소를 쓰는 경우가 드물었다. 대부분 사람을 썻다.
이집트, 그리스, 로마는 모두 혁신의 속도를 늦춘 똑같은 장애물을 가지고 있었다. 바로 노예제 였다. p117.

진보는 직선이 아니다 - p152. 

이메일과 사회기술  - 이메일은 보내는 이와 받는 이가 동시성을 갖지 않아도 된다. 그러면서도 동시에 도착하는 매체다. 이메일을 고도의 상호작용을 요하지만 응답에 관해선는 융통성도 있다. p166.

테크놀로지 성공의 조건 - 에버렛 로저스 [혁신의 확산] - 시험가능성, 비교우위, 호환성, 복잡성, 과시효과. p221.
기술진화와 생물 진화의 차이 - 생물을 정보를 직계로 전달하고, 물질과 문화는 정보를 수평으로 전달한다. p235.

경제적 적응의 4단계
1단계 - 분기점 가격
2단계 - 분기점의 양
3단계 - 다른 테크놀로지의 대체
4단계 - 공짜나 마찬가지. 몇몇 테크놀로지는 심지어 마지막에 덤이나 헐값에 팔리는 덤으로 변한다.
pp186-187.

진화, 폭발과 멸종 사이
약 5억년 전인 캄브리아기에 지구에는 유례없이 생물이 엄청나게 분화한 '종의 다양성 폭발'이 있었다. ~ 전 지구 역사에서 하필이면 이 짧은 시기 동안 그토록 막대한 변이가 만개한 까닭은 무엇일까? 그 많던 변종들은 어째서 그렇게 빨리 다시 멸종 했을까?  - 닐스 엘드리지와 스티블 제이 굴드의 '깨진 균형 이론'으로 설명. p194.

테크놀로지의 종말 - 10점
마티아스 호르크스 지음, 배명자 옮김/21세기북스(북이십일)


관련 링크 :
구텐베르크 은하계(부제-활자인간의 형성) - 웹2.0 과 웹3.0의 미래
미디어의 이해 - Understanding of Media (1/2)
미디어의 이해(Understanding of Media) - 마샬 맥루한 (2/2)
개발자 기획자가 꼭 읽어야 할 책 - 미디어의 이해
[미디어] 신문경영론(김동률) - 뉴스는 신문의 영혼이며 광고는 신문의 심장이다
최재천교수의 다윈 2.0 자연선택의 원리
저작자 표시
이올린에 북마크하기(0) 이올린에 추천하기(0)

현재글 : 테크놀로지의 종말 - 테크놀로지의 자연 선택을 밝히다. posted By - 반더빌트 2010/01/02 14:39
Trackback 0 : Comment 0

Trackback Address :: http://smack.kr/trackback/350 관련글 쓰기


[생각을 적어 주세요~ 댓글은 작은 인연의 씨앗입니다.]