에게해 스터디원들과 함께하는 CS 간단 발표 및 독후감🧸
[1일1로그 100일 완성 IT지식] 28번 '구글 같은 서비스는 어떻게 개발할까?'
우리가 집을 짓는다고 생각을 해보자!
집을 지으려고 벽돌부터 만드는사람은 없을거다. 어떻게 이쁘게 지을지 설계부터 할거고, 잘 만들어진 부품들을 사올거고 부품들을 조립할거다. (물론 이렇게 간단하진 않겠지만ㅎㅎ)
프로그래밍도 별반 다르지 않다.
대규모 프로그래밍을 할 때는 뭘 할지 파악하고, 큰 맥락에서 점차 작은 부분으로 적당히 나눠서 개인에게 업무를 분담하고, 각자 작업하면서 전체적으로 일관되어 있는지 확인을 하며 프로그래밍이 진행될거다.
(집 지을때 비유한 잘 만들어진 부품이란 프로그래밍 세계에서 라이브러리, 인터페이스, 개발 키트 등이 있다. )
이때 프로그래밍의 규모가 커질수록 협업하는 인원도 늘어날텐데 다들 아시겠지만 남의코드를 읽고 이해하는건 쉽지않다.. 때문에 개인으로 분담한 업무가 합쳐질때 여러 오류가 발견된다.
2015년 구글 발표에 따르면 당시 구글의 전체 코드는 20억 행이라고 하니(omg) 중간중간 얼마나 많은 오류가 있었을지 생각만해도 어지럽다.
실제로 소프트웨어 개발 기업에는 구현코드보다 오류를 검증할 테스터 코드가 더 많고, 프로그래머보다 테스터가 더 많다고 한다.
소프트웨어의 발전 방향!
환경이 빠르게 변하는 만큼 프로그램도 거기에 맞춰 변화해야한다. 새로운 하드웨어가 개발되면 새로운 소프트웨어가 필요하다. 이 때문에 시스템을 변경해야 할 수도 있다. 또한, 새로운 법이나 기타 요구사항이 등장하면 프로그램의 사양이 바뀐다. 예를들어, 세법 프로그램의 경우는 세법이 바뀔 때마다 해당 프로그램을 바꿔줘야한다.
빠르게 변하는 환경에 맞춰 소프트웨어를 유지보수 해야한다. 안그러면 소중한 내 코드를 금방 못쓰게됨ㅠ
'CS 스터디' 카테고리의 다른 글
[소프트웨어] 컴퓨터를 작동하게 만드는 운영체제 (0) | 2022.08.11 |
---|---|
[소프트웨어] 기술 표준의 중요성 & 자유로운 소프트웨어, 오픈소스 (0) | 2022.08.10 |
[소프트웨어] 작문과 비슷한 프로그래밍 (0) | 2022.08.08 |
[소프트웨어] 고수준 언어에서 프로그램 실행까지 (0) | 2022.08.06 |
[소프트웨어] 알고리즘은 이상, 프로그래밍은 현실 (0) | 2022.08.05 |