본문 바로가기

Computer & Program/잡다한 이모저모55

Google의 장난? 진심? 안녕하세요, TDR입니다. 요즘 인터넷에 많은 번역기가 있는데 아마도 가장 많이 쓰는게 google 번역기가 아닐까 생각됩니다. 그 google 번역기에서 혹시 이런거 해보신적 있으신지요? "안드로이가 아니폰보다 좋다." 라고 입력하고 번역을 누르면 "Android better than iPhone." 이라고 나옵니다. 당연한 결과지요... 문제는 아래의 번역입니다. "아이폰이 안드로이드보다 좋다." 라고 하면 결과는... "Android better than iPhone." 라고 나옵니다. 그렇다고해서 google 번역기가 망가진건 아닙니다. 오직 이 문장에 한해서만 이런 결과가 나오는 거니까요 ㅎㅎ 그만큼 google이 Android에 신경을 많이 쓰고 자부심도 가지고 있다는 소리겠죠? 못 믿으시는 .. 2010. 12. 16.
[HTC]디자이어 팝 요즘 길거리에서 핸드폰을 쓰는 사람보다 스마트폰을 쓰는 사람을 더 쉽게 볼 수 있게 되었다. 그만큼 빠른 속도로 피쳐폰에서 스마트폰으로 옮겨 가고 있다. 그런 스마트폰의 양대산맥이라고 한다면 단연 Apple과 Android일 것이다. 즉, iphone vs android phone의 대결구도이다. 물론 그 외에도 윈도우폰이라던지 블랙베리와 같은 것들도 있지만 크게 보자면 그렇다는 것이다. iphone이야 Apple에서 밖에 안 만들어지고 있기 때문에 디자인만 보더라도 한눈에 알 수 있지만 Android 폰은 그렇지 않다. Android는 OS이고 그것을 만드는 회사는 수없이 많기 때문이다. 그 중에서도 오늘 다룰 회사는 Android의 최대의 수해자라고도 불리는 대만의 HTC이다. 실제로 현재까지 내가 .. 2010. 10. 28.
헝가리 표기법(Hungarian Notation) 가끔가다 어떠한 코드를 보다보면 변수 앞에 소문자 또는 소문자_ 형태로 되어 있는 것을 본적이 있을 것이다. 그렇다면 이러한 변수는 뭘까? 그냥 코드 짠 사람이 보기 좋으라고? 자신이 변수를 구분하기 쉬우라고? 전자는 오답, 후자는 반만 정답이다. 답은 변수를 구분하기 쉽게하기 위해서이다. 이러한 소문자를 아무렇게나 막 붙이는 것이 아니라 특정한 규칙을 가지고 붙이다. 이러한 표기법을 헝가리 표기법(Hungarian Notation)이라고 부른다. 우선 가장 많이 쓰면서도 대표적인 것들을 보면... 이렇다. 이런 표기법을 정해놓은 이유는 헝가리 표기법을 적용해서 변수 이름을 정하면 오류를 사전에 예방할 수 있고 다른 사람도 좀 더 쉽게 코드를 이해할 수 있기 때문이다. 실제로 다른 사람의 코드를 볼때 최.. 2010. 1. 5.
ASCII Coed 갑자기 생각나서 올린다. 예전에 자료구조를 할 때 문서로부터 글을 받아 와서 조작하는 프로그램 과제를 해야 했던 일이 생각나는데 그때 ASCII Coed를 사용하지 않고 어떻게든 구조적으로 해결할려고 하다가 시간을 시궁창으로 갖다 버린 일이 생각났다. 혹시나 해서 올리는 거지만 DEC(10진수), HEX(16진수), OCT(8진수) 이다. 그냥 노파심에 써봤다. 그리고 아래것이 127번 이후의 ASCII code 값이다. 거~~의 쓸 일은 없지만 그래도 인생사 알 수 없으니 올려봄. -_-v 2009. 11. 23.
ctags 설정 방법 안녕하세요. TDR입니다. 이번에 OS과제를 하다보니 필수적으로 써야하는 기능이 있었는데 그게 ctags입니다. ctags란 code file들을 상위 level에서 묶어서 관리해줌으로써 내가 필요한 함수, 구조체, 클래스, 변수 등의 선언부로 jump 할 수 있게 해주는 기능으로 이 함수의 구현을 보고 싶다면 그 함수가 선언된 code file을 직접 열어보지 않고도 손 쉽게 이동 할수 있는 기능을 말합니다. 그럼 우선 ctags 설치 방법을 알아보면... 음... 갑자기 말문이 막히는데 제가 이 정보가 과연 어디까지 사실(?)인지 알 수가 없기 때문에 그렇습니다. 그냥 제가 아는대로 찌껄이겠습니다. ( -_- 양해 please~) UNIX에서도 되고 LINUX에서도 되는 것으로 알고는 있는데 과연 U.. 2009. 9. 28.
[Computer]방 구석에 굴러 다니던거 정리 예전에 컴퓨터공부(주로 H/W)를 한다고 이것 저것 끄적이던게 방 청소하다가 나왔다. 버리기에는 왠지 아깝다(?)라는 생각이 들어서 필요한 정보 몇개만 적어 놓으려고 한다. □ 컴퓨터 4대 필수 요소 - CPU, RAM, Main Borad, VGA □ 일반적인 배선의 Volt 수 - Red : 5V - Yellow : 12V □ IRQ - Interrupt(간섭) Request(요청) - 0~15번까지로 총 16개 □ Serial & parallel port - serial port = com = 직렬 포트, 9핀, 수컷 - parallel port = 프린트 = 병렬 포트, 25핀, 암컷 □ USB - Universial Serial Bus - USB는 최대 127개까지 사용 가능(현재는 어떤지 알 .. 2009. 7. 29.
[C++]계승 C언어와 C++언어를 구별 짓는 특수한 기능들이 있는데 그 중에 하나가 계승(Inheritance)이다. 그럼 계승이란 무엇인가? 계승을 쉽게 말하면 똑같은 요소(함수, 인자)들이 있으면 그것을 각자 가지고 있지 말고 물려받아서 쓰면 효율적이다. 라는 것이다. 그럼 계승에는 어떤것이 있을까? 우선 무엇인가를 계승시켜주는 클래스를 기본 클래스, 기저 클래스, 베이스 클래스, 슈퍼 클래스라고 부른다. 그리고 계승받는 클래스를 파생 클래스, 서브 클래스라고 부른다. 간단한 예를 보면... #include using namespace std; class 기본클래스 { public : int temp; char array[10]; }; class 파생클래스 : public 기본클래스 { public : int i.. 2009. 7. 28.
[Linux]디렉토리 구조 리눅스 시스템은 아래 그림과 같이 계층적인(hierarchical) 트리(tree)구조로 구성되어 있다. 리눅스는 드라이브라는 개념을 사용하지 않고 파티션과 마운트라는 개념을 사용한다. 리눅스는 루트 디렉토리를 시작으로 계층적으로 구성되어 있고, 각 디렉토리는 다른 디렉토리들과 명확하게 역할이 구분되어 있다. 또한 설치시 각 디렉토리를 별도의 파티션으로 분할하여 마운트시켜 사용할 수도 있다. 주의할 것은 이 디렉토리 구조는 리눅스 커널의 소스 구조와는 다르다. 리눅스는 디렉토리를 포함하여 장치들까지도 파일로 취급하므로 이 디렉토리 구조를 리눅스 파일 구조라 부른다. 그럼 각 하위 디렉토리 구조를 살펴보면 / (root) 최상위에 위치하는 디렉토리로서 루트 디렉토리라고 한다. 일반적인 데이터 파일을 저장하.. 2009. 7. 27.
[Linux]리눅스의 특징 이번에는 리눅스의 특징에 대해서 말해볼려고 하는데 그렇다고 아래와 같은 기능이 리눅스에만 있는 것은 아니다. 대부분의 OS에서도 아래와 같은 특징을 가지고있다. 그럼 살펴보면... ▶ 멀티태스킹(Multi-tasking) & 멀티유저(Multi-user) 지원 - 멀티태스킹은 동시에 여러 개의 작업을 실행하는 개념이고 멀티유저는 하나의 컴퓨터에 여러 사용자가 접속하여 자원을 동시에 사용할 수 있는 개념이다. ▶ 다양한 하드웨어 플렛폼의 지원 - 리눅스는 x86, Motorola 68k, Digital Alpaha, Sparc. Mips 등등과 같은 다양한 플렛폼의 시스템에 설치하여 사용할 수 있다. 또한 크기가 작아서 PDA나 임베디드 시스템의 운영체제로도 손색이 없다. ▶ 공개 소프트웨어 - MS의 W.. 2009. 7. 23.
[C/C++]컴파일 & 링크 우리는 흔히 '프로그램을 컴파일 한다.'라고 말을 하지만 정작 그 의미를 정확히 알고 있는 사람은 그렇게 많지는 않은 것 같다. 그래서 컴파일 & 링크에 대해 간단히 쓰자면... 우선 아래의 그림을 보자. ▶ Souuce File - *.cpp or *.c 등의 소스 파일 들. 위에 그림에는 생략됐지만 *.h 파일등도 섞여 있다. ▶ Preprocessor - 컴파일 정의 준비 처리로서, 다음 처리를 한다. 하는 일은 코멘트 삭제, 파일의 인클루드, 인라인의 전개이다. ▶ Compiler - 소스 파일이나 페더 파일에 코딩된 C/C++ 코드를 컴퓨터의 언어(기계어)로 번역(컴파일)한다. ▶ Object Files - *.obj, *.o등의 컴파일러에 의해, 기계어로 번역된 상태의 프로그램 소스 ▶ Lin.. 2009. 7. 22.
[C++]inline Function 함수를 정의할 때 보면 type funct() { ... } 라고 정의할 때가 있는 반면 inline type funct() { ... } 라고 정의할 때도 있다. 이 두개의 차이는 무엇일까? 그건 바로 함수를 호출에 차이가 있다. 즉 inline없이 선언 했을 경우 함수를 호출하지만 inline를 선언해 주면 그 함수 본체의 코드가 직접 삽입된다. 일반적인 함수 호출(inline 선언 없는 함수) 함수 funct()에 inline이 붙어있었을 경우 void funct() { example code1; example code2; } int main(){ main_function code1; funct(); // 함수 호출 main_function code2; funct(); // 함수 호출 main_fu.. 2009. 7. 22.
[C++]Function Template 이번에 볼 것은 Tmeplate이다. 얘기도 많이 듣고 책 같은 곳에서 많이 보아는 왔지만 막상 쓰라고 하면 어떻게 써야할지 잘 움직이던 손가락이 멈추는 경험을 해보셨을꺼라 빈다.(나만 그런거면 억울하니까~ - 3-) 우선 Template은 어떨때 쓰는거냐하면 예를 들어 똑같은 동작을 하는데 변수 타입만 다른경우가 있을 때 쓴다. 예를 들어 파라미터로 int형 2개를 넘겨줘서 2개의 곱도 구해야하고 double형 2개를 넘겨줘서 2개의 곱을 구해야 하는 함수가 필요하다고 하자. 이럴때 Template를 사용하면 굳이 2개의 함수를 별도로 만들 필요가 없다. 그럼 간단한 예를 하나 보면... 123456template // typename이 반드시 T일 필요는 없다. 단, 모두 같은 변수 이름을 써야만 한.. 2009. 7. 18.