[ Essay - Technology ] 바이브 코딩의 허와 실

이미지
지금 우리는 가히 AI 시대라는 패러다임의 전환에 시대에 살고 있다고 해도 과언이 아니다. 특히, IT 업계에서 대다수의 작업량을 차지하는 프로그래밍의 영역에서 생성 AI를 이용한 생산성 향상의 가능성이 보이면서 어느 분야보다 가장 빠르게 괄목적인 성과를 이루고 있는듯 하다. 고작 몇 년전에는 커서에 의해 프로그래밍을 AI에게 프로그래밍을 위임하는 것이 더 나을 수 있다는 것이 어느정도 증명되면서, 작년에는 Claude Code의 영향으로 인해 이러한 이슈가 좀 더 가속화되지 않았나 싶다. 이러한 굉장히 빠르게 이루어지고 있는 생성형 AI 솔루션의 발달은 개발자의 종말론을 더더욱 부각시키면서 업계 전반이 큰 변화를 겪고 있는 것으로 보인다. 특히 이러한 변화 속에서 “프로그래밍을 몰라도 생성형 AI만 있으면 제품을 만들 수 있다”는  주장도 자연스럽게 힘을 얻고 있다. 최근에는 Saas 솔루션은 종말할 것이라는 다소 파격적인 이야기도 들리는 것으로 보면 소프트웨어 업계가 큰 격변의 시기가 온것임에는 틀림 없어 보인다. 허(虛): 빠르게 만들 수 있다는 환상 이런 상황에서 가장 주목받는 주장들은 서론에서 언급했다시피 ‘프로그래밍을 알지 못한다고 하더라도  생성형AI를 이용하면 빠르게 제품을 개발이 가능하다’라는 주장이고, 실제로 이는 어느 정도 타당성이 있어 보인다. 정말로 움직이는 결과물을 단 몇초 만에 보여주기 때문이다. 하지만, 이러한 ‘빠르게 제품 개발 가능하다’는 주장의 가장 큰 맹점이 있는데 개발자의 존재 이유가 단순한 제품이나 기능개발에 있지 않다는 점이다. 만약, AI를 통해 그럴듯 한 솔루션을 만들었다고 치자. 이것에 얼마만큼의 비지니스성과 지속가능성이 있을까? 예컨대 AI에게 넷플릭스나 트위터, 인스타그램과 같은 페이지를 만들어달라고 요청한다면, 아마 실제로 그럴듯 하게 만들어 줄 것 이다. 아마 대체로 여기서 크게 한번 놀라고는 한다. 하지만, 이러한 인기 서비스들은 토이 프로젝트로 다루기 쉽고, 하나의 트렌드로 자리 잡아 관...

[ Django, Python ] 이쯤에서 분석해 보는 Django 튜토리얼 예제 (①~④) ⑤ : Django MVT 아키텍쳐에서 App시점 청사진 그리기

이미지
・ Django MVT 아키텍쳐에서 App 시점 청사진 그리기  : App 시점 청사진 마지막으로 각 App 의 시점 에서 MVT 패턴 아키텍쳐 의 청사진을 그려본다 면 위와 같은 청사진 을 그릴 수 가 있다 . 위의 그림에서 디폴트 (default) App 은 제외 했으며 예제에서 다뤘던 앱이 polls 라는 App 밖에 없어 , 좀 더 이해를 편하게 하기 위해 임의의 xxx 라는 App 을 만들었다 . 단순히 하나의 App 만 있으면 이해 가 힘들 수 도 있다 고 생각해 임의의 xxx 라는 이름의 App 을 만들어 붙여넣었다 . 아마 이 그림을 이해할 수 있다면 , 사실상 Django 는 끝이 났다고 볼 수 있다고 감히 말 할 수 있다 . 왜냐하면 이 이상은  어떤 라이브러리를 써서,  어떤 비즈니스 로직을 만들 것인지에 대한 각 개발자들의 몫 이다 . 여기에 완전히 다른 한 개의 App 을 프로그래밍해서 넣건 다른 누군가의 App 을 가져와서 넣건  이 문제는 각 프로젝트의 목표에 맞게 개발자 들이 선택 하면 된다 . 그리고 만든 App 은 디폴트 App 의 urls.py 에 연결 시켜주기만 하면 끝이다 . 다음은 개발자의 몫이 아닌 디자인의 영역이다 . 추가로 분석은 딱히 하지 않겠다. 이미 이전 글에서 대략적으로 분석을 해 놨기 때문에 그 쪽을 보기 바란다.

[ Django, Python ] 이쯤에서 분석해 보는 Django 튜토리얼 예제 (①~④) ④ : 전체적인 청사진 그리기, start_django 앱(App) 청사진 분석, polls 앱(App) 청사진 분석

이미지
・ Django 청사진 그리기 및 분석 : 전체적인 청사진 그리기 지금 까지 해서 세세한 부분까지 분석해봤다 .  그럼 이를 바탕으로  이제 조금 넓게 청사진 그려보자 . 내 나름대로 가장 중요한 파일들 그리고 , 그 파일들안의 코드들을 나누어 정리해 봤다 . 여기서 가장 최상위 디렉토리 인 start_django 는 프로젝트를 생성 할 때 입력했던 이름이고 그 하위의 디렉토리 start_django 는 프로젝트 생성 시,  자동으로 생성 되는 디폴트 App 이며 polls 는 이전 예제에서 다루었던 투표 (vote) 기능 을 만들기 위해 생성했던 App 이다 . 그럼 하나 씩 쪼개 보면서 살펴보자 . ・ Django 청사진 그리기 및 분석 : start_django 앱 (App) 청사진 분석 start_django 앱 (App) 부터 살펴보자 . 이전에서부터 계속 언급했듯이 , 이 App 은 프로젝트 생성시 생성한 프로젝트의 이름으로 자동 생성 되는 디폴트 App 이다 . 따라서 만약 이름이 stay_app 으로 프로젝트를 생성했다면 동일하게 이 App 의 이름은 stay_app 으로 자동으로 생성된다 . 여러가지 생성되지만 , 가장 주목해야 하는 곳은 urls.py 와 settings.py 이다 . 먼저 start_django 앱 (App) 의 urls.py 에서는 App 들의 경로 (Path) 를 설정 할 수 있다 . 여기서 경로를 설정해주지 않으면 각 App 들로 이동할 수 없다 . 따라서 Django 의 디폴트 App 인 이 start_django 라는 이름의 App 은 각 App 들을 연결시켜주는 App 이다 . 위의 사진에서 볼 수 있듯이 예제에서 프로그래밍 했던  polls App 이 등록 되어 있는  것을 확인 할 수 있다 . 여기서 admi...

[ 생각 ] 각 나라의 우선시하는 정의(Justice)에 대해

이미지
최근에 정의(Justice)에 대한 생각을 하다가 문득 각 나라의 정의(Justice)에 대한 생각이 떠올라서 그 주제로 이야기를 해보려 한다. 물론 정의(Justice)는 개인이 정의(define)하기 나름이다. 하지만 같은 문화권 그러니깐 같은 나라의 사람이라면 그 정의의 어떤 공통점들이 보인다. 내가 본 사람들은 한국인, 일본인, 중국인, 미국인 이다. 따라서 이 네 국가의 사람들이 기본적으로 중요시하는 원칙 그러니깐 그 나라의 정의(Justice)에 대해 이야기 해보려한다. 물론 정의를 가치 평가는 할 수는 없음은 물론이고 그게 그 나라의 정의(Justice)다!! 라고 자신있게 주장하는 것은 아니다. 단지 나는 개인적인 느낌을 적어 놓을 뿐이다. 한국의 정의(Justice)는 "공정함"이다. 따라서 어떤 사안을 평가 할때 이 행위가 혹은 사람이 "공정"한지 혹은 "공정한 사람"인지 아닌지를 먼저 생각한다. 그래서 어떠한 이유던 간에 이 정의(Justice)에 반하는 행위를 하거나 그런 사람이 있다면 한국 사회에서 좋은 평가를 받을 수 없다. 다만 너무 공정함에 집착하다 보니, 공정함을 따지기 힘든 사안에서도 공정함을 따지다가 앞으로 못 나아가는 느낌이 든다. 일본의 정의(Justice)는 "상대를 생각하는 어떤 것"이다. 따라서 어떤 사안을 평가 할때 이 행위 혹은 사람이 "상대를 생각해서 하는 어떤 것"에서 나온 행위인지 혹은 "상대를 생각하는 어떤 것" 을 가지고 있는 사람인지가 중요하다. 이 행위는 대부분 걷으로 드러나는 행위를 말하지만, 내면도 중요시 여긴다. 그래서 어떠한 이유던 간에 이 정의(Justice)에 반하는 행위를 하거나 그런 사람이 있다면 일본 사회에서 좋은 평가를 받을 수 없다. 다만, 너무 상대를 생각하다보니 능력이 있음에...

[ Django, Python ] 이쯤에서 분석해 보는 Django 튜토리얼 예제 (①~④) ③ : index.html, detail.html, results.html Template 파일과 브라우저 화면 분석, function 기반 vote View와 브라우저 화면 분석

이미지
・ 실제 화면과 Model View Template 의 비교 분석 : index.html Template 파일과  브라우저 화면 분석 자 그럼 이제 정말로 각 template 가 실제 어떻게 브라우저에 표시되는지 알아보자 . 먼저 투표 화면 부터 확인해보자 . Django 서버 를 가동하고 브라우저에서 polls 의 메인화면으로 들어가보자 . 정상적으로 프로그래밍 되어 있다면 위와 같은 polls App 의 화면이 표시될 것 이다 . 이 화면의 Template 은 아래와 같다 . Template 디렉토리 의 polls 디렉토리 의 index.html 에 프로그래밍 되어 있는 것이 우리가 실제로 보이는 브라우저 상 에 보인다 . 다음으로 이 화면에 연관되어 있는 View 는  Class 기반의 IndexView 라는 이름의 View 이다 . 이 화면의 경우 Model 은 존재하지 않는데 , 이유는 이 화면은 단순히 투표 (Vote) 하기 위한 화면 으로 들어가는 기능만 제공하기 때문이다 . 이 Class 기반의 IndexView 라는 이름의 View 가 Django 를 통해 실제 사용자의 요청 (request) 에 따라 브라우저에 보내 준다 (response) . 브라우저의 What’s up? 이라는 텍스트를 클릭하면 아래의 그림과 같은 투표 (Vote) 할 수 있는 화면 으로 넘어 갈 수 있다 . ・ 실제 화면과  Model View Template 의 비교 분석  : detail.html Template 파일과  브라우저 화면 분석 먼저 유심히 살펴봐야할 부분은 빨간색 박스 의 URL 이 실제 어떻게 표시되느냐 의 부분이다 . 일단 urls.py 파일 을 살펴보자 . 위의 path() 함수 를 살펴보면 , URL 이 ‘<int:pk...