소프트웨어 디자인 패턴이란? 소프트웨어 개발 방법으로 사용되는 디자인패턴(Desigin Pattern)은 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 그 방법에 이름을 붙여서 이후에 재사용하기 좋은 형태로 특정 규약을 만들어서 정리한 것입니다. 디자인 패턴은 소프트웨어 설계에 있어 공통적인 문제들에 대한 표준적인 해법과 작명법을 제안하며, 알고리즘과 같이 프로그램 코드로 바로 변환될 수 있는 형태는 아니지만, 특정한 상황에서 구조적인 문제를 해결하는 방식입니다. 즉 "효율적인 코드를 만들기 위한 방법론"이라고 생각하시면 됩니다. 디자인 패턴은 외우기보다는 어떠한 패턴이 있는지 알고 수많은 디자인 패턴에서 다양한 코딩 노하우를 습득하는것이 중요하다고 생각합니다. "이 코드에는 무조건 이..
이중 연결 리스트 이번 포스팅에서는 더블 링크드 리스트라고도 하는 이중 연결 리스트에 대해서 알아보고 실제로 구현해보려고 합니다.이중 연결 리스트에는 prev, next라는 이전과 다음 노드를 가리키는 포인터를 가지고 있는 연결 리스트를 말합니다. prev라는 이전 노드를 가리키는 포인터, next라는 다음 노드를 가리키는 포인터를 갖고 있기 때문에 양쪽으로 탐색이 가능하다는 장점이 있습니다. 이중 연결 리스트는 Head라는 처음을 의미하는 노드와 Tail이라는 마지막을 의미하는 노드를 가지고 있습니다. 이것을 시작과 끝으로 노드들을 추가하고 삭제하게 됩니다. 노드 추가 노드의 추가는 기존의 마지막 노드와 Tail과의 연결을 끊고 새로운 노드를 추가하여 기존 노드의 Next를 새로운 노드의 Prev에 연..
길이의 단위가 워낙 많아 단위를 외우기가 힘들어 포스팅 기록으로 남겨놓습니다. 가장 많이 사용하는 길이 단위 밀리미터(millimeter) : 국제단위계의 길이 단위로 1미터의 1,000분의 1에 해당하는 길이 단위입니다. 센티미터(centimeter) : CGS 단위계의 기본 단위로 1미터의 100분의 1에 해당하는 길이 단위입니다. 미터(meter) : 길이나 거리의 국제단위로 진공에서 빛이 299,792,458분의 1초 동안 진행한 거리로 정의되어 있습니다. 기이러한 정의는 최근에 측정 기술이 길이와 단위를 매우 높은 정확도로 재현할 수 있게 되면서 제안된 것으로, 시간의 경우에는 1013의 정확도로 재현할 수 있습니다. 킬로미터(kilometer) : 미터법에서 길이의 단위로 1,000미터와 같습..
초에도 단위가 있습니다. 밀리초, 마이크로초, 나노초, 피코초, 펨토초, 아토초가 그 단위들입니다. 흔히 미세한 시간의 단위들을 극 미세시간이라고 하며 밀리초(1000분의 1), 마이크로(100만분의 1), 나노(10억분의 1), 피코(1조분의 1), 펨토(1,000조분의 1), 아토(100경분의 1)로 극미세 세계의 단위로까지 시간을 나눌 수 있습니다. 너무나도 미세한 단위들이라 숫자들이 너무 커 외우기가 너무 힘들어 이렇게 포스팅 기록으로 남겨놓습니다. 밀리초(millisecond) 밀리초 (millisecond)는 시간의 단위로 1,000분의 1초. 물리나 공학 분야에서는 통상 msec, 또는 ㎳라고 쓰입니다. 컴퓨터 내부의 논리 회로(logic circuit) 등은 상당히 고속으로 작동하지만, 보..
보수란 보수는 보충을 해주는 수를 의미합니다. 현재의 숫자에서 자릿수가 1단계 올라갈 수 있는 수가 몇인지를 구하시면 됩니다. 보수 구하기 예시 10진수 1의 보수 : 1+9=10 -> 1의 보수 = 9 3의 보수 : 3+7=10 -> 3의 보수 = 7 2진수 1₂의 보수 : 1₂+ 1₂=10₂ -> 1₂의 보수 = 1₂ 10₂의 보수 : 1001₂+0111₂=11110₂ -> 1001₂의 보수 = 0111₂ 컴퓨터에서 보수가 필요한 이유 컴퓨터는 이진수만 이해할 수 있습니다. 그렇다면 음수는 어떻게 표현할 수 있을까요? 음수를 표현하기 위해 보수가 사용됩니다. 컴퓨터에서 보수는 양수를 음수화로 표현하기 위한 방법이 됩니다. 즉, 보충하는 수. 양수에 대한 보수가 음수입니다. 컴퓨터의 CPU는 뺄셈도 모..
진법이란? 진법이란 수를 표기하는 기수법의 하나로 몇 개의 기본 숫자를 이용하여 수를 표시하는 방법입니다. 자리값이 올라감에 따라서 수가 일정하게 커지는 규칙을 이용하고 수를 표시합니다. 우리가 일반적으로 사용하는 1 ~ 9까지의 숫자를 사용하여 수를 나타내는 방법을 10진법이라고 하며 프로그래밍에서 주로 사용되고 있는 진법은 아래와 같습니다. 위치의 가중치 모든 진법은 숫자의 위치에 따라 가중치가 달라지는 수입니다. 이 성질은 모든 진법에서 동일하게 적용되며 이 식을 사용하면 모든 진법들을 10진법으로 빠르게 바꿀 수 있습니다. 위의 경우 12345라는 10진법이 나오기 아래와 같은 식이 구해져야합니다. 계산식 : (1 * 10⁴) + (2 * 10³) + (3 * 10²) + (4 * 10) + 5 ..
C나 C++과 같은 고급 프로그래밍 언어는 컴파일을 거쳐 어셈블리가 됩니다. C나 C++와 같은 매우 민감한 언어들은 전혀 예상하지 못한 에러들이 자주 발생합니다. 해결방안에 대한 힌트를 찾을 때 상황에 따라서는 어셈블리 코드를 직접 확인해야 할 경우가 있습니다. Visual Studio에서는 컴파일된 어셈블리 코드를 직접 확인할 수 있는 기능을 제공합니다. 어셈블리 창 사용 설정 확인 도구 -> 옵션을 클릭하고 옵션창에서 디버깅 -> 일반에 들어간 뒤 주소 수준 디버깅 사용 체크박스가 체크되어있는지 확인합니다. 이것이 체크되어 있어야 디스 어셈블리 기능의 사용이 가능합니다. 어셈블리 코드 확인(DisAssembly) 디스 어셈블리 창을 보려면 분기점을 설정하고 F5를 눌러 디버그 모드로 실행해야 합니다..
Visual Studio 프로젝트에서 빌드를 하는 방법에는 릴리스(Release)와 디버그(Debug) 방식이 있습니다. 하지만 정확한 차이점은 모르시는 분이 많더군요. 대부분 Debug 버전은 디버깅용으로 Release 버전은 최종 배포용으로 빌드하는 것과 Relase 방식이 Debug 방식보다 빠르다 이 정도로만 알고 있지 이 두 가지의 정확한 차이점은 대부분 알지 못하는 듯하여 두 모드의 핵심적인 차이점 몇 가지를 이 포스팅에서 한번 정리해보고자 합니다. Release에서는 코드 최적화를 하고 Debug에서는 하지 않는다. 프로젝트 속성의 최적화로 들어가 보시면 Release는 위와 같이 최대 최적화로 되어 있는 반면 Debug는 사용 안 함으로 되어있는 것을 확인하실 수 있습니다. 여기서 코드 최..
이클립스를 사용하는데 글씨가 너무 작아서 글자가 제대로 보이지도 않고 눈에 피로감이 몰려오면 큰일이겠죠. 간단한 설정만으로도 이클립스의 폰트와 크기를 변경하실 수 있습니다. 이번 포스팅에서는 오늘은 이클립스의 글자 폰트와 크기를 바꾸는 방법에 대해서 알아보도록 하겠습니다. 단축키 활용 폰트 사이즈의 경우 단축키만으로도 간단히 조절할 수 있습니다. 에디터 창에 마우스 커서를 가져다 놓고 Ctrl + '+' or '-' 를 눌러주면 폰트 사이즈가 조정됩니다. 이클립스 폰트, 크기 설정하기 1. Window -> Preferences 창으로 들어갑니다. 2. General -> Color and Fonts를 눌러 Color and Fonts로 들어가준 뒤 바꾸고 싶은 언어를 클릭합니다. 전체를 바꾸고 싶으면 ..
이클립스를 처음 설치하면 Defualt로 적용되어있는 Light라는 테마(Theme)가 적용되어 있습니다. 그렇다고 해서 꼭 이 테마만 사용을 해야 하는 것은 아니고 사용자의 기호에 따라 다른 테마도 적용이 가능합니다. 그중에서도 많은 선택을 받고 있는 테마가 다크(Dark) 테마가 아닐까 생각합니다. 경험상 80%정도의 개발자는 기본(Light) 테마를 20% 정도는 다크(Dark) 테마를 사용하셨던 것 같네요. 이 테마를 사용하셨던 개발자분들은 대부분 오래 모니터를 보고 있으면 흰색 화면보다는 검은색 화면이 눈에 피로를 덜 준다라는 생각을 가지고 다크 테마를 사용하셨던 것 같아요. 또한 다크 테마를 포함해 기본적으로 제공되는 테마 이외에도 Marketplace를 통해 여러가지 테마를 적용할 수 있는데..
Visual Studio를 처음 설치하면 Default로 적용되어있는 광원이라는 배경 테마(Theme)가 적용되어 있습니다. 그렇다고 해서 꼭 이 테마를 사용해야하는것은 아니고 사용하시는분의 성향에 따라 테마를 바꿔서 적용하실 수 있습니다. Visual Studio도 사용하시는분을 보면 광원 혹은 어둡게(Dark) 테마를 주로 사용하시는 것 같습니다. 오늘은 Visual Studio 테마 변경방법에 대해 알아보도록 하겠습니다. 비주얼 스튜디오(Visual Studio) 테마(Theme) 변경방법 1. 비주얼 스튜디오 상단의 메뉴의 도구 -> 옵션으로 들어갑니다. 2. 환경 -> 일반에서 색 테마를 바꿔주시면 됩니다. 광원은 기본테마 어둡게는 흔히 말하는 다크테마이며 파랑테마를 선택하시면 2010년도쯤 주..
PC마다 조금씩 차이는 있을 수 있으나 아마 대부분 비주얼 스튜디오(Visual Studio)를 설치하면 기본으로 설정되어 있는 폰트는 돋움체 폰트일 것입니다. 하지만 코딩을 하다보면 필연적으로 여러 가지 특수 기호를 자주 사용하게 되는데 특히 (i l), (. ,), (; :)이 구분이 잘 되는 폰트를 사용하시는 것이 정신적으로 이롭습니다. 여기서 많은 개발자들이 추천하는 폰트는 Consolas입니다. Consolas폰트는 윈도우에서 기본적으로 제공하여 따로 다운을 받을 필요도 없고 간단한 설정만으로도 바꾸실 수 있습니다. 비주얼 스튜디오(Visual Studio) 폰트 글꼴, 크기 변경하기 1. 비주얼 스튜디오 상단의 도구 -> 옵션으로 들어갑니다. 2. 글꼴 및 색에서 원하는 글꼴과 크기, 글꼴 색..
코딩을 하는 과정에서 필연적으로 여러 가지 오류가 생기기 마련입니다. 이러한 오류들을 해결하는 과정을 디버깅이라고 합니다. Visual Studio를 포함한 모든 IDE들은 이러한 디버깅 기능을 지원하고 있으며 만약 코드에 오류가 발생한다면 이러한 디버깅 도구 또는 디버거를 사용하여 훨씬 편하게 코드가 잘못된 이유들을 빠르게 파악할 수 있습니다. 그중에서도 특히 Visual Studio의 경우 매우 강력한 디버깅 기능을 제공하고 있어 많은 개발자들이 선호하는 IDE입니다. 오늘은 강력한 Visual Studio의 디버깅 기능에 대해 포스팅해보려 합니다 중단점(Break Point) 설정하기 디버깅을 하기 위해서는 가장 먼저 해야할 일이 중단점을 설정하는 일입니다. 가장 쉽게 중단점을 설정하는 방법은 대상..