그냥 개발하면서 든 생각이다. 솔직하게 말하자면 Copy&Paste만 할줄알아도 된다 이런이야기는 아니다.

개발을 하다보면 정말 세상엔 천재가 많고 똑똑한 사람이 많다.

그런데 모두가 박사일필요도 모두가 천재일 필요도 없다.

나같은 평범한 사람은 천재들과 박사들의 개발사상 이념 기본구조를 정확하게 이해하고 응용만 할줄알아도

어설프게 알고리즘 직접짜서 어설프게 자기가 구현했다고 자기만족하는 사람들보다 훨씬 좋은코드를 짤수있다고 

감히 단언한다.

 

우리가 쓰고있는 프레임워크 혹은 라이브러리들은 짧은 프로그래밍 역사(이제 70년 넘음)에서 수십년에 걸쳐 

전세계의 수많은 사람들에게 온갖 피드백과 우리보다 똑똑한(?) 천재들에 의해 무수한 개량과 검증을 받았음을 잊지마라.

 

물론 자기자신이 정말뛰어난 사람이라면 직접만들어도 상관없지만 시간과 노력을 생각해봐라.. 인생은 짧다 배울것은 끝도없이 생겨나고 매일매일 따라 잡지 못하면 도태된다. 아무도 만든사람이 없어서 자신이 직접만들고 공유해서 그게 라이브러리가 된다면 그거야 말로 박수 받을 일이지만 그만한 시간적 금전적 여력이있는사람이 몇이나 될까.

 

가끔 직접 모든걸 구현해야 하는 강박관념 걸린사람을 본다. 과거의 나도 그랬다. 그런데 개발하고 경력쌓일수록 별의별 생각이 다든다. 과연 이게 최선인가. 내가 선택한 대답은 어설프게 뱁새가 황새쫒아가는것보다 황새가 어떻게 그렇게 잘걸을수있는지 무슨생각으로 그렇게 걸었는지 이해하고 최대한 내실정에 맞게 개조하는것으로 결론을 내렸다.

그것만해도 당신은 충분히 훌륭한 개발자라고 생각한다.

'잡담' 카테고리의 다른 글

소프트웨어 개발자 추천 책 목록  (3) 2020.02.28
우리가 클린코드 시리즈를 읽어야 하는 이유  (1) 2020.02.24
그냥 요즘 드는 생각  (1) 2020.02.19
라즈베리 파이 장비개발중  (1) 2018.06.22
이직..-ㅁ-  (1) 2017.11.20

 


설명이 더필요한가?(Any Question?) 
선택은 여러분의 판단에 맡기겠다.

'잡담' 카테고리의 다른 글

소프트웨어 개발자 추천 책 목록  (3) 2020.02.28
모두가 천재이자 우수 할 필요는없다.  (3) 2020.02.28
그냥 요즘 드는 생각  (1) 2020.02.19
라즈베리 파이 장비개발중  (1) 2018.06.22
이직..-ㅁ-  (1) 2017.11.20

//출처 : 내가만든거

QString CUtil::hexaToHexaString(uint target, ENDIAN endian)
{
    QString retValue;
    uchar targetBuf[4] = { 0, };
    uchar* targetPtr = (uchar*)⌖

    if (endian == ENDIAN_BIG)
    {
        targetBuf[0] = targetPtr[3];
        targetBuf[1] = targetPtr[2];
        targetBuf[2] = targetPtr[1];
        targetBuf[3] = targetPtr[0];
    }
    else
    {
        targetBuf[0] = targetPtr[0];
        targetBuf[1] = targetPtr[1];
        targetBuf[2] = targetPtr[2];
        targetBuf[3] = targetPtr[3];
    }

    retValue.sprintf("%02x%02x%02x%02x", targetBuf[0], targetBuf[1], targetBuf[2], targetBuf[3]);
    return retValue;
}

QString CUtil::hexaToAsciiString(const uint hexaData, CUtil::ENDIAN endian)
{
    char* ascStr = (char*)&hexaData;

    QString ret;

    if (endian == ENDIAN_BIG)
    {
        ret.append(ascStr[3]);
        ret.append(ascStr[2]);
        ret.append(ascStr[1]);
        ret.append(ascStr[0]);
    }
    else
    {
        ret.append(ascStr[0]);
        ret.append(ascStr[1]);
        ret.append(ascStr[2]);
        ret.append(ascStr[3]);
    }


    return ret;
}

 

함수설명

 

예를들어 데이터를 int(4byte)에 담아서 뭔가를 한다고 하자 근데 1byte마다 hexa형태의 데이터를 사용해야 할 때가있다.

 

가령 데이터가

 

 

0x31313131 < - 요런식으로

 

첫번째함수는

0x31313131를 -> 고대로 "31313131" 로 바꾸어준다

 

두번째함수는

0x31313131를 -> 아스키형태의 String으로 "1111"로 바꾸어준다. 필요한사람 가져다쓰세요~

 

함수는 uint로 했지만 다른 메모리를 사용하고 싶다면 적당히 오버로딩해서 여러타입을 넣어서쓰면된다.

+ Recent posts