[ 프로젝트 BEP ] 최종장 - 엔지니어로서의 마인드셋에 대해 : 우수한 엔지니어는 누구이고, 가져야할 마인드 셋에 대해

이미지
  들어가면서 이제 2025년도 얼마 남지 않은듯 하다.  조금 길어질 수도 있기 때문에  실제로 업로드 하는 것은 새해 이후가 될 가능성도 있으나  올해는 이 글로 마무리 해보려고 한다. 이제 이 최종장을 끝으로 이 프로젝트를 다소 마무리 할 수 있을 것 같다. 물론 전체적으로 글 자체가 부족한 부분이 여려 곳 보이지만,  이는 천천히 개선하기로 하고 일단 마무리를 잘 지어보려고 한다. 이 프로젝트의 목표는 어디까지나 주니어 엔지니어(넓은 범위로서)에게  도움이 될 수 있는 부분을 정리해 놓은 것 이며, 이를 전달하는 것에 주력을 했다. 정확히는 그 사이에 몇 번이나 직장은 바뀌었지만,  내가 다니고 있는 회사에서 작게는 멘터,  크게는 주니어 교육에 활용하기 위한 초안이였다. 들어가기 앞서서 먼저 개발자는 무엇인가에서 부터 시작해서,  수학은 필요한가, 그리고 학위에 대한 이야기를 나누어보았고, 그 다음으로 컴퓨터가 무엇인가에 대해서는,  가장 첫 장인 컴퓨터 개론에서 메모리 손실과 함께 설명하였다. 다음으로는 개발 방법론과 시스템 설계,  그리고 프로그래밍 언어에 대한 이야기로 간단하고 이론적인 이야기를 하였다. 눈치가 빠른 사람은 알 수 있듯이,  현실에서 가질 수 있는 몇 가지 의문으로 시작해서  컴퓨터라는 하드웨어 부터 시작해서,  프로젝트(개발 방법론), 설계, 프로그래밍 언어 순으로  일부러 점점 컴퓨터 세계로 들어가도록 구성을 해 놓았다. 여기서 한 걸음 더 나아가자면, 알고리즘이 들어갈 수는 있겠으나  어디까지나 가볍게 전달하는대에 목적이 있기도 하고,  개인적으로는 당장은 크게 중요하지 않은 부분이 라고 생각 했기 때문이다. 먼저 이 부분에 대해서 좀 더 자세히 이야기해보도록 하자. 시작 부터 모든 지식을 쌓을 수는 없다 이는 개발 영역에서만 해당되는 이야기는 아니지만,  모든 것에는...

[ 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...