노무현 전 대통령 서거 추모글 남기기

도메인네임이 IPv4 주소(A RR)와 IPv6 주소(AAAA RR)를 모두 갖고 있는 경우 
IPv4 인터넷에서는 도메인 네임이 갖는 IP 주소는 IPv4 주소 한 종류 뿐이었습니다.

그러나 이제 IPv6 인터넷이 도입되면서, 하나의 도메인네임이 IPv4 주소와 IPv6 주소 모두를 갖는 경우가 발생하게 됩니다.

예를 들어 아래와 같은 경우,
"examp.co.kr" 도메인 설정 내용
ftp.examp.co.kr.  1800  IN  A    192.0.2.200
ftp.examp.co.kr.  1800  IN  AAAA 2001:dc5:f::200

단말 호스트의 IPv6 어플리케이션은 getaddrinfo() 함수 호출의 결과로 ftp.examp.co.kr.  도메인네임에 대해 "192.0.2.200" IPv4 주소와 "2001:dc5:f::200"의 2개 주소를 얻게 됩니다.

이 경우, 어플리케이션은 "이 2개의 주소 중 어느 주소를 선택하여 접속을 시도해야 하는가?" 하는 문제가 발생하게 됩니다.

물론 이것은 원칙적으로 어플리케이션을 작성하는 개발자의 선택에 따라 결정될 것입니다.
어플리케이션이 getaddrinfo() 함수로부터 얻은 IP 주소 중 하나를 다시 Socket API에 인자로 전달함으로써 통신이 개시될 수 있기 때문입니다. 
이 동작은 프로그래머가 정하여 프로그램 코드를 작성할 수 있습니다.


디폴트 IP 주소 선택 알고리듬 (Default Address Selection)

IETF RFC3484 문서는 이 문제를 다루고 있습니다.

Ref Docs : RFC3484 "Default Address Selection for Internet Protocol version 6 (IPv6)"

일반적으로 어플리케이션은 도메인네임의 IP 주소 변환 함수 gethostbyname() 이나 getaddrinfo()가 리턴하는 IP 주소 목록에서 첫 번째 IP 주소를 선택하여 이 IP 주소로 Socket을 열고 통신을 개시합니다.

이러한 일반 사항을 기반으로 RFC3484는 getaddrinfo() 함수가 도메인네임의 IPv4 주소와 IPv6 주소를 함께 파악한 경우, 일정한 디폴트 알고리듬을 적용하여 어플리케이션으로 리턴하는 IP 주소 목록을 정렬(sort)하여 반환하는 동작을 정의합니다.

getaddrinfo() 함수는 일정한 규칙으로 IP 주소 목록을 반환하여 어플리케이션이 접속 시도하는 IP 주소를 일정하게 제어하는 역할을 하게 됩니다.

접속대상 주소 선택 알고리듬에 사용되는 디폴트 정책 테이블(default poliy table)은 아래와 같습니다.

    Prefix        Precedence     Label      비고
----------       -------------------  ----------  --------------------
::1/128                            50             0     IPv6 LoopBack 주소
::/0                                   40              1    이외의 모든 IPv6 주소
2002::/16                        30             2     6to4 IPv6 주소
::/96                                20             3     IPv4-compatible IPv6 주소
::ffff:0:0/96                      10             4     IPv4-mapped IPv6 주소, IPv4 주소를 의미


Source : RFC3484 "Default Address Selection for Internet Protocol version 6 (IPv6)"
                2.1. Policy Table


이 주소 선택 알고리듬의 개략적인 내용은 아래와 같이 정리할 수 있습니다.

1. IPv4 주소와 IPv6 주소가 함께 리스트에 있는 경우, IPv6 주소가 디폴트로 리스트 중 첫 번째 IP 주소로 리턴됩니다.

IPv4 주소(::ffff:0:0/96) 보다 IPv6 주소(::1/128, ::/0, 2002::/16, ::/96)들이  Precedence에서 모두 우선순위가 높습니다.
이에 따라 IPv6 어플리케이션이 getaddrinfo() 함수로부터 반환받는 IP 주소 리스트에 IPv4와 IPv6가 혼재하는 경우, 디폴트 동작으로 그 첫 번째 IP 주소는 IPv6 주소가 됩니다.

결과적으로 IPv6 어플리케이션은 IPv4와 IPv6 주소 모두 가진 도메인네임에 대해서는 IPv6를 먼저 접속 시도 주소로 선택하는 동작을 하게 됩니다.

2. IPv6 주소가 다수 존재하는 경우, IPv6 루프백(loopback) 주소, 일반적인 IPv6 주소, 6to4 IPv6 주소, IPv4-compatible IPv6 주소의 순으로 정렬(sort)하여 리턴합니다.

IPv6 주소 "2001:dc5:f::200"와 IPv6 주소 "2002:c000:02c8::c000:02c8"가 도메인네임에 함께 지정되어 있는 경우, APNIC을 통해 할당된 native IPv6 주소 "2001:dc5:f::200"가 6to4 tunnelling 방식의 자동생성된 6to4 IPv6 주소 "2002:c000:02c8::c000:02c8"보다 우선하게 됩니다.

곧 어플리케이션은 native IPv6 주소와 6to4 IPv6 주소가 있는 경우, native IPv6 주소로 먼저 접속시도하게 됩니다.


NOTE!: DNS의 IPv6 주소 설정오류가 야기하는 어플리케이션의 접속 시간 지연 문제
일반적으로 어플리케이션은 getaddrinfo() 등의 함수로부터 리턴받은 IP 주소 목록 중 첫 번째 IP 주소로 접속을 시도한 후 접속에 실패하면 다음의 IP 주소를 사용하여 접속을 시도합니다.
따라서 IPv4와 IPv6 주소가 하나씩 있는 경우, IPv6 주소로 먼저 접속을 시도하고, 이에 실패하게 되면, IPv4 주소로 접속을 시도합니다.
만일 DNS의 특정 도메인네임에 존재하지 않는 IPv6 주소가 설정되어 있는 경우, 어플리케이션에서는 접속시도와 그 timeout에 따르는 시간지연이 발생한 후 IPv4 주소로 접속이 성공함으로써, 사용자는 접속이 느린 현상을 경험하게 됩니다.


위에서 정리된 디폴트 주소 선택 알고리듬 내용은 개략적인 것으로 이외에 시스템 환경조건에 의한 주소 선택 및 정렬 알고리듬을 RFC3484 문서에서 정의하고 있습니다.

주의할 점은 RFC3484에서 정의한 주소선택 알고리듬은 디폴트 알고리듬일 뿐이며 어플리케이션에서 별도의 선택 알고리듬을 사용하여 특정한 주소 선택을 하거나, 디폴트 주소 선택 정책 테이블의 내용을 변경하는 경우, 선택 방식이 변경될 수 있다는 
사실입니다.

Windows 2003 서버의 경우, 아래와 같이 default policy table 내용을 볼 수 있으며, 이 테이블에서 각 필드 값을 변경하여 getaddrinfo() 함수의 정렬 순서를 변경할 수 있습니다.

C:>netsh interface ipv6 show prefixpolicy
Querying active state...
Precedence  Label  Prefix
----------------  ---------  --------------------------------
                  10         4  ::ffff:0:0/96
                  20         3  ::/96
                  30         2  2002::/16
                  40         1  ::/0
                  50         0  ::1/128

출처 : http://dstein.egloos.com/2324104#

'개발자가 뭐길래 > Network' 카테고리의 다른 글

PTR  (0) 2009.06.26
RR(resource records) 자원 레코드  (0) 2009.06.26
FQDN  (0) 2009.06.26
IPv6 멀티캐스트 범위  (2) 2009.06.26
ND (Neighbor Discovery)  (0) 2009.06.25

 멀티캐스트를 사용하면 한 데이터그램을 그룹 수신자 모두에게 한꺼번에 전송할 수 있다.  콜론 16진 표기법으로 썼을 때 FF(숫자로 1111 1111)  로 시작하는 주소는 모두 IPv6 멀티캐스트 주소이다.

멀티캐스트 범위

 멀티캐스트 주소의 범위에 대한 정확한 이해가 매우 중요하다. 전 범위 멀티캐스트 주소는 모든 인터넷을 통틀어 고유한 주소를 가져야 하지만 로컬 범위 멀티캐스트 주소라면 해당 기관에서만 고유하면 된다. 따라서 주소 할당이 매우 유연하다. 모든 유형의 멀티캐스트 주소가 다양한 형태로 나타날 수 있다. 어떤 멀티캐스트 주소는 한 노드에만 속할 수도 있고 어떤 주소는 한 로컬 링크 (로컬 네트워크)에만 멀티캐스팅하고 다른 것은 로컬 사이트에 멀티캐스팅하는 등이다. 범위를 지정하면 라우터가 멀티캐스트 데이터그램의 주소를 보고 데이터그램을 얼마나 멀리까지 전달해야 하는지 곧바로 결정할 수 있으므로 좀더 효율적이며, 원했던 범위 이상으로 트래픽이 전달되지 않도록 할 수 있다.

'개발자가 뭐길래 > Network' 카테고리의 다른 글

PTR  (0) 2009.06.26
RR(resource records) 자원 레코드  (0) 2009.06.26
FQDN  (0) 2009.06.26
IPv6 어플리케이션은 IPv4와 IPv6 주소 중에서 어느 것으로 접속을 하나요?  (0) 2009.06.26
ND (Neighbor Discovery)  (0) 2009.06.25

ND (Neighbor Discovery)

특징

  •  ND의 Neighbor라는 용어는 단순히 로컬 네트워크에 있는 장비(호스트와 라우터 둘 다)를 가리킨다. 물론 네트워크에서 호스트와 라우터가 하는 일이 다르기 때문에 ND도 그에 따라 달라진다.

  • ND는 ICMPv6 메시지를 사용하여 자신의 기능을 구현한다.

    ND의 기능중 호스트간 통신 기능 (Neighbor discovery) 의 "주소 결정" 기능이 IPv4의 ARP와 같은 기능이다.

구분

  • Router discovery (RD) -호스트 라우터 발견기능
    • Router soliticate : 당장 라우터가 궁금한 호스트가 요청 메시지 전송

    • Router advertise : 정기적으로 호스트에게 자신의 존재를 알림(멀티캐스트), 요청에 따른 RA는 유니캐스트

  • Neighbor discovery (ND)- 호스트간 통신 기능

    router discovery 와 여러 측면에서 유사하지만 neighbor discovery는 라우터와 호스트간의 통신에서 사용하는 파라미터가 아닌 물리 네트워크에 있는 호스트간의 다양한 통신을 위해 파라미터를 주고 받는데 사용된다. 특히 주소 결정, 다음 홉 결정, 주변 노드 도착 불가능 검사에 neighbor solitication/advertise 메시지를 사용한다.

    • Neighbor soliticate :

      • 유니캐스트, 멀티캐스트 가능

    • Neighbor advertise :

      • neighbor solitication에 대한 응답 (보통 유니캐스트, 출발지 주소를 명시하지 않은 경우 멀티캐스트)

      • 요청이 없는데도 주변에 알릴 때 (장비 mac이 변경되었을때 등): 모든 노드에 멀티캐스트 전송

    • <기능>
      • 주소 결정 : 로컬 네트워크에 있는 다른 장비의 Mac 주소를 해당장비의 IP 주소를 통해 알아내려 할때 사용한다. IPv4는 ARP를 통해 같은 기능을 구현한다.

      • 다음 홉 결정 : IP 데이터 그램의 목적지를 보고 어디로 보내야 할지 결정한다.

      • 주변 노드 접근 불가능 검사 : 주변 노트에 직접 접근할 수 있는지 결정

      • 중복 주소 검사 : 자신이 사용하려는 주소가 네트워크에서 사용하고 있는지 확인

  • 리다이렉트 메시지

    라우터가 특정 네트워크로 향하는 데이터그램을 받았을때 출발지 호스트가 다른 라우터에게 보내는 편이 더 효율적이라는 것을 알게 되었을 경우, 라우터는 출발지 장비에게 icmpv6 리다이렉트 메시지를 보낸다.(항상 유니캐스트)

 

ARP(v4)와 비교

  •  IPv6에서는 ARP 요청 메시지를 보내는 대신, 출발지 장비는 ND solitication 메시지를 생성한다. 

  • 하위 데이터 링크 계층 프로토콜이 멀티캐스팅을 지원한다면(예: 이더넷) ND solitication 메시지는 브로드캐스트되지 않는다. 대신 ipv6 주소를 결정하고자 하는 대상 장비의 요청 노드 주소로 멀티캐스트한다. 요청 멀티캐스트 주소는 멀티캐스트가 가능한 네트워크에 있는 각장비가 유니캐스트 주소로 부터 특수한 매핑을 통해 만드는 주소다.

  • ND solitication 요청을 받은 목적지 장비는 출발지 장비에게 ND advertise로 응답한다. 이것은 ARP의 reply와 유사하며 장비 A에게 알리기 위한 장비 B의 물리 주소를 담고 있다. 여기서 ARP의 reply는 출발지장비에게만 유니캐스트되며, ND의 advertise도 유니캐스트된다.

이 글은 스프링노트에서 작성되었습니다.



정리가 잘 안되네-_-;;

도움이 될 수도 있는 파일 첨부



'개발자가 뭐길래' 카테고리의 다른 글

[우분투] - How to install manpage (man page 설치)  (0) 2009.12.11
업무프로세스 세미나  (0) 2009.08.14
웹 로봇 소스 코드  (0) 2008.12.09
iptables Tutorial 1.2.2  (0) 2008.12.09
공돌이는 대단해!  (0) 2008.09.04

웹 로봇 소스 코드

개발자가 뭐길래 | 2008. 12. 9. 15:57 | sweetw
C, perl, java, 등등의 링크가 있음.
여기 참조 : http://www.searchtools.com/robots/robot-code.html

C 이용시 libwww 라이브러리를 이용할 수 있으며..
간단한 예제나 기타 자세한 내용은 조인시 사이트 참고~

iptables Tutorial 1.2.2

개발자가 뭐길래 | 2008. 12. 9. 15:24 | sweetw
iptables를 16년 동안 연구해오신..?
Oskar Andreasson씨의 iptables Tutorial 1.2.2


----
아울러 "네트웍 트래픽 분산"
http://kldp.org/KoreanDoc/html/Traffic_LoadBalancing-KLDP/index.html

공돌이는 대단해!

개발자가 뭐길래 | 2008. 9. 4. 14:27 | sweetw


어쩌다 발견한 공돌이는 대단해 로고...
꽤 오래전에 나온 로고 같은데.
지금은 정치판이 시끄럽고 살림살이가 어려워져서인지
2/2를 공돌이의 날로! 와 같은 여유있어 보이는(?) 주장은 많이 사그라진듯..

링크를 따라가 보면 컴공 말고 다른 공돌이 배너도 있다.
C를 이용해서 PDF를 텍스트로 변경하고 싶었습니다.

근데 아는게 없어서 맨땅에 헤딩 시작했고..

별다른 인코딩이 안되어 있으면 그냥 읽어낼 수도 있지만, 인코딩 된 문서가 대부분이므로 텍스트로 보고 싶다면 디코딩을 해야 하는데, 찾다 보니 pdf generate 오픈 소스는 종종 보이나 디코딩하는건 거의 100번 트라이 버전이거나 = =) ...

흠. 암튼 codeproject에서 원하는 오픈소스를 찾았습니다.

제목도 정확하게

"Code to extract plain text from a PDF file"

기~쁘다 구~주 오셨네~ 꺄항!!


링크 따라가보면 자세한 설명이 나와 있습니다. 대략 사용시 주의할 점이라면..

Basics


...Text streams are usually compressed using the FlateDecode filter and may be uncompressed using code from the ZLIB (http://www.zlib.org/) library...


- 텍스트 스트림은 보통 FlateDecode 필터로 압축되며 may be ZLIB 라이브러리에서 제공하는 코드로 압축해제 된다. (따라서 zlib 라이브러리를 받아 사용해야 한다.)

About Code


This single source code file contains very simple, very basic C code. It initially reads in the entire PDF file into one buffer and then repeatedly scans for "stream" and "endstream" sections. It does not check which filter should be applied and always assumes FlateDecode. (If it gets it wrong, usually no output is generated for that section of the file, so it is not a big issue).(중략)

This code is supplied as is, no warranties. Use at your own risk.


- 이 소스는 C 코드로 된 무척 기본적이고 간단한 코드다. 처음에 PDF 파일을 통째로 하나의 버퍼에 읽어들이고서 "stream"과 "endstream" 이 있는 곳마다 그 사이의 내용을 scan 한다. (텍스트 내용이 stream과 endstream 이라는 태그(?)사이에 위치하기 때문) 이 코드에서는 어떤 필터를 지원할지 체크하지 않고 그냥 FlateDecode를 이용했다고 가정한다(이와 다른 경우 그 섹션에 대한 결과물은 나오지 않지만 큰 이슈사항은 아니다).

- 이 코드는 no warranty로 제공되고.. 사용시 risk는 니 책임이다.


암튼 소스 코드와 테스트용 프로그램이 제공되는데 윈도에 설치하는 프로그램입니다.

테스트 해보니 텍스트가 뿅! 튀어나오는데 (와~)

사용자 삽입 이미지

pdf 원본

사용자 삽입 이미지

뽑아진 텍스트


근데 한글로 된 파일과 일부 파일은 안되더군요 = =

게시판에 보니 chinese 안되요~ 라는 글과 함께 chinese 되게 만들었다는 코드도 올라와 있었는데 참고가 될지도 몰라요.

일정이 변경되어서 제가 이걸로 계속 작업할지 어떨지 모르겠는데= = (무책임)

PDF에 대한 더 자세한 내용을 알고 싶다면 Adobe PDF 사이트에서 레퍼런스를 다운 받아 볼 수 있습니다. (1000페이지가 넘지만 그만큼 자세해요..)

3월 28일 저녁 포스코센터에서 한국MS에서 일하시는 여성 부장님 세 분을 모시고
릴레이 세미나 2번째 시간을 가졌습니다.

'IT 여성으로서의 커리 관리와 리더십 함양에 대한 간담회' 라는 다소 거창해 보이는 주제로
김문정 부장님, 조인순 부장님, 김지영 수석연구원님이 참여해 주셨고,
IT 인으로서, 특별히 '여성' 이라는 주제가 가미된 이야기들이 오갔습니다.
정말로 간담회처럼 처음부터 끝까지 질문과 답변식으로 이루어 졌지요.

사용자 삽입 이미지

저도 쬐그맣게 나왔어요


세 분의 공통점은 정말 열심히 일해 왔다는 점입니다.

김지영 수석연구원님은 '여자니까' 라는 생각보다 '여자라서 더 괜찮다'는 소리를 듣기 위해 노력하고, 임신중인데도 한달에 4번 집에 들어간 적도 있었다고 하시는데..
'다행이 힘든 기억은 없다'고 하셨습니다..ㅡㅜ;

김문정 부장님은 비전공자라 더 힘들었지만
술자리, 담배자리 모두 쫓아다니며
'나도 니네랑 다르지 않다'는 것을 보여주기 위해 노력하셨다고 하셨지요.

저도 처음에 회사에서 그런걸 느꼈습니다.
여태 술, 담배 안하면서 사는데 별 지장이 없었는데,
회사생활에 있어서는 중요한 얘기들이 그런 자리에서 많이 왔다갔다 하기도 하니
그런 자리에 있지 않으면 왠지 소외되고 뭔가 놓치는게 있을거란 생각,
별거 아니라고 생각될지도 모르지만 여자개발자들은 많이 합니다.

특히 술이 안들어가면 제대로 자기 마음을 털어 놓을 수가 없는 분위기가 언제까지 계속 될런지..
아마도 개인주의 성향이 강하기도 하고,
일하느라 이런 저런 얘기를 나눌 여유가 없기도 하고,
그러다 보면 의사소통도 더 어려워지고, 마음에 쌓이는 것도 많아지고..
그래서 술마시고 한방에 털어놓고.. 그런 악순환이 계속 되는 듯 해요.
사내 인간 관계 퇴사의 이유가 되는 경우가 많은데, 이런 분위기도 무관하지 않은 것 같습니다.

그래서 MS에선 one on one 시스템이라고,
팀원과 매니저가 만날 자리가 마련되어 반드시 지키게끔 되어 있다고 하네요.
매니저가 해줬으면 하는 사항, 하지말았으면 하는 사항을 적어오게 해서 한시간 정도 검토해보고
그에 대해 1대 1로 대화하는 방식이라고 하는데..
이게 강제적이어야 한다는 현실이 좀 안타깝긴 하지만, 부러운 점이네요.

사내 적대관계에 대해서는.. 둘이 부딪혀 해결하거나, 둘 중 하나가 나가거나 하게 된다고,
먼저 다가가고, 신뢰를 쌓는게 중요하다고 조언해 주셨습니다.
그 쪽에서 경쟁 의식을 느끼는 것에 대해서 개의치 말고 자기 일만 잘하면 된다고요.
맞는 말씀인데, 사실 그리 마음 먹기가 쉬운 것만은 아니라는걸 요즘 느끼고 있지요..^^
제발 잘하고 싶습니다! =_=

바쁜 와중에 자기개발은 어떻게 하느냐는 질문에는
개발자는 끊임없이 공부해야 하는데, 집안일, 남편, 아이 챙기면 밤 11시 라는 힘든 현실이 있지만...
공부를 안하면 도태되고 말기 때문에 꼭 해야만 한다, 트랜드에 떨어지면 절대 살아 남을 수 없다고 하셨습니다. 혼자하는 것은 포기하기 쉽기 때문에 타의에 의해서라도 할 수 있도록 그룹스터디를 하거나, 시험을 목표로 공부해보라고 조언해 주셨습니다.

바쁘다고 결혼을 하지말고 아이를 낳지 않아야 하느냐?
직장 여성으로서 가장 고민되는 문제인데요,
가정을 꾸리는데 성공하지 못하고, 일에서만 성공하는 것은 반쪽짜리 성공이라며
아이가 나를 성숙하게 하고, 부하직원을 생각하는 폭이 더 넓어진다고
특히 아이들은 참 사랑스러우므로 꼭 낳아 키우는게 좋겠다고 하셨지요.
단, '키워줄 사람'만 있으면 당장 낳으라고 ^^..

참 이건 회사나 정부에서 지원해주지 않는 이상 풀리지 않을 숙제인 것 같습니다.
임신 기간동안 일하는 것도 힘이 들텐데 막상 또 낳으면 하루 종일 먹고 싸고 울고 할 아가를 당장 어떻게 책임지죠? 그렇다고 경제적인 면이나 여성 자신의 미래를 위해서라도 일을 포기하기도 싫겠고요. 시부모님,부모님 모두 직업이 있어 바쁘다면? =_ = 그렇다고 고령임신은 위험하고.
하고 싶은걸 다 하면서 무한루프를 빠져 나오는 방법은
유모를 고용하거나, 어느 정도 자란 아이를 입양하는 수밖에 없는 듯 하네요..

정리한 내용은 이정도였고, 더 자세한 내용은 기사내용을 참고하면 충분할 것 같습니다.

역시 직장을 다니는 여성은 '더 많이' 노력해야 된다는 생각이 들었습니다. 기사 댓글 보니 '독하다'고 써있더군요. ㅡ.ㅡ; 글쎄요.. 다른 직업군의 여성분들은 어떻게 지내시는지도 궁금해지네요.
누구나 아는 얘기보다는 작은 것이라도 실제 경험담같은 것을 꼭 찝어 말씀해 주신게 도움이 되고 와닿았던 것 같습니다.

KLDP Conf 2008년 3월 8일

개발자가 뭐길래 | 2008. 3. 10. 18:45 | sweetw

KLDP conf에 다녀왔습니다.

결혼식에 참여하고 늦는 바람에 한 챕터를 놓쳤습니다. 재밌는 발표였다는데 못들어 아쉽네요.


progreSQL 발표 중간에 들어갔는데, Mysql과의 성능 수치 비교 그래프를 보여주셨습니다. 안그래도 mysql 을 사용하고 있는터라 성능 고민을 하고 있었는데..

progresql을 실제 사용하고 있다는 묭사마의 말을 들어보면 진짜 저런 결과가 나오냐고 물어보니 별차이 없다며 시큰둥합니다.=_= 아무래도 분야와 접근방식이 다르니 직접 써보고 테스트해 보는게 가장 확실한 증명이 될 것 같습니다. 아무래도 제 쪽이 더 성능 이슈로 고민이 많으니까..


그 다음 발표는 PDA에 프로그램 짜넣기 같은걸 보여주신듯 한데 제게 생소한 분야였어요. 이전에 모바일 게임 회사 생각이 잠시 스쳤습니다. 가끔 게임을 폰에 실었는데 멍- 하고 생명 끝나는 경우도 있다고 했었지요. 회사같은 경우는 폰을 지원해주니 마음껏 실험정신을 발휘할 수 있겠지만 개인적으로 자기 PDA에 도전하는건 좀 후덜덜하겠는데요.


저녁으로 제공된 센드위치를 먹고 계속된 발표는 권순선님의 2008년 오픈소스 전망이었습니다. 새해도 시작되고 했으니 한 해 전망을 정리해 보는 것도 좋은것 같아요. 전망은 대체로 좋지도, 나쁘지도 않았습니다.. ㅎㅎ


다음 발표는 웹 플랫폼과 오픈소스 개발이라는 주제였는데, 기계와 사람에 대한 말씀을 하셨습니다. 말씀을 참 재미나게 하셨어요. 기계, 웹은 멀리 떨어져있는 사람을 사람으로 느끼게 해주었다는 말씀이 인상 깊었지요. kldp 페이지였나, 옛모습과 지금 모습을 비교해 보니 사람 냄새나게 바뀌었다는 생각도 들고요. 생각해보면 우리는 근본적으로 참 좋은 일을 하고 있어요. ^^


마지막은 기계설계 및 생산자동화 분야에서의 오픈소스가 주제였는데, CAD(설계 및 분석시 이용)와 CAM(작업 수치를 입력하여 제조에 이용)의 차이에 대한 소개를 해주셔서 개념을 잡았습니다. 선반 작업에 대한 동영상까지 준비해 오셔서, 아.. 저런거구나~ 하는걸 확인할 수 있었습니다. 이런 분야로는 소스에 대한 공유 정신이 매우 희박하여 답답함을 느끼신다고 하시며 '오픈'을 갈구하시는것 같았어요.


그리고  짧은 시간에 많은걸 얻었던 건 자유토론시간이었습니다. C나 C++의 정적분석 툴에 대한 토론방에 들어가게 되었는데, 사실 그 부분에 대해선 아는게 없었어요. 단지 C를 사용하고 있고, printf로 디버깅하고 있고 이런게 정말 노가다같다는 생각을 하고 있었는데, 다른 분들은 어떻게 디버깅하시는지도 궁금했고.. 발제자분에 대해서는 대체 어떻게 프로그램 분석을 하시는건지.. 그런 원리나 방법이 궁금했습니다. 근데 그 분 역시 말씀하시기보단 들으러 오신 쪽이었어요.^^; 여튼 많은 분들이 각자 알고 있거나 사용하시는 툴을 말씀해 주시더라구요.  valgrind, splint, lint, prevent, clockwork, sparrow, jtag 등등  빠진게 있을지도 모르겠는데.. 이런 툴들은 잘못된 포인터 접근을 한다거나, 메모리 릭이 난 경우 등 눈으로 잡기 힘든 버그를 잡을 수 있도록 알려주는 것이 주 기능이라고 합니다. 여튼 조금 찾아보니 대부분 '아니 이 좋은걸 어찌 이제 알았지?' 식의 호평이군요.

여기에 대한 자세한 내용을 정리해 주셨네요 : http://kldp.org/node/91758#comment-433082


전에 처음 KLDP Conf 왔을땐 그래도 좀 깔깔했는데 한층 더 모임과 가까워진 느낌이예요.

정말 푸근하신 분들이 많아서 그런거 같아요.

생각한 인원보다 많아보여서 살짝 물어보니, 어디선가 소환한 분들이라더군요. ㅎㅎㅎ (그게뭐야!)


사진구경하기

이 글은 스프링노트에서 작성되었습니다.