본문 바로가기
프로그래밍/Code Craft

[6부 정상으로부터의 조망] Chapter23 외적인 한계

by Ohdumak 2017. 12. 5.

여러 가지 프로그래밍 분야

 

이장의 내용

  • 여러 가지 프로그래밍 분야 비교
  • 자기 분야에서 효과적으로 일하는 방법
  • 분야에서 요구되는 스킬

 

하나의 프로그래밍 언어는 없다

특별한 프로그래밍 분야가 주어졌을 코드 장인은 자기 일을 하는 방법 자기 코드를 다루는 방법, 자기가 가진 툴을 가장 사용하는 방법을 안다

 

애플리케이션 프로그래밍

독립적인 프로그램을 프로그래밍하는

애플리케이션 프로그래밍에 관한 주요 시장은 종류가 있다

  • 비닐 포장 소프트웨어
    • 비닐 포장 소프트웨어는 대량 판매 시장을 위해 개발 된다
    • 코드는 모든 버전의 운영체제, 여러 가지 컴퓨터 구성, 서로 다른 라이브러리와 설치되어 있는 다른 애플리케이션들과 함께 우아하게 돌아가면서, 모든 것들에 올바르게 대처해야만 한다
  • 맞춤형 애플리케이션
    • 맞춤형 애플리케이션은 주문을 받아서 만들어진다

 

게임 프로그래밍

하드웨어 그래픽 능력이 완전히 활용되고, CPU 지도, , 퍼즐을 관리하면서 최고점까지 사용되고, 그러면서 동체 물리학에 대한 진지한 모델링이 수행된다

GTA 최적화가 잘되어있는 게임이라고 들었다

 

시스템 프로그래밍

시스템 소프트웨어는 애플리케이션 개발자를 겨냥한다.

애플리케이션 프로그래머를 위한 지원 서비스이고, 종종 프로그램의 런타임 환경과 밀접하게 엮이기 때문이다

 

임베디드 프로그래밍

소비자용 전자제품에는 제어와 작동을 위한 소프트웨어가 필요하다

임베디드 개발자는 빠듯한 제약 하에서 일을 한다

  • 자원이 아주 부족하다
  • 사용자와의 인터페이스 기회는 상당히 제한되어 있다

임베디드 시스템은 전형적으로 조그만 컴퓨터와 전용 하드웨어, 그리고 리얼타임 OS 간단한 제어 프로그램의 조합으로 이루어진다

 

분산 프로그래밍

멀티컴퓨터 아키텍처는 여러 가지 상황에서 사용된다. 분산 시스템을 가지고 일을 하고, 설계를 하면 우리는 완전히 새로운 문제의 세계로 들어가게 된다

목표는 개의 프로그램이 서로 다른 기계에서 돌아가면서 응집된 전체로서 작동하도록 시스템을 구성해서 설계하는 것이다

 

애플리케이션 프로그래밍

아주 특별한 형태의 분산 컴퓨팅이고, 사용자 인터페이스가 원격 클라이언트-, 브라우저 상에 존대한다

 

엔터프라이즈 프로그래밍

회사를 위한 모든 개별적인 시스템을 하나로 붙여서 통일되고 응집력 잇는 전체를 생성한다

 

수치 프로그래밍

계산을 많이 하는 과학적이고, 고도로 기술적인 업무와 관련이 있다

 

그래서 ?

자신이 속한 분야에 대해서 알아두자 분야의 복잡한 세부 사항에 대해 배우자. 요구사항을 적절히 만족시키는 우수한 소프트웨어의 작성 방법을 이해해라

 

간추림

우리가 배운 모든 분야에는 한가지 공통점이 있다; 서로 다르다는 . 분야에서 소프트웨어를 설계할 때는, 그에 맞는 근본적인 설계 결정을 내려야 필요가 있다

 

좋은 프로그래머는…

  • 자기가 마주하고 있는 문제의 성격에 대해서 안다
  • 자기의 코드와 설계를 문제 도메인에 맞춰서 재단한다

나쁜 프로그래머는…

  • 단순할 정도로 편협한 소프트웨어 세계관을 가지고 있다; 다른 종류의 소프트웨어 개발을 구동하는 힘을 알지 못한다
  • 문제 도메인에 어울리지 않는 코드를 작성한다(성격이 맞지 않는 아키텍처를 고르거나, 부적절한 코드 관용구를 선택한다)

 


728x90

댓글