728x90 반응형 프로그래밍32 [c#] Thread Safe (쓰레드 동기화) 쓰레드 동기화란? 다중 스레드 환경에서 어떤 메서드를 여러 쓰레드가 동시에 입장하여 메서드 안의 값들을 차례대로 엑세스하지 않을 때, 이 메서드를 통한 결과 값은 잘못될 가능성이 매우 높다. (데이터의 신뢰성이 무너진다.) 따라서 여러 쓰레드의 공유 자원이 있을 경우 동시에 접근하는 것을 제어하여 차례대로 또는 제한적으로 접근하도록 하는 것. 쓰레드 동기화를 위한 c# 클래스 Lock Monitor Mutex Semaphore AutoResetEvent ManualResetEvent CountdownEvent 2019. 10. 8. [c#] 이벤트(event)와 델리게이트(delegate) 이벤트(event)와 델리게이트(delegate)를 함께 알아보겠습니다. 델리게이트 선언 public deleagte void SomeEventHandler(int time); 선언한 델리게이트 인스턴스 선언 public event SomeEventHandler EventHappened; public void CheckTime(bool isAM, int time) { if (isAM) { EventHappened(time); } } 이벤트 핸들러 만들기.(델리게이트 선언한 매개변수 타입, 개수가 일치하는 메소드로 만들기) public static void TimeHanlder(int time) { Console.WriteLine("오전 {0}시 입니다.", time); } 이벤트 객체에 핸들러를 등록한다.. 2019. 10. 8. [Tip] 프로그램 소스코드를 공개하는 사이트 모음집 [프로그래밍 Tip] 아래는 프로그램 소스코드를 공개하는 사이트를 모아둔 것입니다. 1. Visual C++, C# and Visual Basic 및 윈도우즈 .Net에 관련된 소스코드들이 공유되는 대표적인 사이트 http://www.codeguru.com/ 2. 인터넷 상의 돌아다니는 코드들을 모아놓은 사이트 http://www.planet-source-code.com/ 3. 많은 소스코드와 튜토리얼을 제공하고 있는 사이트 http://www.codeproject.com/ 4. 전세계를 석권하고 있는 구글에서 제공하는 오픈소스 사이트 http://code.google.com/ http://code.google.com/projects.html 5. C++, Visual Basic, ASP, sourcec.. 2019. 10. 2. [c#] 암호화 알고리즘 종류 및 설명 암호화 알고리즘은 총 3가지 1. 대칭형 암호(비밀키) 2. 비대칭형 암호(공개키) 3. 단방향 암호 1. 대칭형 암호 암호화 키 = 복호화 키 미국 표준 방식(AES)을 가장 보편적으로 사용 (DES 암호화 알고리즘을 대체하는 알고리즘) 그 외 RC4, Twofish, Serpent, Blowfish, CAST5, 3DES, IDEA 등 알고리즘이 존재 국내에서 개발된 SEED, ARIA라는 알고리즘도 있다. AES는 보안성이 뛰어남 AES의 키는 알고리즘에서 요구되는 128비트 또는 256비트 길이를 사용해야 하므로 16바이트 또는 32바이트를 사용 2. 비대칭형 암호 암호화 키 복호화 키 다름 대칭형 암호는 키를 어떻게 수신 측에 전달할 것인가에 대한 문제가 있음. 이 키를 털리면 평문(암호화되지 .. 2019. 10. 2. [Design Pattern]Composite Pattern이란? Composite Pattern이란? 객체들을 트리 구조로 구성하여 단일 객체와 복합객체를 동일하게 제어 가능하도록 하는 패턴 Composite Pattern 3요소 component : leaf와 composite의 상위클래스로써 이들을 동일하게 취급하게할 interface. composition(구성자)을 위한 인터페이스로 구성. client class는 이 인터페이스를 사용하여 작업한다. interface 또는 abstract class 그리고 모든 클래스를 위한 약간의 공통 메소드 역시 포함한다.leaf : component를 구현하는 클래스 요소로 이 클래스들을 쌓아올려 하나의 구성물을 만든다. composite : 다수의 leaf 클래스를 제어하는 클래스로 component를 이용해 공통 작업.. 2019. 1. 18. [Design Pattern]Bridge Pattern이란? Bridge Pattern이란? 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게하는 패턴이다. 클래스를 다른 인터페이스로 변형시키는 면에서 adapter pattern과 유사함. 상속을 이용한 패턴으로 확장 설계에 용이하다. 요청하는 부분의 코드 수정 없이 실제 구현부분의 수정을 가능하게 만든다. 예제 TV interface1234567public interface ITV { public void on(); public void off(); public void switchChannel(int channel);}Colored by Color Scriptercs ITV interface를 implements한 클래스 1123456789101112131415public class SamsungT.. 2019. 1. 18. [Design Pattern]Adapter Pattern이란? Adapter Pattern이란? 관계가 없는 인터페이스들이 같이 일할 수 있도록 도와주는 패턴이다. 두개의 인터페이스를 이어주는 인터페이스를 adapter라 한다. 예제public class Line { private int lines; public Line(int line) { this.lines = line; } public int GetLines() { return this.lines; } public int SetLines(int line) { this.lines = line; } } public class Station { public Line GetLine() { return new Line(1); } }Station클래스는 1호선만 다닐 수 있다. 하지만 4호선 9호선도 같이 다닐 수 있으.. 2019. 1. 18. [Design Pattern]Prototype Pattern이란? Prototype Pattern이란? 패턴 내에서 객체의 생성을 제공한다. 객체 생성이 높은 비용으로 수 많은 요청을 하는경우나 비슷한 객체를 지속적으로 생성해야 할 때 사용한다. prototype pattern은 원래의 객체로부터 clone()을 사용하여 새로운 객체를 만들며 각 객체에 따라 데이터 수정이 가능하다. 예제 public class Users implements Cloneable { private List userList; public Users() { userList = new ArrayList(); } public Users(List list) { this.userList = list; } public void loadData () { userList.add("ssw"); userLis.. 2019. 1. 17. [Design Pattern]Builder Pattern이란? Builder Pattern이란? factory pattern이나 abstract factory pattern과 비슷하다.이 두 패턴은 중대한 문제점이 있다. factory pattern / abstract factory pattern 문제점 3가지 - 호출하는 클래스로부터 많은 인자(파라메터)들이 전달된다. -> 에러발생이 많아질 수 있다. 인자들의 type을 정확히 맞추기 어렵기 때문이다. - 몇몇 파라메터들을 보내고 싶지만 모든 인자를 전송해야한다. - 생성시키는 객체가 많은 정보를 필요로 한 경우(파라메터가 많다 = 생성되어야 하는 객체가 무겁다) 만들기가 복잡해진다. Builder Pattern은 파라메터가 많던지 적던지 일관성있게 차례차례 제공해준다. 예제public class Product .. 2019. 1. 17. 이전 1 2 3 4 다음 728x90 반응형