본문 바로가기

개발일지

항해99 3주차 개발일지

이번 주 목요일에 바쁘게 시험을 본 후, 

다음 날 금요일에 새 주차가 시작되었다. 역시 쉴 틈이 없었다랄까..

 

이번 주차는 이름대로 '본 주차'라고 할 수 있는데, 내가 선택한 트랙, 그러니까 javascript를 사용하여 백앤드를 관리, 생성해낼 수 있는 법에 대해서 본격적으로 배우는 시점이다. 

 

다음 주 수요일 까지 과제를 하나 제출해야 하는데... 이를 위해선 지급된 강의 1, 2주차를 전부 수강해야 한다는 결정을 내렸다. 총 시간은 두 주차를 합쳐서 대략 10시간..

 

물론, 강의를 쉴 새 없이 듣는다고 가정해도 10시간 안에 모두 완강한다는 것은 불가능에 가깝다. 강의를 들으면서 따라해야 할 점은 따라해야 하고, 직접 코드도 고안해내야 하고, 에러도 해결해야 하고... 부가적으로 해야 할 일들이 많기 때문이다.

 

문제는.. 강의가 상당히 불친절하다. 

나의 역량이 문제인지, 커리큘럼에서의 난음이지 모르겠지만, 

적어도 나에게 있어선, 상대가 다 알고 있다고 가정하고 설명한다는 느낌이 든다.

 

 

 

설명을 해야 한다면 어떻게 해야 할까?

 

생명과학쪽을 전공한, 지금은 머릿속에 안개처럼 지식이 들어가 있지만, 만약 상대가 이렇게 설명을 한다는 나는 이해할 수 있다.

 

"세포 내에서 atp 생산은 mitochondria의  membrane에서 전자전달계의 전위 삼투압 차에서 이루어진다."

 

하지만, 비 전공자라면, 혹은 이와 관련된 지식이 없다는 이해를 하기 힘들 것이다. 

먼저 문장 내 하나의 객체라 할 수 있는.. atp라는 것 mitochondria가 무엇을 의미하는 지 알아야 단어와 단어 간의

그 의미를 연결시킬 수 있을 것이다. 두 용어는 고등학교 생명과학 시간에 기초적으로 다루는데(지금 교육과정은 모르겠다), 아마 그 고등학교 과정을 밟은 사람이라면 두 단어를 문장 내에서 의미를 찾아 나머지 문장과 이으려고 할 것이다.

 

단어 생산과 이루어진다는 기본적인 단어인 만큼, 그 단어와 함께, 두 객체 atp와 mitochondria와 이음새를 찾으려고 해도, 전자전달계와 전위 삼투압 차라는 말은 이해를 못할 것이다. 생화학 시간에 다루는, 또한 대학교 1학년 때 배우는 일반화학에 대한 지식이 필요하다. 이에 대한 이해가 된다면, 머릿속에 전자가 이동한다는 것, 삼투압이 발생한다는 것이 그려질 것이다.

 

이후로는 membrane이 무엇인지 알아야 하며, membrane이 무엇인지 이해한 후에서야 본 내용에 대한 접근시도가 가능하다. 하지만 해당 문장에는 수많은 과정이 생략되었기 때문에, 아마 2~3장의 페이지를 통해 길게 해당 '기작'을 이미지로 설명하는 내용이 있어야 아마 당사자는 새로운 지식을 습득하고 문장이 이해가 될 것이다.

 

 

 

전문용어를 전문용어로 해설을 한다면?

 

강의에서는 전문용어를 전문용어로 해설을 끝마치는 감상이 든다. 위의 문장을 한번 읊은 다음에, 'atp는 우리 몸 속에 에너지 화폐라 할 수 있습니다." 라고 말을 하고 끝난다면, 듣는 이들은 에너지 화폐라는 것이 도대체 어떤 의미인지, 본인이 그나마 알고 있는 용어인 '화폐'에서 그 의미를 확장하기 위해 애를 쓸 것이다.

 

하지만 고민만 지속될 뿐, 새로운 정보가 유입되지 않는다면, 거기서 진도를 나아가지 못하게 된다. 강의 대부분은 이런 식으로 진행이 된다. 아쉽게도 해당 강의에선 용어를 설명하기 위해 또 다른 모른 용어를 붙이고, 거기서 의미를 찾으려고 컴퓨터 앞에서 헤메는 나를 언제나 찾게 된다.

 

 

 

그렇다면 지금 내가 헤메고 있는 것은 무엇인가?

 

단어와 단어간의 의미가 연결되지 않아 머릿속에 정리되지 않은 내용은 많으나, 지금 떠오르는 몇 가지에 대해서 정리를 해보고자 한다. 먼저,

 

middleware

=> 이름에서 그 의미를 찾으려고 노력을 했다. 반지의 제왕의 용어 마냥 한국어로 해석하면 '중간계'인데, javascript의 app.js에서 각 라우트 간에 사용하는 단어임이 유추됨에 따라, 아마 통신 단계에서 클라이언트와 서버 간의 상호작용에서 '중계'하는 식으로 관리된다는 것을 추정이 된다.

그러나, 강의 내용에서는 '통합적으로'라는 모호한 단어와 그림이 있을 뿐, 이에 대한 이해나 활용은 현재 불가능하다. 어쩌면 chat gpt에 파고드는 질문으로 학습을 해야 하겠다는 생각도 든다.

 

await와 sync, 그리고 exec

=> 이전 javascript 기초 강의에서 동기와 비동기에 대한 간단한 설명을 하여, 이에 대한 기초적인 지식은 있다. 하지만, 해당 과정에서는 자신이 구현한 코드를 '비동기'적인 환경에서 몇몇 코드를 추가해서 '동기적'으로 인위적인 구현을 하는 방식에 대해 학습한 정도이지, 서버 간의 통신에서 어떤 부분이 어떻게 작동하는지 설명은 모호하고, 전문용어롤 쓰면서 언급하는 강사님 말을 듣다보면 나에게 들어오는 말은 '안 쓰면 버그 걸린다.'라는 말 밖에 없다.

나중에 현장에서 일을 하게 된다면, 적어도 각각 데이터가 어떻게 발.수신되고 어떤 부분에서 인위적으로 동기로 설정해야 하고, await나 sync가 어디에서 어떻게 적용하게 되는 건지 이해가 필요하다. 추후 이에 대한 이해를 돕는 과정이 있었으면 하는 바람이다.

 

 

이렇게 한 주가 또 끝나간다. 컴퓨터 앞에 앉아있는 시간이 하루의 대부분을 차지하지만, 앞으로 지금처럼 보내온 시간이 의미있게 되기 위해서는 어떻게 해야할까.. 고민이 든다.

'개발일지' 카테고리의 다른 글

항해99 5주차 개발일지  (1) 2024.01.07
항해99 4주차 개발일지  (1) 2024.01.01
항해99 2주차 개발일지  (1) 2023.12.17
항해99 3일차 개발일지  (0) 2023.12.13
항해 99 첫 개발일지  (1) 2023.12.10