CS/공통

    Debug - Release 차이

    보통 C++로 코드 작성 후 결과물을 실행 파일로 만들기 위해서는 빌드 작업을 해야만 한다. 이때 Visual Studio와 같은 IDE에서는 Debug 또는 Release 빌드 모드를 선택할 수 있다. 이는 사실 C/C++ 컴파일러의 최적화 옵션의 차이인데, Visual Studio에서는 편의를 위해 빌드 모드를 분리해놓은 것이다. 현업에 종사하거나 숙련된 개발자는 당연히 이 차이를 알고 있겠지만, 주로 C/C++ 개발을 처음 접하는 분들, 특히 학생들은 Visual Studio 기본값인 'Debug'로 빌드해서 배포를 하는 경우가 종종 있다. 잘못된 빌드 모드로 배포할 경우 성능 저하가 발생하거나 프로그램 실행 불가 등의 문제로 상당히 고생할 수 있으므로 각 빌드별 특징을 잘 알고있어야 한다. 차이점..

    SDK, API의 개념과 차이점

    API API란 Application Programming Interface의 약자로, 모듈화하여 만들어진, 어떤 기능을 제어/제공하는 인터페이스를 말한다. 우리가 사용하는 대부분의 애플리케이션은 API에 의존하고 있다. 예) - 차량 공유 앱에서 승차 거리와 시간을 계산하는 것 👉 API의 기능 - 차량 공유 앱에서 드라이버가 픽업 위치에 도착했음을 SMS로 알 수 있는 것 👉 API의 기능 SDK SDK란 Software Development Kit의 약자로, 소프트웨어 개발 도구 모음이라고도 한다. SDK는 API, IDE, 문서, 라이브러리, 코드 샘플 및 기타 유틸리티가 포함될 수 있다. SDK는 프로그램 및 응용 프로그램 개발의 복잡성을 줄이는 강력한 기능 집합이다. 예) iOS SDK를 다운..

    모듈 Module

    1. 일반적으로, 모듈이란? 보다 작고 이해할 수 있는 단위로 나뉘어진 것 본체(本體)에서 분리되어, - 작은 부분으로 유기적으로(기능별로) 구성되어 있다가, - 필요할 때 마다, 본체에 합류하여 그 기능을 수행할 수 있는 것 통상, 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체로 봄 - 例) 각기 다른 여러 모듈 단위로 조립하여 전체를 완성 (모듈 조립) - 例) 표준화된 부품 (조립식 부품) 2. 문제를 다룰 때 모듈화 하는 이유는? 모듈화는, 거대한 문제를 작은 조각의 문제로 나누어 다루기 쉽도록 하는 과정 - 여기서, 작게 나누어진 각 부분을 모듈이라고 함 각 모듈은 논리적 또는 기능적으로 분리되어 격리되고 독립적인 일을 수행 모듈화 과정의 잇점 - 기본적인 것을 엮어서 복잡한 형상..

    컴포넌트 Component

    1. 컴포넌트는 독립적인 소프트웨어 모듈이다. 컴포넌트를 한마디로 표현하자면 소프트웨어 시스템에서 독립적인 업무 또는 독립적인 기능을 수행하는 ‘모듈’로서 이후 시스템을 유지보수 하는데 있어 교체 가능한 부품이다. 소프트웨어 컴포넌트는 하드웨어의 그래픽카드와 같은 개념으로 독립적인 기능을 수행하는 소프트웨어 모듈이라고 설명할 수 있으며 소프트웨어 컴포넌트는 컴포넌트란 말로 대체되어 사용되고 있다. 2. 컴포넌트는 구현, 명세화, 패키지화, 그리고 배포 될 수 있어야 한다. 컴포넌트의 정의나 형태는 관점에 따라 다양하게 존재하지만, 재사용 부품으로서의 컴포넌트가 되기 위해서는 아래의 내용을 만족해야만 한다. 소스코드(source code)가 아닌 실행코드(execute code) 기반으로 재사용할 수 있도..

    모듈과 컴포넌트의 차이점

    모듈이란? 모듈이란 비슷하거나 연관성 있는 것들로 이루어진 메소드나 클래스의 집합이다. 자동차로 예를 들자면 엔진을 이루고 있는 구성품들의 집합을 엔진이라고 하고 엔진을 모듈이라고 할 수 있다. 여기서 구성품들은 클래스나 메소드들을 가르킨다. 결론은 재사용이 가능한 코드의 모음이라고 보면 된다. 모듈은 코드의 재사용 및 유지보수를 쉽게 해줘서 프로그램을 만들 때 모듈화하여 만들고 있다. 컴포넌트란? 기능의 최소 단위다. 프로그램을 만들때 재사용하기 위해서 모듈화하여 사용한다고 하였다. 재사용하기 위해선 독립적인 기능을 가져야하지만 독립적으로 개발하여도 모듈간의 호환이 되지 않는 경우가 있어 소프트웨어의 재사용이 어려워지게 된다. 그런 문제를 해결하기 위한 방법이 컴포넌트이고 컴포넌트는 소프트웨어의 재사용..

    객체[Object]와 인스턴스[Instance]

    객체와 인스턴스는 객체지향 프로그래밍에서는 거의 비슷한 개념으로 사용되지만 엄밀히 말하면 조금은 차이가 있는 개념이다. 객체지향 프로그래밍이 생성된 원인이 사람의 사고와 가장 비슷하게 프로그래밍을 하기 위해서라고 할 수 있다. 즉 우리 실생활의 모든 것들이 전부 객체로 이루어진 것이다. 넓은 의미에서의 객체라는 것은 보고 만질 수 있고, 이해할 수 있으며 생각이나 행동이 추구하는 바를 의미한다. 즉 객체라는 것은 우리가 인지 하고 있는 구체적인 사물이나 시스템이 될 수도 있고, 구체적이지만 물리적으로 경계가 모호한 강, 안개 등도 객체라 할 수 있는 것이다. 인스턴스란, 예로 우리는 하나의 청사진이 되는 클래스를 정의하면 이 클래스에서 각각 구별이 되는 인스턴스를 얼마든지 만들어 낼 수 있는 것이다. 사..

    깃(Git) 한글 깨짐 현상 해결

    이 파일을 메모장으로 열어보니 인코딩이 ANSI로 되어있는 것을 확인할 수 있었다 1. 기존 파일 인코딩 변경 변경하고자 하는 파일 선택 후, 파일 -> 다른 이름으로 저장 을 통해 그 파일의 인코딩을 저장할 수 있다. [참고] 2. editorconfig 파일을 이용해 새 파일 생성 시 utf-8로 생성하도록 설정 이미 만들어진 기존 파일은 위와 같이 직접 변경할 수 밖에 없었지만... 앞으로 파일 생성시에도 utf-8로 생성해주는 것이 좋을 것 같아 이를 위해서 editorconfig 파일을 이용한다. 방법은 간단하다! editorconfig란? 코딩 스타일을 일관되게 설정할 수 있게 해주는 설정파일이다. 이를 통해 indentation(들여쓰기) 스타일과 같은 다를 수 있는 설정들을 미리 지정해 둘..

    Visual Studio 한글 사용 시 오류 발생

    1. 오류가 발생하는 코드 Visual Studio 2017의 최신 업데이트를 받고 아래와 같이 소스에서 한글 코드를 사용하면 오류가 발생한다. 이 오류는 소스 파일의 인코딩 옵션 때문에 발생하는 것이라서 인코딩 옵션만 수정해주면 문제를 해결할 수 있다. 2. 한글 관련 오류를 수정하는 방법 소스 파일의 인코딩 옵션을 수정하려면 아래와 같이 '파일' 메뉴의 '다른 이름으로 ... 저장'을 선택하여 '다른 이름으로 파일 저장' 대화 상자를 실행시켜야 된다. '다른 이름으로 파일 저장' 대화 상자가 화면에 나타나면 '저장' 버튼 옆에 있는 화살표를 선택하여 '인코딩하여 저장'을 선택한다. '인코딩하여 저장'을 선택하면 아래와 같이 확인창이 나오는데 '예'를 눌러서 진행하면 된다. 그러면 아래와 같이 '고급 ..

    Overflow (오버플로우)

    오버플로우(overflow)의 의미 - 각 데이터타입은 자료형에 맞는 저장의 최대/최소 범위가 존재한다. int number; 라고 선언하자. number는 변수의 이름이며 그 앞에 있는 int는 변수의 타입이다. int형 자료형은 4바이트의 정수형 타입으로 음수를 고려하고 있기 때문에 number가 저장할 수 있는 최대값은 2의31승-1이고, 이 값은 곧 2147483647 이다. (약 21억) 따라서 number 변수에는 약 21억까지 저장이 가능하다. 그런데 만일 코드에서 number 변수에 저 최대 숫자 이상을 넣는다면 어떻게 될까? 이와 같이 저장할 수 있는 최대범위를 넘어설때 이를 "오버플로우(overflow)" 라고 부른다. 오버플로우(overflow)의 법칙 - number의 최대저장가능값..

    프로젝트의 총 코드 라인 수를 확인하는 방법 (SourceMonitor)

    우선 SourceMonitor을 다운로드 한다. 맨 하단 굴림으로 되어있는게 최신 버전이다. 다운로드가 다 끝났다면 File > New Project를 클릭한 후 프로젝트에 맞는 언어를 설정한다. 그 다음 프로젝트 파일 명칭이랑 경로를 설정한다. 여기서 All Subdirectories를 선택한다 즉 하위 폴더까지 다 추가한다는 뜻. 3개 다 체크한다 공백 문자, 중복된 헤더파일 등을 미포함 시킨다. New SourceMonitor project format을 선택한 후 Use this format when saving all projects를 체크한다. 한글이 있을 수도 있으니 UTF-8 파싱을 허용한다. 결과는 아래와 같다. Baseline 우클릭 또는 Views 탭 통해서 띄울 수가 있다.