반응형 Developer/C#, 닷넷14 C# .NET Windows Form(윈폼) 프로젝트 콘솔 로그 출력 방법 1. 개요 .NET 프로젝트 템븟릿 중 UI를 구성하기 위한 Windows Form(윈폼)으로 프로젝트를 생성할 수 있습니다. 개발을 하면서, 값 확인을 위해 보통 Console.WriteLine를 사용하게 됩니다. 기존 글 참고 : [Developer/C#, 닷넷] - C# 다양한 문자 출력 방법 하지만 Windows Form으로 생성한 프로젝트에 Console.WriteLine 코드를 삽입해도, 콘솔이 없기 때문에 콘솔 로그를 확인할 수 없습니다. 이제 Windows Form에서도 콘솔로그를 쉽게 확인할 수 있는 방법에 대해 알아보겠습니다. 2. Windows Form 콘솔로그 확인 방법 상단 메뉴 프로젝트 - 하단의 [프로젝트명] 속성을 클릭합니다. 그럼 프로젝트 구성 정보를 확인할 수 있고, 그 .. Developer/C#, 닷넷 2022. 9. 15. C# ref, out, return 차이 1. ref, out 개요 ref와 out는 메서드에서 처리한 결과를 참조를 통해 전달을 할 때 사용을 합니다. 일단 정의상으로 이해가 잘 되지 않습니다. 그리고 메서드에서 결과값을 전달하는건 흔하게 return을 사용하면 된다고 알고 있습니다. 그럼 언제 ref와 out를 사용할까요? 먼저 우리가 알고 있는 return 샘플을 먼저 보겠습니다. 2. return using System; namespace ReturnEx { public class Program { static int SetTwice(int no1) { no1 = no1 *2; return no1; } static void Main(string[] args) { int no1 = 4; int no1Result = SetTwice(no1).. Developer/C#, 닷넷 2022. 8. 23. C# 생성자(Constructor) - new 키워드 1. 생성자(Constructor) 생성자는 클래스 인스턴스를 생성할 때 기본(필수)으로 호출되는 메서드입니다. 보통 객체를 생성할 때 아래와 같이 선언을 하죠. Hero superman = new Hero(); HeroClass로 superman 인스턴스를 만들고 Hero이라는 생성자를 new라는 키워드로 객체를 생성하는 것 입니다. new 뒤에 있는 Hero는 Class명이 아니고 생성자명인 것입니다. Class명하고 똑같은데 무슨 말인가 싶겠죠. 그 이유는 생성자는 클래스명과 동일해야 하기 때문입니다. 그럼 생성자는 어떤 형태를 가지고 있는지 살펴보겠습니다. public class Hero { // 생성자 public Hero() { } } 우리가 알고 있는 메서드랑 비슷하면서도 다른 것을 알 수 .. Developer/C#, 닷넷 2022. 8. 21. C# Docker System.IO.FileNotFoundException: Could not find file C# 프로젝트를 Docker Image로 생성 후 Docker run 할 때 System.IO.FileNotFoundException: Could not find file 오류가 발생할 경우가 있습니다. 이건 프로그램 상에서 text파일 등 파일을 읽어 오는데, Docker 생성시 지정을 해주지 않으면 이 파일은 제외하고 Docker 이미지가 생성되기 때문입니다. 파일을 포함해서 Docker Image 생성을 하기 위해서는 Dockerfile에 명시를 해주면 됩니다. COPY 복사하려는 경로/파일명 복사될 위치의 경로/파일명 WORKDIR /app COPY fword_list.txt /app/fword_list.txt 위와 같이 dockerfile에 추가한 후 Bulid, run을 하게 되면 정상적으로 .. Developer/C#, 닷넷 2022. 8. 18. C# Docker Environment.GetEnvironmentVariable (환경변수) 사용 C# .NET에서 DB같은 서버에 접속해야 하는 경우가 있습니다. 이때 접속해야 할 서버 정보를 하드 코딩하지 않고, 환경변수를 활용할 수 있습니다. 아래와 같이 말이죠. var multiplexer = ConnectionMultiplexer.Connect(new ConfigurationOptions { ConnectTimeout = 3000, EndPoints ={ Environment.GetEnvironmentVariable("REDIS_SERVER") } }); services.AddSingleton(multiplexer); Docker사용하는 경우, 위의 환경변수 "REDIS_SERVER"는 어디에 설정해야 할까요? 바로 dockerfile에 환경변수로 등록하면 됩니다. FROM mcr.micro.. Developer/C#, 닷넷 2022. 8. 18. C# event 사용(delegate) 1. event 개념 이벤트(event)의 용어 정의는 "사건"을 의미합니다. 프로그래밍에서 event도 비슷한 개념으로 "어떠한 조건을 만족하는 사건"이 발생했을 때, 자동으로 실행을 할 수 있도록 하는 것 입니다. event의 선언 형식은 아래와 같습니다. //한정자 event 사용하려는delegate명 event명; public event TenEventHandler TenEvent; event를 사용하려면 delegate(대리자)를 먼저 이해해야 합니다. delegate에 대한 설명은 별도 포스팅 되어 있으니 참고 부탁드립니다. [Developer/C#, 닷넷] - C# delegate 개념과 사용 이유 C# delegate 개념과 사용 이유 1. delegate 개요 처음 C# delegate를.. Developer/C#, 닷넷 2022. 8. 16. C# delegate 개념과 사용 이유 1. delegate 개요 처음 C# delegate를 접했을 때 왜 사용해야 하는지 이해하기가 힘들었습니다. 그래서 왜 사용해야 하는지에 대해 자세히 설명하겠습니다. C#에는 대리자(delegate)라는 개념이 존재합니다. 대리자라는 용어가 생소할 수도 있는데, 대리기사처럼 대신 일을 해주는 대상이라고 보면 됩니다. 대리자는 한번의 이벤트에 여러 메소드를 동시에 호출할 수 있습니다. 대리자는 메서드를 매개변수로 전달할 수 있습니다. ... 라고 정의하지만 이해가 바로 가지는 않을 겁니다. 소스 코드 예제를 통해 자세히 알아보도록 하고, Delegate의 선언하는 구조만 먼저 집고 넘어가겠습니다. delegate 반환형 델리게이트명(매개변수, 매개변수, 매개변수, ....); delegate int Ex.. Developer/C#, 닷넷 2022. 8. 13. C# 객체(Object), 클래스(Class), 인스턴스(Instance) 차이 비교 1. 개요 객체지향 프로그래밍을 처음 접하는 초보자들에게는 객체(Object), 클래스(Class), 인스턴스(Instance)를 명확히 정의하는 것이 중요합니다. 객체와 인스턴스는 혼용해서 쓰기도 하나, 헷갈리지 않기 위해 명확히 정의하는 것이 좋습니다. 하나씩 정의하면서 설명하도록 하겠습니다. 2. 객체(Object) 현실세계나 프로그래밍을 할 세계에서 존재하는 모든 사물형을 객체(Object)라고 합니다. 사람, 강아지, 비트코인... 이런 것들을 객체라고 정의할 수 있습니다. 우리가 프로그래밍을 통해 컨트롤 해야 하는 대상인 것이죠. 3. 클래스(Class) 보통 클래스는 객체를 만들 수 있는 설계도나, 붕어빵(객체)의 붕어빵틀(클래스)로 많이 표현합니다. 아직 프로그래밍 상에 실제로 존재하지 않.. Developer/C#, 닷넷 2022. 8. 12. C# JSON 활용하기(직렬화, 역직렬화) C#에서 JSON 형태로 직렬화/역직렬화 하는 방법에 대해 알아보겠습니다. 1. JSON이란? JSON(JavaScript Object Notation)는 이름에서 알 수 있듯이 Javascript에서 객체를 만들 때 사용하는 표현식입니다. 하지만 현재는 Javascript 뿐만 아니라, 모든 언어에서 광범위하게 사용되고 있습니다. 그 이유는, JSON이라는 것 자체가 어떠한 기술을 말하는 것이 아니라, 데이터를 표현하는 방법이기 때문입니다. JSON은 key:value가 쌍으로 이루어진 표현 방법입니다. 주로 상호간 데이터 통신을 할 때 사용합니다. 객체를 string로 변환 후 전송하고, string으로 받은 값을 다시 객체로 변환해서 값을 사용하는 것 입니다. key value 모두 문자열의 경우 .. Developer/C#, 닷넷 2022. 8. 11. C# 프로젝트 생성, Hello World 출력 1. 프로젝트 생성 기본 프로그램을 실행하기 위해서는 프로젝트 생성이 필요합니다. Hello World를 출력하기 위한 기본적인 프로젝트 생성을 해보도록 하겠습니다. 가장 먼저 설치된 Visual Studio를 실행합니다. 설치가 안되어 있다면 이전 글 참고하세요. 2022.08.10 - [Developer/C#, 닷넷] - [C# 기초] Visual Studio 설치 [C# 기초] Visual Studio 설치 1. 개요 .NET 개발을 하기 위해서는 IDE(통합 개발 툴)이 필요합니다. MicroSoft에서 .NET 개발을 위해 공식적으로 제공하는 IDE가 Visual Studio입니다. 현재 최신 버전은 Visual Studio 2022입니다. C#과 .NET.. woojoolog.tistory.c.. Developer/C#, 닷넷 2022. 8. 10. C# Visual Studio 설치 1. 개요 .NET 개발을 하기 위해서는 IDE(통합 개발 툴)이 필요합니다. MicroSoft에서 .NET 개발을 위해 공식적으로 제공하는 IDE가 Visual Studio입니다. 현재 최신 버전은 Visual Studio 2022입니다. C#과 .NET의 차이는 뭔가요?? .NET은 오픈소스 개발 플랫폼이며, 프래임워크를 포함합니다. C#은 프로그래밍 언어이며, .NET 앱을 개발할 수 있는 언어중의 하나입니다. C# 뿐만 아니라, F#, Visual Basic도 .NET 개발이 가능합니다. 2. 다운로드 다운로드는 Visual Studio 홈페이지에서 다운 받으면 됩니다. https://visualstudio.microsoft.com/ko/ 학습용이기 때문에 Community 2022 버전을 선택해.. Developer/C#, 닷넷 2022. 8. 10. C# 채팅 비속어 필터링 처리 우리가 게임 등 온라인 상에서 채팅을 하게 되면 온갖 비속어와 마주치게 됩니다. 그래서 대부분 시스템들에서 채팅 할 때 비속어에 대해 필터링을 하고 있습니다. C#에서 비속어 목록 파일을 읽어 문구에 비속어가 있는 경우 ***로 필터링 되도록 구현해보도록 하겠습니다. 1. 비속어 목록 파일 읽기 public static List words = new List(); public static string masking; // 비속어 설정 파일 로딩 public static StreamReader reader = new StreamReader(Directory.GetParent(Environment.CurrentDirectory).Parent.FullName +@"\york.txt"); public stati.. Developer/C#, 닷넷 2022. 8. 9. 이전 1 2 다음 반응형