Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

과거의 내가 미래의 나에게

개발자에 대한 고찰 본문

카테고리 없음

개발자에 대한 고찰

양바삭 2023. 6. 16. 02:55

 

개발자란 무엇일까?

모든 것을 배우기 앞서 가장 근본적인 것이 궁금해졌다. 내가 직업이라고 말하고 다니는 “개발자”란 정확히 무엇을 하는 직군일까? 누군가 이런 질문을 하였을 때 이해하기 쉽도록 웹사이트 같은거나 모바일 앱 같은 것을 만드는 사람이야. 라고 가볍게 대답해주었지만 개발자인 내 자신은 이 대답이 개발자를 표현할 수 있는 문장이라고는 생각하진 않았다. 어렴풋이 개발자란 무엇인지 알고 있었지만 막상 그것을 문장으로 표현하려니 손이 멈춰지는 나를 보고는 개발에 대해 더욱 더 심도있게 학습하기에 앞서 “개발자”란 무엇인지 깊이 생각하고 정의 내릴 필요가 있음을 느껴 이 글을 쓰기 시작한다.

 

무언가를 알기 위해서는 그것의 역사를 보면 정의가 명확해진다. 개발자의 역사는 곧 컴퓨터의 발전과 맥락을 같이 할 수 있기에 컴퓨터의 역사에 대해서 간단하게 먼저 살펴보겠다.

 

개발자가 뭐하는지 모르는 사람은 봤는데 왠지 개발자가 어떻게 생겼냐하면 물어보면 다들 수월하게 대답하더라

 

컴퓨터의 역사

영국의 수학자 찰스 배비지는 수학 문제를 자동으로 풀 수 있는 계산기를 원했다. 그리고 해석 기관이라는 하드웨어를 만들고, 이 곳에다 구멍이 뚫려진 카드들을 이용하여 하드웨어에 명령을 내려 계산을 하게끔 만들었다. 각 구멍이 뚫려진 카드들은 전부 다른 결과를 받을 수 있었고 이것이 곧 소프트웨어였다.

 

그 후 각종 수학 계산과 공식을 편하게 도출해내기 위해 다양한 하드웨어와 소프트웨어들을 개발하였고 시간을 흘러 1940년대, 에니악이라는 다용도 디지털 컴퓨터가 만들어져 계산 작업을 대규모로 빠르게 처리할 수 있게 되었다. 후에 에니악은 외부에 배전반의 연결에 의해 계산을 수행했는데 이는 매번 작업할 때 마다 외부의 배전판을 교체해야하는 불편함을 야기했다.

 

에니악의 모습. 엄청 크고 에너지도 많이 잡아먹었다고 한다. 실제로 그래 보인다.

 

이런 에니악의 단점을 보완하기 위해 존 폰 노이만은 데이터를 외부에서 받지 않고 내부의 기억장치에 저장한 후 프로그램의 명령을 순서대로 꺼내 해독하고 실행하는 방식을 제안하여 에드삭을 개발하였다. 이는 한 블로그의 예시를 그대로 인용하자면, 소프트웨어 프로그램을 실행하려면 그 때 마다 소프트웨어 프로그램을 다시 만들어주어야 하는 방식에서 소프트웨어 프로그램을 내부의 기억장치에 내장시켜 지금처럼 언제든 사용될 수 있도록 만든 것이다.

 

내부 기억장치를 활용한 방법은 컴퓨터의 방식에 기초가 되어주었다. 이를 바탕으로 컴퓨터는 점차 발전되었고, 사람들, 즉 개발자들은, 자신이 원하는 목적을 좀 더 빠르고 쉽게 이루기 위해 컴퓨터를 업그레이드 시키고 컴퓨터에서 다양한 활동을 하기 위해 다양한 소프트웨어를 구상하고 개발하기 시작한다.

 

옛날부터 개발자들은 세상의 불편하고 어려운 점을 개선하고 더 나은 세상을 만들기 위해 아이디어를 내고 프로그래밍하여 결과물을 만들어왔다. 사람들이 더 편하고 더 똑똑한 삶을 영위할 수 있도록 하드웨어 제품을 만들었고 또 그 안에서 사용할 수 있는 소프트웨어를 만들어왔다. 즉, 개발자는 것은 삶을 더 나은 방향으로 발전시키기 위해 끝없이 고민하고 창조해내는 직업이 아닐까 생각한다.

 

웹 개발자?

개발자들은 참 다양한 것을 만든다. 다양한 하드웨어 제품 뿐 아니라, 웹사이트, 모바일 앱 등 그 분야는 수 없이 많다. 시간이 지날수록 기술은 첨예해짐에 따라 개발자들이 활동하는 무대도 그만큼 훨씬 넓어졌다. 요리사도 한식 요리사, 일식 요리사와 같이 구분되어있듯 개발자도 집중하는 곳이 무엇이냐에 따라 웹 개발자, 앱 개발자, 보안 개발자 등 다양하게 나뉘게 된 것이다.

 

이 수많은 개발자 직군 중 먼저 웹 개발자에 대해 좀 더 살펴볼 것이다. 위에서 개발자를 알기 위해 역사를 살펴보았듯 이 곳에서는 웹 개발자를 알기 위해 먼저 웹이 탄생하게 된 배경과 웹이 어떤 과정을 거치며 성장했는지를 알아볼 것이다.

 

웹의 역사

웹이라는 것은 1980년대에 등장하였다. 당시의 웹은 다양한 사람들이 어디서든 정보를 올릴 수 있고, 한 정보를 통해 다른 정보로 이동함으로써 더 많은 지식을 접할 수 있으며 게다가 그 수많은 정보들을 누구나 언제든지 볼 수 있는 서비스였다. 위에서 개발자는 삶을 더 나은 방향으로 발전시키위해 고민하고 창조해내는 사람들이라고 했다. 그렇다면 이러한 웹은 어떠한 고민으로 인해 등장하게 되었을까?

 

1945년, 버니바 부시라는 사람은 세상이 발전함에 따라 지식은 점차 고도화되어 정보가 만들어지는 속도는 급증하는데, 이를 정리하고 기록할 기술이 없음을 지적했다. 그리고 그는 메멕스라는 가상의 장치를 제안했는데 이는 모든 정보를 하나로 모아 누구나 언제든 쉽게 접근할 수 있는 지식의 창고 개념으로 웹의 본질을 미리 그린 것이나 다름 없었다. 이러한 부시의 개념을 구현하기 위해 많은 사람들이 수많은 아이디어를 내기 시작한다.


더 많은 지식을 접근 가능하도록!
1960년대, 한 컴퓨터 과학자는 하이퍼텍스트라는 것을 고안해낸다. 이는 참조를 통해 한 문서에서 다른 문서로 즉시 접근할 수 있게끔 하는 기술로, 이를 통해 사람들이 다양한 지식을 더욱 쉽게 접근하는 것을 가능하게 만든다.

누구나 어디서든 정보를 올릴 수 있도록!
1980년대가 되어서는 위의 하이퍼텍스트를 기반으로 하여 여러 시스템이 등장하기 시작하였다. 인콰이어나 하이퍼카드가 그 예시로써, 환경에 상관없이 누구나 간단히 문서를 생성하고 그 문서를 기존의 문서와 연결하여 정보끼리 다가가기 쉽게끔 만들었다. 

모두가 언제든 정보들을 볼 수 있도록!
1989년, 팀 버너리스는 World Wide Web 프로젝트를 시작하였는데, 이는 하이퍼텍스트를 인터넷 환경에서 활용하여 사용자가 언제 어디서든 자유롭게 접근할 수 있도록 한 것이다. 

< 참조 >
웹의 탄생과 확장은 단연코 인터넷이 발달했기 때문에 가능한 일이었다. 인터넷은 international Network의 줄임말로써, 모든 컴퓨터를 하나의 통신망 안에 연결하고자 한다는 뜻에서 이름이 붙여졌다. 즉, 인터넷은 네트워크를 통해 전 세계의 컴퓨터들이 모두 연결되게끔 하는 글로벌 네트워크 시스템을 의미한다. 인터넷으로 인해 어느 컴퓨터에도 동일하게 볼 수 있는 환경이 만들어졌고 사람들은 이를 이용하여 Web, E-Mail, FTP(파일전송) 등 다양한 서비스를 만들었는데 이 중 Web이 인터넷 서비스 중 가장 성공한 사례이다.

월드 와이드 웹은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 말한다. 하이퍼텍스트를 통해 다양한 정보를 연결하여 사용자가 자유롭게 접근하여 문서를 기록하고 볼 수 있도록 하는 시스템을 인터넷 상으로 만든 것이다. 이렇게 탄생한 것이 월드 와이드 웹(world wide web)이라는 최초의 웹이다.

 

최초의 웹은 아직도 서버가 열려있다!

 

 

웹은 계속 발전해간다

이후 개발자들은 쌓아놓은 다양한 정보들을 쉽게 살펴볼 수 있도록 검색 기술을 발전시키기 시작하고 그에 따라 다양하게 쌓은 정보를 쉽게 검색하고 살펴볼 수 있는 포털 서비스(NAVER, Daum 따위)가 등장하게 된다. 그리고 언제든 누구나 쉽게 볼 수 있다는 웹을 이용하여 자신이 판매하는 상품을 웹에다 공개함으로써 더 많은 고객을 유치할 수 있는 온라인 상거래 서비스가 나오게 되었으며, 현대에 이르러서는 사람과 사람이 직접 만나 이야기할 수 있는 소셜 네트워크 서비스까지 출몰하게된다.

처음에는 단순히 지식의 도서관을 목적으로 만들어졌던 웹은 지금에 이르러서는 소셜 네트워크 서비스라는 형태로까지 발전하였다. 완전 다른 서비스들을 다양하게 제공하게 되었지만 과거부터 지금에 이르기까지 모든 서비스들이 공통적으로 가지고 있는 웹의 기반이 있다. 바로 누구나 올릴 수 있고 누구나 볼 수 있는 환경이 그것이다.


웹에서 제공하는 서비스를 개발하는 사람으로서 이러한 웹의 기반 하에 모든 서비스가 구축되었다는 것을 명심하고 있어야할 것이다. 내가 어떠한 웹 서비스를 개발하더라도, 그것은 누구나 쉽게 사용할 수 있어야하고 누구나 쉽게 볼 수 있어야한다. 이 뜻은 웹서비스를 구현할 때 단순히 요구사항을 바탕으로 기능을 구현하는데 집중하는 것이 아닌, 어떻게 해야 더 쉽게 사용할 수 있고 어떻게 해야 더 쉽게 접근할 것인지 고민해야한다는 것이다.

 

웹의 역사를 살펴보기 이전까지는 웹은 단순히 하나하나의 상품에 불과하고 그저 고객이 원하는 것을 기술적으로 빠르고 정확하게 구현해내는 것이 웹개발자의 일의 전부인줄 알았다. 하지만 웹개발자는 요구사항 구현을 끝이 아닌 시작으로 삼고 요구사항에는 없을지라도 누구라도 접근 가능하게 하기 위헤 웹접근성을 고려하고, 빠른 접근 속도를 위해 최적화 작업을 하며, 원하는 정보에 정확히 접근하게끔 검색 기술을 발전하는 등 계속해서 서비스를 웹의 정신에 맞게끔 발전시켜야 할 것이다. 

 

지금까지 웹의 역사에 대해서 살펴보았다. 웹의 역사를 통해 웹개발자가 무엇에 집중해야하는지 알아보았으면 이제는 웹이 어떻게 구성되어있는지, 어떤 원리로 작동하는지에 대해 좀 더 자세히 알아볼 시간이다. 다음 글에서는 웹이 어떻게 구성되어있는지, 또 웹이 그려지는 과정은 어떤지 등 웹에 대해서 좀 더 알아보겠다.

 

 

 

 


참고 문서

 

 

 

Comments