프로그래밍

분류

자세한 것은 프로그래밍소프트웨어개발을 참고하라.
문서설명
비트 연산 여러 개의 비트로 이루어진 값(흔히 비트 갯수가 정해진 이진수일 때가 많다)을 다루기 위한 연산들. 비트별 연산 Bitwise operation. 한국어에서는 비트"별" 연산과 비트 연산을 크게 구분하지 않는 것 같지만, 비트별 연산은 두 값에 대해서 대응되는 비트들끼리만 연산이 일어나고 위치가 같지 않아 대응되지 않는 비트들끼리는 연산이 일어나지 않는다는 점에서 비트 연산의 하위 개념이다. 비트 NOT: 에 대응되며, 흔히 나 단항 연산자로 나타낸다. 체계로 표현된 숫자의 경우, 어떤 수를 비트 NOT 한 결과는 해당 숫자의 부호를 바꾼 뒤 1을 뺀 것과 같다(로 치자면 ). 비트 AND: 에 대응되며, 흔히 이항 연산자로 나타낸다. 크게 두 가지 사용 용도가 있다: 비트 OR: 에 대응되며, 흔히 이항 연산자로 나타낸다. 특정 비트를 1로 설정하고 다른 비트를 그대로 유지할 때 쓰는데, 해당 비트만 설정된 숫자와 비트 OR을 하면 된다. 비트 XOR: 에 대응…
기능으로서의 버그 소프트웨어에 존재하는 버그 중, 그게 쓸모가 있어서든, 개발자가 고칠 의지가 없든, 아무튼 안 고쳐져서 기능으로 남게 된 것들. 혹자는 모든 버그는 사실 개발자가 모르거나 의도치 않은 기능이라고 주장하기도 하는데, 해커영어사전(Jargon File)의 feature 항목에서는 아예 이렇게 써 놓기도 했다:
널로 끝나는 문자열 Null-terminated string (NTS) 또는 stringz (sz). 컴퓨터 메모리 상에서 문자열을 표현하는 방법으로, 널문자가 문자열 맨 뒤에 붙어서 문자열의 끝을 가리킨다. C의 표준 문자열 표현 방법이며, C++에서도 C 스타일 문자열은 이 표현을 쓴다. 당연하지만 널문자를 문자열 안에 넣고 싶을 경우 이 표현을 쓸 수가 없다. 흔히 파스칼문자열과 비교된다.
컴퓨터의 정수 표현 컴퓨터 하드웨어에서 정수를 표현하는 방법. 흔히 세 개로 나뉘고 마지막 것이 현재 컴퓨터에서 가장 많이 쓰인다. * 부호 및 절대값 표현: (-1)^s m --- 표현은 가장 쉬우나 연산이 어려움 * 1의 보수 표현: (-1)^s \left(m \oplus (s \times 2^{n-1})\right) --- 여전히 0이 두 개로 나뉨 * 2의 보수 표현: (s || m) - 2^{n-1} --- 모든 숫자에 유일한 표현이 있으나 양수와 음수의 범위가 달라짐
C의 이중자와 삼중자 기본적으로는, ISO C에서 일부 문자 집합이 제공하지 않는 글자를 다른 글자의 열로 표현할 수 있도록 하는 기능. 그러나 사실은, C를 꽤 오래 써 왔다는 사람조차도 이 따위 기능의 존재를 몰랐거나, 알더라도 쓸 일이 절대로 없는 매우 무쓸모한 기능이다. 컴파일러 옵션에서 아예 꺼 버리는 것이 정신 건강에 이롭다.
프로그래밍 패러다임 프로그래밍을 할 때 어떤 방향과 어떤 방법론으로 접근하느냐에 따라서 어떤 문제는 쉽게 풀리기도 하고 어떤 건 어려워지기도 하는데, 그래서 많은 패러다임을 알고 있는 건 중요하다. 그래야 필요할 때 적절한 패러다임을 갖다 쓰지.
프로그래밍 컴퓨터 프로그램을 짜는 행위. 프로그래밍을 하는 사람은 프로그래머라 한다. (방송편성을 프로그래밍이라 하는 경우도 있기 때문에 종종 주의가 필요.) 코딩과 프로그래밍에 엄밀한 구분을 지으려는 사람들은 둘의 차이를 "자명하지 않은 알고리즘 또는 소프트웨어구조를 만드는가"로 본다. 자명하지 않은 알고리즘을 쓴다 하더라도 그것이 기존에 있는 라이브러리를 무비판적으로 수용할 경우 코딩으로 보는 경우도 있다. 한편 소프트웨어개발과도 상당히 많이 겹치면서 살짝 다른 뉘앙스를 가지는데, 개발이라고 할 때는 프로그래밍 뿐만 아니라 소프트웨어에 들어가는 리소스를 만들거나 좀 더 넓게는 마케팅에서의 의사 결정까지를 포함할 때도 있으니 프로그래밍이 개발의 부분집합이라고 보는 게 낫겠다.…
프로그래밍 교육 두 가지 주제를 생각해 보자. * 일반 사람들에게 프로그래밍을 교육해야 할 필요성이 있는가? * 만약 필요성이 있다면, 어떻게 교육을 해야 할 것인가? 후자에 대해서는 Peter Norvig의 〈10년 안에 프로그래밍 배우기〉가 대략적인 가이드가 될 수 있을 것 같다. 전자에 대해서는 상당한 논란거리가 있는데, lifthrasiir는 결국 여러 단계의 "프로그래밍" 레벨이 구분되어 사용자층도 나뉠 것이라고 본다. (사실은 일반 사용자가 프로그래밍이라고 인식하지 않음에도 실제로는 프로그래밍인 경우가 종종 존재하니까!)…
테스팅 소프트웨어가 잘 돌아가는지 테스트하는 작업을 보통 이른다. 테스트는 손으로 하기도 하고 기계가 해 주기도 하지만 후자는 아직 보편화되진 않았음. * 유닛테스트 * 테스트기반개발 * 퍼즈테스트 * QuickCheck * 테스트생성 (랜덤하게 하는 거 말고...)

세부 분류


도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-05-30 18:25 | 외부 편집기