들어가며
이번달에도 FNF 발표자로 참여했다.
주제를 먼저 정해서 공부하지 않고 이번 달에 공부했던 것들 중 가장 흥미로웠던 주제를 발표하기로 마음먹었다.
새로 참여하는 CS 스터디에서 OS 파트를 다루었고,
그 중 세마포어와 뮤텍스에 대해 깊이 있게 공부했기에 이거다! 싶었다.
상호배제 보장 방법 중 운영체제/프로그래밍 언어가 지원하는 방법에는 세마포어 말고도 모니터나 메시지 전달 등의 기법이 있었지만,
학부 수준에서 다루었기에 친숙한 세마포어와 뮤텍스를 중심으로 공부했다.
발표 준비하며 정리한 글 - https://heather-dev.tistory.com/34?category=1020656
Semaphore & Mutex
들어가며 "세마포어와 뮤텍스의 차이점을 말해보세요." 어제까지만 해도 이 질문에 대답하기 어려웠다. 이 글을 보고 있는 당신도 아마 어제의 나와 비슷한 상태일 거라고 생각한다. (난 이제 아
heather-dev.tistory.com
준비방식
(1) 책을 읽으면서 이해하고
(2) 스터디 제출용 자료를 만들면서 다시 정리하고
(3) 스터디에서 발표하고
(4) FNF 발표 자료를 만들면서 또 다시 정리하고
(5) FNF에서 발표했다.
이렇게 다섯 번 이해와 공유를 반복했더니
세마포어에 대해서 정말 잘 이해하게 됐다.
뮤텍스와의 차이점이 무엇이고 왜 그런 차이가 발생할 수밖에 없는지도
단지 알기만 하는 것이 아니라 직접 느끼게 되었다.
목차
이번 발표의 목차는 다섯 가지였지만, 5번을 발표할 때 가장 시간이 오래 걸렸다.
목차를 통해 발표 내용을 짐작할 수 있도록 적어보겠다.
1. 병행성
2. 병행처리기법, 인터리빙과 오버래핑
3. 상호배제 용어정리
4. 상호배제 보장으로 발생할 수 있는 문제
5. 상호배제 보장방법 3가지
발표자료
이번에는 PPT를 직접 공유한다.
애니메이션으로 교착상태와 기아, 세마포어 동작을 설명하기 때문에 PDF로는 발표를 잘 담을 수 없기 때문이다.
상업적으로 사용하지 않는다면 작성자를 밝히고 얼마든지 사용해도 좋다.
준비하면서
다섯 단계를 거치면서 이해가 깊어졌다고 했는데, 사실 세 번째 단계까지는 흐름을 탈 수가 없었다.
상호배제가 왜 필요한지, 상호배제 보장이 야기하는 문제에는 무엇이 있는지, 그 기법에는 무엇이 있는지 순으로 이해하면 되는데
단편적인 것들을 먼저 공부할 때에는 숲을 볼 수 없었기 때문이다.
그래서 발표가 좋다.
공부하고 자료를 준비하고 발표하는 과정에서 확실히 이해하게 되니까.
아, 떨리는 문제도 이번에는 정말 많이 나아졌다.
지난번만큼 확실히 이해된 주제가 아니라고 생각해서 발표하기 전에는 무척이나 떨렸는데,
발표를 하면서 '어? 말이 왜 이렇게 술술 잘 나오지?' 이런 생각이 들기도 했기 때문이다.
발표를 막 마친 지금은 '나 이거 다 이해했구나.' 싶어서 매우 뿌듯하다.
마무리
발표는 하면 할수록 어쩜 이렇게 재밌을까?
내 발표를 들어주는 사람이 많았으면 좋겠고, 내가 발표의 흐름을 더욱 잘 이끌면 좋겠고, 내 발표를 듣는 사람들이 잘 이해했으면 좋겠다.
'지식을 널리 공유한다'는 숭고한 마음이 100%는 아니고,
'다른 이들에게 공유하며 내 이해도까지 증폭시킨다'는 조금은 불순한 마음이 1% 있지만 뭐 어때.
발표 자료를 준비하고 발표하는 과정에서 이해도가 증폭되는 건 자연스러운 거니까 그 과정에서 자연스럽게 취해지는 이득은 내 거다.
매달 발표하기로 스스로 약속했는데, 약속을 지키기 위해 노력할 필요가 없을만큼 발표 자체를 즐기고 있다.
매번 짜릿하고 새로워!
'Presentation' 카테고리의 다른 글
블록체인실 제 1회 BE 세미나 - @Transactional 동작 방식 (0) | 2024.02.02 |
---|---|
FNF 제 1회 발표 - 회고편 (0) | 2022.04.04 |
FNF 제 1회 발표 - 준비편 (0) | 2022.03.27 |