구글 블로그(Blogger)에서 워드프레스로 블로그 이전

지금까지 네이버 블로그 → 티스토리 블로그 → 구글 블로그(Blogger) → 설치형 워드프레스로 블로그를 이전했다. 그 다음 도착점은 어딜까 아니면 여기가 종착점일까… 블로그를 옮긴 이유는 구글 블로그는 사용하기 너무 불편했기 때문이다. 자신이 쓴 글을 봐도 페이지뷰가 계속 올라가는 문제, 특정 태그를 사용하면 글 수정할 때마다 br 태그가 자동 삽입되는 문제, 글 목록을 구현하기 힘든 문제 등등… […]

계속 읽기

C# 기초 정리: 네트워크 프로그래밍

TcpListener, TcpClient 클래스 TcpListener: 서버 애플리케이션에서 사용. 클라이언트의 연결 요청 대기 TcpClient: 서버 및 클라이언트 애플리케이션 양쪽에서 사용 클라이언트 쪽: 서버에 연결 요청 서버 쪽: 클라이언트의 연결 요청 수락 후 통신에 사용할 TcpClient 인스턴스 반환 NetworkSteam: 서버와 클라이언트 간 데이터를 주고받는 스트림 TcpClient.GetStream(): NetworkStream 객체 반환 NetworkStream.Write(): 데이터 보내기 NetworkStream.Read(): 데이터 읽기 NetworkStream.Close(), TcpClient.Close(): 연결 […]

계속 읽기

C# 기초 정리: 스레드, 태스크

스레드(Thread) 스레드: OS가 CPU 시간을 할당하는 기본 단위 .NET 프레임워크는 System.Threading.Thread 클래스를 제공 장점 응답성 제고 (예: 파일 복사 중에 사용자 명령을 입력받도록 할 수 있음) 자원공유 용이: 멀티 프로세스 방식은 IPC(Inter Process Communication) 방싱을 사용하지만 멀티 스레드 방식은 코드 내 변수를 사용 경제적: 멀티 프로세스 방식은 메모리/CPU 자원할당 비용이 비싸지만 멀티 스레드 방식은 이미 […]

계속 읽기

C# 기초 정리: 파일 다루기

System.IO 네임스페이스 File, Directory 클래스: 파일(디렉토리) 처리를 위한 정적 메소드 제공 FileInfo, DirectoryInfo 클래스: 파일(디렉토리) 처리를 위한 인스턴스 메소드 제공 File과 FileInfo, Directory와 DirectoryInfo 클래스는 서로 거의 같은 기능을 제공 하나의 파일(디렉토리)에 한두가지 작업을 할 땐 정적 메소드를, 여러가지 작업을 할 땐 인스턴스 메소드를 주로 사용 File, Directory 예제는 다음 소스코드 참고 class Program { […]

계속 읽기

C# 기초 정리: 람다식, LINQ, 애트리뷰트, Dynamic 형식

람다식(Lambda Expression) 함수를 좀 더 간결한 코드로 묘사하기 위한 방법 익명 메소드를 만들기 위해 사용(람다식으로 만든 익명 메소드는 무명함수(Anonymous Function)라고 부름) =>: 입력 연산자. =>를 중심으로 왼쪽엔 매개변수, 오른쪽엔 식이 위치 기본 형식: (매개변수_목록) => 식 class Program { delegate int Calc(int a, int b); // 익명 메소드를 만들기 위한 델리게이트 public static void Main(string[] […]

계속 읽기

C# 기초 정리: 델리게이트, 익명 메소드, 이벤트

델리게이트(Delegate) 메소드에 대한 참조 델리게이트는 인스턴스가 아닌 형식(Type)임 delegate 키워드로 선언 namespace Inheritance { delegate int MyDelegate(int a, int b); // 델리게이트 선언 class Program { public int Plus(int a, int b) { return a + b; } public static int Minus(int a, int b) { return a – b; } public static void Main(string[] […]

계속 읽기

C# 기초 정리: 일반화 프로그래밍

일반화 프로그래밍(Generic Programming) 처리하는 로직은 같지만 형식이 다른 객체를 입력받아 처리하는 코드 작성 시 오버로딩하지않고 모든 형식을 지원하도록 프로그래밍 형식 매개변수(Type Parameter), 를 사용 class Program { /* 제네릭 메소드(Generic Method) */ static void CopyArray<T>(T[] source, T[] target) { for (int i = 0; i < source.Length; i++) target[i] = source[i]; } public static void […]

계속 읽기

C# 기초 정리: 배열, 컬렉션, 인덱서

가변 배열(Jagged Array) 가변 배열의 요소는 차원과 크기가 서로 다른 “배열” 다차원 배열을 사용하는 것보다 공간 절약 class Program { static void Main(string[] args) { /* 가변 배열(Jagged Array) */ int[][] jagged = new int[3][]; jagged[0] = new int[] { 1, 2, 3 }; jagged[1] = new int[] { 4, 5, 6, 7, 8 }; […]

계속 읽기

C# 기초 정리: 프로퍼티

프로퍼티(Property) 프로퍼티: 객체 내의 데이터에 접급할 수 있도록 하는 통로 은닉성(캡슐화)을 위해 필드는 private로, ​필드에 접근하는 메소드는 public으로 선언 이 경우 get/set 메소드를 일일이 구현해야 함​ 프로퍼티를 사용하면 get/set 메소드를 구현할 필요가 없음 class NameCard { private string name; /* name에 접근하기 위한 프로퍼티 */ public string Name { /* get: 필드 값 읽기 접근자​ […]

계속 읽기

C# 기초 정리: 클래스, 구조체, 인터페이스, 추상 클래스

  생성자와 소멸자 생성자를 하나라도 정의하면 C# 컴파일러는 기본 생성자를 제공하지 않음 소멸자는 오버로딩 불가능, 한정자 지정 불가능, 호출 불가능 소멸자는 구현하지 않는 것이 좋음. CLR(Common Language Runtime)이 알아서 객체를 수거해가기 때문. class MyClass { private int id; private string name; /* 기본 생성자: 매개변수가 하나도 없음 */ public MyClass() { id = 1; name […]

계속 읽기

C# 기초 정리: 메소드

값에 의한 매개변수 전달(Call by Value) 데이터를 복사해서 매개변수에 전달 매개변수가 원본 데이터에 영향을 끼치지 않음 class Program {     public static void Swap(int a, int b)     {         int temp = a;         a = b;         b = temp;     }     public static void Main(string[] args)     {         int x = 1;         int y = 2;         Swap(x, y);         Console.WriteLine(“x: {0}, y: {1}”, x, y); // Swap X     } }   참조에 의한 매개변수 전달(Call by Reference) 매개변수가 원본변수를 직접 참조 및 제어 ref 키워드 사용 class Program {     public static void Swap(ref int a, ref int b)     {         int temp = a;         a = b;         b = temp; […]

계속 읽기

C# 기초 정리: 데이터, 연산자

열거형(Enumerator) 여러 상수를 선언할 때 알아보기 쉽게 해주고 서로 중복된 값을 막아줌 값은 1씩 증가된 값이 할당됨 class Program { enum DialogResult { YES, NO, CANCEL, CONFIRM, OK } public static void Main(string[] args) { /* 출력 값은 차례대로 0 1 2 3 4 */ Console.WriteLine((int)DialogResult.YES); Console.WriteLine((int)DialogResult.NO); Console.WriteLine((int)DialogResult.CANCEL); Console.WriteLine((int)DialogResult.CONFIRM); Console.WriteLine((int)DialogResult.OK); } } class Program {     enum DialogResult { YES, NO=10, CANCEL, CONFIRM=25, OK } […]

계속 읽기

애니메이션: B: The Beginning

< p style=”text-align: center;”>B: The Beginning 장르: 범죄, 느와르 감독: 나카자와 카즈토, 야마카와 요시노부 애니메이션 제작: Production I.G 방영시기: 2018. 3. 2.(넷플릭스, 전세계), 2018. 3. 29.(넷플릭스, 한국) 관련 사이트: 공식 홈페이지, 나무위키 해답에 집요하게 접근하려는 수사관과 운명에 저항하려는 소년에 대한 애니메이션. 제목의 B와 작중에 등장하는 B의 표식은 등장인물 킬러B의 코드네임을 가리킨다고 볼 수 있겠으나 실상은 무엇일까…? […]

계속 읽기
error: 마우스 우클릭 금지 !!