Copy & Paste의 미덕

IT일반 | 2020.10.20 21:04

90년대 학교 전공수업 중 포트란이 있었다.

학생들마다 컴퓨터와 비슷하게 생긴 더미터미널 하나씩 주어졌는데 학생들이 입력한 자료를 서버에서 연산해 그 결과를 공용 프린터에 삐뚤어지지 않고 예쁘게 출력하는 그런 과제였던 걸로 기억한다.

당시 컴퓨터의 개념조차도 모르던 시기였기에 요새 나오는 기계식 키보드의 타격감이 느껴지는 자판과 검은색 화면에 초록색 글자, 흰 용지에 깔끔하게 출력되는 장치를 보며 감탄했었다.

 

이게 컴퓨터의 세계인가?

 

사람은 누구나 처음 경험하는 사건에 대해 일종의 경외감과 로망이 있는데 나에게는 포트란 수업이 있을 때쯤이지 않았나 싶다.

그런 로망은 linux를 공부하면서 명령어라인의 작업처리에 맛을 들이면서 본격적으로 표출되었다.

당시 컴퓨터를 다룬다는 사람은 Dos, Windows95, 98 이 다수였기에 나는 linux를 한다고... 서버를 만진다고... 일종의 정신적 우월감이 팽배하던 시절이었다.

영화에 나오는 해커가 침투해 빠른 시간 내 원하는 결과를 얻어서 흔적을 지우고 유유히 사라지는...ㅎㅎ

여담이지만 영화에 나오는 해킹은 가짜다... 라기 보다는 거의 불가능하다고 봐야한다.

해킹은 시간과 기다림의 싸움이다.

짧은 시간에 root 권한을 획득하는 것은 물론이고 요즘은 공격 대상서버의 ip조차 알기 힘들다.

쉽게 접하기 힘든 AIX, HP 서버를 접속해보는 것을 일종의 훈장으로 생각했다.

마우스로 딸깍거리는게 우습게 보였고 진정한 전산학도는 시커먼 모니터에 (일반인은 생소한) 명령어 조합으로 출력되는 결과를 보고 흡족해야 한다고 생각했다.

 

신입 개발자로 근무하던 당시 타 업체와의 제휴로 제공받은 코드를 직접 타이핑해 입력했는데 대문자 I와 소문자 l을 구분해자 못하는 바람에 연동작업에 애로를 겪었던 적이 있었는데 선임이 어이없어하던 게 기억난다.

당시 나는 Copy & Paste를 이런 표현이 어떨지 모르지만 비겁하다고 생각했었다.

프로그래머는 무엇이든 자신의 코드로 의사 표현해야 하는데 다른 사람이 만든 결과물은 그 과정이야 어떻든 폄하하지 않았나 싶다.

지금 보면 말도 안 되는 일이겠지만 당시의 나는 그러한 근성은 있어야 하고 당연한 거라 생각했다.

 

개발자에게 코딩은 문제해결을 위한 목적일 뿐이지 그것이 수단이 되어서는 안 된다.

문제를 가장 효율적으로 빠르고 정확하게 처리하는 것이 우선이어야지 코드 자체에 미적인 의미를 부여해서는 올바른 개발자의 자세라 볼 수 없다.

코드의 정리가 잘되어 있다면 그 효율성은 당연히 우수할 것이지만 코드 자체에 연연하지 않아야 한다는 말이다.

예전에는 다른 사람의 코드를 분석하며 왜 이렇게 짰을까 라는 의문을 가졌지만 요즘은 그 결과가 명확하다면 의심하지 않는다.

물론, 외부의 코드는 그 신뢰성을 100% 담보하기 어렵겠지만 적어도 지금까지 겪어온 Open Source 세계에서 그런 경우는 거의 없었다.

Copy & Paste와 Open Source는 스타일의 문제가 아니라 효율적인 업무처리를 위한 자연스러운 흐름이며 개발자가 생존하기 위한 필수 요소가 되었다.

 

통합개발도구는 유료든 무료든 너무나 잘 만들어져 있다.

개인취향의 문제일 뿐이다.

Eclipse에서 개발하다보면 메소드와 멤버변수는 물론이고 참조하는 클래스의 검색도 몇 번의 단축키 조작만으로 입력할 수 있다. 타이핑 없이...

요즘 개발은 이런 도구 없이는 사실상 어렵다.

예전 vi에서 c코드 짤 때와 비교해보면 장족의 발전이라 하지 않을 수 없다.

 

사람이라 실수할 가능성은 언제나 존재하는데 얼마 전 서버 세팅하면서 sshd 포트 변경하다 6자리로 잘못 입력해 접속이 불가능했던 적이 있다. 이런 경우는 비일비재하다.

물론, shell에서 pipe와 redirection이 난무하는 명령어 조합은 현란한 타이핑이 필요한 게 사실이며 아직까지도 unix 작업환경에서는 익숙하고 편하다. 하지만 글쎄, 그런 작업환경이 얼마나 될는지?

프로그램이라고 다를까?

다행히 컴파일 단계에서 발생하는 오류는 찾기라도 쉽지 뜬금없는 3rd party에서 런타임에 발생하는 오류는 원인 파악도 힘들다.

 

command line의 편집증 또는 부채(?) 의식에서 벗어나야 한다.

검증된 타인의 코드를 믿고 업무로직에 집중 하는게 생산성 향상에 도움되며 정신건강에도 이롭다.

그런 측면에서 최근 개인 프로젝트로 공부한 Spring Framework가 시사하는 바가 크다.

 

Copy & Paste 정신이 그 첫걸음이 아닐까 싶다.

 


"IT일반" 카테고리의 다른 글

Copy & Paste의 미덕 (0) 2020.10.20

댓글쓰기

"Copy & Paste의 미덕" 의 댓글 (0)