반응형
작성일: 2024년 7월 31일

 

 

CASE : Cloud Access Security Broker

DEM : Digital Experience Monitoring

DLP : Data Loss Prevention

FWaaS : Firewall as a Service

NESaaS : Network Edge Security as a Service

PoP : Point of Presence (접속점)

SASE : Secure Access Service Edge

SD-WAN : Software-Define Wide Area Network

SSE : Security Service Edge

SWG : Secure Web Gateway

WAF : Web Application Firewall

VPN : Virtual Private Network

ZTNA : Zero Trust Network Access

 

 

 

 

 

 

 

 

 

 

 


 

반응형
작성일: 2024년 7월 30일

 

금융 거래를 하거나 중요한 시스템에 로그인할 때 OTP(One Time Pasword)를 종종 사용한다.

OTP를 사용하는 사람은 OTP의 동작 원리를 몰라도 문제가 없지만,

사용자 인증 시스템을 개발/구현하는 사람은 OTP의 동작 원리를 잘 알아야 한다.

 

IETF RFC 문서에 명확하게 OTP(HOTP, TOTP)에 관해서 기술하고 있기 때문에 RFP 문서를 읽는 것이 제일 확인한 스터디 방법이다.

 

 

ICT 분야에서는 어떤 공부를 하든 RFC를 먼저 열람하는 것이 제일 확실하다.
괜히 어설프게 인터넷에 떠도는 자료를 읽고 공부하다보면 나중에 업무할 때 논쟁거리를 만들게 되니까 ^^
예를 들어서, TOTP에 관해서 연동 블록 개발자간 박터지게 싸웠는데 그 중에서 한명이 인터넷에 떠도는 사이비 문서를 읽고 말싸움을 한 것이라면 얼마나 쪽팔리겠는가.
(솔직히, 이런 경우에 쪽팔려하는 개발자라면 발전할 가능성이라도 있지만, 그냥 모르는 것을 모르는대로 넘어간다면 영원히 사이비 개발자로 남을 것이다)

 

IETF RFC 문서에 너무 명확하고 쉽게 설명이 있으니까, 여기서 그 내용을 중복으로 설명할 필요는 없을 것 같고...

그냥 어떤 문서를 읽고, 어떤 예제 소스 코드를 보면 좋은지 정도만 이 블로그에서 설명하도록 하겠다.

 

OTP는 HOTP(HMAC-Based One-Time Password)와 TOTP(Time-Based One-Time Password)로 구분해서 구현할 수 있다.

IETF에서 표준이 된 순서로 본다면, HOTP -> TOTP이다.

즉, 동일한 인증 기술의 구현이라는 목표를 가지고

  • HOTP가 2005년 12월에 표준이 되었고
  • TOTP가 2011년 05월에 표준이 되었다.

IETF RFC 문서 정보

HOTP:  https://datatracker.ietf.org/doc/html/rfc4226  (2005년 12월 표준 확정)

TOTP:  https://datatracker.ietf.org/doc/html/rfc6238   (2011년 05월 표준 확정)

 

대부분의 기술이 그렇듯이 동일한 목적을 두고 개발된 기술이라면, 뒤에 개발된 기술(표준안)이 더 좋은 것이다.

설계/개발(구현)에 많은 시간을 투자할 상황이 아니라면 TOTP만 고려해도 별 문제 없다는 뜻이다.

그리고 두 가지 OTP에 대한 RFC를 잘 읽어보면, HOTP와 TOTP가 비슷해서 TOTP로 인증 체계를 구현하고 나면 나중에 HOTP를 추가로 기능 추가해도 큰 공수가 들어가지 않는다.

 

 

OTP, HOTP, TOTP 예제 소스 코드  (Java)

위 IETF RFC 문서의 뒷 부분에 JAVA로 구현된 예제 소스 코드가 있다.

논리적인 pseudocode가 아니라 실제로 동작하는 Java 소스 코드이다.

(실제로 문서에 있는 소스 코드를 복사해서 터미널에 붙여서 javac로 컴파일하고, java runtime으로 돌려봤는데 아주 깔끔하게 동작한다)

그리고 RFC 문서에 있는 동일한 Java 코드가 Github에도 있다.

 

Github 주소:  https://github.com/gityf/java_demo/blob/master/demo/src/main/java/org/wyf/otp/TOTP.java 

 

`git clone ....`해서 돌려봤는데, 깔끔하게 잘 돌아간다 ^^

 

 

 

OTP, HOTP, TOTP 예제 소스 코드  (Go)

Go 언어로 구현 및 테스트해보고 싶다면, 아래의 Go source code를 추천한다.

 

Github 주소:  https://github.com/pquerna/otp

 

이 Go 패키지는 재미있게도 QR-code를 이용해서 OTP 값을 출력해준다.

스마트폰으로 QR-code를 찍어서 스마트폰 화면에 보이는 숫자를 iTerm 터미널에 입력하면 OTP를 이용한 인증 통과 여부를 알려준다.

 

 

Python에서는 OTP 인증 코드를 작성하기가 더 쉽다.

아래 python document를 보면서 따라하면 끝 ^^

https://pyauth.github.io/pyotp/

 

 


 

반응형
작성일: 2024년 7월 26일

 

2000년 봄, 육군 병장으로 대전에 있는 모 부대에서 근무하고 있을 때.

항상 그렇듯이 수요일 오후는 모든 부대 구성원이 체육 활동하는 시간이다.

대부분 중대 단위로 편을 나누어서 축구를 하는데

나는 야구를 하기 위해 글러브와 야구 배트를 챙겼다.

야구 글러브를 챙기는 나의 모습을 본 군대 동기가 하는 말이

"좋아하는 축구를 마다하고 오늘은 야구하러 가는거냐?"

묻는 것이다.

 

내가 축구를 좋아했었다고?   나는 축구를 좋아하지 않는다.

그런데 왜 내 동기를 포함해서 우리 중대의 선임, 후임들은 내가 축구를 아주 많이 좋아한다고 착각하고 있었지?

그래서 내 동기한테 물어봤다.

"나는 축구하는거 별로 안 좋아하는데... ^^ 내가 축구를 좋아한다고 생각한거야??"

 

내 동기의 말을 들어보니, 고개가 끄덕여졌다.

내 동기의 이야기를 요약해보면 이렇다.

- 내가 이등병, 일병 때 축구하는 90분 내내 공격진영, 수비 진영을 제일 신나게 뛰어 다닌 사람이란다.

- 90분 동안 제일 활동량이 많았던 사람이란다.

 

1년 전 기억을 잘 더듬어보니, 나는 달리기 자체가 좋아서 열심히 뛰었던 것이다.

소프트웨어 개발이 주 업무였기 때문에 맨날 사무실에만 앉아 있어서 수요일만큼은 많이 뛰고 싶었다.

공격진영에서 수비진영으로 왕복해서 달리면, 1회 왕복에 200미터 정도.

이것을 50번 왕복하면 10km 정도 달리게 된다.

나는 단지 10km를 마라톤 연습 하듯이 달렸던 것이지, 축구를 한 것이 아니었는데

내 주변 사람들은 내가 축구를 굉장히 좋아해서 땀을 뻘뻘흘리면서 뛰는 것으로 착각했던 것이다 ^^

 

이등병, 일병이니까 나혼자 마라톤 연습하러 간다고 말하기는 두려웠고

분대장(병장)이 1명 열외없이 축구하러 가자고 하니까 이등병이 그냥 따라가서 "뛰는 것만 열심히 했던 것"이다.

 

아마 이등병 때 자유가 주어졌다면, 축구하러 안 갔을 듯.

솔직히 병장, 상병 등 선임들 플레이하는 것에 분위기 맞춰주는거지... 이등병이 무슨 재미로 볼 터치를 했을까.


 

반응형

 

작성일: 2024년 7월 22일

 

 

추천 도서, 입문 도서

오늘까지 출판된 LLM, LangChain 관련 책을 여러 권 찾아서 읽어 보았는데

아래의 책이 개발자(코드 구현자)가 따라 하기에 가장 적절한 책 같다.

더 쉬운 책도 많은데, 적당히 책 보면서 따라하기에는 아래 책이 그나마 괜찮았다.

 

  • 챗GPT와 랭체인을 활용한 LLM 기반 AI 앱 개발 : 랭체인 기초부터 슬랙 앱 제작과 배포까지, 실무 중심의 LLM 애플리케이션 구축
       요시다 신고, 오시마 유키 지음
       최용 옮김
       출판사: 위키북스
  • OpenAI API와 파이썬으로 나만의 챗GPT 만들기
      후루카와 쇼이치, 오기와라 유이 지음
      최용 옮김
      출판사: 위키북스
  • 랭체인 완벽 입문 (혁신적인 LLM 앱을 구축하기 위한 랭체인 활용법)
      타무라 하루카 지음
      최용 옮김
      출판사: 위키북스
위 세 책은 모두 "최용"님이 번역한 것이라서 문체가 비슷하다.
그래서 책을 세 권을 읽었는데, 마치 한 권을 읽은 것 같은 느낌이다. ^^

 

 

 


Python을 이용하여 스터디할 거라면, 아래 웹 문서를 읽는 것을 추천 !

Python OpenAI API library

https://pypi.org/project/openai/

 

openai

The official Python library for the openai API

pypi.org

 

Python API 에 대한 설명와 예제 코드가 잘 만들어져있다.

 

 


 

LangChain 공식 문서

https://python.langchain.com/v0.2/docs/introduction/

 

Introduction | 🦜️🔗 LangChain

LangChain is a framework for developing applications powered by large language models (LLMs).

python.langchain.com

 

 

LangChain 공식 블로그

https://blog.langchain.dev/

 

LangChain Blog

[Week of 6/10] LangChain Release Notes Workspaces for organizational enhancement, GenUI, playground and online eval prompt improvements, LangGraph DeepLearning course, and upcoming meetups

blog.langchain.dev

 

awesome-langchain (랭체인을 사용한 프로젝트와 관련 정보를 모아 놓은 저장소)

https://github.com/kyrolabs/awesome-langchain

 

GitHub - kyrolabs/awesome-langchain: 😎 Awesome list of tools and projects with the awesome LangChain framework

😎 Awesome list of tools and projects with the awesome LangChain framework - kyrolabs/awesome-langchain

github.com

 

 


 

Private, Local Chat with a GPT - 관련 자료 모음

h2oGPT

 

localGPT

 

Hugging Face

 

 

 

 

LLM 관련 기타 자료

Dataiku

 

 

YouTube 채널 추천

Prompt Engineering

 

 

 

추천 문서

데이터 프라이버시와 정확성 모두 갖춘 생성형 AI 로컬 LLM 구축 가이드

 

 

 


 

반응형
작성일: 2024년 10월 6일

 

입소식: 2024년 8월 19일
수료식: 2024년 10월 2일  (추석 때문에 1주일 미루어지고, 10월 1일 임시공휴일 때문에 1일이 또 미루어짐)
퇴소식, 전속부대로 이동: 2024년 10월 4일

 

논산 육군훈련소 입소

너무 이른 나이에 결혼과 출산을 했더니 내 나이가 아직 40대 중반인데 아들이 벌써 군대에 간다. ㅠㅠ

(아들을 키울 때, 내가 3박4일짜리 예비군 동원훈련을 갔었을 정도니까 얼마나 일찍 출산한거지... ㅎㅎ)

내가 육군 병장 전역한 것이 몇달 전 일처럼 기억 속에서 생생한데, 아들이 군대를 가다니... 생각할 때마다 내가 놀라곤한다.

 

나의 아들은 입대한다는 생각만으로 마음이 답답하고 정신세계가 뒤숭숭한 것 같다. (나도 입대 한달 전부터 그랬던 것 같음)

아들의 마음은 그렇고... 나는 아들을 육군훈련소에 데려다주는 날에 점심을 어디서 먹어야 하나 고민하는 중.

처음에는 논산 시내에서 한정식을 먹을 생각이었는데, 다른 부모들이 쓴 블로그를 보니

  "아들이 밥을 못 먹어요" 

  "평소에 좋아하던 음식인데, 한술도 못 뜨네요"

이런 글들이 잔뜩하다.

 

나도 육군훈련소에 입소하던 날의 기억을 되살려보니,

훈련소 근처에서 가족과 "전골"을 먹었는데, 밥이 목구멍으로 넘어가지 않았었다.

26년 전보다 육군이 더 자유로운 분위기라고는 하지만, 신체적 & 정신적 자유를 억압받고 18개월을 보내야 하는 아들 입장에서는

음식 맛이 느껴질리가 없다. ㅠㅠ

그래서 논산 시내에 있는 "함흥면옥" 식당에서 간단하게 갈비탕을 먹었다.

아마 갈비탕 맛마저도 맛을 못 느낄거다. (아들이 멘탈이 좋은건지 일단 한그릇을 국물까지 비웠다. 나보다는 낫구나 ^^)

일단, 우리 가족. 그리고 다른 가족들이 먹는 것을 보니까 대체로 잘 먹는 것 같다.

이날 논산 함흥면옥 식당에서 훈련소 입소를 위해 온 가족이 10 가족 정도는 되는 듯 했다. 내가 본 것만 10 가족이니까 일찍 오거나 늦게 온 가족까지 다 합치면 20가족 이상은 되는듯.

입소할 때, 아들과 이 식당에서 점심 식사하는 것을 추천!!

 


육군 훈련소 반입 가능한 물품

육군훈련소 유튜브 채널을 보니, 반입 가능한 물품이 정리되어 있다.

https://youtu.be/lek-P9ARZfY?si=asonSb5Q56YrYJjv  (2022년 영상)

https://youtu.be/1dNwtKG71XU?si=2mlsmIQYB5byhAYU  (2023년 영상)  

https://youtu.be/3mx_TLXk8qE?si=syeDTisBYzqlHJ9d  (2024년 영상)

논산의 육군훈련소에 반입 가능한 용품을 리스팅해보면 이렇다고 한다.

(나의 아들이 2024년 10월 2일 논산 육군훈련소를 수료한 시점에서 반입가능한 것만 리스팅한 것임)

 

  • 신분증 (주민증, 운전면허증) 
  • 자격증 (+운전면허증)
  • 나라사랑카드 (현금을 충전해서 충성마트 PX에서 물품을 구입하고 결제함)
  • 입영통지서
  • 휴대전화 (스마트폰)
  • 스마트폰 충전기는 일체형만 반입 가능 (즉, 충전기 아답터에 USB 케이블이 고정으로 붙어 있는 제품)
  •   스마트워치, 애플워치 --> 반입 안 됨.
  • 전자시계 (불빛이 나오고, 알람 기능이 있는 시계) --> 무선 통신이 안 되는 손목시계만 반입 가능
  • 여분의 안경 (착용하고 있던 안경이 망가졌을 경우, 교체할 안경이 필요함)
  •   백업용 안경을 싼것으로 하나 더 구입해서 가는 것을 추천
  • 화장품 (튜브 형태, 플라스틱 병에 담긴 화장품만 반입 가능)
  •   --> 아들이 원래 화장품을 안 바르는데, 택배로 보내달라는 것을 보면 훈련소 생활관이 많이 건조한가보다.
  • 썬블럭 (UV크림, 썬크림, 자외선 차단제)
  • 바세린 로션(땅을 기는 각개전투 훈련할 때 사용하라고 사줬음)
  • 신발 깔창 (아들 말에 의하면, 1개보다는 2개가 있는게 더 좋다고 함)
  • 무릎, 팔꿈치 보호대 (이것도 처음에 1 세트만 구입해서 갔는데, 3주차에 1 세트를 더 보내달라고 해서 택배로 더 보내줬음)
  • 군장 어깨 보호대 (행군, 각개 전투할 때 잘 썼다고 함)
  • 텀블러, 개인컵 (알루미늄, 플라스틱 재질로 깨지지 않는 제품만 반입 가능)
  • 검은색 3단 접이식 우산 --> 아들이 말하길 논산 육군훈련소에서는 사용할 수 없었다고 함. (사단 신교대 중에 가능한 곳이 있나봄)
  • 귀마개, 이어플러그  (3개짜리 구입해서 갔는데, 부족하다고 하여 나중에 3개짜리를 추가로 구입해서 보내줬음.)
  •    --> 아들이 사격할 때 잠깐 이어플러그를 빼봤는데 이명현상이 심하게 왔다고 함. 사격장에서 이어플러그 착용은 필수라고 함.
  • 반창고 (대일밴드, 사이즈별) -> 입소할 때 1세트를 구입했는데, 3주차에 한번 더 보내달라고 해서 왕창 구입해서 보내줬음 ㅋㅋ

(참고: 빨간색으로 표시한 것은 꼭 필요하고 생각되는 것들.  검은색은 있으면 쬐끔 좋은 것들)

 

육군훈련소 반입 가능 품목 (2024년 7월 기준)

 

 

훈련병도 충성마트(PX)에서 필요한 물품을 구입할 수 있다고 하니까, 부족한 것은 자식(아들)이 알아서 구입해서 쓰라고 하면 될듯 ^^

썬크림(썬블럭, 자외선 차단제) 같은 것은 충성마트(PX)가 일반 마트 또는 인터넷 쇼핑몰보다 싸기 때문에 금전적 이득을 생각한다면

육군훈련소에 빈손으로 들어가서, 월급 받은 돈으로 충성마트에서 구입하는게 제일 좋다.

 

각 교육연대마다 충성마트(PX)가 있어서 가까웠고, 내가 수료식날에 26교육 연대에 있는 PX에 가보니까 민간인이 물품 정리하고 결제 업무까지 했다. 그러니까 훈련병이라고 해서 계급 때문에 PX에 가서 뻘줌할 필요가 없어보였다.

 

주의:
육군훈련소 입영심사대 앞에 호객하는 분들이 많은데, 이분들이 육군 군복을 입고 마치 육군 관계자인 것처럼 길 안내도 하고 필요한 물품도 얘기해준다.  호객하는 사람이 많다는 것을 알고 갔음에도 속을 뻔한다.
특히, 위 물품 목록에 없는 것들이 마치 필요한 것처럼 얘기해서 "엇, 세탁망은 안 챙겼는데 진짜 필요한가보다" 이런 착각을 하게 만든다.
예를 들어, 호객꾼이 이런 식으로 말한다.
  "여러 훈련병이 세탁기에 빨래를 넣고 돌리면 세탁물이 섞여서 분실할 수 있습니다. 그러하오니 세탁망을 꼭 챙겨서 입소시켜주십시오!"
나도 이 호객꾼의 말을 듣고, 3초 정도 마음이 흔들렸다. 세탁하다가 속옷 양말을 분실하면 어쩌지? 
그런데 3초만에 다시 정신이 돌아왔다. 그 정도로 필요한거면, 입소 안내문에 필요한 물품이 적혀있겠지.
나중에 아들한테 물어보니까, 입소한 날 저녁에 훈련소에서 세탁망을 1개씩 다 지급해줬다고 한다.
그러니까 진짜 꼭 필요한 물품은 육군훈련소가 준다. 호객꾼에게 속지 않길~
그리고 6주 뒤에 수료식할 때 사용할 펜션을 입소한 날에 예약하지 않으면 큰일날것처럼 호객하는데, 실제로는 봄/가을처럼 날씨가 좋다면,논산에 넓고 쾌적한 식당이 많아서 식당에 가서 편하게 차려진 음식을 먹고 그 주변의 고급스러운 카페에 가는 것을 추천한다.

 

참고로 훈련병(이등병)은 2024년 기준으로 월급이 640,000원이라고 한다.

 

육군 병사(병장, 상병, 일벙, 이병, 훈련병) 월급 (월급)

 

 

기타 유용한 정보

  • 입소하고 3일 정도 지난 후에 장병내일준비적금 가입을 위해 앱 설치하고 인증하는 것 때문에 스마트폰을 주는 것 같다. 그때 10분 정도 아들과 카톡 메시지를 주고 받았었다.
  • 세열수류탄 투척 훈련을 연습용 수류탄 투척 3일짜리 훈련으로 대체하여 시행했다. 올해 상반기에 수류탄 투척 중에 인명 사고가 있어서 당분간 연습용 수류탄만 사용하고 있다고 하더라. (혹시 수류탄 투척 훈련에 공포감을 느끼는 사람이라면 올해 빨리 입대하면 좋을 듯)
  • 논산 육군훈련소 울타리 옆에 '이레펜션'이라는 곳이 있다. 그 곳 사장님이 모든 교육연대의 입소식 이후 생활관으로 이동하는 모습, 훈련 출장/복귀하는 모습 등을 동영상으로 찍어서 이레펜션 네이버 카페에 업로드한다. 호객을 위해서 찍어서 올리는 것이겠지만, 부모 입장에서는 이것마저도 고맙다. 유일하게 아들의 모습을 동영상으로 볼 수 있는 것이 이 펜션 사장님이 올린 영상 뿐이니까~
  • 이레펜션 네이버카페에 올라온 훈련병 영상에서 아들을 쉽게 찾으려면 아들이 독특한 백팩(가방)을 메고 있으면 된다. 나의 아들은 "연두색" 백팩을 메고 있어서 한방에 바로 찾았다. 빨간색, 에메랄드색, 연두색 이런 백팩을 메고 가면 동영상 속에서 아들을 찾기가 쉽다.

 

논산 육군훈련소 수료식 정보

2개 대대가 1시간 차이를 두고 수료식을 진행한다.

예를 들어,

26연대 1대대는 연무관에서 10시에 수료식 진행.

30연대 2대대는 임영심사대에서 11시에 수료식 진행.

그래서 입소식때처럼 차량이 몰리거나 혼잡하지 않다. 그러니까 초초한 마음으로 수료식에 갈 필요가 없다.

나는 10시 연무관에서 수료식할 때, 9시 25분쯤 도착했는데 훈련소 정문 앞에 차량 정체가 없었다.

(교차로에서 교통 신호 1회 대기하고 바로 정문 통과할 정도로 대기 차량이 거의 없음)

정문을 통과하고도 연무관까지 꽤 거리가 먼데, 막힘없이 쭉쭉 진행할 수 있었다.

주차장도 널널하게 남아서 급하게 서두를 필요가 없다.

심지어 연무관도 엄청 커서 3촌, 4촌 친척까지 다 와도 될만큼 자리가 많았다.

가족들이 모두 입장했을 때, 연무관 전체 좌석의 40% 정도 찼던 것 같다.

수료식은 10시 정시에 시작하지만, 훈련병이 연무관에 입장하는 것은 9시 50분쯤이다.

그러니까 부모님은 9시 45분 전에 입장해야 아들이 연무관에 행진하면서 입장하는 모습을 볼 수 있다.

 

수료식 영상, 사진을 기록하고 싶다면 20배 줌 이상의 광학줌 렌즈가 장착된 카메라를 대여해가는 것을 추천한다.

나는 소니 DSC-RX10 M4(25배 광학줌)를 대여해서 갔다.

다른 부모님들은 갤럭시 S23 Ultra로 열심히 확대해서 촬영하는데, 확실히 25배 광학줌과는 사진 품질의 차이가 컸다.

수료식을 마치고 연무관 주차장을 빠져 나오는 시간은 대략 20분 정도 소요된다.

일단, 주차장을 나오면 그 뒤로는 수월하게 주행이 가능하다.

어짜피 아들과 한 차량에 타고 가면서 도란도란 얘기하면 되서 그런지, 주차장을 서로 빨리 빠져나가려고 서두르는 운전자는 없었다.

즉, 식당이나 펜션에 가서 나눌 얘기를 자동차 안에서 얘기하면 되니까 ^^

 

수료식을 마치고 내가 갔던 식당은;

산애들애 (논산)

https://naver.me/F0tHcm0p

 

네이버 지도

공간을 검색합니다. 생활을 연결합니다. 장소, 버스, 지하철, 도로 등 모든 공간의 정보를 하나의 검색으로 연결한 새로운 지도를 만나보세요.

map.naver.com

 

그리고 이 식당 바로 옆에 캠핑장 느낌의 카페 라바스가 있다. (주차장을 같이 쓰기 때문에 한곳에서 밥 먹고, 음료를 먹을 수 있다)

라바스 (논산)

https://naver.me/5ITqRXRM

 

라바스 : 네이버

방문자리뷰 93 · 블로그리뷰 50

m.place.naver.com

 

 

산애들애, 라바스 모두 만족했다.

숲속에 들어와있는 한적한 느낌, 그리고 캠핑장 같이 꾸민 것도 좋았다.

식당과 카페에서 2시간 정도 있다가 다시 육군훈련소로 이동했다.

훈련소 안에서 산책하면서 30분 정도 시간을 보내고 나니까 연무관에 집결하라는 소대장, 중대장의 외침이 들렸다 ^^

입소하던 날의 아들 표정은 딱딱하게 굳어 있었는데, 오늘 훈련소 교육연대로 복귀할 때는 아들이 웃는 모습이어서 나도 마음이 한결 편했다.

자대에 가면 스트레스 받을 일, 꾸짖음, 잔소리 등 견뎌야할 것이 많을 텐데, 아들이 마음 굳게 먹고 잘 헤쳐나가길 바라는 마음이다.

 

기타 유용한 정보

아들이 수료식 이후에 갈아 입을 옷, 모자, 신발을 가져갔는데, 아들이 별로 갈아입고 싶지 않다고 했다.

그리고 식당과 카페가 숲속에 있다보니까 복장이 어떠하든 상관없는 것 같다.

내가 쓸데없이 너무 많은 것을 준비해서 간 것 같다는 느낌적인 느낌 ^^

 


 

추천 영상~

육군입문기 Ep.1 (육군훈련소)

https://youtu.be/uc4AhOlcNeI?si=RBg26GMG-j675z43

 

육군입문기 Ep.2 (육군훈련소)

https://youtu.be/fFBW0VTFA2k?si=6ztnU-49ZEuH5Pi8

 

육군입문기 Ep.3 (육군훈련소)

https://youtu.be/LWkRZOBSKmE?si=UE44HIxp2-rronOI

 

육군입문기 Ep.4 (육군훈련소)

https://youtu.be/KmMsAO9qGyE?si=zyUS7ZLgu2et1aBD

 


 

반응형

 

작성일: 2024년 7월 16일

 

 

아래 글은 나의 주관적 생각이 포함된 것이므로 정확한 기술 Spec을 원하는 분은 이 글을 참고용으로만 읽고,
이 블로그의 중간에 링크를 달아둔 Official document를 열람하는 것을 권장함.

 

 

XDP 개요  (들어가는 글)

XDP(eXpress Data Path)는 OS network stack을 우회하여 별도의 user application으로 보내고 받도록 하는데 사용되는 eBPF 기반의 data path이다.

Linux kernel version 4.8부터 XDP를 포함하므로 XDP 프로그래밍을 위해서 별도로 library를 설치할 필요는 없다.

 

아래 그림만 잘 들여다보면, XDP_* 처리(Action)에 대한 감이 온다.

 

XDP를 이용한 Network Packet Flow를 제거하기

 

위 그림에서 (start), interface output을 물리 네트워크 포트 또는 NIC port 라고 가정하고 보면 Packet 흐름이 자연스러워진다.

그리고, 이 블로그에서는 (start), interface output 가 동일 NIC port라고 가정하고 나머지 내용을 설명할 것이다.   

 

XDP_*  Action Code Description
XDP_PASS 원래의 network packet이 처리되는 것처럼 Network stack으로 보낸다.
(즉, XDP가 없더라도 원래 동작하던 network packet 처리)
XDP_DROP 패킷을 drop (폐기)
XDP_ABORTED Trace point exception과 함께 해당 packet을 drop (폐기)
XDP_TX 위 그림에 묘사된 것처럼 아무 처리하지 않고, 바로 NIC port로 되돌려 보낸다. (반송 처리)
XDP_REDIRECT AF_XDP Address Family를 통해 packet을 다른 NIC port로 보내거나 
User Space Socket으로 redirect한다.
---
  참고로 AF_XDP address family는 Linux kernel 4.18부터 추가되었다.

 

 

예제 / 실습 자료

위 내용을 바탕으로 실습하고자 한다면, 아래 tutorial을 참고할 것!

 

  XDP tutorial : 문서 링크 열기

        아래 git repo에 여러 실습 예제가 있는데, 그 중에서 "basic01-xdp-pass"와 같은 쉬운 예제부터 실습하면서

        전체 처리 절차를 이해하는 추천함!

 

  Tutorial one liners (bpftrace) : 문서 링크 열기

 

  Go Packet Generator (go-pktgen) : 문서 링크 열기

    -> 위 go-pktgen 프로그램은 아래 go package를 사용하므로, 아래 golang pkg source code 분석하는 것을 추천.

          XDP Go Package : 소스 코드 링크 열기   

 

 

Linux kernel source code에서 XDP 관련 코드를 찾아보기 (예시)

Linux kernel source code에서 network driver와 관련한 code를 찾아 보면, 

XDP_*와 관련있는 부분을 쉽게 만날 수 있다.

그 중에서 몇 개를 여기에 적어보겠다.

 

##
## File: linux/latest/source/drivers/net/ethernet/intel/i40e/i40e_txrx.c
##

... 중간 생략 ...
/**
 * i40e_run_xdp - run an XDP program
 * @rx_ring: Rx ring being processed
 * @xdp: XDP buffer containing the frame
 * @xdp_prog: XDP program to run
 **/
static int i40e_run_xdp(struct i40e_ring *rx_ring, struct xdp_buff *xdp, struct bpf_prog *xdp_prog)
{
	int err, result = I40E_XDP_PASS;
	struct i40e_ring *xdp_ring;
	u32 act;

	if (!xdp_prog)
		goto xdp_out;

	prefetchw(xdp->data_hard_start); /* xdp_frame write */

	act = bpf_prog_run_xdp(xdp_prog, xdp);
    
	switch (act) {
    
	case XDP_PASS:   ## NOTE: 따로 처리할 것이 없다.
		break;       ##       그냥, 원래 하던대로 network stack으로 보내면 된다.
        
	case XDP_TX:     ## NOTE: RX 패킷이 들어온 NIC을 찾아서 TX 패킷을 그 NIC으로 보내도록 한다.
		xdp_ring = rx_ring->vsi->xdp_rings[rx_ring->queue_index];
		result = i40e_xmit_xdp_tx_ring(xdp, xdp_ring);
		if (result == I40E_XDP_CONSUMED)
			goto out_failure;
		break;
        
	case XDP_REDIRECT:
		err = xdp_do_redirect(rx_ring->netdev, xdp, xdp_prog);
		if (err)
			goto out_failure;
		result = I40E_XDP_REDIR;
		break;
        
	default:
		bpf_warn_invalid_xdp_action(rx_ring->netdev, xdp_prog, act);
		fallthrough;
        
	case XDP_ABORTED:  ## NOTE: 패킷을 폐기
out_failure:
		trace_xdp_exception(rx_ring->netdev, xdp_prog, act);
		fallthrough; /* handle aborts by dropping packet */
        
	case XDP_DROP:     ## NOTE: 패킷을 폐기
		result = I40E_XDP_CONSUMED;
		break;
	}
    
xdp_out:
	return result;
}
... 중간 생략 ...

 

 

 

 


 

eBPF 공식 문서

What is eBPF?

  문서 링크: https://ebpf.io/what-is-ebpf/

 

The eBPF Library for Go

  문서 링크: https://ebpf-go.dev/

 

 

 


추천 글

eBPF/XDP: 당신만 모르는 안전하고 빠른 Networking

https://pangyoalto.com/ebpf-and-xdp/

 

eBPF/XDP: 당신만 모르는 안전하고 빠른 Networking

[요약] * eBPF: kernel space 내에서 프로그램을 실행할 수 있도록 하여 어플리케이션 개발자가 런타임에 OS의 기능을 사용할 수 있도록 하는 기술 * XDP: eBPF를 기반으로 한 기술로 packet processing을 할 수

pangyoalto.com

 

 

Unlocking Network Performance with XDP and eBPF

https://medium.com/@khushichhillar02/unlocking-network-performance-with-xdp-and-ebpf-67c712128025

 

Unlocking Network Performance with XDP and eBPF

XDP, eXpress Data Path, is a high-performance networking technology in the Linux kernel that allows for fast and efficient packet…

medium.com

 

Kernel-bypass techniques for high-speed network packet processing(XDP, DPDK, eBPF, SmartNIC)

https://youtu.be/MpjlWt7fvrw?si=bnUQJmA0O3qRf3Jg

 

 

 

WireGuard로 VPN 서버 구축하기

아래 문서에서 다루는 내용은;

  • WireGuard
  • KeyCloak SSO 연동
  • Kernel networking stack을 이용하여 특정 Group 접근을 제어 
  • VPN server에서 사용하는 인증(Authentication)
  • eBPF를 이용한 패킷 필터링(Packet filtering)
  • eBPF map (Key/Value store)

https://tech.devsisters.com/posts/wireguard-vpn-2/

 

 


 

반응형
작성일: 2024년 7월 7일

 

 

JM님이 카페를 오픈한지는 꽤 지났지만, JM님이 카페 위치를 공개적으로 말한 적이 없어서 찾기가 어렵다.

 

하마커피 위치는

강남역 신분당선 연결통로 바로 뒤
강남역 출구번호로 찾을 때는 7번 계단 ~ 2번 출구 계단 근처
강남역 상가번호:  비32호, 비33호

 

 

 

아래 강남역 지하상가 지도에 빨간 동그라미 구역에 JM님의 카페가 있다.

 

 

 

 

 

 

 

 


 

반응형
작성일: 2024년 7월 2일

 

 

"Software publisher"라고도 알려진 ISV(독립 소프트웨어 공급업체)는 소프트웨어 제작(개발, 구현) 및 판매를 전문으로 하는 업체.

ISV가 공급하는 Software와 대조적인 Software는 아래와 같은 것들이 있다.

  • 사내, 기관 내, 단체 내에서 사용할 Software를 자체 개발
  • 외주 개발 업체에 의뢰하여 만든 Software (즉, Software 개발을 요청한 회사에서만 소비되는 Software)

즉, 위 예시의 Software, App은 ISV가 만든 Software가 아니다.

ISV가 제공하는 Software는 최종 사용자가 사용하지만, Software 소유 측면에서 보면 공급업체의 자산이다.

ISV가 개발한 Software 제품 예시:

  • 회사 내부 개발 인력의 일정 관리 앱
  • 바코드 스캐닝을 통한 재고 관리 앱
  • 소매업 관리 앱
  • 차량 관리 앱
  • Azure, AWS, GCP, Naver Cloud 등 Cloud Infra에서 제공되는 SaaS
  • 기타 등등

 

'IT General' 카테고리의 다른 글

보안 관련 용어 및 약어 정의  (0) 2024.07.31
One Time Password(OTP, HOTP, TOTP) 알고리즘  (0) 2024.07.30
HTTP/3 QUIC  (0) 2024.05.27
SOC 관련 정보 - Paloalto XSIAM  (0) 2024.05.24
XDR, EDR, SIEM, SOAR 보안 모델  (0) 2024.05.20

+ Recent posts