
현재 진행하고 있는 C#기반 메신저 프로젝트에서 소켓 프로그래밍을 사용할 기회가 생겨 정리하게 되었습니다. 우선 이 프로젝트의 목적은 비동기 소켓통신을 통하여 채팅중계서버를 구현하고, 같은 로컬에 있는 각각의 클라이언트에서 채팅을 주고받을 수 있도록 하는 것에 있습니다. 일단 한눈에 예제를 확인할 수 있게 콘솔앱으로 작성하였고, 아래는 서버 측 소스코드입니다. static void Main(string[] args) { //서버측의 소켓을 생성, 클라이언트와 통신할 연결방식 및 프로토콜 타입을 선언 Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //모든 네트워크의 클라이언트의 연결을 받..
![[MySQL] View](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOsSiM%2FbtrPEIhO60u%2FFxqLW0KlBhYdxnkdMjHzGk%2Fimg.png)
View : DataBase 내에서 '가상의 테이블'을 의미하며, 생성된 뷰는 기존의 테이블처럼 행과열의 데이터값을 가지는 테이블처럼 보이지만, 실제 테이블처럼 데이터들을 저장하고 있지는 않다. 특징잘 알려진 장점으로는1. 테이블 전체가 아닌 필요한 필드만을 보여주는 기능으로써 사용자에게 편리함을 제공한다.2. 특정 데이터 그리드를 만들기 위해 복잡한 쿼리들을 view를 통해 단순화 기능을 제공한다.3. 쿼리를 재사용 할 수 있다. 반대로 단점으로는1. 한번 만들어진 view는 변경이 불가능하다.2. 자신만의 인덱스를 가질 수 없으며,3. 해당 view에 관한 작업에 대한 제한사항을 많이 가진다. View의 활용view 생성에 앞서 이해를 돕기위해 간단하게 사용자의 이름과 나이 정보를 가지는 'view_..
![[Mysql] 스토어드 프로시저](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRkFaa%2FbtrPtfUUN8e%2FPh1oYKTsHckRTprVqDOPs0%2Fimg.png)
스토어드 프로시저(Stored Procedure, 저장 프로시저)란?-> Mysql에서 제공하고 있는 프로그래밍 기능 중 하나로 쿼리문에 대한 동작을 일괄 처리하기 위한 용도로 사용한다.쿼리를 모듈화 함으로써 필요할 때마다 호출하는 식으로 사용하여 편리하게 Mysql 동작을 시킬 수 있다.또한, 클라이언트 측에서 DB로 장황한 쿼리대신 프로시저를 호출하기만 하면 되기에 편리한 기능이라고 할 수 있다. 특징1. 성능 향상 : 프로시저를 CALL 하는 것으로 긴 쿼리를 사용할 수 있다. --> 네트워크 부하 감소2. 유지관리의 간편함 : 응용 프로그램의 코드에서는 긴 쿼리가 아닌 프로시저만을 호출하기 때문에 프로시저의 내용 수정 등의 유지보수가 간편하다.3. 모듈식 프로그래밍 가능 : 언제든지 사용이 가능하..

안녕하세요. 이번에는 앞서다룬 IPC기법들 중 동기화가 필요한 통신에서의 동기화를 책임질 세마포어(Semaphore)에 대하여 알아보도록 하겠습니다. ● 세마포어(Semaphore) -> 기본적으로 세마포어는 프로세스 사이의 동기를 맞추는 기능을 제공합니다. -> 한번에 한 작업만을 허용하는 부분에 접근하여 잠금 또는 잠금해제를 제공하는 정수형 변수입니다.즉 A라는 프로세스가 특정 메모리에 접근을 하고있다면 B 및 C 프로세스들이 이 메모리에 접근을 못하도록 막아주는 기능을 하는 변수라고 생각하시면 편하겠습니다. 이 정수형 변수는 제공되는 함수를 통해 값을 변경할 수 있는데요. 잠금 함수는 p(), 해제 함수는 v()로 표시한다고 합니다. ● 세마포어 함수 (System V) -> 기본적으로 세마포어 함..