본문 바로가기

전체 글56

달인이 되는 비결, 수십 년 동안 전문가가 안 되는 비결 | 함께 자라기 - 애자일로 가는 길, 김창준 저 함께 자라기‘함께’는 협력을 말하고, ‘자라기’는 학습을 말합니다. 무엇이건 실제 바깥세상(야생)에 임팩트를 남기려면 혼자 힘으로만 되는 게 없습니다. 함께 해야 합니다. 주변 사람들과 함께. 매일 부대끼는 동료들과 함께. 스스로 변하고 싶지만 계속 실패하는 사람, 조직을 개선하기 위한 시도를 하다가 오히려 데어본 사람, 불확실한 상황에서 합리적인 판단을 해야 하는 사람, 한 분야에서 전문성을 키워야 하는 사람에게 전문성을 키울 수 있는 제대로 된 방법을 알려줍니다. 어떤 분야에서 일하든 어느 위치에 있든 상관 없습니다. 이 책에서는 일하는 방법의 핵심과 통찰을 다룹니다. 개인의 힘으로는 극복할 수 없는 한계를 깨뜨리려면 모두가 같이 발전해야 합니다. 나 그리고 더 나아가 남을 변화시키는 삶에 대해 얘기.. 2024. 9. 13.
가장 학습하기 힘든 직업이 살아남는다 | 함께 자라기 - 애자일로 가는 길, 김창준 저 함께 자라기 작년에 ebook으로 구매한 책이다. 지난 8월 1일 이후로 나의 경력은 3년차가 되었고, 성장에 대한 마음가짐도 신입 때 보다 무거워졌음을 느끼고 있다. 그리고 ebook에 먼지만 쌓여있던 『함께 자라기』 책이 생각 났다. ※ 아래 내용은 책을 읽고 인상깊은 부분을 정리한 글입니다. 1부, 자라기가장 학습하기 힘든 직업이 살아남는다배우기 힘든 것에 집중하라 AI 시대에 대비하려면 배우기 힘든 것에 집중해야 합니다. AI 시스템에 유리한 조건 1. 목표(Goal)가 분명하고 객관적으로 정해져 있으며 정적이다. 2. 매 순간 선택할 수 있는 행동/선택의 종류(Move)가 유한하게 정해져 있다. 3. 매 순간 자신이 목표에 얼마나 근접했는지를 알 수 있다. (내가 한 선택의 피드백이 빨리 주어진.. 2024. 9. 13.
학습 프레임과 실행 프레임 | 함께 자라기 - 애자일로 가는 길, 김창준 저 함께 자라기‘함께’는 협력을 말하고, ‘자라기’는 학습을 말합니다. 무엇이건 실제 바깥세상(야생)에 임팩트를 남기려면 혼자 힘으로만 되는 게 없습니다. 함께 해야 합니다. 주변 사람들과 함께. 매일 부대끼는 동료들과 함께. 스스로 변하고 싶지만 계속 실패하는 사람, 조직을 개선하기 위한 시도를 하다가 오히려 데어본 사람, 불확실한 상황에서 합리적인 판단을 해야 하는 사람, 한 분야에서 전문성을 키워야 하는 사람에게 전문성을 키울 수 있는 제대로 된 방법을 알려줍니다. 어떤 분야에서 일하든 어느 위치에 있든 상관 없습니다. 이 책에서는 일하는 방법의 핵심과 통찰을 다룹니다. 개인의 힘으로는 극복할 수 없는 한계를 깨뜨리려면 모두가 같이 발전해야 합니다. 나 그리고 더 나아가 남을 변화시키는 삶에 대해 얘기.. 2024. 9. 13.
자기계발은 복리로 돌아온다 | 함께 자라기 - 애자일로 가는 길, 김창준 저 함께 자라기‘함께’는 협력을 말하고, ‘자라기’는 학습을 말합니다. 무엇이건 실제 바깥세상(야생)에 임팩트를 남기려면 혼자 힘으로만 되는 게 없습니다. 함께 해야 합니다. 주변 사람들과 함께. 매일 부대끼는 동료들과 함께. 스스로 변하고 싶지만 계속 실패하는 사람, 조직을 개선하기 위한 시도를 하다가 오히려 데어본 사람, 불확실한 상황에서 합리적인 판단을 해야 하는 사람, 한 분야에서 전문성을 키워야 하는 사람에게 전문성을 키울 수 있는 제대로 된 방법을 알려줍니다. 어떤 분야에서 일하든 어느 위치에 있든 상관 없습니다. 이 책에서는 일하는 방법의 핵심과 통찰을 다룹니다. 개인의 힘으로는 극복할 수 없는 한계를 깨뜨리려면 모두가 같이 발전해야 합니다. 나 그리고 더 나아가 남을 변화시키는 삶에 대해 얘기.. 2024. 8. 24.
RISC와 CISC, 명령어 집합 구조 | 프로그래머가 몰랐던 멀티코어 CPU 이야기, 김민장 저 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다.     ※  해당 글은 『김민장 저, 프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽고 정리한 글입니다.   요즘 시스템 분야에 흥미를 느껴서 김민장 님 저서인 『프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽기 시작했습니다. 하루에 한 챕터씩 읽으면서 글과 실물의 괴리감을 줄이기 위해 간단한(?) 사이드 프로젝트도 함께 해볼까 하는데 시간이 가능할지 모르겠네요. 그래도 오래간만에 가슴 뛰는 공부 거리를 찾았습니다.   명령어 집합 구조, 즉 프로세서 언어인 ISA를 대표적인 두 축 RISC와 CISC를 중심으로.. 2024. 8. 20.
당신은 몇 년 차? | 함께 자라기 - 애자일로 가는 길, 김창준 저 함께 자라기‘함께’는 협력을 말하고, ‘자라기’는 학습을 말합니다. 무엇이건 실제 바깥세상(야생)에 임팩트를 남기려면 혼자 힘으로만 되는 게 없습니다. 함께 해야 합니다. 주변 사람들과 함께. 매일 부대끼는 동료들과 함께. 스스로 변하고 싶지만 계속 실패하는 사람, 조직을 개선하기 위한 시도를 하다가 오히려 데어본 사람, 불확실한 상황에서 합리적인 판단을 해야 하는 사람, 한 분야에서 전문성을 키워야 하는 사람에게 전문성을 키울 수 있는 제대로 된 방법을 알려줍니다. 어떤 분야에서 일하든 어느 위치에 있든 상관 없습니다. 이 책에서는 일하는 방법의 핵심과 통찰을 다룹니다. 개인의 힘으로는 극복할 수 없는 한계를 깨뜨리려면 모두가 같이 발전해야 합니다. 나 그리고 더 나아가 남을 변화시키는 삶에 대해 얘기.. 2024. 8. 16.
프로세서의 언어, 명령어 집합 구조 (Instruction Set Architecture, ISA) | 프로그래머가 몰랐던 멀티코어 CPU 이야기, 김민장 저 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다.     ※  해당 글은 『김민장 저, 프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽고 정리한 글입니다.   요즘 시스템 분야에 흥미를 느껴서 김민장 님 저서인 『프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽기 시작했습니다. 하루에 한 챕터씩 읽으면서 글과 실물의 괴리감을 줄이기 위해 간단한(?) 사이드 프로젝트도 함께 해볼까 하는데 시간이 가능할지 모르겠네요. 그래도 오래간만에 가슴 뛰는 공부 거리를 찾았습니다.   들어가며, 컴파일러의 등장으로 인해 프로그래머들은 프로세서 언어와 거리를 두게 되었다.컴파일러.. 2024. 8. 12.
프로그래머가 프로세서도 알아야 해요? | 프로그래머가 몰랐던 멀티코어 CPU 이야기, 김민장 저 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다.     ※  해당 글은 『김민장 저, 프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽고 정리한 글입니다.   요즘 시스템 분야에 흥미를 느껴서 김민장 님 저서인 『프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽기 시작했습니다. 하루에 한 챕터씩 읽으면서 글과 실물의 괴리감을 줄이기 위해 간단한(?) 사이드 프로젝트도 함께 해볼까 하는데 시간이 가능할지 모르겠네요. 그래도 오래간만에 가슴 뛰는 공부 거리를 찾았습니다.  프로세서흔히 CPU (중앙처리장치)라는 표현을 자주 쓴다. 그러나 명확하게 말하면 현대 CPU는.. 2024. 8. 10.
당신의 crond가 작동하지 않는 이유 | CentOS 8 cron.daily jobs not running 그리고 anacron에 대하여 ※ 아래 내용은 CentOS 8을 기준으로 하고 있습니다.  ※ crond (daemon) 를 기준으로 하고 있습니다. crond가 작동하지 않는 원인 몇 가지1. crond가 실행하는 스크립트에 실행 권한이 있는가?2. 환경변수 설정은 제대로 되어 있는가?3. Debian을 사용하는가, CentOS를 사용하는가? 이 둘은 /etc/cron* 하위 스크립트의 저장 방식이 다르다고 한다. 4. 혹시 /tmp 디렉토리가 올바르게 존재하는가? (나의 케이스였다.)crond 디버깅 시 고려해봐야 할 것1. /etc/cron* 아래 스크립트를 테스트 모드로 실행해 보았는가? 2. crond가 모두 정상 작동하지 않는가? ( cron.hourly, cron.daily 등 ) 이 중, 혹시 cron.daily만 작동.. 2024. 7. 17.
회고 프로젝트 | 2023년 상반기, 뭐 했더라? 여름을 맞이하며 쓰는 6개월 회고 ※  아래 내용은 개인 의견이 포함된 블로그 주인의 일상 이야기입니다.      ※  그리 특별한 내용이 없습니다. ㅠㅠ   해당 게시글을 공개로 바꾼 2024년 7월 16일 기준, 다음 달이면 어느덧 입사한 지 만 2년이 된다. 아래 게시글은 작년 6월에 작성하려고 시도한(?) 회고 프로젝트다. 아래 회고 프로젝트를 적다가 중단한 이유는, 1. 내가 한 일을 구체적으로 적기에 보안상 이슈가 있을 것 같았다.2. NDR을 개발하기 시작한 지 6개월 차였던 당시에 "매달 진행한 업무"를 정리하면서 내가 많이 부족하다는 것을 느꼈고, 3. 무엇보다 내 글이 다른 사람들에게 큰 도움이 안 될 것 같아서였다. 회고 프로젝트를 시작했던 이유는 비전공자 개발자로서 네트워크 보안 개발을 희망하는 사람들에게 도움을 줄.. 2024. 7. 16.
RCU (Read-Copy Update)에 대한 간단한 이야기 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다.  시작에 앞서, RCU를 이해하기 위해 linked list가 상당히 중요함을 강조하겠다. 모든 알고리즘의 구성은 대체로 linked list를 활용한다. tree도 linked list로 연결을 하고, hash도 bucket 당 linked list로 매달아 놓는 특징이 있다. 그러다 보니 병렬 처리 시에 공유자원으로 linked list를 처리하는 게 매우 중요하다는 것을 인지하고 RCU에 대한 이해를 시작하자. RCU (Read-Copy Update) 개념은 바로 등장한 것은 아니다. 십여 년에 걸쳐 defer.. 2023. 7. 18.
Valgrind의 Invalid read 와 Invalid write에 대해 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다. Invalid readInvalid read는 할당되지 않은 메모리로부터 값을 읽으려 할 때 발생되는 현상이다. malloc()해준 크기를 넘어 값을 읽거나, stack의 상단을 넘치게 읽었을 경우 Invalid read가 발생한다. valgrind에서 Invalid read 메시지가 나올 때는, 얼만큼의 바이트 크기를 초과로 읽어 들였는지 확인할 수 있다. 아래는 Invalid read의 샘플 코드이다.포인터 변수 p에 20 byte 크기를 할당했고, for 문으로 값을 채워주었다.하지만 변수 p를 printf 하.. 2023. 7. 18.