SIRINI`s Blog

life, saying, developing, . . . and so on #10th anniversary

NumPy 에 빠지다

퇴근 후 회식 자리를 마치고 돌아와 소화도 시킬 겸 간만에 블로깅을 합니다. 기록한다는 건 언제나는 아니지만 그래도 의미가 있는 법인데, 오늘의 이 기록이 술에 취해서 주절 거리는 게 아닌 정말로 뒤에 뭔가 의미가 있는 기록이었으면 좋겠습니다.

제가 속한 팀은 이미지 센서를 개발하고 있는 곳입니다. 저는 이 곳에서 센서 데이터를 분석하는 업무를 하고 있고, 그래서 그런지 데이터 분석에 필요한 소프트웨어 개발부터 여러 일들을 했습니다. 작년 한 해 동안 중국으로 어학 연수를 다녀왔는데 그 사이에 제가 속한 부서에서도 파이썬 바람이 불었나 봅니다. 제가 부서에 파이썬을 도입한 게 2014년 10월 경이었는데, 그 때만 하더라도 이렇게까지 많은 호응이 있을 줄은 몰랐었습니다. 아시는 분들은 아시겠지만 제가 처음부터 파이썬을 즐겨 쓴 것도 아니고 제 업무에 굳이 필요했던 언어도 아니었는데 지나고나서 보니 부서에 파이썬을 최초로 도입한 사람이 되었습니다.

그 때만 하더라도, 내부 연산은 C++ 로 구현하고 외부적으로 .dll 함수 콜만 하는 용도로 파이썬을 고려 했었습니다. 사실 제대로 파이썬을 깊게 판다기 보다는 그저 다른 분들이 좀 더 편하게 계산 알고리즘을 이용 하실 수 있도록 하자는 취지였습니다. 그래서 그 때는 파이썬에게 사실 큰 기대가 없었고, 정작 저는 잘 몰랐었습니다.

그러다 중국 어학 연수를 마치고 부서로 돌아와서 다시 보니, 파이썬이라는 언어가 사실은 과학 분야에서 굉장히 범용적으로 쓰이기도 하고 SciPy 같은 스택을 이용하여 여러 데이터 분석을 할 수 있다는 사실을 뒤늦게 깨닫게 되었습니다. 더불어서 NumPy 를 같은 부서에 새로 오신 분이 소개를 해 주셨는데, 정말로 놀랬습니다. 이미 선형대수와 관련된 모든 기능들이 준비되어 있었을 줄은 몰랐고, Matlab 이 아니더라도 이런 걸 할 수 있다는 게 신기했습니다.

앞서 소개한 것 처럼 저는 이미지 데이터를 분석하는 일을 주로 하고 있는데, 일반적으로는 생소한 RAW 포맷 바이너리 데이터를 주로 다룹니다. 어찌보면 2차원의 수치 데이터 배열을 다루는 셈인데 NumPy 를 이용하면 너무나도 쉽게 데이터를 다룰 수 있습니다. ndarray 라는 다차원 배열을 이용하여 필요한 연산부터 특정 위치만 가져오거나 조건문을 배열 전체에 적용하는 일련의 작업들이 너무나도 명확하고 직관적이었습니다. 왜 진작 알지 못했을까 하는 자책감이 들 정도였으니 말 다했죠.

요즘은 NumPy 를 어떻게 하면 현업에서 좀 더 제대로 활용할 수 있을지 계속 연구하고 있습니다. 물론 내부 로직을 C++ 로 작성해서 .dll 함수를 호출하는 게 아직은 여러 모로 속도 면에서도 이득이고 합니다. 하지만 파이썬을 이용하여 대용량의 데이터를 적당한 속도로 분석해 낼 수 있다면 그 것 역시 나름대로 가치가 있을 것 같습니다. 플랫폼 별로 이식할 수 있다는 장점도 있고, 개발 속도를 현저히 줄여주는 이득도 있습니다.

시간이 지나면 어느 정도는 전문가가 될 줄 알았는데, 배우면 배울수록, 알면 알수록 모르는 게 더 많아지는 요즘입니다. NumPy 를 통해서 데이터 분석에 눈을 겨우 뜨기 시작했는데 뭔가 의미있는 연구를 하고 현업에도 도움이 되고 다른 분들에게도 도움이 되었으면 좋겠습니다. 배울수록 모르는 게 더 많아져서 더 재밌는 것, 그게 바로 프로그래밍이고 소프트웨어의 묘미인 것 같기도 합니다. ^^
Tag: python,파이썬,numpy,데이터,분석, Date: 2017-05-03 0 Responses

Leave a comment here!

c3a7
비밀번호를 입력해 주세요
이름을 입력해 주세요