본문 바로가기

c#9

[SignalR] SignalR 설명 SignalR ● SignalR을 사용하여 프로그래밍하기 이전에 간략하세 설명 및 정리를 하고 시작하겠습니다. SignalR이란?? "앱에 실시간 웹 기능을 추가하는 것을 간소화하는 오픈 소스 라이브러리" 실시간 웹 기능을 사용하여 서버 - 클라이언트 통신이 쉽다. 실시간 웹 기능이란? 클라이언트가 서버로 새로운 데이터를 요청하기 까지 서버가 기다리기만 하는게 아니라, 서버에서 연결되어 있는 클라이언트로 메시지를 전달 할 수 있는 능력을 의미 SignalR의 몇가지 기능 연결 관리를 자동으로함 모든 연결된 클라이언트에 메시지를 동시에 보낼수있음 ex) 챗팅 특정 클라이언트나 클라이언트의 그룹에 메시지를 보냄 서버 - 클라이언트 원격 프로시저 호출 (RPC) 생성하기 위한 API. 늘어난 트래픽 처리를 하.. 2023. 3. 15.
[디자인패턴]- State 패턴 STATE 패턴 STATE 패턴이란? 객체의 상태에 따라 객체의 행위가 달라 질 때 사용 상태별 행위를 별도의 클래스에서 구현함으로써 코드 분리가 가능, 새로운 상태를 유연하게 추가 확장 할 수 있음 if/else 블럭으로 구현하는것보다 state 패턴을 사용하여 각 상태별로 구현하는것이 효율적일 수 있음 사용 예 , CODE internal class Program { static void Main(string[] args) { var testPlayer = new TestPlayer(); testPlayer.ChangeState(new LoginState()); Console.ReadLine(); } } Main.cs public class TestPlayer { public PlayerState P.. 2023. 3. 14.
apple client secret 생성을 위한 jwt 만들기 nuget 설치 JWT 설치 Install-Package JWT -Version 10.0.0-beta5 System.IdentityModel.Tokens.Jwt 설치 Install-Package System.IdentityModel.Tokens.Jwt -Version 6.21.0 설명 apn 인증용 p8코드를 미리 발급받아 준비한다. 준비한 p8을 읽어 앞 뒤의 "private key" 키워드 삭제 줄바꿈을 공백으로 변경 준비된 p8데이터를 MakeToken 함수에 넣음. CODE // p8데이터 읽음 var p8Data = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\\p8data.p8"); Console.WriteLine(p8Data); /.. 2022. 7. 12.
[C#] localIP / public IP 가져오기 localIP, publicIP 가져오기 ▶ 서버를 개발하다보면 localhost나 127.0.0.1 외에 IP 주소가 필요한 경우가 있다. ▶ 그때 매번 cmd창 켜서 ipconfig 검색하고, "내 아이피검색" 안해도 아래 코드를 사용하면 편하게 PC의 IP를 가져 올 수 있다. LocalIP 가져오기 public static string GetLocalIP() { string result = string.Empty; var host = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in host.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { result = ip.ToStrin.. 2021. 3. 23.
[C#] 파일 압축하기 파일 압축하기 코드 class Program { static void Main(string[] args) { Console.WriteLine("== Hello World =="); try { // 1. 압축할 폴더 생성 var directoryName = @"D:\ZipTest\" + "NewZip"; System.IO.Directory.CreateDirectory(directoryName); // 복사할 파일 이름 var fileList = new List { "testfile1.txt", "testfile2.txt" }; foreach (var fileName in fileList) { // 원본 파일 위치 var sourceFile = System.IO.Path.Combine(@"D:\ZipTest.. 2020. 12. 21.
[Blazor] 2. 메뉴 추가하고 화면에 표시하기 왼쪽 Navigation에 신규 메뉴를 추가하고 화면에 표시하기 프로젝트의 구조를 보면 아래의 사진처럼 구성 되어있음 1. Gallery.razor 추가하기 1-1) Pages 폴더 마우스 우클릭 > 추가 > 레이저 구성요소 > Gallery.razor 추가 1-2) Gallery.razor 코드 설명 @* @page 키워드를 넣고 /url을 적어주면 해당 url로 아래 페이지를 요청 가능하다.*@ @page "/gallery" @*페이지 제목 구성하는 부분*@ Gallery 달복이랑 삼희 달복이랑 삼희가 여유롭게 앉아있는 모습 COUNT : @cat1LikeCount 좋아요 썸머 침대위 눕방 즐기는 썸머, 그의 시그니처인 썸머 목걸이도 걸고 있다. COUNT : @cat2LikeCount 좋아요 쥐돌이.. 2020. 12. 11.
[Blazor] 1. blazor를 이용하여 서버앱 만들기 - 프로젝트 생성 프로젝트 생성 후 실행 1. visual studio 실행 2. 새 프로젝트 만들기 3. 새 프로젝트만들기에서 blazor 앱 선택 4. 프로젝트 이름 설정 5. Blazor 서버앱 선택 후 만들기 ※ Blazor WEbAssembly app으로 하면 클라이언트 위주의 사이트가 됩니다. 6. F5 눌러서 디버깅 하기 - 기본 프로젝트가 생성되었습니다. 이 상태에서 바로 F5를 눌러 디버깅을 합니다. 7. 사이트 뷰잉 - 사이트가 실행되면서 Hello, world가 뜹니다. 코드에 대한 설명은 다음 포스트에 진행 (영상설명) youtu.be/wchFBp96SXU 2020. 12. 11.
[Blazor] 블레이저란? Blazor 1. Blazor란? - 마이크로소프트에서 개발한 오픈소스 웹 개발 프레임워크 - .NET을 사용하여 클라이언트쪽 웹 UI를 빌드함 - 모바일 브라우저를 포함한 광범위한 브라우저 지원을 위해 UI를 HTML 및 CSS로 렌더링함 - 자바스크립트가 아닌 .net core 기반의 c#으로 작성할 수 있다. - 이를 위해 최신 표준인 webAssembly를 채택함 - C#으로 작성된 클라이언트쪽 로직 코드들은 전부 .NET Standard Assembly 파일로 컴파일 후 WebAssembly 런타임 위에서 실행된다. 1-1. Blazor Server ASP.NET CORE 서버와 Razor 엔진을 이용한 에디션, 서버에서 대부분의 렌더링과 프로세싱이 이루어 지는것이 특징 클라이언트의 부담이 적음.. 2020. 12. 10.
Dapper 사용시 key/explicitKey Dapper를 사용할 때 insert시 pk를 자동으로 채워주려면 해당 변수를 [Key] 로 해줘야함 ex) public class ItemEntity { [Key] public long ItemIdx {get;set;} public long InsertToDB() { conn.Insert(this); return ItemIdx; } } - explicitKey키로 어트리뷰트를 하면 위의 방법은 적용되지 않음 [추가 + ] [key] : "데이터베이스에서 자동으로 생성되는 키로 속성 지정"으로 정의 ( Auto Increment) [Explicti Key] : 키는 키인데 자동 증가 하지 않는 컬럼 https://stackoverflow.com/questions/49428967/dappers-explic.. 2020. 1. 3.
반응형