[CS] 구글같은 서비스는 어떻게 개발할까?

괴발·2022년 8월 5일
0

현실의 프로그래밍은 대규모로 이루어진다.
보통 무엇을 해야 할 지 파악하고
넓은 명세부터 점차 작은 부분으로 적절히 나누고
각 부분을 작업하면서 전체적으로 일관되어 있는지 확인해야 한다.

프로그래밍에서 작업 하나의 크기는 보통
한 사람이 프로그래밍 언어로 정확한 처리 단계를 작성할 수 있는 정도이다.
다른 프로그래머들이 작석한 부분이 함께 작동하는지 확인하는 일은 어렵다.
1999년 NASA의 화성 기후 궤도선이 고장을 일으켰는데
궤도 수정 계산을 미터법과 영국의 파운드법을 혼합해 사용하여 결국 고장이 일어난 사고도 있었다.

오늘날 유용한 작업 위해 만들어지는 프로그램들은 수천에서 수만 줄의 코드로 이루어져있을 것이다.
구글은 2015년 당시 구글 전체 코드 규모를 20억줄이었다고 했다.

라이브러리, 인터페이스, 개발키트

프로그래밍을 할 때 처음부터 모든것을 만들지 않는다.
누군가가 만들어놓은 여러 구성 요소들을 사용할 수 있다.

프로그래밍이란 이미 있는 구성요소를 이해하고 자기만의 방식으로 이어붙이는 것이다.

가장 단순한 수준의 프로그래밍 언어는 함수(function) 매커니즘을 제공한다. 함수를 이용하면 따로 만들어진 구성요소를 필요에 따라 적절하게 조합하여 프로그램을 만들 수 있다. 이때 연관된 함수들의 모음을 보통 "라이브러리" 라고 한다.

함수 라이브러리가 제공하는 서비스는 API(애플리케이션 프로그래밍 인터페이스) 로 프로그래머에게 제공된다.
API는 포함하는 함수와 더불어 함수의 용도가 무엇인지, 어떻게 사용해야하는지, 어떤 데이터를 요구하는 지, 어떤 값을 만들어 내는 지 나열한다. 또한 API는 시스템 내부에서 주고받는 데이터의 구조를 의미하는 자료구조와 기타 세부사항도 기술할 수 있다.

이 모든것이 모여 프로그래머가 서비스를 요청하기 위해 무엇을 해야하고 결과적으로 무엇이 계산될지 정의한다. 이러한 명세는 상세하고 정확해야한다.

요즘 대규모 시스템은 프로그래머들이 복잡한 소프트라이브러리를 잘 다룰 수 있도록 SDK(소프트웨어 디벨롭먼트 키트)를 포함한다.


버그

프로그램은 일정 규모 이상 커지면 한번에 잘 작동하는 법이 없다.
시키지 않은 엉뚱한 일을 하거나 잘못된 대답을 내놓는 것은 프로그램의 결함, 버그가 생겼다고 한다.
이름이 버그(Bug) : 벌레 인 이유는 과거 기계식 컴퓨터 안에 정말 죽은 나방(벌레) 가 발견되었고 그 벌레는 워싱턴 D.C.에 있는 스미스소니업 협회 박물관에 보존되어있다.
옥스퍼드 영한사전에 따르면 '버그(bug)라는 말은 1889년부터 사용되었음을 알 수 있다.


끊임없는 변화에 뒤쳐지지 않고 따라가기 위해서 소프트웨어 유지보수는 매우 중요하다.

profile
괴발개발

0개의 댓글