본문 바로가기

전체 글1401

비주얼스튜디오 프로젝트 파일 설명(sln, suo, user, vcproj, ncb, sdf) 비주얼스튜디오 프로젝트 파일 설명(sln, suo, user, vcproj, ncb, sdf) 프로젝트 파일들이 하는 역할 솔루션과 프로젝트를 생성하면 자동으로 생기는 몇몇 파일들에 대한 설명을 기록합니다. sln : 텍스트 파일로 한 솔루션이 관리하는 여러 프로젝트에 대한 정보를 보유, 2008과 2010이 호환되지 않으므로 반드시 변환.suo : 바이너리 파일로 여러 작업 내용, 혹은 설정(탭 위치나 창 정보) 등이 저장.user : 사용자별 설정이 저장.vcproj : visual c++ 프로젝트 파일로 프로젝트가 어떤 파일을 가졌는지에 대한 정보를 보유.ipch : 컴파일 때 여러 파일이 저장.ncb : 비주얼 스튜디오 2008에서 intellisense를 위해 저장하는 데이터베이스 파일.sdf .. 2017. 10. 3.
[C++강좌 리팩토링] 메모리 최적화, Unions 이용 [C++강좌 리팩토링] 메모리 최적화, Unions 이용 Unions 또한 리팩토링과 메모리 낭비를 막기 위해 사용할 수 있다. 데이터 멤버 중 (최소한) 하나라도 활성화되면 같은 메모리 공간에 모든 데이터 멤버가 위치하기 때문이다. union은 데이터 멤버를 모두 저장할 수 있으며, 생성자와 소멸자를 포함할 수 있다. 하지만 가상 멤버 함수를 가질 순 없다.union은 다른 클래스의 기저 클래스로써 사용될 수 없으며 다른 클래스로부터 상속할 수도 없다.union은 비자명한 특수 멤버 함수들을 가지는 객체들을 저장할 수 없다. C++에서는 익명의(anonymous) unions을 지원한다. anonymous union은 이름이 없는 객체이다. 예를 들면, 명명된 union과는 다르게 익명의 union은 .. 2017. 10. 2.
[C++강좌] 메모리 최적화, 리펙토링 (Bit Fields 프로그래밍 성능 관리) [C++강좌] 메모리 최적화, 리펙토링 (Bit Fields 프로그래밍 성능 관리) 메모리 사용 최적화(Optimizing Memory Usage) C++ 강좌, 메모리 최적화 장점 - 더 빠른 실행속도 - 시스템 자원들의 효율적 사용 - 메모리 최소 사용 코드 최적화 위의 모든 것을 향상하려 노력한다. 그리고 C++에서 선언 재할당 기법은 불필요한 객체 생성과 해제를 제거하여 프로그램 크기를 줄이고 실행시간 속도를 향상한다. 그러나 다른 최적화 기법들은 하나의 방향(더 빠른 코드 또는 더 작은 메모리 점유)으로 심하게 치우친다. 때론, 최적화 목표들은 상호 배타적이기도 하다. 즉, 메모리 점유를 작게 만드는 것은 더 느린 코드를 초래하며 반면에 더 빠른 코드는 더 큰 메모리 점유로 이어진다. 이 포스팅.. 2017. 9. 30.
자바 단일 스레드 사용 이유와 GUI 프로그래밍, 멀티스레드는? 자바 GUI 프로그래밍, GUI는 왜 단일스레드일까? 예전에는 자바 GUI 프로그래밍 애플리케이션이 단일 스레드로 동작했으며, 자바 GUI 이벤트는 애플리케이션의 메인 이벤트 반복문main event loop에서 처리했었다. 하지만 최근에 등장한 GUI 프레임웍은 약간 다른 구조로 만들어져 있는데, 이를테면 『이벤트 처리 스레드 EDT』, event dispatch thread에서 자바 GUI 이벤트를 전담해서 처리하게 돼 있다. 자바에서만 GUI 프레임웍을 단일 스레드로 구성한 것은 아니다. Qt, 넥스트스텝NextStep, Mac OS의 코코아Cocoa, X윈도우 등을 포함한 대부분의 자바 GUI 프레임웍이 단일 스레드로 동작하게 돼 있다. 그렇다고 해서 아무도 단일 스레드를 벗어나려고 시도하지 않았.. 2017. 9. 29.