본문 바로가기

개발자/Algorithm

I2C 2 byte unsigned char pointer의 데이터를 unsigned integer로 변환 아래 코드는 I2C unsinged int 값을 2 byte unsigned char로 변환하여 나눠서 저장. address pointer=하위바이트, * address pointer+1=상위바이트 순으로 저장하는 코드 역으로 작업하는 코드는 그 아래~ 주석 참고하시고, Atmega 2560에서 사용하는 코드입니다. /*** I2C unsinged int 값을 2 byte unsigned char로 변환하여 나눠서 저장. address pointer=하위바이트, * address pointer+1=상위바이트 순으로 저장. * @param integerunsigned int, 변환할 정수값 * @param pcharunsigned char *, 변환하여 return하는 문자열 포인터 * @return */..
BCD를 binanry으로 변환과 binary를 BCD로 변환 코드 가끔 헷갈리기도 하고 찾아도 없는 경우가 있는데 참고하세요~ Atmega 2560 에서 돌리는 코드입니다. 12345678910111213141516171819/** * BCD를 binanry으로 변환 * @param bcd unsigned char, 변환할 hexa데이터 * @return unsigned char, binary 형식으로 리턴. */unsigned char Bcd2Bin(unsigned char bcd){ return ( ( (bcd&0xF0) >> 4 ) * 10 + (bcd&0x0F) ); } /** * binary를 BCD로 변환 * @param bin unsigned char, 변환할 binary데이터 * @return unsigned char, BCD 형식으로 리턴. */unsi..
좋은 프로그래머가 되기위한 10 가지 방법 좋은 프로그래머가 되기위한 10 가지 방법 좋은 프로그래머는 사전에서 정의를 찾을 수 있는 단어가 아닙니다. 좋은 프로그래밍 기술은 성공하는것 뿐만 아니라, 프로그래밍의 기쁨을 발견하는데 필수적입니다. 과거에 많은 성공적인 프로그래머로 알 수 있는 바와 같이, 여기에 프로그램에서 성공적인 경력을 추구하는 사람들에 선행 될 수 있는 몇 가지 사항은 다음과 같습니다. java.dzone.com에서 인용한 대로, 당신은 그들을 다음과 같은 모습으로 알 수 있습니다 . 원본 글 http://efytimes.com/e1/fullnews.asp?edid=119212 1. 기본을 연마하는것 - 개념을 잘 이해하는 것이 성공을 달성하기 위해 중요하다. 강력한 기본 개념 없이 좋은 프로그래머가 될 수 없다. 기본을 잘 ..
소스코드 분석, 코드 리뷰 분석 방법 모아봤습니다. 소스코드 분석은 정말 어려운 일입니다. 그러니 오죽하면 분석보다 새로 짜는게 더 쉽다는 말이 나오기도 하고요. 그러나 소스를 본다는것은 새로운 철학을 만나는 것이라고 봅니다. 오래된 코드건, 만든지 얼마 안되어 유지보수가 필요한 코드건 말입니다. 개발된 제품의 소스코드를 보고 있는데 C 파일과 header 파일 갯수만 124 개나 됩니다. 헉~~ 전투력 급저하 됩니다. 소스 코드 분석은 코드 리뷰와는 많이 다르다고 합니다. 제 생각엔 일단 큰 구조를 파악하고, 점점 반복해 가면서 세부적인 내용으로 분석해 들어가는 방법이 좋은 방법입니다. 아래 글들은 소스 코드 분석에 대한 좋은 글들을 몇개 모아봤습니다. 도움이 되면 좋겠습니다. 하나~ 소스코드의 분석은 말은 쉽지만 실제로는 엄청난 일입니다. 코드의 크기..
Cadence OrCAD v16.0 설치방법 - Windows 7에 설치 ( XP 에서도 가능) Cadence OrCAD v16.5 설치방법 - Windows 7에 설치 1. 다운받은 파일을 Cadence_SPB_165.iso 파일을 가상 시디롬 프로그램인 Demon Tools를 이용하여 가상 시디롬에 삽입한다. 아니면 알집을 이용해 압축을 푼 상태로 설치해도 된다. 2. 폴더의 setup.exe 파일을 실행한다. 3. License Manager를 눌러 설치한다. 4. 설치도중 License File Location을 물어본다. 무시하고 Cancel 버튼을 눌러 나가버리자. 그러면 설치가 완료된다. 5. 받은 파일들을 살펴보면 LibCD라는 폴더가 iso파일과 같이 있을 것이다. 그 폴더내의 설치 프로그램이 Library 설치 프로그램이다. 반드시 "Only for me." 상태를 선택하고 설치한..
회사가 개발자를 고문하는 16가지 방법 회사가 개발자를 고문하는 16가지 방법 - Andrew C. Oliver | InfoWorld 훌륭한 개발자들을 확보하려면 그만큼 훌륭한 환경을 제공해야 한다. 점점 더 구인경쟁이 치열해지는 가운데 식사를 무료로 제공하거나 노동시간의 일부를 자유롭게 활용할 수 있도록 '유급' 여유 시간을 주는 기업이 나타나는 것도 이 때문이다. 그러나 모든 기업이 개발자의 중요성을 인식하고 있는 것은 아니다. 몇몇 기업들은 여전히 개발자를 혹사시킨다. 여기 개발자를 힘들게하는 다양한 유형을 소개한다. 이 가운데 한 두 가지 이상을 하고 있다면 그 기업은 최고의 개발자들을 다시는 채용하지 못하게 될 것이다. 1. 지옥 같은 보안 필자는 맥아피(McAfee) 프록시가 헬로월드자바(HelloWrold.java)에 집(Zip)..
최악의 소프트웨어 개발 프랙티스 10가지 - Andrew Oliver | InfoWorld 최악의 소프트웨어 개발 프랙티스 10가지 - Andrew Oliver | InfoWorld 훌륭한 소프트웨어를 만들기란 그다지 어렵지 않다. 그러나 제대로 된 코드를 작성하려는 소프트웨어 개발자의 가장 큰 적은 바로 자기 자신이다. 잘못되거나 엉뚱한 습관에 빠질 수 있기 때문이다. 아니, 사실 개발자의 최대 적은 더 빨리 프로젝트를 완료하려는 조급한 마음에 개발자를 잘못된 습관으로 몰아넣는 IT 책임자이다. 특히 대규모 엔터프라이즈 또는 웹 프로젝트에서 이는 큰 재앙으로 이어질 수 있다. 다음과 같은 함정은 익히 알려진 것들로, 여기에 이의를 제기하는 개발자는 아마 거의 없을 것이다. 1. 하루 종일 유닛 테스트를 한 줄도 작성하지 않는다 개발자는 유닛 테스트와 기능 테스트의 차이점과 같은 세부적인 부분..
고급 개발자에 대한 6가지 진실 - Andrew Oliver 고급 개발자에 대한 6가지 진실 - Andrew Oliver 크고 중요한 프로젝트가 진행되던 중 갑자기 사방이 붕괴된다. 이리저리 꼬인 코드는 도저히 디버깅할 엄두가 나지 않는다. 유닛 테스트는 해본 적도 없고, 뭔가를 변경할 때마다 40여 명의 사람들이 모여 회의를 해야 한다. 만일 “고급” 개발자 10명으로 구성된 팀이 이 프로젝트를 맡았더라면 99.999%의 가용성으로, 두 배 더 많은 기능을, 절반의 시간에 구현할 수 있었을 것이다! 아니, 어쩌면 아닐 수도 있다. 고참 개발자들로 구성된 팀은 복잡한 설계만 만들 뿐 막상 코드를 내놓지 못하는 경우가 많다. 그 이유는 다음과 같다. 원글 출처 : http://www.itworld.co.kr/news/77598 진실 1 : 고참 개발자는 비싸다 관리..
모두가 원하는 개발자 되기 10단계 개발자가 되기 위해 프로그래밍 기술만 있으면 된다고 생각한다면, 틀렸다! 코드를 잘 쓰는 것도 중요하지만, 일의 능률을 높이고 더 높은 연봉을 받기 위해서는 많은 이에게 자신이 누구인지 알리는 것이 중요하다. 다시 말해, 스스로를 마케팅해야 한다. 여기에서 성공적인 셀프 마케팅 방법을 소개한다. 모두의 개발자 팁 No.1 : 블로그 블로그를 개설 후 한 달에 한 번 이상 포스팅을 올려라. 블로그에 올리는 글은 꼼꼼히 리서치하고, 바보 같아 보이는 말은 하지 않는다. 농담이 아니고, 개발자들도 정말 작문 실력을 높이기 위해 노력해야 한다. 학교 다닐 때 국어 선생님이 가르쳐준 것들을 활용해보자. 글을 쓰기 전 개요를 작성하고, 서술 기법을 정하고, 문법이나 맞춤법을 확인하는 것 말이다. 그런 후에는 아깝더..
XML(Extensible Markup Language) 에 대한 10가지 관점 XML : Extensible Markup Language에 대한 10가지 관점 XML, XLink, Namespace, DTD, Schema, CSS, XHTML 등 ... 만약 XML을 새로이 접하게 된다면, 이와같은 용어는 매우 어렵게 느껴질것이다. 이 요약은 XML의 초보자들에게 기본적인 개념에 대하여 10 가지를 제공 함으로써 나무를 통하여 숲을 볼 수 있도록 하기 위한것이다. 1. XML은 구조적인 데이타를 위한것이다 스프레드 시트, 주소록, 형상 파라미터, 비지니스 트랜잭션, 그리고 기술 도면 등 구조를 가지는 데이타는 사물을 포함한다. XML은 텍스트 포맷을 설계하기 위한 규칙(가이드 라인이나 관례라고 생각할 수 있다)들의 집합이며, 이러한 규칙을 통하여 데이타를 체계화한다. XML은 프로..
언제 리팩토링 (Refactoring)을 해야 하는가 ? 켄트 백이 제안한 냄새론에 따라 아래와 같은 느낌의 냄새가 나면 리팩토링을 수행한다. 중복된 코드 - Duplicated Code긴 메소드 - Long Method커다란 클래스 - Large Class긴 인수의 리스트 - Long Parameter List스위치 명령문 - Switch Statements병렬적인 상속구조 - Parallel Inheritance Hierarchies추측에 근거한 일반화 - Speculative Generality임시필드 - Temporary Field설명문 - Comments 코드 자체가 할 말을 하게 하면 된다.