안녕하세요.

인터넷에서 글을 적다보면 여러가지로 오해살 일도 많고 논란이 되기도 합니다.

제가 나름대로 생각해본 바로는 다들 살아온 환경도 다르고 배경지식이 다르기 때문이라고 생각됩니다.

내가 생각하기에는 상식이 다른 나라에서는 상식이 아닌 경우가 많지요.

이것도 실제 경험해보신 분들은 아실꺼예요.

저도 40이 넘고 보니 너무 편협하게 살아온 것 같아서 생각의 폭을 넓히려고 노력하고 있습니다만

자신을 수양하기가 어려운 것 같습니다.

예를 하나 들어보면 누군가가 요청을 합니다.

" 나무젓가락 하나 만들어주세요"

하지만 이 요청은 여러가지 배경지식을 가진 사람들에 의하여 왜곡 되어 전달됩니다.

1. 일반인 - 중국집에서 사용하는 그런 나무젓가락이 필요한가 보네. 인터넷 검색해보자.

2. 일본 젓가락 장인(1세트에 수백만원짜리) - 앗 요청한 사람이 어떤 사람이지? 어떤 음식을 주로 먹을까?

예전에 창고에 온습도 맞추어 놓고 10년간 건조시킨 나무 재료가 떨어져 가는데

이번 생산에 사용할 수 있을까? 창고에 한번 가봐야겠네...

둥근 젓가락이 필요할까? 끝이 오목한 젓가락 이 필요할까?

부부 세트 젓가락인지 혼자만 사용하는 젓가락일까?

요청한 사람의 알레르기는 어떤 종류가 있을까 이 목재는 이번엔 못쓰겠는데....

젓가락 코딩은 어떤 걸 선호할까? 약간 미끄러운거? 살짝 껄끄러운거?

이번에 새로 개발된 코딩 방법을 한번 제안해볼까?

3. 중국 젓가락 생산 공장 사장 - 몇 개 만들지? 저번에 "하나" 요청할 때 1억개 단위로 생산했는데

이번에도 1억개 만들면 되나? 배송은 해운인데 이번엔 급한거 같은데 항공으로

배송하나? 나무 자재 값이 올랐는데 대체품으로 이 목재로 생산하면 허락할런가?

요새 나무 재료값이 올랐는데 대금은 선급으로 좀 받아야 겠는데..

여기 까페도 여러가지 사람들이 모여있으므로 어떤 사람은 한개의 수백만원하는 젓가락을 만드시는 분도 있고

대량으로 생산하시는 공장 사장님도 계시고 그리고 일반인도 있겠지요.

여기계신 고수님들은 아마 생각이 많은 2번 유형이지 싶습니다 ^^

따라서 정확한 답을 얻으려면 아래와 같은게 좋습니다.

"5mm 사각형 형태의 일반 중국집에서 사용하는 젓가락으로 1세트만 필요합니다.

나는 알레르기 없으니 환경 호르몬 무시하시고 가장 저렴한 젓가락으로 1세트만 만들어주세요.

일정은 한달 이내면 좋겠습니다. 그냥 저혼자 사용하려고 일회성으로 주문합니다"

이것이 [요구 사항 명세서] 가 됩니다.

질문자는 자세한 질문을 ,

답변자는 질문자의 의도를 모르니 친절한 요청을 하시는 게 기본이겠지요.

단, 답변자가 선의를 베푸는 갑의 입장이니

되도록 질문자가 상세하고 좋은 질문을 하는게 바람직하겠습니다.

그래야 답변자의 시간도 절약하고 서로 빠른 답변을 들을 수 있겠지요.

좋은 답에는 항상 좋은 질문이 존재합니다.

오늘도 즐거운 하루 되세요~~

 

안녕하세요.
 
이번에는 프로그램관 관련된 용어에 대하여 한번 개념 정리를 해볼까 합니다.
 
작년에 신입사원이 들어오고나서 교육하느라 이리저리 하다보니 나름 노하우가 생긴거 같아서
공유해보면 좋을 거 같네요.
 
가장 기본부터...
프로그램이 뭔지 물어보면 막상 다들 대답을 못합니다.
저의 면접에 빠지지 않는 질문이기도 하고요.
 
1. 프로그램 이란
  - 여기서는  computer programming 을 말합니다. 
     뭐 면접장에서 나올 것 같은 질문인데 아마 회사보다는 공대 면접장에서 교수들이 할 질문 같이 보이는 군요,
    위키에서 보면 아래와 같이 정의하고 있습니다.
 
        컴퓨터 프로그래밍(영어computer programming) 또는 간단히 프로그래밍(programming문화어: 
        프로그램 작성) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 
      이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 말한다. 
 
  그럼 이제는 프로그램이 무언지 알기 위하여 "알고리즘" 이 무언지 "프로그래밍 언어" 가 무언지 알아야 겠군요,
 
2. 알고리즘 이란
  - 역시 위키에서 보면
    알고리즘(라틴어독일어: Algorithmus, 영어algorithm 알고리듬[*]IPA[ǽlɡərìðm])은 수학과 컴퓨터 과학
   언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 
    형태로 표현한 것을 말한다.
  - 다시 말하면 "문제 해결을 위한 절차,방법을 공식화한 형태로 표현한 것" 이군요.
 
3. 프로그래밍 언어 란?
  - 위키 위키 위키~~~
   프로그래밍 언어는 컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 형식언어이다. 
   고급 언어일수록 사람이 사용하는 언어에 가깝다.
  - 정리하면 "컴퓨터를 동작시키는 소프트웨어"
 
4. 따라서 프로그램이란
  - 어떤 문제 해결을 위하여 절차,방법을 공식화한 형태를 컴퓨터를 동작시키는 소프트웨어로 구현하는 기술
  - 로 정의할 수 있겠네요.
 - 더 쉬운말로 
    1) 해결하여야 할 문제가 있고
    2) 이를 해결할 공식화된 원칙을 설계하고
    3) 설계된 것을 프로그래밍 언어를 사용하여 구현하여 ,
    4) 문제를 해결하는 방법 또는 기술
 
5. 계속 고찰해보면 
  1) 문제 발생 -> 무언거 해결해야할 문제가 있다는 거지요. 문제가 없다면 해결할 이유도 없음.
  2) 원칙을 설계 
    -> 근데 이게 무언가 규칙성을 찾아서 단순하게 바꾸어야 된다는 겁니다.
    -> 이게 설계인데 이 힘은 공학(물리,화학) 또는 수학을 통하여 길러지는 힘입니다.
    -> 수학이 바로 복잡한 자연현상 등을 숫자를 이용하여 한줄의 수식으로 설명하는 
        놀라운 알고리즘의 변환 과정을 경험하고 배울 수 있습니다.
    -> 수학 못하면 2) 번을 못하고 3)번만 할 줄 알게 됩니다. 주로 코더라고 부르죠.
  3) 프로그램 언어를 사용하여 구현
    -> 수학에서는 숫자를 이용하여 알고리즘을 표현하고
    -> 프로그래밍에서는 프로그램 언어를 사용합니다.
    -> 언어라는 것은 영어를 보면 알듯이 일단 단어암기 및 문장구조 규칙을 배워야 되죠.
    -> 신기한 것은 같은 단어와 문법구조를 가지고 사람을 마음을 감동시키는 대작을 쓰듯이,
        프로그램도 구현하는 사람에 따라 노벨문학상 못지 않은 대작을 구현하시는 분들도 있다는 겁니다.
   -> 저희 같은 범인들은 그냥 대가의 코드를 보면 눈물한번 찔끔하고 열심히 ctrl-c ,v!
 4) 이렇게 해서 문제를 해결해야죠.
 
6. 이게 "프로그래밍"입니다.
 
 이제 여러분들이 어떤 작업을 하고 계시는 지 내가 어디에 위치해 있는지 명확히 깨달으셨으면 합니다.
 
 어느 분야에서건 "용어 정의" 및 "용어 이해" 가 중요합니다.
 다음번엔 CPU,메모리,캐쉬 등으로 차례로 한번 용어에 대하여 적절한 예를 들어가면 설명해보겠습니다.
 
 지루한 내용일 수도 있는데 읽어주셔서 감사드립니다~~

안녕하세요.

임베디드 개발을 하게되면 여러가지 알수없는 현상을 목격하고 이를 해결하기 위한 노력을 하게 됩니다.

운이 좋아서 쉽게 원인을 해결할 때도 아니면 소 뒷발에 쥐잡기로 해결이 되는 경우가 있지요.

오늘 몇가지 사례를 공유해보고자 합니다.

거창한 분석방법을 이용해서 해결한 것이 아니고 자유게시판인 만큼 그냥 지나가는 소리로 읽어주시면 감사하겠습니다.

제가 경험했던 경우와 주변 엔지니어에게 들은 신기한 케이스들입니다. 너무 많지만 몇가지만 공유해보겠습니다.

1. 대학 석사때 아는 형님

- 하드웨어 보드르 만들었는데 한달째 디버깅도 안되고 동작이 안됨.

- 매일 끙끙 앓다가 꿈에서 20번 버스가 사람을 태우고 자기 앞을 지나감.

- PCB 에 20번 BUS 라인을 확인하고 바로 해결 (단선)

- 이해가 되시나요? 그 버스가 그 bus 이더냐?

2. 제가 초보때

- NAND 칩이 바뀌었는데 동작이 안됨.

- 삼성 NAND 스펙만 정말 한달 내내 정독 정독. 코드도 4페이지 이하라 한달내내 그것만 봄.

- OOB 영역 크기가 바뀐 문제였는데 해결이 안됨.

- 한달째 되는 새벽녘 잠자리에서 어슴푸레 꿈과 현실이 구분 안되는 상황에서

누워있는 천장에서 왼쪽엔 코드가 오른쪽에 데이터시트가 나타남.

- 신기한 것은 어슴푸레가 아니라 코드 한자 한자 테이터 시트 한자한자 다 읽어짐.

- 심지어 페이지 넘김 해도 선명하게 모든 글자가 다 읽힘 (아마 자동으로 다 외어 졌던듯)

- 꿈속에서 데이터 시트를 다시보다가 특정 문구 발견

- 해당 코드로 진입하여 머리속으로 수정 및 디버깅. 머리속으로 컴파일 단축키도 눌렀음.

- 꿈속에서 이건 해결한 거다 라고 확신이 듬.

- 출근하여 정말 그 부분(당연히 꿈 속의 코드랑 현실 코드랑 같지요) 한 줄만 수정하여 해결

3. 초보때 선배 엔지니어 술자리에서 제가 졸라서 들은 신기한 경험 (제발 이야기해주세요~~ 이런 분위기)

- 커피 자판기 제작 회사임

- 계속 현장에서 자판기 컵이 걸린다는 신고

- 사무실에서는 재현 불가

- 자주 목격되는 현장 출장 방문

- 며칠을 반복하며 생길때 까지 방문

- 일주일뒤 정말 컵이 많은데 걸려서 나오지 않음.

- 떨리는 마음으로 커피 자판기 도어를 염.

- 너무 놀래서 뒤로 자빠질 뻔 함.

- 컵이 쌓여서 마지막 1-2개정도만 남았는데 그 컵이 컵트레이 속에서 공중에 떠 있음. 게다가 살짝 움직이면서 둥둥.

- 그래서 그 트레이를 손으로 가만히 잡으니 우주선 착륙하는 것 마냥 천천히 착륙함.

- 회사로 돌아가서 트레이 사출 재질을 변경함.

- 다들 이유를 아시겠죠? ㅎㅎㅎ

4. 기구 엔지니어 썰

- 표 판매기 기구에서 500원 동전이 자꾸 걸림.

- 알바 3명을 시켜서 500원 잔뜩 주고 재현될때까지 시킴.

- 일주일 뒤...

- 알바 한 명이 동전이 걸렸다고 달려옴.

- 긴장된 표정으로 엔지니어 총 출동 (야! 절대 손대지 말고 가민하 놔둬 를 외치며 30m 거리를 날라감)

- 도어를 정말 천천히 열어봄. 재현상황이 무너질까봐~~

- 매끈한 동전 회수함 앞단에서 평면판 위에 500원 짜리 동전이 세로로 서 있었음.

-> 500원 짜리 동전을 랜덤하게 던져서 똑바로 설 확율임.

-> 8시간 x 5일 x 3명 당 1번

- 바닥을 평면으로 하지 않고 기울어지게 설계 변경

 

다들 그런거 있쟎아요 나만 아는 신기한 경험들 ㅎㅎ

 

즐거운 하루 되세요~~~

+ Recent posts