티스토리

CHashtag
검색하기

블로그 홈

CHashtag

chashtag.tistory.com/m

.net을 사랑하는 개발자입니다.

구독자
33
방명록 방문하기
공지 블로그 소개 모두보기

주요 글 목록

  • 1. 인프라 구축 저는 지금 개발을 진행하기 전, 어떤 구성으로 서비스를 개발, 배포, 운영할 지에 대한 고민을 하고 있습니다. 개발 Stack우선 BE는 제 본업인 asp.net core 기반으로 작업. 이부분은 달리 선택할 게 없습니다. DB는 mssql free plan(express)을 사용할 예정입니다. 남은건 FE인데,,,제가 미적 감각이 거의 없다시피 하고, 그러다보니 프론트 개발 자체를 정말 싫어해 걱정이 많은데요,, 우선은 bootstrap과 약간의 Vue를 섞어서 진행해볼까 합니다. 배포 환경당연히 dockerizing을 할 예정인데요,배포되는 클라우드 서비스를 어떤걸 사용할지 많은 고민이 들었습니다. 1인 개발자들에게 AWS가 꽤 좋은 선택지라는 말을 들어 그쪽을 알아보고 있었는데요,상시 떠있어야 할거.. 공감수 0 댓글수 0 2025. 4. 14.
  • 0. 들어가기 앞서 안녕하세요. 몇번 언급했었지만, 저는 프리다이빙 강사를 부업으로 삼고 있고, 다이빙 투어를 1년에 3번 이상 다니는 다이버입니다. 그러던 와중, 다이빙 여행 계획을 짜는 과정이 굉장히 비효율적이라는 사실을 인식하였고, 그것을 개선하기 위한,Diver들을 위한 플랫폼, "Dive Nomad" 를 개발하기로 하였습니다. 모든 개발은 우선 저 혼자 진행할 예정이라,저 예산, 저 개발기간 속에서 다양한 의사결정을 하며 서비스를 만들어나가려 하고, 그 과정을 이곳에 남겨볼까 합니다. 자 그럼 시작합니다. 공감수 3 댓글수 0 2025. 4. 6.
  • [C#] asp.net core Memory Leak 분석 2 - CancellationTokenSource Memory Leak 시리즈- Memory Leak 분석 1 - 들어가기 앞서,,  - Memory Leak 분석 2 - CancellationTokenSource 이 글을 진행하기 앞서, CancellationToken 에 대한 설명을 간단히 해야 할 것 같은데,, (귀찮으니 나중에 별도 게시글로 작성을 하고, 링크를 추가하도록 하겠습니다)Live Service를 대상으로 약 4시간 간격으로 dotnet-dump 를 진행하여 두 메모리를 Compare하였다. Byte[], string 등 많은 객체들이 증가하고 있었지만, 그 중 CancellationTokenSource관련 객체들이 수만개씩 늘어나 있는것을 확인하였다. 빠르게 CancellationTokenSource를 사용하는 코드를 찾아보니 한 코.. 공감수 0 댓글수 0 2025. 3. 3.
  • Memory Leak 분석 1 - 들어가기 앞서,, Memory Leak 시리즈- Memory Leak 분석 1 - 들어가기 앞서,,- Memory Leak 분석 2 - CancellationTokenSource 모든것이 순조로웠다. 사용자는 꾸준히 늘고 있었고,늘어난 트래픽과 데이터에 대응하기 위해 쿼리 개선, 인프라 개선 등의 작업이 이루어지고 있었다.불필요한 에러로그를 정리하고,데이터 모니터링 시스템을 구축하며 늘어나는 유저를 받아들일 준비가 순조롭게 진행중이었다. 그러던 어느날, Devops engineer로부터 연락이 왔다. 서비스 메모리가 꾸준히 오르고 있어요 빠르게 Datadog을 열어 수치를 확인해보니 정말 그랬다.(혹시모를 정보 누출이 우려돼 해당 게시글에서는 자료화면은 준비하지 않을 예정) 심지어, 메모리는 1년 전부터 꾸준히 늘고 있었.. 공감수 0 댓글수 0 2025. 3. 3.
  • asp.net DI의 life cycle (Singleton, Scope, Transient) 안녕하세요. asp.net (혹은 core) 에는 3가지 Life cycle이 존재합니다. Life cycle은 무엇이며, 어떤 경우에 적절한지 한번 알아봅시다.  Web Server에서의 Life Cycle기본적으로 Server는, Request를 받고, Response를 내보내 줍니다.수많은 Request들을 처리하게 되는데, 이 때 DI는 필수적이죠.매번 새로운 객체를 생성하는 것이 불필요한 경우도 있고, 내부 변수를 다른 Request와는 절대 공유해서는 안되는 경우도 있을 수 있습니다. 또는, 하나의 Request내에서만 공유되도록 하고싶을 수도 있죠. AddSingleton()말 그대로 Inject될때 최초 만들어둔 singleton 객체로 생성됩니다.장점이자 단점은, 매번 동일한 객체를 반환.. 공감수 0 댓글수 0 2024. 5. 13.
  • [C#] !! 연산자 (parameter null check) C#에서 "!!"는 parameter null check 기능으로 사용되는 연산자입니다. 이 연산자는 parameter 값이 null인지 아닌지를 판단하는 기능을 수행합니다. "!!" 연산자는 다음과 같이 사용됩니다. string myString = null; bool isNotNull = !!myString; 위의 코드에서는 myString이 null이므로 isNotNull 변수에 false 값이 할당됩니다. 만약 myString에 문자열이 할당되어 있다면 isNotNull 변수에 true 값이 할당됩니다. C#에서는 null check를 위해 if문을 사용하는 것이 일반적입니다. 하지만 "!!" 연산자를 사용하면 코드를 간결하게 작성할 수 있으며 가독성도 높일 수 있습니다. if(myString !=.. 공감수 0 댓글수 0 2023. 2. 20.
  • [C#/WPF] Listview SelectedItems command Binding (MVVM패턴) WPF의 Listview는 많은 데이터를 표시할 수 있도록 도와주는 UI 요소 중 하나입니다. 이전에는 SelectedItems 속성을 바인딩하는 것이 불가능했지만, 최신 버전의 WPF에서는 Command로 처리할 수 있도록 업데이트되었습니다. 이번에는 Prism 라이브러리를 이용하여 Mvvm 패턴을 적용한 예제를 살펴보겠습니다. Prism은 MVVM 패턴을 구현하는 데 도움이 되는 많은 기능을 제공합니다. 우선, Prism 라이브러리를 사용하려면 NuGet 패키지 관리자에서 Prism.Core 패키지를 설치해야 합니다. 설치 후, ListView와 Command를 바인딩하는 방법을 알아보겠습니다. ListView의 Behaviors 클래스 가져오기 xmlns:i="http://schemas.micros.. 공감수 0 댓글수 0 2023. 2. 20.
  • [C#/WPF] Converter사용하여 bool 반대값 binding하기 WPF에서 Converter를 사용하여 bool의 반대값을 binding하는 방법은 매우 간단합니다. Converter는 데이터를 변환하는데 사용되며, 이를 사용하면 XAML 코드에서 데이터 변환을 수행할 수 있습니다. Converter를 사용하여 bool의 반대값을 binding하는 예제를 보여드리겠습니다. 먼저, Converter 클래스를 작성합니다. 이 클래스는 IValueConverter 인터페이스를 구현해야 하며, Convert와 ConvertBack 메서드를 구현해야 합니다. 다음과 같이 작성할 수 있습니다. using System; using System.Globalization; using System.Windows.Data; namespace MyConverter { public clas.. 공감수 0 댓글수 0 2023. 2. 20.
  • [C#] JWT 암호화, 복호화 예제 안녕하세요. JWT란? JWT는 인증과 정보 교환을 위한 안전한 방법을 제공하는 토큰 기반의 개방형 표준입니다. JWT는 세 부분으로 구성되어 있습니다. 헤더(header), 내용(payload), 서명(signature)으로 이루어져 있으며 각각은 Base64Url로 인코딩되어 하나의 문자열로 만들어져 전송됩니다. Header : JWT의 타입과 사용하는 해시 알고리즘 등의 정보를 포함합니다. Payload : 토큰에 포함할 클레임(Claim) 정보를 담습니다. 클레임이란 사용자 정보, 권한 정보 등을 의미합니다. Signature : 헤더와 페이로드, 비밀키를 조합하여 생성된 서명값으로, 토큰의 변조 여부를 검증합니다. JWT 암호화하기 C#에서 JWT를 암호화하는 방법은 다음과 같습니다. using.. 공감수 0 댓글수 0 2023. 2. 20.
  • [C#] bigint란 무엇이며, bigint는 무한한 값을 저장할 수 있을까? C#에서의 BigIntegers는 매우 큰 정수를 표현하기 위한 자료형입니다. 일반적인 정수형이 다룰 수 있는 범위를 넘어서는 수치 데이터를 다루기 위해서 사용됩니다. 이번 글에서는 C#에서 BigIntegers에 대해 설명하며, 이 자료형이 실제로 무한한 값을 저장할 수 있는지에 대해 살펴보겠습니다. 또한 BigIntegers의 내부 구현 방식에 대해서도 알아보겠습니다. BigIntegers란 무엇인가요? C#의 BigIntegers는 매우 큰 정수를 표현하기 위한 자료형입니다. 이 자료형은 .NET Framework 4.0 이상에서 사용할 수 있으며, 다른 정수형 자료형과 마찬가지로 System.Numerics 네임스페이스에서 제공됩니다. BigIntegers는 다음과 같은 방법으로 생성할 수 있습니.. 공감수 0 댓글수 1 2023. 2. 20.
  • asp.net core에서 swagger 직접 세팅하기 안녕하세요. Swagger는 RESTful API를 문서화하고 테스트하기 위한 프레임워크입니다. Swagger를 사용하면 API 사용자들이 API의 구성 요소, 작동 방식 및 입력/출력 매개변수 등을 이해하기 쉬워지므로 개발자들 사이에서 매우 인기가 있습니다. 자 그럼, swagger를 사용하는 방법에 대해 알아보도록 하겠습니다. (visual studio에서 asp.net core 프로젝트 생성시에 swagger사용하기를 클릭하면 자동으로 생성되나, 이 글에서는 직접 swagger를 사용하는 방법에 대해 다룹니다.) Swagger 패키지 설치하기 Swagger를 사용하려면 먼저 NuGet 패키지 매니저를 사용하여 Swashbuckle.AspNetCore 패키지를 설치해야 합니다. 이 패키지는 Swagg.. 공감수 0 댓글수 0 2023. 2. 20.
  • [C#] 숫자 천단위 콤마찍기 (금액 표기하기) 안녕하세요. 오늘은 내용이 짧으니 바로 본론으로 들어가 보겠습니다. 다양한 방법이 존재하는데요, 그 중 상황에 맞는걸 선택하시면 좋을 것 같습니다. using System.Globalization; int number = 100000000; Console.WriteLine(string.Format("{0:n0}", number)); // 100,000,000 Console.WriteLine(number.ToString("N0", new CultureInfo("ko-KR"))); // 100,000,000 Console.WriteLine(number.ToString("#,#", new CultureInfo("ko-KR"))); // 100,000,000 Console.WriteLine(string.Form.. 공감수 1 댓글수 0 2023. 1. 24.
  • [C#] Extension Method 요청인자가 null일 때 NullReferenceException이 발생하지 않는 이유 아래 코드를 보다 불현듯 이런 생각이 스쳤다. public static class Extensions { public static string TestExtension(this string value) { return value + "Hi"; } } public class Program { public void Main(string[] args) { string a = null; var b = a.TestExtension(); } } 보통 null에 대한 method를 호출할 때 NullReferenceException(이하 NRE)이 발생하지 않나? 라는 생각이. 그러나 Extension Method에서는 NRE가 발생하지 않는다! 그 이유는, Extension Method가 il코드로 변환될 때 ca.. 공감수 0 댓글수 0 2023. 1. 17.
  • [DB] SQL Server에서 ALTER TABLE ADD Column 부하 https://www.sqlshack.com/sql-server-alter-table-add-column-overview/ SQL Server ALTER TABLE ADD Column overview This article explores SQL Server ALTER TABLE ADD Column statements to add one or multiple columns to a table. We will also understand the impact of adding a column with a default constraint along the way. www.sqlshack.com 요약: SQL Server에서 ALTER TABLE ADD Column실행 시 default value를 지정할 경.. 공감수 0 댓글수 0 2023. 1. 4.
  • [C#] SendKeys.Send() ArgumentException 문자열이 잘못되었습니다. 해결방법 안녕하세요. 오늘은 SendKeys 클래스의 Send, SendWait을 사용할 때 빈번하게 발생하는 ArgumentException에 대해 알아보도록 하겠습니다. 발생 원인 원인을 알기 위해선 Send()함수의 사용방법에 대해 짚고넘어가야 합니다. KeyBoard Simulation을 하기 위해서는 일반적인 Key(문자열, 숫자, 특수문자) 외에도 필요한 값들이 존재합니다. ESC, BREAK, BACKSPACE, Ctrl등이 해당되죠. 그렇다면 ESC를 입력하기 위해선 어떻게 해야할까요? 해당 방법은 MS에서 미리 정의해 두었습니다. 이런식으로 특수 케이스를 정의하여 해당 문자열을 넣으면 해당 Key가 눌리도록 구현이 되어있습니다. BACKSPACE {BACKSPACE}, {BS}, or {BKSP}.. 공감수 2 댓글수 0 2022. 11. 30.
  • Docker + ASP.NET core 6.0 + EF Core + Mysql 안녕하세요. 제목이 다소 혼란스러운데요, 마치,, 마라로제떡볶이마냥 .net에 관심이 많은 사람을 쉽게 지나치기 어려운 키워드들만 모아놨으니 말이죠 ㅋㅋ 아무튼 오늘은 Docker + ASP.NET core 6.0 + EF Core + Mysql을 이용해서 간단한 API 서버를 만들어보도록 하겠습니다. (이 포스팅은 도커 및 asp.net 초심자를 위한 글임을 알려드립니다.) 이 글을 통해서 얻을 수 있는 내용은 아래와 같습니다. EntityFramework Core Code-First Migration Repository Pattern Repository Pattern을 사용하는 이유 Docker ASP.NET Core 6 Route 규칙 Swagger 연동 Request & Response 시작하기 .. 공감수 1 댓글수 0 2022. 9. 29.
  • [Github] git clone with personal access token 해결방법 어느날 git clone을 받으려하니 아래와 같은 에러와 함께 clone에 실패했다. remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. 대략 읽어보니,, 정책이 바꼈으니 아래 링크를 보고 personal access token을 이용하라는데,, 회사에서는 bitbucket을 쓰고, 개인 프로젝트도 대부분 public으로 .. 공감수 7 댓글수 0 2022. 9. 27.
  • 신입사원이 입사 전 읽으면 좋은 글 (feat. 개발자) 부제: 개발자는 개발만 잘해서는 안된다. 당당히 취업의 문을 활짝 연 당신! 🎉🎉 우선 축하한다는 말을 먼저 전합니다. 그간 고생 많으셨습니다. 그러나 앞으로의 길은 더더욱 험난할 것이므로, 각오 단단히 하고 착실히 준비하는 것이 좋겠습니다. 저는 3년차 개발자로, 당신의 사수쯤으로 생각해주시면 좋겠습니다. 제가 3년간 일해보고, 또 여러 사수, 부사수님들과 일해 보면서, 사소하지만 중요한 부분들을 짚어볼까 합니다. 필요한 내용은 별도 게시글로 작성하거나, 잘 작성된 게시글 링크를 첨부합니다. (링크된 게시글이 삭제되었을 경우 알려주세요.) 비즈니스 일반상식 (feat. 눈치) 일을 잘하는 사람이란 신입사원이 일 잘한다는 소리를 듣기위해서는 어떤 역량이 필요할까요? 시키지 않은일을 척척 해내야 할까요? .. 공감수 11 댓글수 3 2022. 9. 16.
  • [C#/WPF] WebView2 사용방법 (WebBrowser 대체, JS통신) 2022년 6월 15일, Internet Explorer가 지원 종료되었습니다. 그에 따른 걱정으로 IE기반 Embedded인 WebBrowser도 지원 중단되는 것이 아닌가 걱정이 되실 것입니다. 하지만 그렇지는 않습니다. 자세한 내용은 아래 게시물을 참고해주세요. https://chashtag.tistory.com/147 [C#] IE기반 WebBrowser는 지원 중단되나? 결론은 아닙니다. 2022년 6월 15일, Internet Explorer가 지원 종료되었습니다. 그에따른 걱정으로 IE기반 Embedded인 WebBrowser도 지원중단되는것이 아닌가 걱정이 되실텐데요, 다행히 그렇지는 않습니다. chashtag.tistory.com 그럼에도 WebBrowser는 IE기반의 Legacy We.. 공감수 10 댓글수 1 2022. 8. 31.
  • [C#] IE기반 WebBrowser는 지원 중단되나? 결론은 아닙니다. 2022년 6월 15일, Internet Explorer가 지원 종료되었습니다. 그에따른 걱정으로 IE기반 Embedded인 WebBrowser도 지원중단되는것이 아닌가 걱정이 되실텐데요, 다행히 그렇지는 않습니다. 우선 일반적으로 WPF와 WinForms에서 사용하는 "WebBrowser"는 IE기반 Embedded 브라우저이긴 하지만, IE를 실질적으로 참조하지는 않습니다. (IE를 삭제해도 아무 지장이 없음.) 추가로, IE는 지원 중단되었지만, MSHTML/Trident 기반의 웹브라우저는 지원중단 대상이 아닙니다. WebBrowser는 Trident기반이고요. 그럼에도 요즘 IE11에서 돌아가는 웹페이지가 많이 없기에, 다른 Embedded 웹브라우저를 찾아 변경하는것이 권장됩.. 공감수 0 댓글수 0 2022. 8. 28.
  • [내돈내산 리뷰] 구피 자동먹이 급여기 - AF-101 안녕하세요. 오늘은 제가 사용하고 있는 물고기 자동 급여기를 리뷰해볼까 합니다. 우선 제가 원했던 기능은 아래와 같습니다. 1. 먹이 통이 대용량 일 것(한달 이상) 2. 12시간에 1번씩 급여가 가능할 것 3. 한번에 적은 양 급여가 가능할 것 4. 별도 접착제 없이 고정이 가능할 것 위 조건으로 제품을 찾았고, 그 결과 아래 제품을 구매하였습니다. https://link.coupang.com/a/qngHD 아마존 수족관 자동먹이 급여기 AF-101 COUPANG www.coupang.com 자 그럼 위 사항들을 모두 만족하는지 조목조목 따져보도록 하겠습니다. AF-101 먹이 통이 대용량 일 것(한 달 이상) 해당 제품은 2가지 타입의 먹이통을 제공하는데요.(추가금액 X, 기본 제공) 그중 큰 타입의.. 공감수 10 댓글수 1 2022. 6. 21.
  • "Definitely" 와 "Absolutely" 의 차이점 안녕하세요. 오늘은 굉장히 비슷한 의미를 가진 두 단어인 "Definitely"와 "Absolutely"의 차이점에 대해 알아보도록 하겠습니다. 우선 두 단어의 사전적 의미를 살펴볼까요? definitely 1. (강조의 의미로 쓰여) 분명히[틀림없이], 절대(로) 2. 확실히, 분명히 absolutely 1. 전적으로, 틀림없이(사실임을 강조함) 2. 전혀(부정의 의미를 강조) 3. 극도로, 굉장히 보시다시피 absolutely가 조금 더 강조하는 듯한 느낌을 내고 있습니다. 이제는 해외 커뮤니티로 이동하여 그들이 느끼고 이해하고 있는 차이점에 대해 알아보도록 하겠습니다. 해석하자면 아래와 같습니다. 네 그렇습니다. definitely와 absolutely는 모두 옳다는 뜻이지만, absolutely가.. 공감수 10 댓글수 0 2022. 6. 21.
  • [C#] Guid 사용방법 (생성, 비교, ToString()) 안녕하세요. 오늘은 Guid에 대해 알아보고자 합니다. Guid 란 Guid는 Globally Unique Identifier의 약자로, 전역 고유 식별자라는 의미를 가지는 식별자입니다. 세상에는 여러 가지 식별자가 존재합니다. Uuid, NanoId, Cuid, 그리고 Git에서 사용하는 Hash 등 이 있죠. 기본적으로 식별자는 값(객체)를 식별하기 위한 요소로, Mysql의 PK와 같이 고유하여야 합니다. 그렇다면 위에서 나열한 식별자들은 자체적으로 중복되지 않는 로직이 존재하는 것일까요? 정답은 아닙니다. 단지 나올수 있는 값이 매~~~ 우 많아서, 절대 겹치지 않을 것이다.라는 가정을 하는 것입니다. Uuid를 예로들면 실제로 생성 가능한 식별자의 개수는 10의 38 제곱, 340간 개나 됩니다.. 공감수 7 댓글수 0 2022. 4. 5.
  • 애드센스 수익 4배 높히는법 (수익인증) (어그로X) (개발블로그) 안녕하세요. 굉장히 자극적인 제목이죠 ㅎㅎ 하지만 내용도 굉장히 자극적이나 어그로는 아니니 끝까지 읽어주시기 바랍니다. 수익 340% 증가 우선 저는 이 방법을 통해 수익이 4.7배 증가하였습니다. (무려 470%!!!!) (정확하게 따지면 3.38배입니다.) 자세히 보시면 노출 RPM이 많이 증가한 것을 보실 수 있습니다. 이제 그 방법을 알려드리도록 하겠습니다. 맞춤 광고 설정 저는 개발 블로그를 운영합니다. 개발 블로그의 특징은, 주로 학교나 회사에서 접속하고, 대부분 Desktop입니다. 사실상 광고 수익을 올리기에는 최악의 구조이죠 ㅎㅎ 그래서 저는 이점을 활용하여 노출되는 광고를 설정하였습니다. 회사에서 궁금하더라도 차마 클릭할 수 없는 선정적인 광고나 게임 관련 광고들은 모두 제거하였습니다... 공감수 18 댓글수 2 2022. 4. 2.
  • [C#] 파일 선택하여 파일 탐색기 열기(File Explorer) 안녕하세요. 오늘은 파일이 선택된 상태로 파일 탐색기를 여는 방법에 대해 알아보도록 하겠습니다. 파일이 선택된 상태란, 아래의 상태를 얘기합니다. 정말정말 간단하니, 바로 코드로 알려드리도록 하겠습니다. string path = $@"{Path.Combine(Environment.CurrentDirectory, "aa.html")}"; string argument = string.Format("/e, /select, \"{0}\"", p); ProcessStartInfo info = new ProcessStartInfo(); info.FileName = "explorer"; info.Arguments = argument; Process.Start(info); 공감수 4 댓글수 0 2022. 3. 29.
  • [Visual Studio] 빌드 속도 높이는 방법 안녕하세요. 오늘은 Visual Studio Build시간을 단축시키는 방법에 대해 알아보고자 합니다. 방법은 간단하니 바로 진행해보도록 하겠습니다. Windows 보안 -> 바이러스 및 위협 방지 바이러스 및 위협 방지 설정 -> 설정 관리 제외 -> 제외 추가 또는 제거 devenv.exe 제외 프로젝트 폴더 제외 (본인이 프로젝트들을 모아두는 폴더를 제외 사항으로 추가하면 됩니다.) 이렇게하면 빌드 도중 "Antimalware Service Executable"이 실행되지 않기 때문에 빌드 시간이 단축되는 것입니다. 더 자세한 내용을 알고싶으시다면 아래 링크를 확인해주세요. https://ardalis.com/speed-up-visual-studio-build-times/?utm_sq=gtaxmo0.. 공감수 3 댓글수 0 2022. 3. 10.
  • [aspnetcore] 0. 프로젝트 구경 안녕하세요. 요즘 딱히 의욕도 없고, 집에와서 할일도 없고 해서,, 오픈소스 구경이나 해볼까 합니다. 목적은 1. 좋은 코드가 어떤 것인지 알기위해 2. 내가 애용하는 프레임워크에 직접 기여해보자 3. 심심하니까 정도네요 ㅎㅎ 자 그럼 시작합니다. 무작정 Fork 받기 일단 무작정 Visual Studio 2022로 열었더니,, 왠지 구성 요소를 추가로 설치해주거나, Preview 기능들을 설치해줘야 할듯한 느낌인데,, Extension 설치 정신을 다잡고 에러를 읽어보니 wixproj 프로젝트를 열지 못하는 것 같다. 근데 wixproj 가 뭐지?? wixproj ​​​란 .msi 파일을 만들때 필요하다는데,, 위치도 때마침 aspnetcore\src\Installers\Windows\SharedFra.. 공감수 0 댓글수 0 2022. 3. 10.
  • [C#] log4net 사용방법 안녕하세요. 오늘은 이전 게시글에서 말했듯 로그를 기록하는 방법에 대해 알려드리고자 합니다. 자 그럼 시작합니다!! 프로젝트 생성 & log4net 설치 시대가 시대이니 만큼 .net project로 생성해주도록 하겠습니다. 저는 .net 6로 프로젝트를 생성하였습니다. (크게 중요하진 않습니다.) 우선 Nuget Package Manager에서 "log4net"을 설치해줍니다. Install-Package log4net 로그 저장 옵션 구성하기 프로젝트 최상단 depth에 log4net.config 파일을 생성해줍니다. 우선 아래 내용을 그대로 붙여넣으시면 됩니다. 주의하실 점은 파일의 Properties에 "Copy to Output Directory" 를 Copy always 혹은 Copy if n.. 공감수 8 댓글수 0 2022. 3. 4.
  • 로그가 중요한 이유 안녕하세요. 개발과 버그는 땔래야 땔수가 없는 영혼의 단짝입니다. 이런 버그들 속에서 내 프로그램을 보완하고 유지보수 하기 위해서 꼭 필요한 시스템이 로깅 시스템입니다. 제가 생각하기에 로그는 프로그램이 남기는 다잉 메세지, 혹은 프로그램의 주마등과도 같다고 할 수 있습니다. 로그가 없는 프로그램을 상상해봅니다. ============ 어느날 전화가 한통 옵니다. 지금껏 잘 사용하던 기능이 하루아침에 동작을 안한답니다. 그래서 해당 오류를 재현해보려 동일한 동작을 수행합니다. 그러나 현상이 발견되지 않습니다. 당황하기 시작합니다. 다시 전화를 걸어 더 상세한 재현 상황을 찾기 시작합니다. 계정은 어떤 계정을 사용하였는지, 하루사이에 클라이언트 단에서 변경된 사항은 없는지, PC사양은 어떤지, 네트워크 상.. 공감수 0 댓글수 0 2022. 3. 3.
  • BareTail - 무료 실시간 로그뷰어 프로그램, 사용방법 안녕하세요. 오늘은 유용한 로그뷰어 프로그램인 BareTail(베어테일)을 소개해드릴까 합니다. BareTail http://www.baremetalsoft.com/ Bare Metal Software > Tools for Computer Professionals Release 3.50a 2006-11-02 What's new? Win32 (Windows 95, 98, ME, NT, 2000, XP, 2003, Vista) Free Version - baregrep.exe (246k) Licence - Startup splash screen cannot be disabled Registered Version - Only $US 25 Licence - Option to disable startup spla.. 공감수 0 댓글수 0 2022. 3. 1.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.