Development

고급 프로그래머로 인정받기 위한 필수 조건 10가지

Danny Seo 2024. 9. 2. 23:25

목차

    고급 프로그래머로 인정 받기

    1. 자신이 작성한 코드의 비기능적 측면을 이해해야 합니다.

    이 비기능적 측면에는 법적 요구 사항, 보안, 신뢰성, 적시성, 효율성, 안정성, 초기 개발 비용, 유지보수 비용, 운영 비용, 그리고 운영 환경에서 발생할 수 있는 예기치 못한 사고를 해결하기 위한 비용 등이 포함됩니다.

     

    여기서 말하는 비용은 항상 금전적인 것만을 의미하지 않으며, 시간과 인력 자원의 필요성으로도 평가될 수 있습니다. 프로그래머는 코드 내에서 명시적으로 처리해야 하는 측면들을 분석할 수 있어야 하며, 어떤 측면은 조직 관리, 인력 관리, 프로젝트 관리에서 처리되어야 하는지도 판단할 수 있어야 합니다.

    2. 프로그래밍에서 아키텍처 및 장기적 결정을 내릴 수 있어야 합니다.

    산업에서 사용되는 프로그램은 종종 하나의 시스템 내에서 다른 프로그램들과 함께 사용되며, 수년 또는 수십 년 동안 유지보수 되어야 합니다. 이러한 아키텍처 및 장기적 결정은 시스템 내 프로그램 간의 상호작용에 영향을 미치며, 프로그램의 생애 동안 운영과 후속 개발에 큰 영향을 미치게 됩니다.

    3. 통합 시스템에서 프로그램 실행 시 발생할 수 있는 실패 사례를 예측하고 극복할 수 있어야 합니다.

    실제로 프로그램은 항상 잘 작동하는 것은 아니며, 특히 시스템의 일부가 무작위로 실패하거나 한 개 이상의 하드웨어나 소프트웨어가 손상되는 경우 오류가 발생할 가능성이 있습니다.

    고급 프로그래머로 인정 받기

    4. 프로그램과 관련된 문제 발생 시 근본 원인을 파악하고, 이를 개선할 수 있어야 합니다.

    프로그램이 실제 운영 상황에서 실행된 후에도, 아무리 잘 설계되었더라도 여전히 실패하거나 오류가 발생할 수 있습니다.

    고급 프로그래머는 최소한 실제 사용되는 중요한 시스템에서 이러한 문제를 성공적으로 해결한 경험을 입증할 수 있어야 합니다. 이는 프로그래머의 경력과 무관하게 필수적인 기준입니다.

    5. 자신이 사용하는 알고리즘을 이해해야 합니다.

    복잡한 알고리즘을 꼭 인기 있는 라이브러리나 참조 구현체와 동일하게 재구현할 필요는 없지만, 고급 프로그래머는 문제를 해결하기 위해 사용된 알고리즘의 논리 흐름과 장단점을 설명할 수 있어야 합니다.

    6. 문제 해결을 위한 다양한 대안 해결책을 탐색하고 인식할 수 있어야 합니다.

    고급 프로그래머는 한 가지 해결책에만 집중하지 않고, 다른 해결책이 더 적합할 수 있는 가능성을 열어두어야 합니다. 또한, 이 해결책들을 구축하는 데 사용되는 도구 역시 일반적으로 사용되는 솔루션에 초점을 맞추되, 가장 적합한 솔루션을 계속해서 찾아야 합니다.

    고급 프로그래머로 인정 받기

    7. 시스템 내에 존재하는 제한 사항을 이해해야 합니다.

    하드웨어, 프레임워크, 프로그래밍 언어 자체에는 많은 제한 사항이 있으며, 이는 기능적 및 비기능적 요구 사항을 충족하기 위해 다른 방법을 찾아야 할 수도 있습니다.

    8. 자신이 작성한 프로그램의 정확성을 독립적으로 검증할 수 있어야 합니다.

    이것은 각 구성 요소에 대한 단위 테스트나 전체 시스템에 대한 통합 테스트를 사용하는 등 다양한 방법으로 수행될 수 있습니다.

    9. 다른 사람이 작성한 프로그램의 흐름을 자연스럽게 읽고 이해할 수 있어야 합니다.

    이는 매우 중요합니다. 왜냐하면, 프로페셔널 환경에서는 다른 사람들이 작성한 코드를 읽을 수 있는 능력이 훨씬 더 중요하기 때문입니다. 또한, 대부분의 시간은 다른 사람이 작성한 프로그램 코드를 읽는 데 소비될 것입니다. 공정하게 말하자면, 다른 프로그래머들도 자신의 프로그램을 잘 작성하고 동료들이 쉽게 이해할 수 있도록 작성했을 것이라고 가정합니다.

    10. 프로그램 코드를 잘 작성하고, 이를 자연스럽게 이해할 수 있게 해야 합니다.

    물론, 이는 필수적입니다. 왜냐하면 일부 비트리비얼 프로그램은 팀의 참여 없이 개인이 수행할 수 없기 때문입니다. 자연스럽게 이는 팀에서 합의한 최소 기준에 따라 수행되며, 오픈 코드 프로젝트인 경우 커뮤니티에서 합의한 기준을 따르게 됩니다.

     

    읽어주셔서 감사합니다! 😊
    개발 관련 궁금증이나 고민이 있으신가요?
    아래 링크를 통해 저에게 바로 문의해 주세요! 쉽고 빠르게 도움 드리겠습니다.

    '개발자서동우' 프로필 보기

    'Development' 카테고리의 다른 글

    성장을 멈춘 개발자들의 공통점  (0) 2024.08.04