요새 관련 회의를 일부 참석하고 있는데, 맡고 있는 서비스명과 다르게 뭔가 군더더기가 너무 많다는
느낌을 들게 만듭니다.
도데체 왜 이런 기능이 필요하지? 왜 넣어야 하는거지? 얼마나 CS 에서 많이 들어왔길래
이런걸 넣었던 건지... 뭐 이런걸 알 수가 없습니다.
제품명과 다르게 자동적으로 괴물로 만들어나가는 느낌입니다.
하지만 다행히 그걸 어느 정도 정리할 수 있는 시점이라는 점은 다행이긴 합니다.
제가 생각하기에 어떤 솔루션이든 핵심되는 기능이 있고, 그것과 관련하여서만 기능을 추가해야
한다고 봅니다. 만약 제품의 방향과 다른 것이 요구된다고 한다면? 그럼 현재의 기능을
최대한 컴포넌트화하고 그 다른 방향의 새로운 솔루션에 맞춰서 플러그인화 시키는 것이
휠씬 맞는 정책이라고 봅니다. 그렇지 않으면 제품의 성격 자체가 애매모호해질테고, 사용자들도
그렇게 생각할 테니까요.
네이트온 정도가 그걸 잘해놨다고 생각합니다. 물론 네이트온 개발팀이 첨부터 그걸 의도했다고는
보이지는 않고, 메신저라는 플랫폼자체가 그걸 이끈거 같긴 하지만 말입니다.
하여튼 이제는 어느 정도의 포지셔닝을 잡아야 할 시기인것 같습니다. 글고보니 최근에 초난감 기업의 조건
이라는 책을 보았습니다. 주목할만한 실수들이 제품의 포지셔닝 문제였습니다. 우선 포지셔닝을
잘 잡아야만..무슨 기능을 넣을지 어떤 식으로 끌고 나갈런지 보이니까요. 저도 미약하지만
이런 포지셔닝에 대한 문제를 잘 얘기해봐야 겠다는 생각이 계속 드네요.
'개발자로의 생각' 카테고리의 다른 글
| 하나의 개발 솔루션에 대한 기능 집중은...?? (0) | 2008/01/26 |
|---|---|
| 사이냅 문제 풀이 공개...(대단한 소스 아님 ^^) (6) | 2007/09/19 |
| 코드를 쓰는 것과 영어와의 관계에 대한 글...괜찮네요. (4) | 2007/09/17 |
| 신입 개발자들에 대한 함정들에 관한 생각 (2) | 2007/09/12 |
| Synap 문제 한번 풀어보고 있습니다. (8) | 2007/09/09 |
| 인터넷 뱅킹 메모리 해킹...그거까지 했어야 하나...ㅡㅡ; (19) | 2007/08/27 |
사이냅의 문제도 기한도 끝났길래...제가 푼 소스 공개합니다. 뭐 별거 없습니다.
참고로 마지막 소스는 없습니다. 느긋하게 생각했다가 끝났길래...맥이 탁 풀려서 말입니다 ㅠ.ㅠ
그냥 이렇게 풀었봤다 정도만 생각하시면 되고...별 대단한 소스도 아닙니다.
그리고 1번은 Ruby로 2번부터는 python 으로 해봤습니다.
1번 문제...
http://synap.tistory.com/entry/문제를-푸시면-기념품을-드립니다
답 URL : "http://205486422643.synap.co.kr/"
2번 문제부터 Constraint Programming 이라서 python 라이브러리를 사용해봤습니다.
문제 : http://205486422643.synap.co.kr
사용한 library : http://labix.org/python-constraint
답 URL:
"http://205486422643.synap.co.kr/1211209.syn"
3번 문제 또한 비슷한 문제입니다. 조금 더 까다로워 졌을 뿐입니다. 여러 데이터를 판단해야 되기 때문에 속도 상승 차원에서 psyco를 사용해봤습니다만...글쎄요. 잘 모르겠더라는...
첨에는 constaint를 너무 작게 줘서 하나에 1분까지 걸릴 때가 있었는데, 그거 깨닫고 몇 개 추가하니까 비교적 참을 만한 속도가 나오더군요.
답은 average, badform 입니다.
4번은 위에서 얘기했듯이 ...안 풀었습니다. 맥이 다 풀리고 만회가 되면...다시 풀지도 모르겠네요.
ps. 1번 문제의 경우, 코딩으로 안하더라도, 또는 계산안해도 풀 수 있습니다.(from KLDP)
다음과 같이 하면 풀 수(?) 있습니다. 사실 푼게 아닐지도...저는 이런 식으로 하는 거 이번에 처음 알았습니다.
먼저 cmd 쳐서 콘솔창 엽니다. 그런 다음...다음의 명령어를 차례로 치면 됩니다.
nslookup이러면 중간에 뭔가 보이실 겁니다.
server www.synap.co.kr
ls -a synap.co.kr
'개발자로의 생각' 카테고리의 다른 글
| 하나의 개발 솔루션에 대한 기능 집중은...?? (0) | 2008/01/26 |
|---|---|
| 사이냅 문제 풀이 공개...(대단한 소스 아님 ^^) (6) | 2007/09/19 |
| 코드를 쓰는 것과 영어와의 관계에 대한 글...괜찮네요. (4) | 2007/09/17 |
| 신입 개발자들에 대한 함정들에 관한 생각 (2) | 2007/09/12 |
| Synap 문제 한번 풀어보고 있습니다. (8) | 2007/09/09 |
| 인터넷 뱅킹 메모리 해킹...그거까지 했어야 하나...ㅡㅡ; (19) | 2007/08/27 |
웹서핑하다 상당히 공감이 가는 문서나 철학이 있는 글을 건지게 되면, 그날 하루는 횡재한 듯한 느낌을 받게 됩니다. 오늘도 역시나 횡재의 날일 것 같습니다.
류광 님의 글인데, 류광님은 번역자로서의 능력은 알고 있었습니다만 이런 종류의 능력까지 가지고 계신지는 몰랐군요. 읽어보니 상당히 공감이 갑니다. 날짜를 보니 제가 상당히 뒷북을 치는 것이 아닌가 하는 생각인데, 몰랐던 분들을 위해...ㅎㅎㅎ
프로그래밍과 영어(1)
http://www.gpgstudy.com/forum/viewtopic.php?t=566
프로그래밍과 영어(2)
http://www.gpgstudy.com/forum/viewtopic.php?t=627
프로그래밍과 영어(3)
http://www.gpgstudy.com/forum/viewtopic.php?t=860
초반에의 이슈 제거 부분에서 RSpec의 describe 등의 용어의 번역에 대한 이슈가 떠오르네요. 아무래도 고급으로 갈 수록 영어에 가까워지는 건 어쩔 수 없군요. Ruby도 일본인이 만들었지만, 코드를 보면 영어로 읽히는게 더 자연스러운 것을 볼 때, 아무래도 패러다임 자체의 영향도 있지 않나 하는 생각도 들기도 하고, 완전히 새로운 생각을 가진 사람이 언어를 만들어야 하는 것이 아닌가 하는 생각도 들긴 하네요.
그리고 영문법과 코드와의 연관에 대한 논리는 상당히 공감이 가는군요. 특히나 관사 a, the와의 연결은 아주 단순한 생각으로도 변수 명명법에 상당히 도움 될 것 같다는 생각입니다. 이런 명명에 대해서는 3번에서도 나오는데 그동안 어렴풋이 하고 있던 변수 이름 정하는데에 상당히 도움될 것 같다는 생각이네요.
시간 나시면 한번 읽어보시길...생각 정리하기에는 유용한 문서입니다.
'개발자로의 생각' 카테고리의 다른 글
| 하나의 개발 솔루션에 대한 기능 집중은...?? (0) | 2008/01/26 |
|---|---|
| 사이냅 문제 풀이 공개...(대단한 소스 아님 ^^) (6) | 2007/09/19 |
| 코드를 쓰는 것과 영어와의 관계에 대한 글...괜찮네요. (4) | 2007/09/17 |
| 신입 개발자들에 대한 함정들에 관한 생각 (2) | 2007/09/12 |
| Synap 문제 한번 풀어보고 있습니다. (8) | 2007/09/09 |
| 인터넷 뱅킹 메모리 해킹...그거까지 했어야 하나...ㅡㅡ; (19) | 2007/08/27 |
매우 아끼는 학교 후배이자, 개인적으로 존경해마지 않는 신영진 님이 괜찮은 글을 또 하나 썼더군요
(왜 항상 이런 좋은 글을 쓰냐...같은 블로거 입장에서 부끄럽다 ㅠ.ㅠ)
이에 대한 글은 개발자의 시간을 갉아먹는 함정들 을 확인하시면 됩니다.(이 글을 읽으시려면
읽고 오시는게 좋을 겁니다 ^^:)
여기서 3가지 함정에 대한 얘기가 나오는데, 공감이 가는 구석도...이건....생각이 조금
다르다는 생각도 들기도 하더군요
먼저 첫번째, 설계의 함정에 대해... 그렇습니다. 실제로 개발하다보면, 설계라는 것이 그렇게
흘러갈 수 밖에 없습니다. 그래서 설계는 많은 삽질을 경험한 아키텍트들이 맡는 것이겠지요.
신영진 님의 성급한 설계 라는 용어 선택도 이를 반영하는 것이겠지요.
최근에 TDD, BDD 를 보면서 신입 개발자들이 관심을 가져야 할 것은 오히려 이것이 아닌가 하는
생각을 합니다. 설계 능력이 조금 부족하다면, 오히려 이런 방법들이 설계 능력이 키우는 데에
효과적이 아닐까요?
최근 Ruby 4차 세미나에 갔을 때, 강규영님의 말씀 중에 하나가 생각이 납니다.
정확한 말은 기억이 안납니다만, 대략 요지는...
컴파일이 느린 예전에는 견고한 설계와 그에 대한 테크닉과 원칙, 방법들이 많이 중요했었다.
하지만 요즘처럼 컴파일이 빠른 때에는 오히려 그것은 Legacy 가 되어가고 있다. 그래서 새로운 개발 방법을 관심을 가져야 하는 것이 아닌가....
였습니다. 저도 이 말에는 무척 공감합니다. 물론 학교에서 가르치는 그러한 설계, 설계에 쓰이는 DFD나 UML이나 산출물들이 중요하지 않은 것도 아니고, 결코 필요없다는 것도 아닙니다. 하지만 실제 개발이라는 것은 그림 그리듯이 개발하는 것이고 개발자들에게 필요한 것은 이런 새로운 Agile 적인 방법들입니다.
특히나 신입 개발자들이 관심을 가져하는 것일 뿐이죠. 하지만 실제로 컴공을 졸업한 개발자들은 새로운 방법에 대한 아무런 관심이 없다가(학교에서 하는 것도 버거웠다가...정답이겠지요.), 회사에 와서는 생소한 기술들을 습득하기 바쁩니다. 이런 방법들에 대해 생각해보는 자체가 힘들다는 생각은 합니다만..이 글을 보는 신입 개발자들이라면 이런 개발 방법론에 대한 적용을 고려해보는 것도 좋은 방법이라는 생각을 합니다.
그리고 두번째 재사용... 재사용의 레벨에 대한 강조가 없었다는 것이...강의의 단점이 될 수도 있을 겁니다.
영진님의 말에 공감하는데, 여기에 하나 더 붙이고 싶군요. 제 글과 김창준님의 글 이 도움이 좀 될 수 있지 않을까 싶습니다.
마지막으로 세번째, 호환성. 이것에 대해서는 어떤 면에서는 동감이 가고, 어떤 면에서는 아니다. 이것에 대한 저의 생각은 회사마다 다르다가 정답입니다. 제가 다녔던 회사는 멀티 플랫폼 회사였습니다. 처음에는 A라는 OS와 B라는 컴파일러에서 개발되었습니다만...시간이 흘러 흘러 다른 플랫폼, 다른 컴파일러에서 올릴 필요가 여러 차례 생깁니다. 저도 처음에는 절대 없을 것이라 생각하고 호환성을 생각하지 않고 개발했었습니다만...그 함정에 빠져 나중에 무지 고생한 적이 있었습니다. 외교부 프로젝트 였는데, 결론적으로, 삽질 만땅이었습니다 ㅠ.ㅠ
메모리 할당, 라이브러리의 dynamic loading의 이상 동작 ...stack 의 크기 제약 등...정말 여러가지가 괴롭혔지요.
여튼 그래서 영진님의 말에 한가지 덧붙이고 싶습니다. 회사가 한 플랫폼과 한 컴파일러를 사용하고, 바뀔 필요가 없겠다 싶으면, 호환성에 대한 것을 나중을 위해라고 생각하셔도 무리가 없습니다. 하지만 회사가 멀티 플랫폼에 대한 고려가 있겠다 싶으면 신입이라 하더라도 충분히 고민을 하고, 회사 내의 선배 개발자와 충분히 논의를 할 것을 권해드립니다.
'개발자로의 생각' 카테고리의 다른 글
| 사이냅 문제 풀이 공개...(대단한 소스 아님 ^^) (6) | 2007/09/19 |
|---|---|
| 코드를 쓰는 것과 영어와의 관계에 대한 글...괜찮네요. (4) | 2007/09/17 |
| 신입 개발자들에 대한 함정들에 관한 생각 (2) | 2007/09/12 |
| Synap 문제 한번 풀어보고 있습니다. (8) | 2007/09/09 |
| 인터넷 뱅킹 메모리 해킹...그거까지 했어야 하나...ㅡㅡ; (19) | 2007/08/27 |
| 28일 SOA, Web 2.0 세미나를 다녀오면서... (7) | 2007/07/31 |
이거 심심할 때 쯤 되면 이런 문제가 하나씩 떡떡 나타나네요.
덕분에 버닝 중...
문제는 http://synap.tistory.com/entry/문제를-푸시면-기념품을-드립니다
여기에 있고
피보나치 수에 대한 문제입니다. 피보나치 수는 아래와 같이 정의됩니다.
f(1) = 1
f(2) = 2
f(3) = f(1) + f(2) = 1 + 2 = 3
f(4) = f(2) + f(3) = 2 + 3 = 5
f(5) = f(3) + f(4) = 3 + 5 = 8
...
f(n) = f(n-2) + f(n-1), n>=3a와 b라는 두수가 주어져 있을때 두수사이에는 몇개의 피보나치 수가 있을까요?
예를 들어 10과 100 사이에는 총 5개(13, 21, 34, 55, 89)의 피보나치 수가 있습니다.12345678999과 99987654321 사이에도 몇개의 피보나치 수가 있습니다.
이 구간내의 모든 피보나치수를 더한 값이 기념품을 받을 수 있는 열쇠입니다.http://{정답}.synap.co.kr
정답을 아시면 아래 URL로 접속하세요.
이런 내용입니다. 딱 보니 구글 스타일입니다. 초기 구글 리쿠르팅을 따라해보겠다는...?
여튼 문제가 재미있어서 푸는 중입니다. 현재 저거 풀고, 그 다음거 풀고, 세번째 것에 와 있습니다.
두번째는 조금 더 고생 많이 한다는 ㅠ.ㅠ
그나저나 이 문제에... 구간별로 피보나치 수의 갯수가 일정하다는게 재밌군요.
수의 재미가 좀 있습니다 ^^ 뭐 문제푸는데는 그다지... 도움이 안됩니다. ^^: Just for Fun
게다가 피보나치이니까...재귀로 했다가 좌절하고...급 반전해서 완전히 다른 방향으로 풀었습니다.
저도 이런 방법이 있는 줄은 오늘 첨 알았다는...
현재 첨 문제는 Ruby로 풀었는데 적당히 공백 좀 넣어서 20줄 내로 나왔고, 두번째는 python 으로 풀어서 20줄 정도 나왔습니다. 첨에는 ruby 로 도전했다가 속도 문제로 좌절...python으로 하니 좀 낫군요.
저기서 정답 공개하지 말아달라고 해서 저도 공개안했습니다. 요청 시에 소스 공개는 할 수 있지만...
보시면...허접 소스라는 ㅋㅋㅋ ㅎㅎㅎ ^^:
ps. 3번째 통과, 이제 4번쨰군요. 마지막...
ps2. 일반화...좌절이라는...머리가 안 따라주는건지...이제까지 했던 자체가 원래 일반화가 안되는 로직인건지...
머리만 아프다는...걍 새로 짤까...ㅠ.ㅠ
'개발자로의 생각' 카테고리의 다른 글
| 코드를 쓰는 것과 영어와의 관계에 대한 글...괜찮네요. (4) | 2007/09/17 |
|---|---|
| 신입 개발자들에 대한 함정들에 관한 생각 (2) | 2007/09/12 |
| Synap 문제 한번 풀어보고 있습니다. (8) | 2007/09/09 |
| 인터넷 뱅킹 메모리 해킹...그거까지 했어야 하나...ㅡㅡ; (19) | 2007/08/27 |
| 28일 SOA, Web 2.0 세미나를 다녀오면서... (7) | 2007/07/31 |
| VS2005 SP1을 미리 적용한 설치본 만들기 (4) | 2007/07/11 |
윤석찬 님의 블로그에서 인터넷 뱅킹에 대한 위협을 봤습니다.
궁금하신 분은 http://channy.tistory.com/188 여기로...TV 에서 했다는데, 보질 못했군요.
저도 한 때 보안...특히나 PKI 쪽 계열 업체에 일한적이 있어서 이런 문제는 관심이 많습니다.
보니 결론은 메모리 해킹인데, 예상못한 것은 아니지만 실제로 만드는 사람이 있을 줄을 몰랐습니다.
이 시나리오를 시연까지 하다니...ㅡㅡ; 그렇게 하고 싶었나...누구야 그거 만들어 놓고 방송까지 출연한
사람이...
출금 계좌 번호 자체를 바꾼다고 하고 그다지 시간이 오래 안 걸린다고 했으니까 HTML DOM객체를 조작하는
작업일까요? 좀 더 최악으로 가정해본다면 ReadProcessMemory와 WriteProcessMemory API 를 이용해서 메모리에 특정 번지(당연히 계좌번호 문자열이 들어 있는 변수겠지요.)를 바꾸는 작업이 될 수도 있을 겁니다.
기술 자체야 그다지 새롭지는 않습니다. 게임계에서는 이 정도는 일반적이니까요. 제가 초등학교 땐가
중학교 때인가...해도 그런 툴을 얼마던지 있었습니다.
뭐 게임 정도는 그 때까지만 해도 돈 피해는 없는 정도였지만, 이 경우라면 대략 난감이군요.
윤석찬님은 위 링크 글에서 아주 본질적인 해결책을 얘기하셨지만, 그것만으로는 아주 일부분 밖에
해결할 수 없습니다. 사실 ActiveX 만 감염 경로로 있는건 아니니까요. 메신저나..
심지어 유명 쉐어웨어를 포탈쪽에 자기가 올리면서 슬쩍 끼워넣을 수도 있는 겁니다.
방송까지 탔으니 분명 금감원, KISA 쪽에서 본격적으로 움직일 겁니다. 이 정도까지 하는 이상...빨리
무엇인가 한다는 모습을 보여주지 않으면 안되니까요. Vista 일 때도...약간 그런 면이 있어보이긴 했지요.
Vista 문제일때도 그랬지만, 이번에도 인터넷 뱅킹에 뭔가 보안책을 더 추가하는 방식으로 갈 것 같습니다.
키보드 보안 + 알파가 더 생길지도...왜냐하면 Vista 문제 때문에 회의하러 가서도 느꼈지만, 본질적으로
현재까지 방식을 바꾸기를 그리 좋아하지 않는다는게 문제입니다. Vista 일때도 최소한의 변경을 요구했듯이요.
윤석찬님이 말했던 것처럼 그런 식으로 하게 만들지는 않고 현재에서 뭔가 더 추가하도록 바꿀 가능성이 높아
보입니다. 다들 그렇게 생각하시나요?
정책적인 문제야 그렇다 치고, 기술적인 면에서 볼 때도...그것 참 난감하겠군요.
계좌번호를 다들 어떻게 넘기는지 모르겠지만 웹브라우저 메모리에 있을 가능성이 높겠죠?
XecureWeb 등의 제품을 쓴다고 해봐야...FORM 데이터를 POST로 보내기전에 데이터를 받아 암호화할테니,
그전에 바꿔버리면...흠 ...난감하겠군요. 그래도 HTML DOM 객체를 외부에서 조작하는 정도로 처리하는 정도면 어떻게 되겠지만, 위에서 얘기한 API 까지 쓸 정도까지 가기 시작하면...이거 전쟁의 서막입니다.
게임계쪽의 얘기를 보면 클라이언트 내용은 믿지 마라. 더미 클라이언트로 바라봐라라고 하지만 이 경우는
그렇게 할 수도 없습니다. 입력하는 정보 안 믿으면 뭘 더 해야할지도 난감합니다.
일단 메모리를 들춰볼테니 각 변수를 암호화부터 하겠지만, 그것도 어느 정도겠지요. 결국 어디선가 구멍이
생길 겁니다. 제가 보기에도 은행 측에서 PC 외의 다른 수단을 써서 이체 확인을 들어가는 수 외에는 없습니다.
그게 현재 상황에서는 그나마 안전해 보이는 해결책이군요.
SMS 를 쓰면 편하고 빠르겠지만 비용 문제가 있군요. 감당못할 것은 아니지만...아마 그 요금을 사용자에게
전가하기 시작할 겁니다. 그럼 메일 정도는 어떨까 싶군요. 어떤 사이트는 신규 가입시 메일로 최종 가입 인증을
하게 하니까, 그런 방법을 이용해보는 것도 방법이긴 합니다.
그나저나 ActiveX 때문이다 라고 하실 분도 있을 것 같네요. 그런데 이거 ActiveX를 쓰지 않는 외국 사이트라고
생각해볼 때에는 대책이 있나요? 메모리 자체를 바꾼다는 가정이 들어간다면 ActiveX를 쓰든 안 쓰든 이 공격은
피해갈 수가 없어보입니다. 그렇게들 생각하시나요?
이제는 기본적인 인터넷 뱅킹 매커니즘을 바꿔봐야 할 때가 온것이 아닌가 싶기도 합니다.
ps. http://blog.dreamwiz.com/007jbond/6097233 을 보니 COM Hooking 으로 했을 것이라고 나오는군요.
그런데 지금은 COM Hooking 정도이지만, 그 이후에는....생각하고 싶지 않습니다. 메모리 해킹이라고
방향 잡으면 방법이야 무궁무진하니까요. 본질적인 대책이 필요하겠지요.
'개발자로의 생각' 카테고리의 다른 글
| 신입 개발자들에 대한 함정들에 관한 생각 (2) | 2007/09/12 |
|---|---|
| Synap 문제 한번 풀어보고 있습니다. (8) | 2007/09/09 |
| 인터넷 뱅킹 메모리 해킹...그거까지 했어야 하나...ㅡㅡ; (19) | 2007/08/27 |
| 28일 SOA, Web 2.0 세미나를 다녀오면서... (7) | 2007/07/31 |
| VS2005 SP1을 미리 적용한 설치본 만들기 (4) | 2007/07/11 |
| 학교든 회사든 개발은 항상 시간은 작게 준다. (0) | 2007/06/28 |
이올린에 북마크하기
이올린에 추천하기