반응형
작성일: 2025년 1월 2일

 

대학생 때 까지는 종교에 관심이 없었는데, 사회 생활하고 결혼하고 아이를 키우고 늙어가면서 삶을 바라보는 관점이 조금이 바뀌더니

성인(예수, 부처, 공자, 맹자)의 말씀이 마음에 콕콕 박히는 경우가 늘어나고 있다.

나는 가톨릭 신자이고, 우리 가족과 친척, 처가의 모든 친척도 가톨릭 신자이다.

이런 이유 때문에 예수의 말씀 뿐만 아니라 가톨릭의 역사, 로마 가톨릭과 개신교와의 관계, 전세계에 있는 가톨릭 수도회 마다의 특징이나 활동(미션) 등에도 관심이 많다.

 

이렇게 관심을 가지고 공부를 하다보니, 다른 종교의 가르침은 어떠한지 호기심이 생겼다.

이런 호기심은 종교학을 전문적으로 연구하는 분들의 강연이나 글을 보면서 해소되고 있는데, 간혹 쉽고 재미있게 종교를 설명해주는 YouTube 영상이 있어서 일단 여기에 메모를 해본다.

 

 

[삼프로TV] 천주교의 공식적인 위계와 권위, 예수님의 뜻일까  |  성기헌 바오로 가톨릭대학교 신부 [The Religion]

https://youtu.be/is3DFe1YuZM?si=Qg_f10r0UAngKqz3

 

[삼프로 TV] 천주교에서 예수의 몸과 피를 먹는 이유  |  성기헌 바오로 가톨릭대학교 신부 [The Religion]

https://www.youtube.com/watch?v=9NhCOMH2tv0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
작성일: 2024년12월 29일

 

 

"산타는 JSun"님이 12곳의 설산을 추천해주었는데, 영상을 보고 있으면 꼭 가보고 싶을만큼 멋진 풍경이다.

나는 겨울 등산 장비가 없으니까, 난이도가 낮고 이동 거리가 짧은 것만 몇개 골라서 가야겠다.

아래 골라본 것이 그나마 만만한 산 목록이다.

  • 한라산 영실 ~ 윗새오름코스
  • 한탄강 물윗길 (강 트래킹, 고석정, 잔도, 주상절리, 순담계곡, 얼음폭포)
  • 태기산 (산 정상 근처 "양구두미재"까지 찻길이 있음)
  • 함백산 (산 정상 근처까지 찻길이 있음)

 

 

태백산 국립공원 CCTV 영상

http://www.knps.or.kr/common/cctv/cctv6.html

 

 

오대산 국립공원 CCTV 영상

http://www.knps.or.kr/common/cctv/cctv11.html

 

 

전국 국립공원 CCTV 영상 리스트

https://www.knps.or.kr/portal/main/contents.do?menuNo=8000168

 

반응형
작성일: 2024년 12월 24일

 

 

Karin Prater(강사)의 설명을 보고만 있어도 이해가 될 정도로 쉽게 설명한다.

(Karin Prater 강사는 아마도 독일 국적인 것 같다. 영어로 말하는데 독일어하는 것 같은 느낌 ^^.

또박또박 diction 하니까 듣는 것은 문제 없음) 

 

macOS 앱 개발을 실습할거라면, 동영상을 보면서 따라하면 된다.

 

 

https://www.youtube.com/watch?v=xEUAKd_PAMo&list=PLWHegwAgjOkqQM6dR97bsp2or2sll2ht-

 

 

위 동영상 강의(Tutorial)이 다루는 내용은 아래와 같다. 

  • Beyond Basics: Can SwiftUI Handle the Challenge of Complex macOS Apps?
  • How to build a macOS app for beginners
  • How to save and manage data with core data in Switft
  • Make a macOS app from start to finish with SwitfUI - "Screenshot App"
  • Make a macOS app: Keyboard shortcuts, settings window and menu bar extra - SwiftUI tutorial
  • WWDC24: Key updates for macOS development with SwiftUI
  • Reading and parsing CSV files in Swift

 

 

 

 

 

##
## 채용 관련 글
##

제가 일하고 있는 기업 부설연구소에서 저와 같이 연구/개발할 동료를 찾고 있습니다.
(이곳은 개인 블로그라서 기업 이름은 기재하지 않겠습니다. E-mail로 문의주시면 자세한 정보를 공유하겠습니다.)
 
근무지 위치:
  서울시 서초구 서초동, 3호선 남부터미널역 근처 (전철역 출구에서 회사 입구까지 도보로 328m)

macOS 앱 개발 부문
  - macOS 운영체제 자체에 대한 이해도가 있어야 함.
    + Swift 언어 외에도 OS Primitive 기능을 다루기 위해 다른 언어를 사용함 (예: Golang)
  - macOS 내에서 IP network traffic을 모니터링하는 정도의 배경 지식 필요.

Linux Server 앱 개발 부문 - 필요한 지식 (아래 내용 중에서 50% 정도를 미리 알고 있다면 빠르게 협업할 수 있음):
  - 운영체제 (학부 3~4학년 때, 컴퓨터공학 운영체제 과목에서 배운 지식 수준):
    예를 들어, Processor, Process 생성(Fork)/종료, Memory, 동시성, 병렬처리, OS kernel driver  
  - Algorithm(C언어, C++ 언어로 구현 가능해야 함)
    예를 들어, Hashtable, Linked list 자료 구조 정도를 C 또는 C++로 구현할 수 있으면 Good! 
  - Network 패킷 처리 지식(Network layer 2 ~ 4)
    예를 들어, DHCP Server/Client 기능(Discover, Offer 등) 구현할 정도의 능력이 있으면 됨.
  - 우리 연구소에서는 Netfilter(iptables)를 잘 사용하면 업무를 수행함에 있어서 편함. (Netfilter를 모르면 동료가 잘 알려줄 것임)
  - IETF RFC 문서를 잘 읽고 이해하는 능력 ^^
  # 위에 열거한 내용 외에도 제가 여기 블로그에 적은 내용들이 대부분 업무하면서 관련이 있는 주제를 기록한 것이라서
  # 이 블로그에 있는 내용들을 잘 알고 있다면, 저희 연구소에 와서 연구/개발 업무를 수행함에 있어서 어려움이 없을 겁니다.
  # 위 내용을 잘 모르지만, 이 분야에 대해 공부하면서 일하고 싶다면 저에게 문의 메일을 주세요~
  # 학습 잠재력이 높은 것이 보인다면, 협업할 동료로써 환영합니다 ^^

회사에서 사용하는 프로그래밍 언어:
  - 프로그래밍 언어: C, C++, Go, Rust
    (참고: 아직 연구소 동료들이 Rust를 사용하진 않습니다만, 새 언어로써 Rust를 사용하는 것을 고려하는 중)

근무 시간:
  - 출근: 8~10시 사이에서 자유롭게 선택
  - 퇴근: 8시간 근무 후 퇴근 (오후 5시 ~ 7시 사이)
  - 야근 여부: 거의 없음 (내 경우, 올해 상반기 6개월간 7시 이후에 퇴근한 경우가 2회 있었음)
  - 회식 여부: 자유 (1년에 2회 정도 회식하는데, 본인이 집에 가고 싶으면 회식에 안 감. 왜 참석 안 하는지 묻지도 않음)

외근 여부:
  - 신규 프로젝트 멤버 -> 외근 전혀 하지 않음 (나는 신규 프로젝트만 참여해서 지난 1년 동안 한번도 외근 없었음)
  - 상용 프로젝트 멤버 -> 1년에 5회 미만 정도로 외근

팀 워크샵 여부:
  - 팀 워크샵 자체를 진행하지 않음. (워크샵 참석하는 거 싫어하는 개발자 환영 ^^)

연락처:
  - "sejong.jeonjo@gmail.com"  # 궁금한 점은 이 연락처로 문의주세요.
  - 블로그 비밀 댓글 (제가 하루에 한번씩 댓글 확인하고 있음)

원하는 인재상:
  - 우리 부설연구소는 "긴 호흡으로 프로젝트를 진행"하기 때문에 최소 2년간 한 가지 주제를 꾸준하게 연구/개발할 수 있는 개발자를 원함.
  - 우리 부설연구소는 자주적으로 연구 주제를 찾아서 업무를 하기 때문에 능동적으로 생각하고 행동하는 동료를 원함.
  - 차분하게 연구 주제에 몰입하고, 해법을 찾는 것을 즐기는 사람.
내가 느끼는 우리 연구소의 장점:
  - 갑/을 관계가 없음. (제가 근무하고 있는 연구소는 SI업종이 아니라서 갑/을 회사 개념이 없음)
  - 연구소 자체적으로 연구 주제를 발굴하고 시스템을 개발하기 때문에 개발 일정에 대한 스트레스가 적음
  - 빌딩 전체를 우리 회사가 사용하므로 분위기가 산만하지 않음.
  - 근처에 예술의전당, 우면산 둘레길이 있어서 점심 시간에 산책하기 좋음 ^^
  - 연구소 동료들 매너가 Good (2년간 일하면서 한번도 감정에 스크레치 생기거나 얼굴 붉히며 싸운 적 없음 ^^)

 

반응형
작성일: 2024년 12월 17일

 

Binary 파일이 정확히 언제 Build된 것인지 궁금할 때가 있다.

이럴 때 아래와 같이 Makefile과 C source code를 작성하여,

Binary file에 Build Date 정보를 삽입하고

`strings` 명령어로 build date를 조회할 수 있다.

 

 

Makefile 작성하기

파일 이름: Makefile

MY_APP_BUILD_DATE := $(shell date "+%Y-%m-%d %H:%M:%S")

CC=gcc
CFLAGS=-D__MY_APP_BUILD_DATE__='"$(MY_APP_BUILD_DATE)"'

all:
    $(CC) -o myapp main.c $(CFLAGS)

 

C source code 작성하기

파일 이름: main.c

#include <stdio.h>

int main(void)
{
    printf("App Build Date: %s\n", __MY_APP_BUILD_DATE__);
    return 0;
}

 

 

 

Build Date 확인하기

 

$ make
gcc -o myapp main.c -D__MY_APP_BUILD_DATE__='"2024-12-17 13:14:28"'

$ ./myapp
App Build Date: 2024-12-17 13:14:28

$ strings myapp
App Build Date: %s
2024-12-17 13:14:28

 

 

 

 

 

 

 


 

반응형

 

작성일: 2024년 12월 16일

 

eBook(PDF) - Learning eBPF 

https://isovalent.com/books/learning-ebpf/

 

O'Reilly book: Learning eBPF by Liz Rice

The O'Reilly book Learning eBPF by Liz Rice now available for download!

isovalent.com

 

참고: 위 책에 소개된 예제 코드는 아래 github에서 열람할 것.

https://github.com/lizrice/learning-ebpf?tab=readme-ov-file

 

GitHub - lizrice/learning-ebpf: Learning eBPF, published by O'Reilly - out now! Here's where you'll find a VM config for the exa

Learning eBPF, published by O'Reilly - out now! Here's where you'll find a VM config for the examples, and more - lizrice/learning-ebpf

github.com

 

libbpfgo-beginners

https://github.com/lizrice/libbpfgo-beginners

 

GitHub - lizrice/libbpfgo-beginners: Basic eBPF examples in Golang using libbpfgo

Basic eBPF examples in Golang using libbpfgo. Contribute to lizrice/libbpfgo-beginners development by creating an account on GitHub.

github.com

 

 

 

책 저자 - Liz Rice

https://www.lizrice.com/#6

 

Liz Rice - containers, eBPF, security, Kubernetes, software engineering

Liz Rice is a software engineer and entrepreneur based in London, UK. As Chief Open Source Officer for eBPF experts Isovalent, she travels the world speaking about containers, security and distributed systems. Her programming language of choice is Golang,

www.lizrice.com

 

 

 

 

eBPF - Official Web Site

 

https://ebpf.io/get-started/

 

eBPF - Introduction, Tutorials & Community Resources

eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing kernel source code or loading a kernel module.

ebpf.io

 

 

 

 

 

 

 

 

 

 

 

 

반응형
작성일: 2024년 12월 13일

 

기업형 VPN을 사용할 일이 생겨서 어떤 거를 써야 하나 고민하다가, 최근에 보편적으로 어떤 제품이 많이 쓰이는지 조사해봤다.

간단하게 요약하면, Cisco AnyConnect 제품이 독보적으로 가장 많이 사용된다.
그리고 회사별로 보면, Cisco 제품군이 전체 VPN 시장의 54%를 차지한다.
(데이터 출처:  DataNeeds, 2023)

 

  • Cisco AnyConnect: 29%  (2,467 기업에서 사용중)
  • Cisco VPN: 25%  (2,125 기업에서 사용중)
  • Juniper VPN: 10%  (887개 기업에서 사용중)
  • Ctric Gateway: 8%  (670개 기업에서 사용중)
  • OpenVPN: 7%  (583개 기업에서 사용중)
  • CheckPoint VPN: 3%  (228개 기업에서 사용중)
  • NCP IPsec VPN: 2% 

 

시장 점유율이 높은 Cisco AnyConnect의 운영 매뉴얼, API 가이드를 보니까 아주 잘 만들어져 있었다.

왜 Cisco AnyConnect 제품이 잘 팔리는지 알 수 있었다.

그런데 가격이 넘사벽이다. ㅠㅠ

IPsec tunnel에서 1Gbps 대역 효과를 얻기 위해서 대략 5100만원 정도를 써야 한다.

(이 5100만원이라는 것도 순수 장비 구입비만.. ㅠㅠ  기술지원 비용까지 합하면, 실제 지출되는 금액은 훨씬 커진다.)

회사가 여러 빌딩이나 지사로 나누어져 있으면, VPN 장비를 여러 개 구입해야 하니까 비용은 수억원 정도 지출될듯.

 

반응형

 

작성일: 2024년 12월 10일

 

 

Segmentation fault (core dumped)

 

분명 process가 segmentation fault 상황에서 core file이 dump되어야 하는데, 어디에도 core file이 없는 경우가 있다.

이럴 때는 coredump와 관련한 설정이 안 되어 있는 것이니까, 아래의 내용을 보고 coredump 관련 설정이 잘 되어 있는지 다시 확인해봐야 한다.

 

core dump file의 size 제한 설정이 있는지 확인

너무 큰 core dump file이 생성되는 부작용을 막기 위해 core file size limit 설정이 존재한다.

(2020년대 이후로는 SSD, HDD가 충분히 커서 이런 core file size limit이 유용한지 모르겠다.)

core file이 수십개가 dump되어도 문제 없을만큼 storage가 크다면, unlimit 설정값으로 바꾸는 것을 권장한다.

## 현재 설정값 확인하는 명령.
$ ulimit -a
real-time non-blocking time  (microseconds, -R) unlimited
core file size              (blocks, -c) unlimited
data seg size               (kbytes, -d) unlimited
... (내용 생략) ...

## core file size 제한을 푸는 명령 (무제한 크기로 변경)
$ ulimit -c unlimited

 

위와 같이 설정하면, 내 login shell 환경에만 즉시 적용되고  Linux 시스템 전체적으로는 아직도 옛날 core file size가 적용된다.

따라서 Linux 시스템 전체에 설정 값을 적용하려면 아래와 같이 limits.conf 파일을 수정해야 한다.

$  cat  /etc/security/limits.conf
(... 중간 내용 생략 ...)
*      soft    core      unlimited
(... 중간 내용 생략 ...)

 

 

core file 이름 패턴 및 경로 설정

core file이 어느 폴더에 저장되고, 어떤 이름으로 저장될지 설정해야 한다.

$ cat /proc/sys/kernel/core_pattern
/tmp/core.%e.%p.%h.%t

 

각 설정값이 의미하는 것은 이렇다.

  • %e   프로그램 이름 (실행 binary file name)
  • %p   Process ID (예: 3453)
  • %h   Host name (예: mynode)
  • %t    core file dump된 시각 

 

위와 같이 설정하면, 아래와 같이 실제로 core file이 /tmp 폴더에 dump된다.

$ ls /tmp/core.*
/tmp/core.myapp.104618.mynode.1733790395

 

위 파일 이름에 포함된 "1733790395" 값은 Unix time(또는 epoch time)라고 한다.

이 epoch time을 우리 눈에 익숙한 포맷으로 바꾸려면 아래와 같이 명령을 수행하면 된다.

## Timezone 설정이 UTC이면, 아래와 같이 출력 
$ date -d @1733790395
Tue 10 Dec 00:26:35 UTC 2024

## Timezone 설정이 Asia/Seoul이면, 아래와 같이 출력
$ date -d @1733790395
Tue Dec 10 09:26:35 KST 2024

 

 

epoch time 및 date 포맷 변경에 관한 자세한 내용은 아래 블로그 글을 참고

https://andrewpage.tistory.com/193


 

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

 

 

대화형 방식으로 gdb 명령 사용하기 (interactive mode)

## 현재 실행중인 프로세스 '1234'에 attach하기 위해 아래와 같이 명령을 실행
$ gdb -p 1234

## 프로세스 '1234'의 모든 thread 목록을 출력
$ info thread
... ( 출력 내용 생략 ) ...
... 모든 쓰레드 정보가 출력됨 ...

## 전체 thread 중에서 thread '5'의 정보를 보기
$ thread 5

## thread '5'의 backtrace 정보를 출력
$ bt

 

 

 

batch 방식으로 gdb 명령 사용하기 (non-interactive mode)

gdb 명령을 batch 방식으로 사용할 수 있다. 

아래 예제처럼 2개의 gdb 내부 명령을 사용하고자 할 때는 '-ex' 옵션을 2번 사용하면 된다.

이렇게 하면, -ex 옵션 순서에 따라(즉, 왼쪽에서 오른쪽으로 순서에 따라) 명령이 차례대로 수행된다. 

$ gdb -batch -ex "info thread" -ex "thread apply all bt" -p 1234

 

위 예제의 경우,

  - 전체 thread list를 출력하고,

  - 각 thread의 call stack을 출력한다.

 

 

 

 

 


 

+ Recent posts