[개발] IT 개발자의 잡설 - 주저리 주저리 #2

Words
438
Reading
2 min
Listen
Play
8y

압축_대문.png


1. 하드코딩.


딱딱한 코딩을 말한다.라고 하면 철퇴로 처 맞아야 될것 같고 ㅎㅎㅎ 구냥 소스 안에다가 상수값을 박아서 쓰는 것을 말하게 되는데... 이런 느낌이다.

String helloKr = "안녕하세요.";

이런 데이터값을 코드에 박아서 쓰게 되면 변경을 할때 마다 수정과 배포를 해야해서 시간과 비용이 많이 든다. 반면에 소스를 분석하기에는 편한 구조가 된다. 눈으로 바로 보이니까.

그래서 이런 딱딱한 코딩을 배제하기 위해서 상수값들을 모아놓는 소스 파일을 하나 따로 만든다던가 별도의 텍스트 파일을 만들기도 하고 디비 테이블을 만들기도 한다. 아예 os 레벨의 환경 변수를 쓸수도 있고. 보통 소스에서는 이런식으로 부르게 되는데...

String helloKr = config.get("helloKr");

분석 난이도는 기하급수적으로 올라가게 된다. 개발자에게 실제 설정 파일이나 디비에 접근이 어려운 상황이라면 더 그렇다. 개발자에게 운영서버의 설정에 접근하거나 파일,디비 접근 통제가 없는 경우는 많지 않을테니까.

중용(中庸)이라는 말을 좋아하는데 세상 만사에 모두 적용된다고 생각한다. 하드코딩도 마찬가지다. 지나치거나 모자라지 아니하고 한쪽으로 치우치지도 아니하도록(사전 뜻 ㅎㅎ) 코드에 적던가 다른 방식을 사용하면 될것 같다.

사실 굉장히 애매한 말인데 상황에 따라서 다르게 써야한다는 것이다. 그 판단은 경험과 직관, 예감 등 개인적 판단에 의존하는 경우가 많게 되다보니 알아서 잘 써야 된다고 본다. 무...물론 코드리뷰를 해서 고수에게 좋은 피드백을 받을 수 있는 좋은 환경이라면... 어떨지 모르겠지만 난 직관적인 하드코딩과 디비를 통한 저장을 좋아하는 편이다. 파...파일은 싫다. 파일로 할거면 차라리 소스에 넣는 것이 낫다라고 보는 편이다.

가독성까지 겁나 떨어지는 xml을 극도로 싫어하는 이유다. 자바를 쓰게되면 스프링을 만나게 되고 스프링을 만나면 필연적으로 xml을 쓰게 되는데 설정 방법이 복잡하고 수정을 하고나면 서비스를 재시작해야하는 등 불편한 점이 한두가지가 아니다. 테스트와 운영 설정파일이 다르니 형상관리가 애매해지는 경우도 있고.


2. 실전은 다르다.


UnsteadyYawningCygnet.gif

많은 개발자분들이 한번씩 보다가 실소를 머금는 짤이 바로 이것이다. 지난번 뻘소리를 쓴 개발자의 잡설에서도 테스트 중요성을 여러번 이야기 했었는데 저 짤을 보면 단박에 이해가 된다.

우리의 테스터님들께선 아주 정교하게 테스트를 해주시지만 그만큼 우리 프로그램 테스트에 아주 최적화 되신 분들이라 아주 빈틈이 많은 프로그램도 잘 써주신다. 반면... 우리 클라께서는... 예상치 못한 움직임으로 항상 우리를 당황케 하시는 능력이 있으시다.

다양한 테스터가 있어야겠지만 그래서 해당 프로그램의 비지니스를 모르고 프로그램 특성까지 모르는 테스터께서 예상치 못한 버그 발견으로 한번씩 홈런을 쳐주신다. 메뉴얼화된 테스터/자동화된 도구보다 더.


3. 프로젝트.


우리 개발자들이 보면 또 한번 씁슬하게 웃게 되는 짤이 있다. 물론 모든 프로젝트가 이렇지는 않겠지만 대다수가 이렇게 돌아가는 모습이 있다라고 생각해서 일거다.

또 있다.

나 또한 '그래도 사랑해'를 외치며 살아가고 있는 것 같은데. 많은 이해관계자들 덕분이라고 생각한다. 예전에 아는분께 들었는데 모 고객사에서는 저녁 8시에 회의를 마치고 내일 아침 8시에 결과물을 보자는 곳도 있었다고 한다. 최근 개발자들의 입지가 올라갔다라고 하지만 극소수의 능력자분들을 빼면 글쎄...

내가 한국 IT 프로젝트를 논하고 비전을 제시한다go? 그것도 글쎄... 하지만 개발자들끼리 모여 공감하고 얘기할 수 있는 공간이 여기 아니겠는가. 오늘 이런 버그를 만났다. 진상 고객사를 만났다. 정도의 얘기를 하고 공감할 수 있는 공감의 글들도 많았으면 좋겠다. 최근엔 asinayo@asinayo님의 개발일기를 재밌게 보고 있다. sibba 프로젝트 파이팅. ( 시빠라고 읽나요? )


그럼 System.exit(0); - 난 자바니까.

[개발] IT 개발자의 잡설 - 주저리 주저리 #2 | Ecency