전쟁은 싸워서 이기는 것이 아니라, 이긴 것을 확인하는 것이다.


이말은 손자 병법에 나온 말로 싸우지 않고 이기는 방법 중에 하나로 알려져 있다.

이순신 장군도 이 전략을 충실하게 실행한 것으로 알고 있다.

내가 강하면 굳이 싸우지 않아도 이길 수 있다는 것이고

상대가 인정하지 않으면 확인 차원에서 전쟁을 한다는 것이다.


이 전략이 성립 되려면 나와 상대에 대해서 잘 알아야 한다.

이것은 평소에 준비를 잘 해두라는 의미로,

평소에 준비가 잘 되어 있으면 쉽게 문제를 해결 할 수 있다는 것이다.

학생을 예로 들면, 평소에 공부(예/복습)를 잘 해두면 편하게 시험보고 1등(?) 할 수 있다는 의미가 될 것이다.


이것을 개발자의 입장에서 큰 개념으로 해석하면

[잘 준비되어 있으면 프로젝트를 쉽게 해결할 수 있다]라고 생각할 수 있을 것이다.

진상 고객/상사, 외부 환경 변화와 같은 외생 변수는 제외하고

진행할 프로젝트에 필요한 기술과 문제점을 잘 파악하고 준비해두면

쉽게 프로젝트를 진행 할 수 있다.

특히, 필요한 기술(라이브러리)이나 기술적인 어려움이 예상되는 부분을 찾아서 미리 준비해두는 것이 필요하다.


작게는 하나의 기능을 구현할 때,

일이 주어지면 코딩(싸움)부터 먼저 하려고 하는 개발자를 많이 봤다.

코딩부터 먼저 할 것이 아니고

화면설계서, ERD, 프로세스 명세서 등 필요 문서들을 챙기거나 간단하게 라도 작성하고,

내가 아는 것과 모르는 것을 구분해야 한다.

모르는 것은 준비하거나 도움을 요청하면 쉽게 개발할 수 있다.

만약 해결할 수 없다면 싸우지 않는 것이 칠천량 해전(임진왜란)처럼 패전하지 않는 길일 것이다.

(부작용은 싸우지 않겠다고 해서 어딘가로 가신 분이 ~~~)


이렇게 나를 알고 적을 안 뒤에 일하는 것이 당연이 쉽다 (지피지기).

그리고, 평소에 다양한 라이브러리에 대해서 알고 있으면 더 좋을 것이다 (부국강병).

예로, 웹 개발에서 자바 스크립트의 역할이 제법 많은데,

검색해 보면 무료 오픈 소스 라이브러리들이 많이 있다.

동일한 기능이라도 다양한 방법으로 구현되어 있기 때문에

미리 알아두면 좋은 게 너무 많다.


정리하면,

“전쟁은 싸워서 이기는 것이 아니라, 이긴 것을 확인하는 것이다.”는

싸워서 이기기 위해서 노력하지 말고, 이긴 것을 확인하기 위해서 싸운다로 해석하고

개발자 언어로 번역하면

코딩을 하기 위해서 노력하지 말고, 내가 알고 있는 것을 확인하기 위해서 코딩 하는 것이 좋다가 될 것 같다.



+ Recent posts