Linux Programmer

강의 todo list 본문

잡담/TODO 강의, 외부

강의 todo list

sunyzero 2020. 8. 17. 14:55

올해부터 강의를 하면서 피드백이 필요한 강의들이 있어서 글을 써둔다. (시간 역순)

 

9. cmake (Jan 2023)

1. cmake 예제 중 PUBLIC, PRIVATE, INTERFACE 설명 보충

2. visibility hidden 보충

3. JSON preset for vscode 보충

 

8. make, gdb (Oct 2022)

1. make 예제 중 so lib부분 rule 보완.

2. gdb 보완, 버그 수정할 예제 파일을 좀 더 다양하게 작성

 

7. 리눅스 네트워크 프로그래밍, 서버 관리 부분 (Apr 2022)

1. getaddrinfo, getnameinfo 와 systemd-resolved 퍼포먼스 관계, d-bus 통신 부분과 같이.

2. 스케줄러 처리 : cron을 systemd.timer로 변경하는 예시

3. docker와 podman 관련

 

6. 리눅스 기초에 관한 부분 (Jan 2021, May 2021)

1. kernel module관련 명령에 대한 부분 보강

2. udisks2와 udev에 대한 관계 보강

3. WSL2와의 관계에 대한 부분 설명할 것 (왜 궁금해 하는지는 모르겠으나, 궁금해 하는 사람들이 많음)

4. 왜 서버에서는 Ubuntu보다 CentOS를 선호하는지에 대한 이유 (ubuntu의 단점 설명할 것)

5. awk 예제 추가, backtracking 성능 예제 추가할 것

 

5. 동영상 강의 제작 : 마이크 녹음 후보정 (Dec 2020)

1. 동영상 강의를 제작하면서 핀마이크로 녹음을 떠보니 날카로운 목소리와 쇳소리, 클릭음이 거슬린다. 검색해보니 어차피 음성 부분은 후보정을 거쳐야 한다고 한다. 마이크의 로우패스 필터는 한계가 있다고 한다.

2. audacity가 가장 쉽다고 해서 설치. 일반적인 mp4 영상은 AAC를 사용하므로 ffmpeg을 설치해야 한다. Linux에서 작업하면 쉽지만, 파워포인트 때문에 어쩔 수 없이 윈도를 쓰다보니 설치부터 간단하지 않다. (dnf 명령이 그립다.)

3. audacity 사용 : NR, clipping fix 의 2가지만 후보정 해도 상당히 좋아진다.(clipping fix의 경우 원 목소리가 상당히 감쇄되어 오히려 안좋은 경우도 있는 듯 하다), 마이크 자체의 NR을 사용하면 NR을 안해도 된다. 음량 정규화를 -29 정도 하니까 소리가 딱 좋은 정도로 증폭된다.

   참고 : utilizeme2002.blogspot.com/2019/07/audacity-clipping-clip-fix.html

4. export시에는 그냥 mp3 (extreme, 220~260kbps) 정도만 해도 좋다.

5. ffmpeg 으로 합치기 : ffmpeg.exe -i ".\input.mp4" -i ".\input.mp3" -c:v copy -c:a copy -map 0:v:0 -map 1:a:0 output.mp4

첫번째 파일(mp4)에서는 video만 따고, 두번째 파일(mp3)에서는 audio만 따도록 map을 설정해야 한다고 한다.

 

4. 원격 강의에 대한 부분 (11월 초)

1. PPTX의 mp4 변환은 정말 느리다. 30분짜리 강의 영상을 인코딩하는데 2~3시간이 걸린다. 특히 태블릿펜으로 필기를 하면 더 느려진다. mp4 인코딩을 가속할 수 있는 방법이 있는지 알아봐야 한다.(GPU가속 같은거 안되나?)

2. 마이크 세팅시 볼륨 문제가 있다. 일단은 20만원 정도 주고 마이크를 하나 샀는데, 강의 시작 부분에서 소리가 작게 들리다가, 점점 커진다. 강의 시작 후 10초쯤 지나야 원래 볼륨이 된다. OBS의 문제인지 아니면 Windows 시스템의 문제인지 모르겠다. 이에 대해서 좀 더 조사해봐야 할 듯 싶다. (OBS 처음 써보는 건데, 이게 문제라면 다른 것으로 갈아타야 할 것 같다)

3. ffmpeg을 이용해서 볼륨을 노말라이징할 수 있다. 꽤 잘되는 편인데, 마이크에서 로우컷으로 녹음해도 ffmpeg이 이걸 다시 증폭시킨다. 녹화만 10번 넘게 하다보니 삽질만 10시간 이상 한 것 같다.

 

3. 9월 2주차 : (SK) Linux performance & trouble shooting 강의 내용

* TODO :

1. defunct process에 대한 심화 내용 : 좀비 상태에 대한 질문이 많았다. (좀비는 CPU리소스를 사용할 수 있는가?)

2. socket memory에 대한 내용 (allocated와 limit에 대한 오해가 많다) [반영완료]

3. congestion control에 대한 내용 심화 부분 (테스트 부분 추가) : loss feedback algorithm의 문제되는 부분 [반영 완료]

4. shell script & regex : system network functions / tuned functions 예시 추가

5. shell쪽은 완전히 새롭게 작성해야 할것 같기도... 너무 내용이 많다. 중점적인 내용으로 ...(test 구문 제거할 것)

6. file hole과 allocated block에 대한 부분 : du 커맨드의 문제점. 특정 디렉터리 이하의 용량을 파악하기 위한 오버헤드 (=> sparse file의 용량을 du는 어떻게 처리하는가? copy시에는?)

7. shell script 작성시 주의점 : 

7.1. 매우 많은 pid들이 존재할 때 top과 ps의 문제 : sub shell을 만들면?

7.2. loop를 과도하게 도는 경우의 문제

7.3. regex를 nested 시키는 문제 : sed ... | sed ... | sed ... | sed ... (왜 이렇게 작성했는지 물어보니 이렇게 설명하는 책이 있었다고 한다. 헉!)

7.4. 회사에서 주로 사용하는 스크립트를 보면 의식의 흐름대로 쓰거나 error 상황에서도 계속 후행 작업을 진행하는 문제가 많다. return code는 꼭 검사하도록 해야 한다. (rc를 검사하지 않는 before 코드와 after코드를 보여주고, 연습문제도 한두개 정도 만들어야 할 듯 싶다.)

 

2. 8/11주차 : (코스콤) C/C++ 서버 프로그래밍 강의 내용

 

SUSv4 표준, Linux 비표준 프로그래밍

systemd 이후 unit에 등록되는 서버의 규칙

IPv4, TCP, UDP

TCP state transition diagram, 3way handshaking, 4way handshaking, FIN/RST segment

Options : SO Layer, TCP Layer

Nagle's algorithm, Delayed ack, RFC-1323

C++ ABI (lib version control), age/current

Casablanka library

Boost.asio (C++)

 

* 수정 및 보완해야 할 점

1. systemd 관련 부분의 예제 더 추가할 것 [반영완료]

2. cgroup과 서버 프로그래머가 해야 할 것들 추가, machinectl 등등

3. socket buffer와 sliding window 관련 예제 추가할 것 (slow peer에 따른 메모리 낭비 효과등등, multi-connection에 대해서도) [절반만 반영 완료, 내용이 너무 루즈해진다]

4. listen backlog에 대해서 질문이 많았다. backlog 혹은 pending on overflow/abort on overflow 의 차이를 보여주기 위해 예제라도 하나 추가하는게 좋을 듯 싶다. (빠른 re-connect 모델을 사용하는 서비스의 경우 backlog의 차이가 영향을 주는지 확인하는 예제도 추가하면 좋을 듯)

5. casablanka 예제 더 추가할 것

6. boost 및 관련 툴을 docker로 묶어서 버전 처리하는 부분 추가할 것

 

몇몇 강의 자료의 예제 코드가 너무 길어서 좀 줄이는게 어떨까 고민 중. 혹은 PDF에서 빼고 github에 올려서 하는 것도 생각해보자. (네트워크가 단절된 곳의 강의는 어떻게 할지도)

 

 

나중에 비슷한 강의할 때 참고할 내용들. 생각나는대로 추가할 것.

 

기간 : 2020/07/14~16, 2020/08/11~13

위치 : 코스콤

 

1. (코스콤) 7/14주차 : bash 강의 내용

bash, 수치계산, UNIX command, systemd 명령어와 같이 사용하는 스크립트 : 1일

UNIX fork 모델, zombie process와 bash에서 처리하는 방법, signal 처리, pipe 처리 : 1일

REGEX (BRE, ERE, PCRE) : 1일

 

* 수정 및 보완해야 할 점

0. 가상 이미지를 vagrant 쓰는 것을 고민해보자.

1. 예시를 위해서 리눅스 시스템에서 사용하는 init 스크립트를 보여주려고 했는데, CentOS 8부터는 deprecated되어서 보여줄 수 없었다. 따로 시스템에서 사용하는 다른 스크립트를 보여주도록 예시를 변경해야 할듯 싶다.

2. 정규표현식 부분은 내용이 너무 길다. 불필요한 부분은 조금 손봐도 될 듯 싶다.

3. PCRE 부분에 대한 부분은 소요가 별로 없어서인지 업데이트가 없어서 강의 자료가 오래된 것 같다.

 

 

 

반응형
Comments