본문 바로가기

개발, IT186

가변 파라미터 예제 { va_list argptr; TCHAR szBuf[MAX_PATH]; va_start( argptr, r_pMessage ); _vstprintf_s( szBuf, r_pMessage, argptr ); va_end( argptr ); m_strLog += szBuf; MakeLine(); } 좋은정보가 되셨다면 아래 한번 클릭해주세요^^ 2008. 6. 3.
SQL 인젝션과 예방 SQL 인젝션은 sql 쿼리문에 개발자가 의도 하지 않은 쿼리 문을 추가하도록 하여 비정상적인 결과를 얻기 위한 해킹 기법이다. 웹페이지 상에서 사용자 로그인 등 폼 입력 부분에서 특수 문자 등을 포함한 SQL 문의 일부 내용을 작성하여 해킹을 시도 한다. 이것은 특히 DB 에서 관리자 권한 등 불필요하게 많은 권한을 가진 계정으로 만들어 진 사이트에서 치명적일 수가 있다. 예를 들어 아래와 같은 코드를 살펴 보자. Select name from user where id=’id’ and password=’pwd’ 웹페이지 사용자 로그인 부분에서 유저아이디와 패스워드를 입력 받아서 위와 같은 sql 쿼리문을 완성 한 다음 쿼리를 실행 하여 리턴 되는 레코드가 있으면 로그인을 성공 시키고, 없으면 로그인 실.. 2008. 6. 3.
반드시 알아야할 프로그래머의 격언 1. "오늘까지"라는 말은 "내일 아침까지"라는 말이다. 2. 프로그램은 내가 원하는대로 움직이지 않는다. 타이핑대로 움직인다. 3. 요구 사양은 프로그램을 완성한 후에 추가된다. 기본 사양은 완성품을 고객이 보고 나서 결정된다. 상세 사양은 사용자가 프로그램을 사용해 본 이후에 결정된다. 4. 소프트웨어 설계에는 두 개의 방법이 있다. 하나는 결함이 있을 수 없을 정도로 단순하게 만드는 방법이다. 다른 하나는, 분명한 결함을 눈치채기 어려울 정도로 복잡하게 만드는 방법이다. 5. 코드는 개발 현장에서 사용하는 것이 아니라 납품처에서 사용하는 것이다. 디버그는 납기일까지 하는 것이 아니라, 납품된 이후에 하는 것이다. 6. 프로그래머를 죽이기 위해서는 칼이 필요없다. 프로그램의 요구조건을 3번만 바꾸면 .. 2008. 6. 2.
손쉬운 소프트웨어 스케줄 관리법 지난해 10월, 미국의 북동부 지역은 어딜 가나 아셀라(Acela) 광고 천지였다. 아셀라란 암트랙(Amtrak)이 워싱턴-보스턴간 노선에서 운행할 새로운 초고속열차의 이름. 끊임없이 쏟아지는 TV 광고와 전광판 광고, 도처에 나붙은 포스터들을 보면서, 누구라도 이 정도의 물량 공세라면 이 새로운 초고속열차 서비스에 대한 수요 창출에 상당히 기여했으리라 생각했을 것이다. 글쎄, 그랬는지도 모르지. 하지만, 정작 암트랙사는 이를 확인해 볼 기회가 없었다. 아셀라 프로젝트가 계속 지연되는 바람에 상용서비스가 개시되지도 않은 상태에서 광고 캠페인만 진행되고 있었던 것이다. 어떤 회사의 신제품 시판을 한달 앞두고 이 제품이 우수한 평가 등급을 받자 마케팅 책임자가 했다는 말이 떠오른다. “대단한 홍보 효과야! .. 2008. 5. 30.
제대로 된 소프트웨어 개발을 위한 자본 투자 노하우 내 생각에 대부분의 사람들은 소프트웨어 회사에 대해 편견을 갖고 있는 것 같다. 일반적으로, 소프트웨어 회사를 설립하는 목적은 현재까지 숙제로 남아 있는 문제 해결 방법에 대한 참신한 아이디어를 발견하고 이를 구체화하여 엄청난 돈을 벌어들이는 것이라는 믿음이 널리 퍼져 있다. 이를 일컬어 “효과적인 쥐덫놓기” 식의 믿음이라 하겠다. 그러나 실제 소프트웨어 회사의 목표는 자본을 투자하여 제대로 된 소프트웨어를 개발하는 것이어야 한다. 이 말을 이해하게 되면 보다 쉽게 올바른 전략적 결정을 내릴 수 있다. 효과적인 쥐덫 설치 방법에서 문제는 이 장치가 성과를 거둔다는 증거가 많지 않다는 점이다. 우선 성공한 소프트웨어 회사의 대부분은 (예를 들면 마이크로소프트, 오라클) 현재 미해결로 남아 있는 문제를 실제.. 2008. 5. 30.
당신이 프로그래머라면? 최대 삽질능력 보유자 좋은정보가 되셨다면 아래 한번 클릭해주세요^^ 2008. 5. 30.
개발자라며 좋은정보가 되셨다면 아래 한번 클릭해주세요^^ 2008. 5. 30.
프로그래머가 비행기를 만든다면. I like this Job! 프로그래머를 표현한 이야기네요.. 프로그래머가 비행기를 만든다면... 일단 서비스부터 돌리고 수정과 땜방작업.... 200% 공감공감.. 좋은정보가 되셨다면 아래 한번 클릭해주세요^^ 2008. 5. 30.
The Joel Test: 나은 코딩을 위한 12단계 SEMA에 대해서 들어보신 적이 있습니까? 소프트웨어 팀이 얼마나 잘하는지를 재는 나름대로 복잡한 시스템입니다. 앗, 아니! 그 링크를 누르지 마세요. SEMA를 "이해"만 하는데 아마 6년정도가 걸릴것입니다. 그래서 소프트웨어 팀이 얼마나 좋은지 등급을 매길 수 있는 - 좀 무책임하고 되는대로의 - 자체적인 버젼의 테스트를 만들었습니다. 이 테스트의 장점은 3분정도밖에 걸리지 않는다는 것입니다. 절약되는 시간으로 의대에 가서 공부할 수도 있을 것입니다. The Joel Test Source Control(소스 컨트롤)을 사용하십니까? 한번에 빌드를 만들어낼 수 있습니까? daily build(일별 빌드)를 만드십니까? 버그 데이타베이스를 가지고 있습니까? 새로운 코드를 작성하기 전에 버그들을 잡습니까?.. 2008. 5. 30.