본문 바로가기

전체 글294

VC++ Release모드로 디버깅하기 Visual Studio에서 VC++로 실행하면, Release와 Debug가 있다. 둘의 차이는? 1. PDB파일의 생성여부 2. 최적화 여부 3. _DEBUG 전처리기 정의여부 실행중인 프로세스에 연결하면.. 디버그 모드로 연결은 된다. 근데 중단점 설정이나 소스코드 위치는? 많이 다르다. 중단점 설정에 필요한거 : PDB파일 프로젝트 -> '속성' 에 들어가보자. 구성속성 중, '링커' -> '디버깅' 선택해보면.. 위와 같이 디버그 정보 생성이 되어있어야 PDB파일이 생성된다. (VS2022에서는 Release도 생성하게 해주는 것이 default로 된듯? VS2018인가까지는 생성안함이 Default였는데..) 여튼.. 저 옵션이 되어있으면 PDB파일이 생성되고, 해당 프로세스에 붙여서 디버깅이.. 2022. 7. 25.
JSP디버깅하기. JSP의 함수를 디버깅하려고한다. 근데 어떻게? 가능할까? 하고 구글검색하니까 나오네..;; (찾은 내용이 크롬기준인데 다행히 난 크롬을 쓴다.) jsp코드에 원하는 중단점에 debugger; 위 한줄 추가한다. 그리고 크롬 개발자모드 (F12)를 눌러서 진행한다. 그러면 중단점에 걸리면 다음과 같이 된다. 위 빨간 네모 영역을 보면.. VisualStudio등.. IDE와 매우 유사한 기능들을 하는게 있다. VS C#기준 중단점 이후 그냥 진행이 F5이지만, 이건 F8 NextStep은 F10, Step into는 F11등.. 매우 유사한 키로 동작한다. 아.. jsp의 function내부에서 확인된것. 2022. 7. 22.
MPICH vs OpenMP 요즘 블로그 유입통계를 보니 LAPACK을 찾아 유입된경우가 있더라.. 졸업논문 쓰려고 MPI 클러스터 구축하던 때에 기록하기 위해 작성했던 글.. 15년전에 CUDA로 졸업논문을 쓸지, Hybrid MPI (OpenMP + MPICH)로 졸업논문을 쓸지 고민하다 Hybrid MPI로 선택하고 클러스터 구축하느라 고생했던(삽질했던)기억이 나면서 블로그 보다보니 어? OpenMP와 MPI에 대해 정리해둔게 없었네? 그냥 까먹지 말자고 대략적으로 내용 정리. 물론.. 내 졸업논문쓰던때 기준(2008년)이라 많이 바뀌었을수도 있다. 구분 MPI OpenMP 특징 - 클러스터에 속한 프로세서들을 사용하여 병렬화를 구현함. CPU수가 모자라면 클러스터에 노드 추가하여 확장하면 된다.(확장성이 좋다. 그리고 싸다... 2022. 7. 22.
C#에서 RestAPI호출하기 얼마전에 C#에서 RestAPI서버에 무언가를 요청하고 받아올 일이 있었다. 그때 기억을 되새기며.. RestAPI를 호출하려면 서버에 요청하고 받아와야겠지? 일일이 포트 뚫고.. 처리해야할.. 필요가 없다. .net을 잘 활용해야지. HttpClient를 이용하여 웹 요청을 주고받을 수 있다. 예전에는 HttpWebRequest를 사용했었는데, 이것은 deprecated. 그리고 그 대체제로 HttpClient가 나왔으니.. 이제 그걸로 사용하자. 사용법은 간단하다. using Newtonsoft.Json; //Json으로 파라미터 보낼거면. 요거쓰자. using System.Net; public async Task PostAPICall(string url, object param){ HttpClien.. 2022. 7. 22.
@Valid와 @ControllerAdvice 애노테이션 @Valid애노테이션을 사용하여 전달되는 값의 validation을 수행할 수 있다. 만약 메소드에서 전달받은 이후에 무언가 처리를 하고싶다면 BindingResult를 쓰면 되지만 그냥 Exception이 발생시키도록 했다면.. 어디선가 Exception을 잡아서 처리해줘야 한다. 아.. 참고로 @Valid애노테이션은 아래 링크 참조 Java springboo. Validation 메소드 진입 시점에 BindingResult이 없이 @Valid 애노테이션을 붙여서 Validation을 수행하고 만약 invalid하다면.. Exception을 발생시켜준다. (위 링크에도 마지막에 기술해 두었지만 @Valid애노테이션이 붙은 파라미터 바로 다음 파라미터에 BindingResult를 붙여줘야지 안그러면 Ex.. 2022. 7. 21.
C++ 메모리 누수 탐지. 원글 (마소독). 오.. 많은 기법이 추가되었다. C++에 손놓은지 벌써 근 10년.. (그동안 C#에 가있었어요) 그사이에 많은 기법이 추가되었다. 우선 공통적인건.. 메모리 누수를 찾기 위해 정보를 달라고 선언해야한다. 뭐.. '추적을 할테니 준비해달라' 이정도 선언? #define _CRTDBG_MAP_ALLOC #include #include 그리고 디버그 정보를 추적할 준비해달라고 했으니 이제 정보를 캐야지. 프로그램 시작점 (전체 프로그램의 시작점. ) _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); 위 함수를 호출하여 디버그 플래그를 찍는다. 그리고 프로그램의 종료지점 (클래스 소멸자나 함수 끝이 아니다. 프로그램 종료다.).. 2022. 7. 21.
728x90