Guillermo Austin Kim

Sources

Posts

998 posts

[IT 에세이] 코드 몽키성 임베디드 개발 업무란 - [1]

Guillermo Austin Kim|2020년 8월 31일

저번 포스팅에서는 코드 몽키의 미래에 대해 이야기했습니다. 그 포스팅을 읽고 종종 아래와 같은 질문을 주시는 분들이 있었어요. * 임베디드 개발에서 구체적인 코드 몽키적인 일이 무엇인가? 이 질문에 대한 생각을 조금 정리해 설명하겠습니다. 코드 몽키성 임베디드 개발 업무란 코드 몽키성 업무의 주요 특징으로는 다음과 같은 특징을 지녀요. * 개발 업무를 매뉴얼화 할 수 있다 * 업무의 난이도가 낮다 * 일을 할 때 거의 막히는 부분이 없다. 지금 하고 있는 개발 업무가 위와 같은 범주 중 하나라고 느낀다면 “아, 내가 코드 몽키성 개발 업무를 하고 있구나”라고 여겨도 좋습니다. 이렇게 말씀드리는 이유는 임베디드 개발의 범위가 넓고 구체적으로 코드몽키성 업무에 대해 언급을 해도 공

[IT에세이] 버그 때문에 IT 회사가 문을 닫는다?

Guillermo Austin Kim|2020년 8월 31일

* 버그 때문에 우리 회사 문 닫을 뻔했어! 저번에 만났던 어떤 IT 업체의 개발자로 일하고 있는 친구가 했던 말입니다. 말 그대로 어떤 개발자가 짠 코드 때문에 버그가 발생해 회사가 문을 닫을 뻔 했다는 스토리인데요. 버그가 있는 코드를 어떤 양심 불량 개발자가 심어 놓고 도망을 가서 회사가 패널티를 낼 위기를 맞이할 뻔했다고 하더군요. 그 말을 할 때 그 친구의 표정이 잊혀지지 않습니다. 표정이 많을 걸 말해 주던데요. 이렇듯 버그는 IT 제품을 개발하는 개발자나 관리자의 머리를 빠지게 하고 다크 써클을 생기게 하는 최악의 유발자인 듯 합니다. 버그 때문에 회사가 문을 닫을 뻔 하기고 하고, 개발자는 가끔 짤리기도 합니다. 또한 중간에서 관리를 제대로 못했다고 관리자가 옷을 벗기도 합니다.

[IT] 불안해하는 시스템 SW 개발자들의 모습

Guillermo Austin Kim|2020년 8월 26일

많은 시스템 SW 개발자들이 생각 이상으로 불안해 합니다. 겉으로는 다들 잘 지내는 것 같지만, 술 한잔 하면 다들 불안감과 불만을 토해내는 경우가 많습니다. 그럼, 개발자들이 불안해하는 이유는 무엇일까요? 개발자들의 성향과 처한 현실에 따라 다르지만 대표적으로 불안해 하는 이유는 다음과 같습니다. * 현재 개발하고 있는 업무가 자신의 경력에 도움이 되는 지 의문이 생긴다. * 일을 해도 개발 능력이 느는 것 같지 않다. 신입 초년 개발자들은 자신이 몸 담고 있는 개발 분야가 전망이 있는지 의구심이 생기는 경우가 많아 불안해 합니다. 그런데 이런 불안함은 7~8년차 개발자들도 느낍니다. 전문성을 유지하면서 꾸준히 개발할 수 있는지 확신이 서지 않아 불안해 하는 겁니다. 그렇다면 10~15년차

[ARM] 전원을 키면 처음에 어디서 무엇을 실행할까[1]: PC 레지스터

Guillermo Austin Kim|2020년 8월 26일

분야를 막론하고 C 언어나 파이썬으로 컴퓨터 프로그래밍을 하다보면 다음과 같은 의문점이 생깁니다. * 바로 컴퓨터의 전원 버튼을 누르면 가장 먼저 무엇을 실행할까? * 이 때 실행되는 어셈블리 명령어는 무엇일까? * 이 명령어는 메모리의 어느 위치에 있을까? 이런 의문을 해소하려면 먼저 ARM 코어 내부에 있는 레지스터 중에 PC라고 부르는 프로그램 카운터 레지스터에 대해 이해할 필요가 있습니다. PC(프로그램 카운터) 레지스터란 PC(프로그램 카운터 레지스터)의 역할은 무엇일까요? 실행할 명령어를 읽을 때 사용되며 PC는 ARM 코어가 실행할 명령어가 있는 위치를 저장합니다. 그런데 이름과 역할이 약간 다른 것 같습니다. PC라는 용어는 프로그램 카운터라고 부른다고 말씀드렸는데, "프

[리눅스커널] 부팅 과정 유익한 패치

Guillermo Austin Kim|2020년 8월 19일

아래 패치도 정말 유용하다. * 유저 프로세스가 ASSET될 때 콜 스택 출력 * 부팅 과정에 오픈하는 파일을 출력 * 실행되는 파일 이름 출력 diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.cindex 9f5d818..4d6df0c 100644--- a/arch/arm/kernel/traps.c+++ b/arch/arm/kernel/traps.c@@ -37,7 +37,8 @@ #include #include #include -+#include +#include