본문 바로가기

프로그래밍16

프로그래머 기술 면접 · new & malloc 차이 new 는 초기화가 자동으로 이루어진지고 초기화가 가능하다 malloc 은 초기화를 해주어야하며 그렇지 않으면 쓰레기 값이 들어가고 메모리 할당시에 사이즈(타입)를 지정해주어야한다 · Call by value & Call by reference 값 호출 - 얉은 복사 직접적인 값수정이 안됨 주소 호출 - 깊은 복사 직접적인 값 수정가능 · const 변수형 const 변수 const 변수형 - 해당 대상체의 주소변경을 막음 const 변수 - 해당 대상체의 값의 변경을 막는것 · 가상함수 테이블 virtual 함수가 정의된 클래스가 있으면 컴파일시에 가상함수 테이블을 생성하게되고 가상함수의 주소가 저장되고 가상함수 호출시 가상함수 테이블을 참조하여 호출된다 · Class .. 2021. 3. 25.
압축 구조 2019. 2. 21.
error LNK2019 컴파일러가 알려주는 Error 중에서 가장 싫어하는 것이 무엇이냐고 묻는다면, 나는 서슴없이 LNK2019라고 대답할 것이다. 이것만큼 짜증나는 에러가 별로 없다. 보통 이 에러는 셋팅을 잘못해서 생기는 경우가 대부분이므로 발생할때마다 그 상황에 맞추어서 무엇이 문제인지를 찾아내야 한다. 프로그래밍 언어 문법 틀리는 것을 해결하는 것처럼 "일반적인 해결책"이 존재하지 않는다는 점이 이 에러가 싫은 가장 큰 이유이다. (정말 싫어 ㅠ_ㅜ) 결국 case by case 로 문제를 해결해야 하기 때문에 이제 생각날때마다 또는 LNK2019 에러를 맞을 때마다 이 포스트에 추가하겠다. 아래는 LNK2019 에러가 떳을 때 점검해보는 것이 좋은 셋팅들이다. 1. LIB 파일을 추가하지 않았는지 확인해보라! 필요한.. 2014. 11. 27.
디버깅 단축키 명령이름바로가기 키설명디버그.코드변경내용 적용Alt + F10편집하며 계속하기를 시작하여 디버그 중인 코드에 변경 내용을 적용합니다.디버그.자동Ctrl + Alt + V, A현재 프로시저에서 현재 실행되는 줄의 범위에 현재 포함된 변수의 값을 볼 수 있는 자동 창을 표시합니다.디버그.모두 중단Ctrl + Alt + Break디버깅 세션의 모든 프로세스 실행을 일시 중지 합니다. 실행 모드에서만 사용할 수 있습니다.디버그.함수에서 중단Ctrl + B새 중단점 대화상자가 표시됩니다.디버그.중단점Ctrl + Alt + B중단점을 추가하고 수정할 수 있는 중단점 대화상자를 표시합니다.디버그.호출 스택Ctrl + Alt + C활성화된 모든 프로시저 목록이나 현재 실행 쓰레드에 대한 스택 프레임을 표시하는 호출 스.. 2014. 11. 7.
mysql connector C++ visualstudio cmake 최신버전에서 connector-C++ 을 다운받아서 사용을하면getString() 부분에서 에러가나는데 release모드에서는 정상작동하나 debug모드에선 에러가 난다. 아마 디비에 있는 문자타입때문일것이다.varchar를 사용하지않고 char를 사용하면 에러가 나지는 않으나 varchar 와 char의 차이점을 알고있다면 상황에 따라서는 char를 사용해도 괜찮으리라고 본다. 하지만 후에 어떤문제가 생길지는 나도모른다.가령 내가 처음 테이블을 생성할때10이라고 생성을 했어도 내가 입력한 글자수에 맞춰서 크기가 맞춰진다asdf 라고 하면 10이 아니라 4의 크기로 저장이된다.하지만 char의 경우는 내가 10이라고 크기를 지정하면몇글자를 입력하던 그 크기는 10이라고 되는걸로 알고잇다. 그리고 중요한게.. 2014. 11. 3.
cmake 사용법 Assumption 1. Linux 환경을 기준으로 설명하며, '$'는 Linux Shell Prompt 를 의미함 2. 각 module 별로 CMakeLists.txt 파일을 생성하지 않고, (top directory)/CMakeLists.txt 에 모두 기술함을 기본으로 함 2.1 원하면 (top directory)/CMakeLists.txt 파일에서 하위 directory 별로 CMakeLists.txt 파일로 분리하고 상위 directory의 CMakeLists.txt 에서 add_subdirectory 명령어를 통해 재귀적으로 호출할 수 있음 3. Top directory가 아닌 build directory에 build metadata를 생성하는 것을 기본(희망)으로 함 3.1 Top direc.. 2014. 10. 27.
가비지컬렉션 과정 가비지 컬렉션 과정 - Generational Garbage CollectionGC에 대해서 알아보기 전에 알아야 할 용어가 있다. 바로 'stop-the-world'이다. stop-the-world란, GC을 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것이다. stop-the-world가 발생하면 GC를 실행하는 쓰레드를 제외한 나머지 쓰레드는 모두 작업을 멈춘다. GC 작업을 완료한 이후에야 중단했던 작업을 다시 시작한다. 어떤 GC 알고리즘을 사용하더라도 stop-the-world는 발생한다. 대개의 경우 GC 튜닝이란 이 stop-the-world 시간을 줄이는 것이다.Java는 프로그램 코드에서 메모리를 명시적으로 지정하여 해제하지 않는다. 가끔 명시적으로 해제하려고 해당 객체를 null.. 2014. 5. 2.
VS2010 프로젝트속성 디렉토리 한방에추가하기 %appdata% 가서local\microsoft\msbuild 여기 가서v4.0 인가 있을거그 안에 props 파일 있는데32비트 64비트각각 설정해주면 됨 $(ExecutablePath) $(IncludePath);C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;C:\Program Files\boost\boost_1_53_0_x86; $(ReferencePath) $(LibraryPath);C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86;C:\Program Files\boost\boost_1_53_0_x86\lib; $(SourcePath) $(ExcludePath).. 2013. 6. 18.
SVN 사용방법및 관리 SVN 설정하기 1. 프로젝트 폴더에서 무시목록을 추가합니다. 2. 폴더에서 우클릭 → TortoiseSVN → Setting(1) → General에 Subversion 항목에 Global ignore pattern 에 위의 ignore 목록을 추가한다(2). 2. 새로운 파일(폴더)추가 방법1. SVN과 연동된 폴더안에 새로운 파일(폴더)를 생성하거나 이동시키면 그림과 같이 파일(폴더)에 ? 표시가 나온다. 나와있는 표시대로 ? - 현재 SVN에 없는 파일(폴더) V – SVN서버에 업로드 되어있는 파일(폴더) ! - 현재 SVN서버에 있는 파일(폴더)에서 수정이 되엇거나 변경되었음을 알리는 표시이다. 2. ? 표시가 있는 파일(폴더)를 클릭후에 우클릭을 하게되면 아래 그림과같은 창이 나오는데 Tor.. 2013. 6. 10.