사용자 삽입 이미지

최근에 수행 한 프로젝트에서 정규 표현식 때문에 엄청 고생했습니다.

  하드웨어 쟁이가 무슨 정규 표현식이 필요할까 라고 생각하여서, 그냥 필요할때 필요한 만큼만 사용하면 되라는 생각에 그동안 무시하면서 지내왔는데  그 바람에 프로젝트 전체가 PERL과 Regular Expression으로 구성된 것을 만났을때는 정말 먹먹하더군요.  

  프로젝트 전체가 PERL로 된 프로그램들이 기기묘묘 (T__T 이렇게 밖에 표현할 수 없어요..) 하게 엮이면서 운용되는 프로젝트를 맞이하면서 정규식이 걸림돌이 되었습니다.  그래서 조금씩 책을 보면서 해결 하였습니다만, 프로젝트가 끝나고 나면 새롭게 한번 공부해 보기로 생각했습니다.

  언제나 그렇듯이 다 끝나면 작심 삼일이라고 잊어먹고 지내다가 발견한 책이, 이 손에 잡히는 정규 표현식 입니다.  10분만에 끝낸다면 읽어볼 만하지 않을까 (더구나 한국어.. ) 라는 생각에 책을 읽기 시작했습니다.

이 책의 특징은 쉬운 설명과 간결한 예제로 요약할 수 있겠습니다.

  두꺼운 책에서 의례히 나오는 구구 절절한 설명의 나열은 볼때마다 짜증나게 하는 요소인데 이 책에는 그런 부분이 의도적으로 배제되어 있어서 간결하게 읽을 수 있습니다.  복잡한 그리고 기기묘묘한 정규 표현식을 하나씩 하나씩 설명해 나가는 점도 상당히 좋습니다. 그동안 시도했던 두꺼운 책 보다는 이런 류의 책이 개인적으로는 맘에 듭니다. 또한 번역도 나름 신경을 많이 쓴 부분도 있습니다.  번역서에서 탐욕적, 게으른 이란 표현이 나오는 것을 보면, 번역 하셨던 분이 단어의 선택에서 고민을 했던것 같습니다.

이 책의 내용을 한번 읽고 이전 프로젝트에서 보았던 PERL로 된 어셈블러와 스크립트컴파일러를 보니 조금 이해가 되는것 같습니다.

이 책은 저와 같이 정규 표현식에 몇번 도전했다가 실패했던 사람들에게 맞을 것 같습니다.
정규 표현식을 적극적으로 쓰지 않고 코드를 읽거나, 약간의 변경만을 원하는 사람들에게 맞다는 의미입니다.
다른 언어와 연결되면서 사용되는 부분에 대한 설명은 없기 때문에 이 부분은 다른 책을 보면서 해결해야 합니다.


2010/03/27 11:28 2010/03/27 11:28
GUNDAM 이 작성.

당신의 의견을 작성해 주세요.

  1. Comment RSS : http://newtypeunion.com/rss/comment/179
  2. babyworm 2010/03/31 08:30  편집/삭제  댓글 작성  댓글 주소

    전 짧아서 맘에 들더군요 :)

    • GUNDAM 2010/03/31 09:38  편집/삭제  댓글 주소

      음.. 살아 계셨군요
      하도 조용하셔서, 최소한 이민가신 줄 알았습니다.
      짧은것이 좋죠, 요샌 이 책 추천하며 다닌답니다. ^^

[로그인][오픈아이디란?]
Computer archiecture 서적의 바이블인 Computer organization and design 에 보면
부록에서 SPIM이라는 MIPS Processor 시뮬레이터에 대한 언급이 나옵니다.

Assembler로 코딩한 것을 테스트 해 볼 수 있는 시뮬레이터입니다.
최신 버전이 8 이고 아래 사이트에 가면 다운로드 할 수 있습니다.


소스 코드로 다운로드할 수 있는데 빌드는 크게 어려운 점이 없으므로 쉽게 할 수 있습니다.

사용자 삽입 이미지

특징은 다른 시뮬레이텨들은 대부분 Binary 파일을 로드해서 사용하도록 되어 있는데 이 XSPIM/SPIM은 assembler파일을 로드해서 사용할 수 있도록 되어 있습니다.  그리고 다양한 OS에 포팅되어 있어서 리눅스는 물론이고 OSX까지 포팅되어 있습니다. MIPS 어셈블러를 테스트 해보고 싶은 분들에게는 좋은 출발점이 될 수 있는 프로그램입니다.

창을 열면 위와 같이 GUI창이 나오는데 마치 DDD를 보는 것 같은 느낌입니다.
용법은 대개 쉬워서 가운데 부분에 있는 버튼들을 잘 두들기면 됩니다.

실행 방법
  xspim assembler_file_name
입니다.

  예를 들어서 tt.endians.s 라는 어셈블러 파일을 실행하고 싶으면 다음과 같이 합니다.

  xspim tt.endians.s

그러면 다음과 같이 창이 나타납니다.
사용자 삽입 이미지
Step 커맨드 버튼을 눌르면 한 스텝씩 진행됩니다.
몇가지 System Function을 지원하는데 그중에 하나가 print문입니다.

tt.endians.s 파일은 아래와 같습니다.

......
        .data
saved_ret_pc:   .word 0         # Holds PC to return from main
m3:     .asciiz "The next few lines should contain exception error messages\n"
m4:     .asciiz "Done with exceptions\n\n"
m5:     .asciiz "Expect an address error exception:\n   "
m6:     .asciiz "Expect two address error exceptions:\n"
        .text
        .globl main
main:
        sw $31 saved_ret_pc

        .data
lb_:    .asciiz "Testing LB\n"
lbd_:   .byte 1, -1, 0, 128
lbd1_:  .word 0x76543210, 0xfedcba98
        .text
        li $v0 4        # syscall 4 (print_str)  <--
        la $a0 lb_
        syscall

        la $2 lbd_
        lb $3 0($2)
        bne $3 1 fail
        lb $3 1($2)
        bne $3 -1 fail
        lb $3 2($2)
        bne $3 0 fail
        lb $3 3($2)
        bne $3 0xffffff80 fail
.......
 
위에서 보는 것 처럼 $v0에 4를 넣고 (print str system call 번호입니다.)
$a0에 해당 스트링의 어드레스를 넣은 뒤에 syscall을 수행하면 위의 그림처럼 메시지가 출력됩니다.

디버깅시에 편한 용법입니다.

디버깅 창의 제일 밑에보면 수행되는 명령어 시퀀스를 하나씩 출력합니다.

SPIM Version 8.0 of January 8, 2010
Copyright 1990-2010, James R. Larus.
All Rights Reserved.
See the file README for a full copyright notice.
Loaded: /usr/local/lib/spim/exceptions.s
[0x00400000] 0x8fa40000  lw $4, 0($29)                   ; 183: lw $a0 0($sp) # argc
[0x00400004] 0x27a50004  addiu $5, $29, 4                ; 184: addiu $a1 $sp 4 # argv
[0x00400008] 0x24a60004  addiu $6, $5, 4                 ; 185: addiu $a2 $a1 4 # envp
[0x0040000c] 0x00041080  sll $2, $4, 2                   ; 186: sll $v0 $a0 2
[0x00400010] 0x00c23021  addu $6, $6, $2                 ; 187: addu $a2 $a2 $v0
[0x00400014] 0x0c100009  jal 0x00400024 [main]           ; 188: jal main <--
[0x00400024] 0x3c011001  lui $1, 4097                    ; 45: sw $31 saved_ret_pc
[0x00400028] 0xac3f0000  sw $31, 0($1)
[0x0040002c] 0x34020004  ori $2, $0, 4                   ; 52: li $v0 4 # syscall 4 (print_str)
[0x00400030] 0x3c011001  lui $1, 4097 [lb_]              ; 53: la $a0 lb_
[0x00400034] 0x342400a2  ori $4, $1, 162 [lb_]
[0x00400038] 0x0000000c  syscall                         ; 54: syscall
[0x0040003c] 0x3c011001  lui $1, 4097 [lbd_]             ; 56: la $2 lbd_
[0x00400040] 0x342200ae  ori $2, $1, 174 [lbd_]
[0x00400044] 0x80430000  lb $3, 0($2)                    ; 57: lb $3 0($2)
[0x00400048] 0x34010001  ori $1, $0, 1                   ; 58: bne $3 1 fail
[0x0040004c] 0x14230243  bne $1, $3, 2316 [fail-0x0040004c]
[0x00400050] 0x80430001  lb $3, 1($2)                    ; 59: lb $3 1($2)
[0x00400054] 0x3c01ffff  lui $1, -1                      ; 60: bne $3 -1 fail


00400014 에서 JAL을 하므로 00400024로 점프합니다. 이것은 main에 해당되는 어드레스입니다.
따라서 System Reset시에는 00400000부터 시작함을 알 수 있습니다.

해당되는 코드는

./CPU/exception.S

파일에 있습니다.  해당 파일을 보면

.......
# Standard startup code.  Invoke the routine "main" with arguments:
#       main(argc, argv, envp)
#
        .text
        .globl __start
__start:
        lw $a0 0($sp)           # argc
        addiu $a1 $sp 4         # argv
        addiu $a2 $a1 4         # envp
        sll $v0 $a0 2
        addu $a2 $a2 $v0
        jal main  <--
        nop

        li $v0 10
        syscall                 # syscall 10 (exit)

        .globl __eoth
__eoth:
.......

으로 되어 있어서 _start부터 리셋 스타트가 시작되고 있음을 알 수 있습니다.
여기서 jal main을 수행하므로 여기서 유저가 짠 프로그램으로 점프 하고 있습니다.

2010/03/21 20:05 2010/03/21 20:05
GUNDAM 이 작성.

당신의 의견을 작성해 주세요.

  1. Comment RSS : http://newtypeunion.com/rss/comment/175
  2. 박찬오 2010/03/23 23:32  편집/삭제  댓글 작성  댓글 주소

    이거 기억납니다. mmu랑 cash 동작을 관찰 해보려고
    다운 받았는데 아무리 봐도 없어 저자 한테 물어보니
    그런 것 없이 명령어만 시뮬레이션이 된다고 해서 결국
    arm 시뮬레이터로 리눅스 돌려보고 끝났습니다..-.- 엉뚱한 결말

  3. GUNDAM 2010/03/23 23:59  편집/삭제  댓글 작성  댓글 주소

    잘 다녀오셨는가 ?
    안그래도 연락없길래..
    무슨 일 있나 궁굼했는데
    건강하게 다녀왔으면 회사에 한번 놀러와

  4. dike 2010/03/30 01:25  편집/삭제  댓글 작성  댓글 주소

    안녕하세요, 건담님.
    건담님 포스팅을 보고 mips cross compiler 환경을 맥에서 구성하여서
    현재 공부를 하고있는 학생입니다..^^

    물어볼게 있어서 염치불구하고 이렇게 질문드립니다.

    제가 gcc 3.4.4 에 toolchain 잘 구성하고 mipsel-unknown-linux-gcc -S test.c
    이런식으로 컴파일을 하면 잘 되고, 인스트럭션들도 .s 안에 잘 생성되는듯 싶습니다.

    그런데 제가 배우는 책과 인스트럭션이 상이한부분이 많아서요,

    NOT 을 원래 0과 nor 하여 수행하는데 제 SPIM 에서는 xor 랑 비교한 후 다른 작업을하고..
    i(n>1) 과 같은 것도 slt->beq 를 거치지 않고 바로 bgtz 로 가버리네요..

    제 요지는 현재 컴파일러가 만들어주는 인스트럭션들은 MIPS 용 인스트럭션은 맞지만
    버젼이 다르거나.. 하는 문제가 있다는 겁니다. (제가 배우는 책하구요.)

    제 책은 대학교재로 쓰이고있어서 가능하면 이수준으로 맞추고 싶은데 혹시 여기에 대해서 조언해주실수 있나요..? :)

    기다리겠습니다 . 감사합니다.

    • GUNDAM 2010/03/30 09:04  편집/삭제  댓글 주소

      질문하신 요지는 현재 배우시는 책하고 , 컴파일러에 의해서 생성되는 어셈블러하고 틀리는 문제여서, 이를 맞추고 싶으시다는 의미로 이해가 됩니다.

      현재 배우시는 책이 어떤것인지 잘 모르겠습니다만,

      컴파일러를 가지고 아키텍쳐를 바꾸어가며, 테스트를 해보니 모두 0과 NOR를 해버리고 있습니다.

      이 경우에 해당되는 지는 모르겠으나, 일반적인 경우에도 Compiler의 지속적인 성능 개선으로 인해 컴파일러의 버전이 틀려지면, 같은 C 코드를 넣어도 틀린 어셈블러가 생성이 되는 경우가 있습니다. 따라서 교재가 쓰여진 시점의 Compiler를 구하신다면 같은 어셈블러를 생성할 가능성이 있을 것 같지만, 통상 교재는 몇년 전의 버전이므로, 지금의 컴파일러로는 같은 코드가 나오기 힘들다고 생각됩니다.

      문의하신 내용을 보면 어느정도 어셈블러를 이해하고 계신듯 한데 그러면 필요에 따라서 어셈블러로 직접 코딩하는 것이 한 방법일 듯 합니다.

      도움이 안되는 답변을 드립니다.

  5. dike 2010/03/30 09:57  편집/삭제  댓글 작성  댓글 주소

    앗, GUNDAM 님, 답변감사합니다.

    건담님GCC 에서는 0 과 NOR 를 한다는 말씀이신가요?

    제 컴파일러는 현재 !a 과 같은 라인을 컴파일할 때
    xori $2,$2,0x0
    sltu $2,$2,1
    이렇게 컴파일을 하고있습니다.

    컴파일커맨드는 mipsel-unknwon-linux-gnu-gcc -S file.c
    이런식으로 하고 있는데요,

    제가 무엇을 잘못해서 저렇게 어셈블러가 나오는 것일까요? ^^;
    건담님 컴파일러처럼만 컴파일 되면 됩니다 ..ㅎㅎ

    • GUNDAM 2010/03/30 12:20  편집/삭제  댓글 주소

      제가 질문을 잘못 이해 했는것 같습니다.

      ~a와 !a는 당연히 틀립니다.
      ~a는 logical not을 의미하고

      !a는 relational not을 의미합니다.

      즉 전자는 논리연산할 때에 NOT이 되고
      후자는 관계연산을 의미하는 NOT입니다.

      전자로 할 경우에는 원하시는 대로 0과 nor을 하게 되고
      후자로 할 경우에는 작성하신 코드대로 sltu를 하게 됩니다.

      if ( a < 0 ) 과 같은 의미가 되겠네요

      int foo( int a )
      {
      return ~a;
      }

      int foo2( int a )
      {
      return !a;
      }

      를 넣고 컴파일 해보시면 아래와 같이 나옵니다.

      .file 1 "test2.c"
      .section .mdebug.abi32
      .previous
      .gnu_attribute 4, 1
      .text
      .align 2
      .globl foo
      .set nomips16
      .ent foo
      .type foo, @function
      foo:
      .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
      .mask 0x00000000,0
      .fmask 0x00000000,0
      .set noreorder
      .set nomacro

      j $31
      nor $2,$0,$4

      .set macro
      .set reorder
      .end foo
      .size foo, .-foo
      .align 2
      .globl foo2
      .set nomips16
      .ent foo2
      .type foo2, @function
      foo2:
      .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
      .mask 0x00000000,0
      .fmask 0x00000000,0
      .set noreorder
      .set nomacro

      j $31
      sltu $2,$4,1

      .set macro
      .set reorder
      .end foo2
      .size foo2, .-foo2
      .ident "GCC: (GNU) 4.4.2"

      과 같습니다.

      당연한 이야기이지만 컴파일 하실떄 -O2로 하시는거죠 ?

  6. dike 2010/03/30 20:30  편집/삭제  댓글 작성  댓글 주소

    아!!!! 그렇군요!! 잘나옵니다!
    제가 이번에 막 공부를 하는 입장이라서요, ㅎㅎㅎ
    크 정말정말 감사합니다 더욱 열심히 공부할 마음이 생기네요. ㅎㅎㅎ

    아 그런데 제가 그냥 optimazition option 안주고 컴파일하는데요,

    -O2 옵션을 주니까 제가 공부한 부분을 넘어서는 것들이 나오는거같아요
    lw $25,%call16(fact)($28) 이런거같은..

    그냥하면 문제가 있나요? ㅠ ㅎㅎ

    • GUNDAM 2010/03/31 09:36  편집/삭제  댓글 주소

      -O2를 주고 안주고의 문제는 개인 취향의 문제이지만, Assembler와 C코드의 문맥상 흐름을 일치시킬려면 가능하면 주는 게 좋습니다.
      안그러면 같은 작업이지만 메모리로 데이터를 카피하고 또 올리고 (바느질 한다고 표현하기도 합니다.) 하는 작업을 하기 때문에, 문맥 흐름을 파악하는데 곤란한 경우가 많습니다. 어셈블러 한두 줄이면 될 코드를 열 몇줄동안 준비하고 반복한다고 생각하시면 됩니다.

      Assembler의 문법 문제는 한 두번 공부 하시면 해결 될 문제여서,
      Assembler와 C간의 상관 관계를 파악하는데에는 -O2를 주시고 하시는게 좋습니다.

[로그인][오픈아이디란?]
사용자 삽입 이미지

iGTD 프로그램 제작자가 Things 프로그램으로 옮겼네요
iGTD 홈피 가니 위와 같은 그림으로 설명하고 있습니다.
그림만 봐도 어떤 상황인지 딱 설명됩니다.  
( 그리고, 요런 그림 많이 보는게 PT 자료 만들때 많은 도움이 됩니다. )


하긴 Things 입장에서는 라이벌 프로그램인 iGTD가 더이상 개발 안되는게 유리하죠. 성능도 좋은데다가 공짜라서
많이 사용하고 있으니까요.

그나저나 Things는 ME에 자동 동기화 되어야 할텐데 죽어라 그 기능은 안넣네요.
Desktop, Notebook, iPod에서 연동에서 사용할려면  불편합니다. 그냥 편하게 ME에 연동시켜 버리면 잊어버리고 살텐데 말이죠 iCAL같은 ME 연동 프로그램들은 한군데서 등록하면 어느샌가 다 동기화가 되어 있어서 편합니다.
미팅 스캐줄 잡히면 노트북이나 데스크 탑에서 등록시켜 넣으면, 가지고 다니는 iPod에서 알람되는 형식이죠.

 요 그림은 Things 제작사인 culture code 블로그에 올려진 그림입니다.
 제작자들의 캐리컬쳐를 올려 놓았습니다.
 오른쪽 밑이 바텍이네요

사용자 삽입 이미지

2010/03/21 18:10 2010/03/21 18:10
GUNDAM 이 작성.
TAGS ,

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
Byjin님이 C4D로 만든  합성 이미지 입니다.
정말 자연스럽죠

틈틈이 공부하고 있지만
언제 쯤 이정도 수준으로 올라갈런지..
사용자 삽입 이미지

사용자 삽입 이미지


2010/03/17 08:26 2010/03/17 08:26
GUNDAM 이 작성.
TAGS ,

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]

대천 바닷가

2010/03/14 16:15 / Life is ..
회사 동료의 결혼식이 서산에 있어서 내친김에 가족들을 데리고 (모시고)
대천 해수욕장으로 가기로 했습니다.

사용자 삽입 이미지
출발하기 전에 찍은 사진 두 아이 모두 신이났습니다.


사용자 삽입 이미지
도착한 한화 콘도

- 엘리베이터 수좀 늘여 놓지, 객실 수에 비해서 좀 많이 부족한듯.. 매번 만원 엘리베이터였습니다.
- 아침 식사는 참 좋았습니다.  그동안 가보았던 콘도나 호텔 중에서 베스트 5에 들어갈 정도로 괜찮았습니다.
- 친절한 부분도 좋았습니다.
- 인터넷에서 보면 바다가 보이는 방과 아닌 방의 차이가 2만원 정도인데 바다가 보인다고 해서 멋진 배경이 연출되는 것이 아니어서 그닥 추천할만한 선택이 아닙니다. 더구나 콘도 주위의 엄청난 M/T의 네온사인 때문에 과히 좋은 광경이 나오는 것은 아니었습니다.
결론 : 그냥 싼방에 묶는게 좋아요

사용자 삽입 이미지
바다가에 가기전에 중무장한 둘째
바람이 꽤 불어서 조심해야 했습니다.

사용자 삽입 이미지
해수욕장 입구에 핫도그를 팔고 있습니다.
참새가 방앗간을 지나갈 수 없듯이, 첫째가 핫도그 집을 지나칠 수 없습니다.

사용자 삽입 이미지
해가 질 무렵의 바닷가입니다. 아직 쌀쌀한데도 사람들이 많이 와있었습니다.
그중에서 사람들이 가장 없는데를 골라서 찍은것입니다.

사용자 삽입 이미지
바닷가 앞에서 포즈잡고 있는 아이들입니다. 오래간만에 온 바닷가래서 좋아하고 있습니다.

사용자 삽입 이미지
첫째가 엄마랑 백사장에서 뭔가 한참 뒤지더니 손에 뭔가를 줏어 오고 있습니다.

사용자 삽입 이미지

줏어온 것은 푸른색 불가사리입니다.  처음보는 불가사리에 둘째도 신기해하고 있었습니다.

사용자 삽입 이미지
저녁 식사후에 간 노래방에서 열심히 동요 부르는 아이들입니다. 둘재는 가수 수준의 카리스마가..
30분동안 노래부르니 애기들이 조금 힘들어하는 분위기여서 그만 접고 올라왔습니다.
아 글고 보니 아저씨고 15분 추가 넣어주셨습니다. 45분 불렀네요

사용자 삽입 이미지
아침에 일어서나 창가를 보는 첫째입니다. 창가에서 건너편에 보이는 엘레베이터 때문에 신기해 하고 있습니다.
조그만 엘레베이터에 사람들이 가득 있다고 합니다.

사용자 삽입 이미지

사용자 삽입 이미지
집으로 오다가 들른 휴계소에서 닭과 오리를 키우고 있었습니다.
처음보는 오리에 무서워하는 둘째입니다.



2010/03/14 16:15 2010/03/14 16:15
GUNDAM 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]

HD Quad Processing Engine을 개발


HD 화면을 4개를 받아서 하나의 화면으로 자유롭게 스케일링하고, Overlay를 하여서 Display할 수 있는 엔진입니다. HD급 대역폭 4개를 동시에 처리해야 하기 때문에 Traffic 처리 부분과 이미지 처리 부분에 대해서 많은 기능이 들어간 엔진입니다.

사용자 삽입 이미지

력 및 출력은

   3G-SDI, HD-SDI, DVI, HDMI 등을 지원 하며
   1920x1080 까지 지원이 됩니다.
   SMPTE 표준안을 지원하고 있습니다.

내부에

    Free Size Image Scaler와 Image Enhancer를 내장하고 있어서 화면 구성을 자유롭게 할 수 있음.
    관심 영역에 대한 CROP기능을 지원

Image Layer는 8개를 지원

   
사용자 삽입 이미지
   
   Overlay, Quad Layer , OSG, Cascade 등 모두 8개 Layer를 지원합니다.
   Quad Layer는 이미지 별로 레이어를 설정할 수 있도록 되어 있습니다.


    
사용자 삽입 이미지

Cascade Display


 복수개의 화면을 구성한다면 그만큼 엔진을 연결하면 됩니다.
 예를 들어서 16개의 HD화면을 구성한다면 4개의 엔진을 붙이면 화면 구성이 자유롭게 16개까지 구성 가능합니다. 필요하다면 16개의 엔진을 구성한다면 16*4 = 64개의 HD 화면을 처리할 수 있습니다.

최종 보드

  이 엔진을 이용하여 구성한 보드의 사진입니다.
사용자 삽입 이미지

첨부하는 파일은 제품 관련 브로셔입니다.
관련 홈페이지는 이곳을 참고하세요
(음 자료를 자꾸 업데이트 하다 보니까 완전히 회사 광고가 되어버렸네요)

2010/03/12 06:47 2010/03/12 06:47
GUNDAM 이 작성.

당신의 의견을 작성해 주세요.

  1. Comment RSS : http://newtypeunion.com/rss/comment/172
  2. 2010/03/12 06:51  편집/삭제  댓글 작성  댓글 주소

    관리자만 볼 수 있는 댓글입니다.

[로그인][오픈아이디란?]

사무실 꾸미기

2010/03/06 19:47 / Life is ..
사무실 세팅 문제는 언제나 고민이 되는 문제입니다.

한국에서는 거의 획일적으로 사무실을 쓰는 분위기입니다. 넓은 사무실 개인공간, 자유로운 공간은 말 그대로 다른 나라 이야기 입니다.  지금 다니는 회사를 처음 세팅 할 때에도 느꼈지만, 이 자유로음이라는 개념이 기존의 관념과 많은 차이를 가지고 있다는 것을 느끼는 과정이었습니다.  조금 넓게 쓰자는 것이 아니라 조금 이라도 자유롭게 쓰자는 느낌이 필요한데 그런 것이 기존 분들과는 공유가 덜 되는 느낌이었습니다.

그래서 이번에는 다른 나라 혹은 다른 회사 사무실은 어떨까 하면서 사진을 틈틈이 모아서 정리를 해보았습니다.


사용자 삽입 이미지
제가 제일 부러워 하는 회사는 자유로운 회사입니다.
생각과 공간이 자유로워야  하는데 그런 면에서는 상당히 재미있는 회사가 많이 (어쩌면 소수이지만) 있습니다.
미국의 애니메이션 제작업체 픽사는 회사 중앙에 직원들이 모여서 자유롭게 수다를 떨며 놀 수 있는 공간을 마련해 놓았읍니다. 픽사 직원들이 대강당에서 자유롭게 대화하고 있습니다. 저렇게 대화를 자유롭게 할 수 있는 공간이 필요한 것은 퇴근후 한잔이라는 한국 문화가 미국에서는 그렇게 없기 때문일지도 모르죠. 우리나라는 대부분 퇴근후 한잔 에서 많은 대화를 합니다.   외국에서는 그런 부분이 약간 부족하기 때문에 업무시간에 많은 대화를 유도하는 정책을 취합니다.


사용자 삽입 이미지

이런 사무실 류의 이야기를 할 때에 의례 빠지지 않는 회사는 구글입니다. 개인 공간을 주고 꾸밀수 있도록 해 놓은 회사입니다. 구글 전성기 (지금도 전성기 이지만) 인 상장 직후에 구굴 근처에 갈일이 있었는데 앞에 스포츠카들이 즐비하게 있더군요.. 웬지 부럽삼.. 했습니다.  

사용자 삽입 이미지
호텔 프론트 같은 구글 프론트 앞에는 저렇게 애기들이 놀수 있는 준비된 공간도 있습니다.

사용자 삽입 이미지
구글 미팅룸 입니다.
오픈된데 있으니 윗사람 뒷다마 쿠션을 먹일 수 는 없지만, 그래도 저런 미팅룸을 가질 수 있으면 좋을 것 같습니다.
사용자 삽입 이미지
미팅룸입니다. 엄청 큰 칠판과 편안한 의자가 웬지 부조화 스럽습니다.
의자는 자세히 보면 배에 큰 쇼파 주머니를 넣어서 만든 것입니다.
사용자 삽입 이미지
이글루 같죠, 일본 아소팜 랜드 같기도 하지만, 이것도 미팅룸이랍니다. 완전히 새로운 공간인데 저안에서 뭘할까요 ?  설마 데이트하는 커풀도 없진 않겠죠.. 말하자면 CC
사용자 삽입 이미지
내부 모습입니다.  막상 안에 보면 웬지 좁아보이는 느낌도 있네요
숨어서 체제 전복을 노리는 그룹에게는 좋은 시작점이 될 공간입니다.

사용자 삽입 이미지
위의 사진은 픽사의 오피스 사진입니다. 개인에게 적당한 공간을 할당해주고 원하는 데로 꾸미는 정책을 취하고 있습니다. 개인적으로는 이런 스타일이 정말 좋다고 생각합니다.  개인 공간이 있어야 애착도 생기고, 의욕도 생기기 때문입니다.  

사용자 삽입 이미지
역시 픽사의 개인 공간입니다.
오른쪽 위의 큰 인형은 그 유명한 토토로의 고양이 버스입니다.

사용자 삽입 이미지
픽사 개인 사무실 공간입니다. 어떻게 꾸미던 본인 취향이라고 하는 것이 맘에 듭니다.

사용자 삽입 이미지
이렇게 개인 공간을 할당해 주고 꾸미고 있습니다.
웬지 부러우면 지는거라는 생각이 들지만, 부러운것은 어쩔 수 없군요

사용자 삽입 이미지
여긴 스타크래프트와 워크래프트 씨리즈로 유명한 블리쟈드 사무실입니다.
사용자 삽입 이미지
개인 공간을 넓게 주는 정책을 취하는 것 외에는 (여타 미국 큰회사와) 큰 차이점은 없습니다.


사용자 삽입 이미지
창의적인 공간은 아니지만, 위 사진은 미국 부통령이었던 엘고어의 사무실입니다.
맥 모니터 3대를 가지고 작업하는 모습이 어설프게 IT 전도하는 사람들과는 완전히 틀리죠

이 사진이 유명한 이유는 세가지 인데요
  -  환경 운동가로 주종을 바꾼 고어이지만, 사무실 서류를 보면 환경운동가 답지 않게 종이를 많이
     사용하고 있다는 점과
  - 보통 높은 분은 IT를 외치지만 실제로 컴맹에 가까운 분들이 많은데
     고어는 모니터 3개를 뛰어 놓고 잘 다루는 것 처럼 보인다는 점
  - 그리고 그 모니터가 모두 애플사의 시네마 디스플레이라는 점 ( 그래서 애플 매니아들이 좋아하는 사진이죠 )

애플 매니아에 관련한 사무실 사진 하면 아래 사진도 빼 놓을 수 없는 사무실 사진입니다.

사용자 삽입 이미지
이분은 스티브 잡스 팬을 넘어선 스티브잡스교 광신도 급에 해당할 듯 합니다.

   사실 사무실 공간에 대해서 이런 저런 이야기를 사람들과 나누면 대부분 결국 MONEY 문제로 귀착되는 것은 어쩔 수 없습니다. 얼만큼이 적당한 사무실이고, 얼만큼이 적당한 공간인지는 사람마다 틀리듯이, 사무실의 활용은 결국 공간 대비 사람이냐,  MONEY 대비 생산성이냐 등으로 그래프를 그릴 수 있습니다. 여기서 생산성이라는 개념에는 애사심 충성심, 자부심 등의 보이지 않는 요소도 들어갑니다.
 
  언젠가는 공간대비 사람이라는 공식에서 벗어나서 MONEY대비 생산성이라는 요소로 옮겨가는 그런 것을 생각해 봅니다.  그러기에는 역시 돈을 벌어야 하는 사소한 문제가 있죠.. 그까이꺼 쯤이야..

  이런 주제에 대해서도 한가지 대안이 되는 것은 사무실 공간을 개인별로 분할하는 것이 아니라 팀별로 분할하고, 팀이 주인이 되어서 각 팀별 공간을 나름대로 꾸미게 하는 방안도 존재합니다.
 
  이런 시도는 팀의 결속을 위해서는 좋은 방안입니다.
   

 
2010/03/06 19:47 2010/03/06 19:47
GUNDAM 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]