컴파일 한 번에 성공하는 그 날까지👀

코딩왕이 되고싶은 이코딩의 개발괴발 개발일지 😼

C# 5

[Fody/Costura] C# Winform 프로젝트를 단일 실행파일로 빌드하기

** 작업환경 : .NET Framework 4.6.1 (대상프레임워크) / Visual Studio 2019 / Windows 10 윈폼 프로젝트로 작업하다보면 빌드할 때 dll이 무지하게 많이 생성되어서 불편할 때가 많다.이 많은 dll들은 배포할때도 문제가 되어버림😥번거로우니까 *.exe 단일 실행파일로 만들어보자! 간단하게 정리하자면 NuGet패키지 관리 메뉴에서 Fody, Costura Fody를 선택한 후 설치하면 되겠다..!자세한 방법은 아래쪽에👇 (1) 원하는 프로젝트 이름 위에서 마우스 우클릭-> NuGet 패키지 관리 선택 (2) 키워드 Fody검색 => 아래 그림에 빨간 네모 박스 속의 Fody, Costura.Fody 설치!이 때 주의해야 할 점은 버전정보확인어디서 충돌이 나는 ..

개발괴발🐾/C# 2024.05.10

[Log4net] C#에서 외부 코드를 참조하여 로그 기능 사용하기

** 개발환경 : Visual Studio 2019를 사용합니다 ** 대부분의 내용은 https://logging.apache.org/log4net/ 에서 발췌하였습니다 Windows용 비주얼스튜디오는 NuGet패키지 라는 기능을 지원합니다. (다른 OS는 지원을 하지 않나보네요🙄) NuGet패키지란 다른 개발자가 만든 재사용 가능한 코드를 내가 작업중인 프로젝트에 사용할 수 있도록 관리해주는 기능을 말합니다! 여기에서 관리란 검색, 설치 및 유지를 뜻합니다. NuGet패키지를 잘만 이용하면 내가 직접 구현을 해야하는 번거로움 없이 클릭 몇 번으로 꿀같은 기능을 사용할수 있죠😀작게는 로그부터 시작해서 Dapper, Nhibernate와 같은 ORM 기능도 손쉽게 활용할 수 있습니다! 이번에는 Log4ne..

개발괴발🐾/C# 2024.03.21

[C#] Sealed Class 란?

Sealed 단어 뜻 그대로 상속으로부터 '봉인' 시키는걸 말한다. 메서드 앞에 놓이면 메서드 상속을 막고, 클래스 앞에 놓이면 클래스 상속을 막는다는 이야기. * Sealed Class 아래와 같은 코드에서는 A를 상속받을 수 는 있지만 B를 상속받을 수는 없다. class A {} sealed class B : A {} * Sealed Method Human을 상속받은 Parent가 Eat에 Sealed 한정자를 붙였으므로 Child 클래스에서는 상속이 불가능하다. public abstract class Human { public double Age { get; set; } public virtual void Work() { Console.WriteLine("Work hard"); } public v..

개발괴발🐾/C# 2024.03.08

[C#] POCO 가 뭐야?

Nhibernate를 공부하면서 POCO라는 단어가 심심찮게 보이길래 한번 찾아봤다. POCO: Plain Old Class Object 간단히 말해 특정 프레임워크나 라이브러리에 종속되지 않은 일반적인 클래스를 말한다. 특히 객체 지향 프로그래밍에서 자주 사용되는 개념이며, 순수한 데이터를 저장하고 해당 데이터에 대한 접근을 제공하는 역할을 한다. POCO 클래스는 데이터베이스와 같은 데이터 소스의 레코드를 표현하거나 다양한 비즈니스 로직을 구현하는 데 사용될 수 있다. 조금 더 자세히 풀어보자면 POCO의 특징은 아래와 같다. 1 특정한 베이스 클래스를 상속받지 않음: POCO 클래스는 보통 어떠한 베이스 클래스도 상속받지 않는다. 즉, C#에서는 보통 object 클래스를 상속받거나 다른 클래스를 ..

개발괴발🐾/C# 2024.03.08

[Socket] 요청<->응답 바이트 배열 변환

*** SuperSocket (+ClientEngine, ProtoBase), Newtonsoft.Json 패키지를 활용합니다. public class MyRequestInfo : IRequestInfo { public string Key => Type.ToString(); /// /// 설비 데이터 요소 /// public class Element { /// /// 속성명 /// public string Name { get; set; } /// /// 값 /// public string Value { get; set; } public Element() { } public Element(string name, string value) { Name = name; Value = value; } public ..

개발괴발🐾/C# 2024.03.07