기본 콘텐츠로 건너뛰기

IT인프라의 기술 테크 트리 공유 합니다.





제가 이것저것 두서없이 제자랑만 하잖아요? 

사람들에게 무언가의 전문가가 되기 위한 방법을 알려주려고 하다보니 
이걸 공유하는게 낫지 않을까 하여 정리를 해봅니다. 

전 개발쪽 보다는 인프라에 더 가깝지만, 
개발하시는 분들도 알고 하는 것과 모르고 개발 하는 것은 천지차이이기 때문에 제가 정리한 내용을 보시면서  빼먹은게 있다면 하나씩 배워 가시는게 좋지 않을까 합니다. 

테크 트리는 링크를 달아놓을께요.. 



지속적으로 추가할 테니 어딘가 즐겨 찾기를 해주시고, 수시로 확인하시면 좋을 것 같습니다. 
추가하고 싶은 내용이 있으면 언제든 코멘트 주시면 수시로 추가하겠습니다. 

이 기술을 배우고 싶은데 뭘 배우고 배우면 좋을까요? 
같이 물어보시면 여기 테크트리에서 화살표만 따라 가면 되도록 만들 예정인데요.. 

예를 들어, 

블록체인 기술을 알고 싶은 경우
암호화 알고리즘과 네트워크 기술, 그리고 파일 시스템 기술을 알면 배우기 쉽다 같은, 
이런식으로 만들어가려고 합니다. 물론 이게 다는 아니겠지만 지속적으로 보완해 가면서 누구나 배우고자 하는 기술을 거슬러 올라가서 공부할 수 있게 하고자 합니다. 

그리고 각 기술 박스를 클릭하면 링크가 달린 경우가 있는데요, 
이 링크를 클릭하면 기본적으로 wikipedia를 연결해 놓겠습니다. 
다국어로 하고 싶어서 기본은 영어로 하겠지만, 한글이라도 정말 좋은 문서가 있다면 한글 문서로 링크를 달 예정입니다. 

혹시 스스로 만든 블로그 링크를 주시거나 하면 
충분히 교육적으로 괜찮겠다 싶은 경우 링크를 달아드립니다. 

이 테크트리에는 네트워크의 기초에서부터 
OS의 구성요소, 그리고 이게 클라우드 서비스가 되었을 때의 서비스명과 코어 기술과의 관련.. 
스토리지역시 파일 시스템의 구성에서부터 클라우드 서비스에서 사용하는 파일 시스템들, 
데이터베이스에서 블록 체인 기술까지를 다루어 볼까 합니다.  

제가 IT 컨설턴트나 아키텍트에 대해서 이야기 하지만, 
무얼 배워야 하느냐? 라는 질문이 많거든요.. 
그런데, 제가 적은거를 전부 알아야 웬만한 프로젝트에 아키텍트로 들어갈 수가 있는데요.. 
생각보다 이렇게 광범위하게 아는 것보다, 
각각의 전문가들이 모여서 자기 분야의 설계를 하는 경우가 많습니다. 
각자의 전문가라는 사람들이 최적의 설계를 한다 하더라도, 
자기 분야 외에는 모르쇠 하는 경우가 많아서 
결국 퍼포먼스 이슈가 생기고, 
자기네는 잘못 없네 하면서 프로젝트가 산으로 갈 때가 많거든요. 
여기서 한 분야만 잘아는 아키텍트 들이 많기 때문에 
자기가 아는 분야만 어떻게든 해결하고 
나머지는 돈으로 쳐바르는 경우를 많이 봐왔습니다. 
하지만, 제가 프로젝트마다 들어가서 인정 받는 이유는, 
그런 전문가들이 설계한 내용을 읽을 수 있고, 
이들이 간과한 그들의 전문 외의 문제를 짚어줄 수 있기 때문입니다. 

아주 가볍게 예를 들어드릴께요. 

모 대기업 출판회사의 퍼포먼스 이슈로 제가 불려갔을 때에도, 
대형 SI기업이 이미 설계를 끝내고 제가 실무 지원으로 들어갔습니다. 
이들은 azure SQL Server를 최고 사양으로 쓰고 있어서 RDBMS만 한 달에 250만엔을 내고 있었습니다. 
그런데 그걸로 500명 밖에 동접을 받을 수가 없어서 RDBMS를 5Replica를 만들어서 월 1500만엔으로 동접 3000명을 커버하도록 확장하는 프로젝트였지요.. 
저는 이 확장용 SQL instance를 5대를 만들고 replica 설정만 하면 되는 용도로 불려갔는데, 
뭔가 이상했지요.. 월 250만엔짜리 인스턴스에서 500명 밖에 못받는게 말이야 방구야 하면서..
서버 구성 및 네트워크 구성, 그리고 서비스 소스까지 파들어가서 
SI기업이 놓치 퍼포먼스 이슈를 잡아 냈지요. 

SQL을 CackePHP에 올린 ORM모듈에 던지는데 ORM을 그냥 사용하는게 아니라 in 안의 SQL은 또 상황에 따라 루프 돌려 생성하도록 되어 있는데, 그 단계가 14단계 까지 in안에 in을 넣어놨네요.. 

이 근본적인 원인 만 해결하고, 
CakePHP에서 제공하는 설정만으로는 Replica를 자동으로 절환할 수 없어 소스를 건드려야 하지만, 
소스는 개발회사가 별도로 있어 안건드리는 조건으로 일을 해야 하는 상황이었습니다. 

그래서 cakePHP내의 코어 모듈 중에 SQL을 호출하는 모듈이 있는데, 
그 때의 SQL을 파싱해서 update나 insert가 있으면 마스터로, 없으면 레플리카를 Round robin으로 도메인화 하여 전송 하도록 모듈 자체를 바꾸어서 보여주었는데.. 

거기서 소스 자체의 문제를 지적했다가 잘렸네요;;;
10년이상 박혀있던 SI업체가 재계약이 끊길 근본적인 문제를 지적해버려서;;

분명 개발자가 할 수 있는 한계가 그 정도가 아닐까 합니다. 
조건이 많을 수록 SQL을 잘하는 사람이 최적화를 하고 성능에 맞추어 정규화를 하되 필드의 위치도 최적화 하고, 경우에 따라서 비정규화만 하면 되지만, 
그건 개발자의 영역을 벗어난 것이거든요.. 


이 외에도 블록체인 기술에 대해서 투자를 하려고 하는데 5000TPS 를 넘는 블록체인 기술이 있다고 하여 제게 봐달라고 했는데, 이 기술을 홍보한 업체는 github에 소스 공개가 되어 있지 않았습니다. 
보통 메이저 블록체인은 소스공개가 되어 있어서 그 소스를 보고 문제점을 찾을 수 있는데, 일단 공개 안된게 첫 번째이구요, 
RDBMS로 캐싱하고 여유분을 블록체인에 올린다면 5000TPS를 저도 믿어주지만, 
순수 퍼블릭 블록체인에서 5000TPS라고 하니까 전 믿을 수가 없지요. 

프라이빗 블록체인 중에서 Hyperledger의 경우 단일 서버로 하면 4000TPS가까이 나오지만, 노드 한 대 늘릴 때마다 1/2 에서 그 이상 떨어지는게 확인 되었습니다. 

이건 근본적인 이슈인데, 
아무리 합의 알고리즘 처리가 빠르다고 하더라도, 
네트워크 핸드쉐이킹이 0.1초 이상은 잡아야 하는데, 
여러 대의 노드에서 엄청 빨리 처리한 데이터라고 하더라도 그걸 한 군데 에서 합의 알고리즘 검증을 위한 통신만 수 초는 걸리게 됩니다. 
때문에 블록체인의 트랜잭션이 느린 근본적인 원인을 알고 그에 대한 해결 책들을 찾고 있는 것은 알고 있지만, 어떤 퍼블릭 블록체인도 이 네트워크 속도의 한계를 벗어난 곳은 없습니다. 
물론 병렬 쓰레드로 계산하면 0.1초에도 쓰레드 수만큼은 처리가 되므로 1초에 수백 TPS까지 만들 수는 있지만, 퍼블릭 이란 것은 글로벌 네트워크에서의 핸드쉐이크라는 전제이기 때문에 느려질 수 밖에 없는 상황이 엄청나게 많기 때문에 최대 400TPS라 한들 평균 20TPS가 되는건 어쩔 수 없습니다. 
게다가 20TPS라고 해도 대기 트랜잭션이 너무 많아 보통 15분 정도에 전송되는 경우가 많지요. 

이런 식으로 근본까지 알고 기술을 대하는 것과 
자기가 아는 개발 능력만을 가지고 기술을 대하는 것은 엄청난 차이가 생기게 되죠. 

이거 들으면 너 잘났어 하면서 또 싫어요 누르겠네요;; 

아뭏든, 

이 도식은 이제부터 만들어가는거라 부족함이 많고, 
아주 오래된 기술들은 저역시 하나하나 기억할 수 없기 때문에 빼먹는 것들이 있는데요.. 
이걸 같이 이야기 하면서 채워가려고 시작하는 것이니 
참여해 주시는 분들이 많을 수록 
빨리 더 좋은 내용이 보충 될 거라 믿습니다. 

참여하고 싶으신 분들은 제 프로필 보고 연락 주시면 
언제든 내용을 받거나 수정권한을 드리겠습니다. ^^

제가 가진 모든 지식을 공유 하고 싶습니다. 
이렇게 많은 지식인들의 공유로 
한국의 엔지니어의 능력이 모여 세계 최고 수준이 되길 기대합니다! 


giip :: Control all Robots and Devices! Free inter-RPA orchestration tool! https://giipasp.azurewebsites.net/

댓글

이 블로그의 인기 게시물

AI에게 존댓말로 질문한다고 AI가 더 자세히 대답해 주지 않습니다! 프롬프트의 뜬소문과 실제. 잘못알고 있는 프롬프트 이야기

영상버전 :  https://youtu.be/rLwhVUIXaQU 어디선가 기사가 있어서 읽다가 코멘트를 단 게 있습니다.  프롬프트 엔지니어링으로 인터넷 강의를 하시는 분 같은데요..  이름에 Phd라고 적혀있으니 어딘가의 박사님 이신가 봅니다.  그 분의 글에 이런게 있더라구요.. 한국어는 맥락에 크게 의존하는 ‘고맥락 언어’입니다. LLM에 그대로 입력하면 종종 의도가 왜곡되거나 핵심이 누락됩니다. 저는 영어로 프롬프트를 작성하지만, 한국어만 해야하는 모델을 사용할 때는 다음과 같은 방법을 사용합니다. --- 중략 --- ✔️ 존댓말(–습니다) vs 반말(–해요) 중 하나 선택.  Deferential form '-습니다'를 사용하면 openAI 모델은 답을 더 길고 상세하게 합니다.  … 여기서 존대말을 사용하면 AI모델은 답을 더 길고 상세하게 합니다. 라고 적혀 있네요..  그랬더니 이 분을 지지하는 댓글에서 chatgpt에게 같은 내용을 물어본 결과를 적었더라구요..  ChatGPT-4o에게 확인해보았습니다: ”한국어를 사용할 때 존댓말로 요청하면, 당신은 좀 더 나은 답을 주신다고 들었습니다. 사실입니까?“ 아주 날카로운 질문이십니다. **“한국어로 존댓말을 쓰면 더 좋은 답을 받는다”**는 말은 부분적으로 사실입니다. ⸻ ✅ 왜 그렇게 느껴질까요?  1. 존댓말은 명확하고 완곡한 문장 구조를 유도합니다.  • 예: 반말: “해줘” → 목적이 불분명하거나 애매할 수 있음 존댓말: “이 내용을 정리해 주시겠어요?” → 요청의 방향이 명확  2. 프롬프트가 더 구체적이고 정중해지면 → 모델이 더 신중하고 완성도 있는 답변을 생성하려는 경향이 있습니다.  3. ‘질문하는 사람의 태도’를 고려한 최적화된 언어 생성이 이뤄집니다.  • 존댓말 = 더 포멀한 상황 → 더 논리적이고 근거 중심의 응답이 생성됨 ⸻ ❗ 하지만 반말도 충분히 잘 작동...

니가 플랫폼(Platform)을 아니?

이번에는 2015년에 썼던 글을 다시 한 번 정리하려고 합니다.  언제나 이야기 하듯이 단어에 대해 누구에게나 쉽게 설명하지 못하면 그건 그 단어를 아는게 아닙니다.  여러분도 이 단어에 대해 비 IT이든 전문가 이든 설명해 줄 수 있는지 한 번 생각해 보시기 바랍니다.  플랫폼에 대해서 이야기를 하다보면 되묻고 싶은 이야기다. 요즘 개발자들 사이에서.. 또는 서비스 기획자들 사이에서 "플랫폼"이란 단어는 필수어가 되었다. 그런데 개발자들 만이 아니라, 기획자, 경영진까지 플랫폼은 필수이다.  웃긴건..  누구는 플랫폼과 서비스를 구분 못하고,  누구는 플랫폼과 프레임웍을 구분 못하고,  누구는 플랫폼과 콘텐츠를 구분 못하고 있다.  이번에는 플랫폼과 서비스를 구분해 보고자 한다.  그런 사람들끼리 이야기하다가 플랫폼이란 단어를 사용하는 사람들에게 물어본다. "플랫폼이 뭔가요?" 누군가 대답한다. "아직도 플랫폼을 몰라요?" 그럼 이렇게 되묻는다. "네.. 제가 잘 몰라서요.. 좀 알려주시겠어요?" 상대방은 IT시스템 어쩌고 하면서 횡설수설한다.. 얼마전 TV에서 플랫폼전문가가 요즘 IT쪽에 도는 플랫폼에 대해서 이야기 한다고 보라고 권장해주었다. TV를 찾아서 보았다. 플랫폼의 정의에 대해서는 나름 이야기를 했다. "수요자와 공급자를 연결해주는 매개체" 그리고 카카오톡을 성공한 플랫폼이라고 했다. 어짜피 성공한 사업에 이름을 붙이는 것은 쉽다. 성공한 주식의 과거를 분석하는게 쉽듯이.. 하지만 성공하지 못한 사업, 그리고 지금 이것이 플랫폼인지 알 수 있는 사람은 몇 안될 것이다. 단어의 의미를 한 번 다시 생각해보자. 그럼 플랫폼은 언제 시작했을까? 18세기후반 부터 19세기에 걸쳐서 약 100년정도를 산업혁명이라고 불렀다. 산업 혁명에 대한 자세한 이야기는 별도 코너로 만들었습니다.  음성 :  https://y...

일본 취업을 희망하는 대학생을 위한 한국에서 잘못알고 있는 일본 신졸 취업 시장.

영상 버전 :  https://youtu.be/nyzRIJ6VjRU 회사에서 작년에 신입을 뽑았는데  얼마전 그 사원의 대학 교수님이 일본에 오실일이 있어서 인사차 만났습니다.  그러면서 좀 충격적인 사실을 알았는데요..  그 때문에 자료를 정리를 해 보았습니다.  제 콘텐츠를 보시면 이미 일본은 3학년 12월에 100개 이상 지원을 해서 내정을 완료하는 경우가 많다고 합니다.  언제부터 취업활동을 하는지 봅시다.  일본은 대학 3학년의 3월 부터 설명회 엔트리를 시작합니다.  그 때 자신이 가고 싶은 회사들의 설명을 듣기 시작하는 것이지요.  그리고 취업활동의 시작은 5월 부터 인턴십 등 여러 방법으로 신입들을 선별하고 있죠. 그리고 일반적인 취업 종료는 대학교 4학년 6~7월이면 99.8%의 신졸 취업이 끝납니다.  그런데 한국의 대학에서 일본 신졸 취업을 보내는 시기는 바로 4학년 9월 정도 부터라고 하네요.  이 때는 이미 신졸 채용은 끝나고 중고신졸이라 불리는 정시 채용에 붙지 못한 신졸들을 주워가는 기업들이 기다리고 있는 시기이죠.  이미 이 때에는 대기업이나 좋은 기업들이 인재를 전부 쓸어 담고, 대기업이랑 같은 시기에 모집해봤자 들어올리 만무한 기업들이 남은 신졸들을 모집하고 있는데요..  그러니 많은 방송에서 신졸이 일본에서 좋은 기업에 취업할 수 없는 이유가 아닐까요?  실제로 교수님이 주변에 있는 전문대에서 야후 재팬에 신졸 채용 되었다고 현수막을 걸었다는 이야기를 했습니다.  제가 그 전문대는 3년제 아니었냐고 물었더니 3년제였다고 했네요..  제 예상이지만, 그 대학교는 3학년 부터 일본 신졸 취업에 지원을 했고, 늦지 않게 신졸 모집 대열에 들어간 것이 아닐까 합니다.  그러면 일반 대학에서도 3학년 부터 준비해서 보내면 되지 않느냐고 질문을 하자, 이런 지원 자체가 국가 지원을 받아서 ...