[ Essay - Technology, Essay - Intuition ] Chat GTP시대의 도래와 생각하는 방식에 대해 : 개발자의 미래에 대해

이미지
벌써 올해도 반쯤 지나 뜨거운 여름이 다가왔다. 굉장히 빠르게 지나간듯한 느낌이 드는데  아마 의미있는 시간을 보냈다는 이야기이기 때문에  그렇게 나쁜 신호는 아닐 것 이다. 괴로운 시간이였다면, 1초가 1년 같이 느껴졌을테니 말이다. 더위에 매우 약한 나에게 있어서는 지옥과 같은 시기이기도 하지만 늘 그렇던 것 처럼 에어컨 덕분에 어찌저찌 버틸 수 있을 것 같다. 어쨋든, 이번에는 저번의 에세이 주제, Chat GTP시대의 도래와 생각하는 방식에 대한 이야기에 이어서  과연 개발자의 미래는 어떻게 될 것인가에 대해 이야기를 나누어보려고 한다. 어쩌면 모두가 인식하고 있듯이 지금 2025년 현재,  꽤나 중요한 시기에 직면하고 있는지도 모른다. 왜냐하면, 생성AI의 발전 속도가 생각보다 빠르게 발전하고 있고,  그에 따라 실제 업무에서도 빠르게 사용되어지고 있기 때문이다. 이러한 상황에서 개발자에게 있어서 가장 두려운 점은  당연히 생성AI에 의해 개발자가 대체될 것 이라는 두려움일 것 이다. 이는 개발자에게만 한정된 이야기는 아니지만 말이다. 아마 필드에서 나와 같이 일하고 있거나  개발자로서 직업을 가지려는 생각이 있는 사람이라면  한번쯤은 생각해볼법한 주제라 생각 한다. 물론 미래가 정확히 어떻게 될 지는 알 수 없으나  이런 생각을 함으로써 몇 가지 힌트는 얻게 될지도 모르니  만약 얻게 된다면 미래에 대한 방향성을 조금이나마 올바른 쪽으로 돌릴 수 있을 것 이다. 이 글을 끝맽을 때는 조금이라도 힌트에 도달하기를 바란다. 과거의 역사 이러한 의문에 대한 해결책으로서 일반적으로 자주 사용하는 방법이 있다. 바로 역사를 보는 것 이다. 물론 이러한 역사를 해결책을 찾는거에 대한 전제조건은  우리가 '구 인류'라는 전제조건이 있었을 때 의미가 있다. 그러니깐 현대인도 기원전 8세기의 고대 로마인도  본질적으로 다르지 않다는 것을 인정해야만 한다. 예컨데...

[ Web ] 웹 애플리케이션? 웹 사이트?(Web Application? Web Site?)



웹 애플리케이션이란, 웹 브라우저와 웹 기술을 사용하여,
사용자와 대화하는 대화식으로서 
인터넷을 이용하는 일종의 컴퓨터 프로그램을 말한다.

일반적으로 웹 사이트(Web Site)와 혼동하기 쉬운데,  
엄밀히 말하면 웹 사이트(Web Site)는 
기본적으로 웹 페이지의 모음으로 
지금의 수 많은 웹과 같이 콘텐츠를 제공하는 
사용자와 대화하는 식의 웹이 아니였다.

웹 사이트의 예




가장 대표적인 웹 사이트의 예로서는 
과거의 블로그나 뉴스 페이지를 
예로 드는 것이 알기 쉬울 것이다.

과거의 블로그들이나 뉴스 페이지들은 
페이지들을 모아놓은 정말 순수한 웹 사이트였다. 

즉, 과거의 블로그들과 뉴스 페이지들은
정해진 웹 페이지를 보여주는 웹 페이지의 모음에 불과했다.


17 of the Best Examples of Business Blog Design | IMPACT

물론 지금의 블로그는 경계가 무너지면서 
검색 기능, 댓글 기능 등 
여러가지 애플리케이션이 포함된 웹 사이트가 되어버렸다.

웹 사이트와 웹 애플리케이션의 경계가 무너진 것이다.

그렇기에 지금의 블로그들은 
동적 페이지 기술들과 대화형 방식 등의 
다수의 애플리케이션들이 들어가 있기 때문에 
엄밀히 말하면 웹 사이트라고 말할 수는 없을 것이다.

결국 본래의 웹 사이트라는 것은
지금과 같이 댓글을 달고, 검색을 하며 
좋아요와 싫어요를 누르고 이러한 반응으로서 
바로 페이지의 화면으로 나타나는 
대화식의 웹 애플리케이션이 아니라는 것이다.

따라서, 순수하게 웹 사이트라고 할 수 있는 것은
단순히 HTML으로만 이루어진 링크로 연결 되어 있는
과거의 뉴스 페이지나 블로그들 뿐이다.

웹 애플리케이션의 예


반대로 웹 애플리케이션은 
사용자와 대화하는 식으로 기능을 수행하기 때문에

웹 애플리케이션을 이용하는 사용자의 요구에 따라 
웹에서 다른 이용자에게 메시지를 보내거나 
댓글을 다는 등의 애플리케이션이 동작해야 한다.



가장 대표적인 예로 
댓글을 달 수 있고, 
좋아요와 싫어요와 같은 애플리케이션을 포함하는
사용자와 대화식으로 작동하는
Facebook을 예로 들 수 있을 것이다.

이 기능들이 동작할 수 있는 것은 
내부의 수 많은 크고 작은 애플리케이션들이 있기 때문이다.

반대로 순수한 웹페이지라면
할 수 있는 것이 라고는 정해진 링크를 타고 
다른 페이지로 들어가는 것 말고는 아무 것도 할 수 없다.

링크는 단지 정해진 태그로 표현되는 것이기 때문에 
애플리케이션과는 거리가 매우 멀다고 볼 수 있다.

적어도 애플리케이션이라고 하려면 
입력을 받고 알고리즘을 통해 산출하여 
원하는 출력 값을 얻어내야만 한다. 

지금에서는 흔히 볼 수 있는 

검색 포털 사이트에서 볼 수 있는 위와 같은 기능들은 
웹 페이지 내부에 있는 다수의 애플리케이션이 동작하면서 화면에 출력되는 것 이다. 

따라서 웹 애플리케이션은 웹 사이트보다 
인터페이스, 구현의 측면에서
다양한 첨단 기술이 요구되기 때문에 구현이 어렵다고 할 수 있다.

왜냐하면, 순수한 웹사이트는 
단순히 페이지를 묶기만 하면 되기 때문에 별다른 기술이 필요 없다.

HTML 태그만 알고 있다면 말이다.

결국 웹 애플리케이션 이라는 것은 
순수한 웹 사이트와 단순하게 비교하자면, 

내부의 프로그래밍 언어로 작성되어진 
특수한 애플리케이션(혹은 프로그램)이 있느냐 없느냐로 구분해 볼 수 있다.
 

현재의 웹 애플리케이션과 웹 사이트


현재에 들어서는 위에서도 언급했듯이 
웹 사이트로 분류되어진 것들도 
필요에 의해 검색이나 댓글 기능 등의 
애플리케이션들이 포함되면서 대화식으로 변하고 있기 때문에
사실상 웹 애플리케이션과의 경계가 무너졌다고 볼 수 있다.

따라서 신뢰있는 기관, 혹은 단체에 의해 
대부분의 개발자들이 납득할 만한 정의가 제시되고 정립되지 않는다면
현재의 웹 애플리케이션과 웹 사이트를 구분하려고 하는 것은
의미가 퇴색된다고 볼 수 있다.

과거 초기의 웹 애플리케이션은
클라이언트-서버 컴퓨팅 환경에서의
각 응용 소프트웨어 마다 UI를 가지고 있었으며
사용자 PC마다 따로 설치했어야 했다.

왜냐하면, 현재는 HTTP이라는 통일된 프로토콜을 사용하지만
과거에는 대개 회사마다 독자적인 통신 프로토콜을 사용했었기 때문이다.

과거건 지금이건 
독자적인 규격을 가지는 것은 회사 입장에서 매우 큰 이득이다.

소니의 블루레이나 
애플의 라이트닝 커넥터를 생각한다면 이해하기 편할 것이다.

하지만, 적어도 Web에서는 
이 독자적인 규격을 가지는 것은 
위에서 서술했듯이 매우 큰 비용을 초래했다.

왜냐하면 서버 환경이 바뀌면 
그에 따라 클라이언트 측 PC의 
응용프로그램들도 업그레이드 해야 했으며
이에 따른 기술 지원 비용이 증가함에 따라 
생산성은 떨어지게 되었기 때문이다.




이러한 과거의 웹 애플리케이션과는 대조적으로 
현재의 웹 애플리케이션(Web Application)
HTTP라는 표준 프로토콜의 정립으로 인해 
웹 애플리케이션을 제공하는 기업의 유지 비용이 줄어들었다.

또한 비교적 최근에 들어서 이를 뛰어넘어
정적일 수 밖에 없는 웹 문서를 
정적인 페이지 뿐만 아니라 동적으로 만들어 낼 수 있게 되었다.
 
동적 기능을 수행하는 자바 스크립트(JavaScript)라는 
표준 언어가 클라이언트 동작을 담당한다.

과거에는 웹 페이지는 
단순히 정적 문서로서 웹 브라우저로 배포되지만,

현재에는 웹 문서가 연속적으로 전달되고 
웹의 정보를 담은 웹 폼(Form)을 통해 정보를 
주고 받을 수 있기 때문에 
사용자에게 데이터를 입력하게 할 수 있음은 물론이고

Ajax, axis, fetch와 같은 비동기 통신 기법의 정립으로 인해
과거 웹 애플리케이션의 한계를 개선할 수 있게 되었다.

따라서 현재 웹 애플리케이션을 만들 때 중요한 점은 
사용자의 운영 체제의 종류나 버전에 상관없이
작동되도록 표준 브라우저 기능을 사용 가능해야 하게 한다는 점이다.

, 어느 운영체제건 간에 
어떤 웹 브라우저 간에 구동이 가능해야 한다는 것이다.

하지만, HTML, CSS, DOM과 같은 다양한 기술을 이용한 
불완전한 구현,
특히 브라우저 마다 다른 DOM의 경우 
웹 애플리케이션의 개발에 많은 문제를 야기 할 수 있다.

따라서 가장 이상적인 것이지만 
현실적으로는 불가능에 가깝다고 할 수 있다.

현실에서는 다양한 브라우저에 대응하기 위해서는
크로스 브라우징을 해야만 한다.




이 블로그의 인기 게시물

[ Web ] 웹 애플리케이션 아키텍처 (Web Application Architecture)

[ Web ] 서버 사이드(Sever Side) ? 클라이언트 사이드(Client Side)? 1 [서론, 클라이언트 사이드(Client Side)]

[ Web ] 웹 애플리케이션 서버 아키텍처의 정의 및 유형 ( Define and Types of Web Application Server Architecture )