본문 바로가기

Programming267

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.
C# 마샬링 - 구조체 C#에서 C++의 DLL을 호출할 경우 데이터를 주고받아야 한다. 그렇게 하기 위해서 여러가지 방법이 있지만, 우선 DLL을 만든 후, DllImport를 사용하여 전달하게 구성되었기에. 그에 맞는 방법으로.. C#에서 -메소드 선언 [DllImport("$DLL파일명", CallingConvention=CallingConvention.Cdecl, Charset=CharSet.Ansi)] public static extern $반환타입 $메소드명($params) 위와 같이 선언하면 된다. 콜링컨벤션은 굳이 안해도 되는듯. charset은 나는 MBCS를 사용하느라 그냥 명시적으로 선언해 주었다. C++에서 #define DLLAPI extern "C" __declspec(dllexport) DLLAPI .. 2022. 7. 21.
Java springboot. Validation 오랫만에 자바 스프링부트에서 하나 배워서 기억하고자 포스팅.. ㅋ 클라이언트에서 숫자만 입력해야하는 필드에 특정한 문자를 넣을 수 있다. 물론 js에서 검사는 해주지만.. 근데 요게 피할 수 있네? 어떻게하면 될까.. 저장할때마다 각 페이지별로 한땀한땀? 싫다.. 그럼 유지보수할때 고통스럽다. 난 게으른 개발자가 되고싶지 성실하고 오래 일하는 개발자이고싶지 않다. 근데 Validation애노테이션이 있네? 나처럼 숫자가 입력이 되어야하는 사람들, 또는 이메일 형식, 과거 또는 미래, 특정 형식이 필요한 사람들은 Validation애노테이션을 쓰면 매우 유용하다. Validation 애노테이션은.. DTO에 붙여준다. 종류는 엄청 많아서 몇가지만 추렸다. 자세한 내용은 여기 참고 애노테이션 이름 비고 @N.. 2022. 7. 20.
IntelliJ 프로파일링 - 내용 분석하기 IntelliJ를 이용한 프로파일링에 대해 기술한다. * IntelliJ 프로파일링 IntelliJ에서 성능프로파일링 - Profiler실행 프로파일러 실행방법은 위에 있고.. 프로파일러의 내용을 확인하기 위해서는 하단 탭의 Profiler를 선택하거나 View -> Tool Windows -> Profiler를 선택한다. 아래 Profiler를 확인해보면 다음과 같이 창이 뜬다. 그러면 현재 실행중인 프로세스의 CPU와 메모리 상태를 확인할 수 있다. 좌측의 눈 아이콘을 선택하면 프로그램 실행부터~현재까지의 데이터를 모두 표시하는 Show All Data나, 최근 60초만, 또는 최근 5분간만의 데이터만 볼 수 있는 옵션이 있다. 그리고 해당 아이콘 아래로 두번째에 카메라 아이콘이 있는데, 해당 아이콘.. 2022. 7. 20.
728x90