이전 글 SI 개발자의 프로젝트를 선택할 때 고려사항에 대해
지극히 주관적인 필자의 생각으로 프로젝트를 선택할 때
무엇을 고려해야 할까 적어보았습니다
궁금하시다면 아래의 링크를 클릭해주세요
2022.10.12 - [IT_Developer/About_Developers] - SI 개발자 프리랜서가 프로젝트를 선택할 때 무엇이 가장 중요할까?
하드코딩은 무엇일까?
개발자라면 다 알고 있으며 하드코딩이라는 이 단어를 정말 싫어할 것이다
왜 싫어하고 왜 하드코딩을 하는 것일까?
우선 하드코딩이란 무엇일까 사례를 살펴보면서 무엇인지 알아보자
비즈니스 업무에서 프로세스의 유연성이 없는 것이 하드코딩이다
비즈니스 업무에 프로세스를 진행함에 있어 유연성이 필연적이라고 할 수 있습니다
그 이유는 어떠한 행위를 하던 모든 것을 적용할 수 있어야 합니다
의류 쇼핑몰 플랫폼을 만들었다고 합시다
이 플랫폼은 에서 의류 매장을 연결하여 스마트 스토어처럼 판매한다고 합시다
그런데 이때 도매 사업 진출한다고 합니다
플랫폼에서 오프라인 매장에서는 납품받을 의류를 올리고
온라인 매장에서는 자신들이 판매할 의류를 올린다고 합니다
도매업은 플랫폼에 노출이 되지는 않지만 오프라인 매장에 의류를 납품하고 대금을 받아야 합니다
그래서 월별로 일정한 금액만큼 옷을 납품받기로 합니다
이 도매업의 비즈니스 업무를 추가한다고 한다면
이 프로세스를 어떻게 추가해야 할까요??
매장별로 오프라인 매장과 온라인 매장을 구분하여
온라인 매장에 해당하는 의류만 플랫폼에 노출하고
오프라인 매장에 납품받을 의류들을 올리는 경우에는 노출하지 않게 하는 것입니다
그리고 이때 매장별로 상품을 적용하여 금액과 할인율을 다르게 표현하게 합니다
상품에 대한 매출이 발생하면 상품에 따라 정산을 진행하게 됩니다
이러한 프로세스를 정립하게 되었다면
오프라인 매장, 온라인 매장을 등록하고 매장별로 상품을 적용시켜 매출 정산을 진행합니다
이렇듯 유연성을 가진 이 프로세스는 플랫폼에서 고객들이 자유롭게 오프라인 매장을 등록할 때마다
추가적인 작업이 없이도 업무가 가능할 것입니다
하지만 처음 온라인 매장만 있을 경우에서
프로세스를 정립을 하지 않고 개발자가 오프라인 매장을 추가할 경우
추가할 오프라인 매장만 분기를 하여 그 매장만 노출을 하지 않는 쿼리를 새롭게 작성하여
오프라인 매장을 구성하게 된다면 정말 간단하고 빠른 시간 안에 완성할 수 있게 될 것입니다
하지만 이 경우에는 오프라인 매장이 추가될 때마다 분기를 추가해주어야 하며
그 담당자가 그만두거나 부재중이라면 어디서 추가를 하는지 알 수 없기 때문에
단 한 가지만이라도 하드 코딩된 곳을 찾지 못하고
추가를 못한다면 오류가 발생할 것입니다
이렇듯 하드코딩이 단순히 코드상 고정값이 들어가는 것이 문제가 아닌
어떠한 업무에 있어 프로세스를 정립할 경우
유연성이 없어 개발자가 추가해주어야만
프로세스가 진행되는 코드들이 하드코딩이라고 합니다
이러한 문제점을 알면서도 왜 하드 코딩을 할까?
첫 번째는
정말 모르고 하는 개발자가 있다는 것입니다
필자도 한 번씩 왜 이렇게 코딩을 하느냐며,
프로세스를 정립하라고 조언을 합니다
그제야 그런 방법에 대해서 알게 되며 프로세스를 정립하기도 합니다
이것은 개발자가 비즈니스 업무에 대한 이해도가 없을 때 발생하는 현상입니다
프로젝트를 진행할 때 비즈니스 업무가 어떤 방식으로 진행되고 있는지
파악하는 것이 먼저이며 그것을 충실히 해야 하드코딩을 막을 수 있습니다
자신이 시작한 작은 하드코딩이
후임 개발자는 큰 고난이라는 것을 명심하시고 개발하시길 바랍니다
두 번째는
위에도 잠깐 말했지만
귀찮거나, 시간이 없다는 핑계,
그 업무에 대해서 단발성으로 취급해버리기 시작하면서
시작된 작은 하드코딩이 업무가 점점 커져버리면서
걷잡을 수 없게 됩니다
운영을 하고 있다면 더더욱 변경하기 힘들어지며
한번 수정 시기를 놓치면 그것은 암흑의 동굴로 빠지게 될 것입니다
누군가 시작한 하드코딩을 프로세스 화하기에는
운영 업무에서 사이드 이펙트가 엄청 크기 때문에 고치기 어려운 점이 있습니다
그래서 필자는 하드코딩을 보면 바로바로 개발자에게 수정 요청을 하며
필자가 개발한 코드에 누군가 하드코딩이 작성한다면 바로 수정합니다
자신이 작성한 코드에 자신의 이름을 기입하기에
저의 코드에 하드코딩이 있다는 것을 용납할 수 없습니다
이렇듯 마지막 자존심이라고 생각하시고
하드코딩을 하지 않기를 바랍니다
오늘은 하드코딩에 대해서 이야기해보았습니다
이것 또한 지극히 주관적인 이야기입니다
하지만 하드코딩은 좋은 것이 아니기에
하지 않는 것이 좋다는 것은 확실합니다
앞으로 좋은 마인드로 개발할 수 있도록 힘내시고
귀찮더라도 프로세스를 정립하고
시간이 없더라도 프로세스를 정립하는 것이
추 후에 시간을 아낄 수 있는 일이란 것을 알아 두셨으면 합니다
아직 IT 대모험은 끝나지 않았으니 힘내시고
더욱 정진할 수 있는 마음가짐을 갖도록 노력합시다
그럼 담에 또 봐요~
'IT_Developer > About_Developers' 카테고리의 다른 글
SI 개발자 프리랜서가 프로젝트를 선택할 때 무엇이 가장 중요할까? (0) | 2022.10.12 |
---|---|
IT 프리랜서 SI 개발자 초급, 중급, 고급 단가는 얼마나 될까? (0) | 2022.09.05 |
개발자 IT 프로그래밍 인터넷 강의 노마드코더에 대해서 그 장점과 단점은? (0) | 2022.08.21 |
프리랜서 IT 개발자 구인난 왜그렇게 극심한 걸까? 그 이유는? (0) | 2022.07.24 |