본문 바로가기

전체 글286

[.NET] BenchmarkDotNet로 .NET 6 vs .NET 4.7.2 성능 비교 BenchmarkDotNet 를 이용해서 .NET 6와 .NET 4.7.2 성능을 비교하는 방법 1. csproj 파일에 아래 코드를 추가한다. net6.0;net472 AnyCPU 2. Benchmark할 method나 class에 아래 Attribute를 추가한다. 나는 .NET 4.7.2 vs .NET 6를 비교할 예정이라 2개를 추가했다. 3. Release 모드 바꾸고 Run without Debugging 을 클릭한다. 아무 시나리오 없이 그냥 튜토리얼에 주어지는 소스코드를 사용했다. https://github.com/HanJaeJoon/DotNetBenchmark-net472-net6 GitHub - HanJaeJoon/DotNetBenchmark-net472-net6 Contribute t.. 2023. 1. 15.
프로그래머스 키트 지난 주 오랜만에 프로토타이핑이 필요한 이슈들이 있어서 개발 업무에 집중했다. 그러다 보니 자연스럽게 관리 업무에 소홀했고 일부 관리 업무, 사이드 프로젝트, 컨퍼런스 발표 준비를 위해 회사에 왔다. 그런데 들어가려고 보니 내 택배가 기다리고 있었다. 지난 번에 이어 프로그래머스에서 또 키트를 보내주셨다. https://jjester.tistory.com/126 프로그래머스 웰컴키트 프로그래머스에서 진행한 프로그램을 통해 취업을 한 사람에게 웰컴 키트를 보내준다고 했다. 나도 1년 전 백엔드 데브매칭을 통해 지금 회사로 이직해서 신청했다. 그리고 오늘 도착한 웰컴키 jjester.tistory.com 이번에는 상자가 매우 크고 아름다웠다. 이번 선물 중에서는 머쓱이 스트레스 볼이 가장 마음에 든다. 안대.. 2023. 1. 8.
[OpenAI] ChatGPT 이용해보기 '그'의 숨결이 담겨있는 Open AI에서 DALL E에 이어서 ChatGPT가 공개되었다. 슬랙에 연동된 긱뉴스에서 연일 GPT 관련 글이 알림이 오기 때문에 핫하다는 것은 알고 있었다. 컨퍼런스 발표 준비를 하다가 나만의 고민(?)을 GPT에 토로해봤다. 아래 링크에서 직접 사용해볼 수 있다. https://chat.openai.com 2023. 1. 4.
[.NET Core] Custom Middleware의 Scoped lifetime 서비스 주입 Custom Middleware에서 Scoped lifetime의 서비스를 주입받는 경우에는 Constructor가 아니라 InvokeAsync 메서드에서 주입받아야 한다. public class MyCustomMiddleware { private readonly RequestDelegate _next; public MyCustomMiddleware(RequestDelegate next) { _next = next; } // IMessageWriter is injected into InvokeAsync public async Task InvokeAsync(HttpContext httpContext, IMessageWriter svc) { svc.Write(DateTime.Now.Ticks.ToString.. 2023. 1. 3.
2022년 독서 결산 2022년에 읽은 책 또는 읽고 있는 책을 리뷰하고 2023년에는 더 많이 읽도록 다짐한다.맨 위에서 3권은 읽고 있는 중이니 내년에는 7권 이상이 목표다.점수는 내 마음대로 정했고 5점 만점이다.1. 함께 자라기평점 4점. 애자일에 대한 이야기를 개발자 업무 중심으로 풀어내서 좋았다.팀원들과 함께 성장할 수 있는 조직 문화에 대해서 배울 수 있다.2. 최고 혁신기업은 어떻게 만들어지는가평점 3.5점. 우리 회사의 경쟁사 끝판왕 세일즈포스의 영웅담.그냥 베니오프가 들려주는 영웅담 같기만 하다.3. 개발 7년차, 매니저 1일차평점 5점. 작년에 2번, 올해 2번 승진하면서 매번 다시 꺼내 읽었던 책.이제 내 인생책이라고 해도 될 것 같다.4. 전설로 떠나는 월가의 영웅평점 4.5점. 지금 같이 힘든 시장에.. 2022. 12. 31.
[독후감] 전설로 떠나는 월가의 영웅 - 3. 포트폴리오 설계 1목표 수익률은 9~10%가 주식의 일반적인 장기 수익률이며 역사적인 시장 평균이다. ... 직접 종목을 선택한 보람이 있으려면 복리로 연 12~15% 수익을 올려야 한다. 2성장주: 피터 린치는 30~40% 이상 배분하지 않는다. 대형우량주: 10~20% 경기순환주: 10~20% 회생주: 나머지 3기계적으로 오르는 주식을 팔고 내리는 주식을 보유 기계적으로 내리는 주식을 팔고 오르는 주식을 보유 위 두 가지 모두 실패한다. 이들은 주가의 현재 움직임이 회사의 기본 가치를 가리킨다는 착각에 사로잡혀있기 때문이다. 현재의 주가는 회사의 전망을 전혀 알려주지 못하고, 종종 반대 방향으로 움직이기도 한다. 나는 오르는 주식을 길게 보유하려고 노력했는데 그것 조차 잘못된 방법이었다!사실 이.. 2022. 11. 24.
[.NET] Google Gmail SMTP 설정 방법 & 전송 기능 사이드 프로젝트에 이메일 전송 기능을 구현해야 하는 상황이다. SMTP 서버를 구축하기는 귀찮고 돈이 들어가서 하루에 2,000개 정도면 충분할 것 같아서 Gmail SMTP를 사용하기로 했다. 참고 링크 예전에 이용했을 때와 많이 달라져서 달라진 부분이 있는 것 같다. - Gmail IMAP access 설정은 사용으로 바꾸지 않아도 동작한다. Gmail > 설정 > 전달 및 POP/IAMP > IMAP 액세스 Gmail > Settings > Forwarding and POP/IAMP > IMAP access - "보안 수준이 낮은 앱 및 Google 계정 사용 설정"은 더 이상 지원하지 않는다(참고). 1. Gmail SMTP 설정 방법 a. Google 계정 페이지로 이동한다(https://mya.. 2022. 11. 7.
[git] .gitignore 파일이 적용되지 않을 때 git rm -rf --cached . git add . 어느 시점부터 repository에. gitignore가 제대로 동작하지 않고 있어서 rider의 .idea 폴더가 커밋되고 있었다. 위 명령어로 해결했다. https://stackoverflow.com/a/25436481/19392359 Gitignore not working My .gitignore file isn't working for some reason, and no amount of Googling has been able to fix it. Here is what I have: *.apk *.ap_ *.dex *.class **/bin/ **/gen/ .gradle/ build/ local.properties... stackoverf.. 2022. 11. 6.
[Rider] Rider에서 lauchSettings.json으로 run configuration 설정하기 Rider를 사용하다 보면 가끔 .NET 6.0 프로젝트의 configuration이 자동으로 설정되지 않는 경우가 있는 것 같다. Explorer 메뉴에서 lauchSettings.json 파일을 찾아서 아래 메뉴를 클릭하면 된다. 클릭 후에 다음과 같이 run configuration이 생성된 것을 확인할 수 있다. 2022. 11. 6.