전체 글 493

[Oracle] Oracle 11g에서 MS-SQL DB Link 생성하기

네이버든 구글이든 Oracle에서 MS-SQL DB Link 생성하기는 Oracle 10g를 기준으로 작성된게 거의 대부분 입니다. 간단히 될줄 알았던게 다음과 같은 에러를 발생 시키더군여.. ********************************************************************* Link : "SRCMSSQL" Error : ORA-28545: 에이전트에 접속할 때 Net8에 의해 진단된 오류 Unable to retrieve text of NETWORK/NCR message 65535 ORA-02063: 2 lines가 선행됨 (SRCMSSQL로 부터) ***************************************************************..

DB/Oracle 2023.01.03

[C#] ? ?? 연산자

이전 포스팅에서는 숫자형과 불리언 타입의 변수에 null을 대입할 수 있는 Nullable 타입을 소개했습니다. 이번 포스팅에서는 null과 관련된 연산자들을 정리합니다. 목차 ?? 연산자 ??= 연산자 ?. 연산자 ?[] 연산자 ?? 연산자 피연산자가 null이 아닌 경우 왼쪽 피연산자의 값을 반환합니다. 피연산자가 null일 경우에는 오른쪽 피연산자의 값을 반환합니다. a ?? b; a가 null이면, b가 반환됩니다. a가 null이 아니면 a가 반환됩니다. ?? 연산자 사용 방법 int? a = null; // a가 null이므로 오른쪽 피연산자(29)가 반환됩니다. int b = a ?? 29; Console.WriteLine(b); 실행 결과 ??= 연산자 왼쪽 피연산자가 null일 경우 오른..

VisualStudio/C# 2023.01.03

[C#서버] 실시간 서버 만드는 법 예제

지난 포스팅에서 패킷을 만들고, 클라이언트에서 패킷을 전송하는 것에 대해 살펴봤다. 이번에는 서버에서 그 패킷을 받아 응답하는 것을 하려고 한다. 2019/12/17 - [게임을 만들자/C# 서버] - c# 실시간 게임 서버 만들기 1 - 패킷 2019/12/19 - [게임을 만들자/C# 서버] - c# 실시간 게임 서버 만들기 2 - 클라이언트 1. 유저 접속 대기 서버 프로그램을 시작하면 우선적으로, 서버 소켓을 열고, 그 소켓에서 유저의 접속을 받는 것이다. 아래 코드에서 start함수부터 살펴 보면 된다. 유의할 점은, 유저 접속을 기다리는 부분이 메인 스레드가 아닌 서브 스레드에서 일어난 다는 것이다. '왜?'라는 생각이 들 수 있는데, 나는 [접속, 로직, db, http통신] 등에 대해서는 ..

[C#] 구조체 메모리 절감

들어가며 C++에 익숙한 사용자라면 class와 struct의 차이라고 해봐야 멤버에 대한 기본 접근한정이 private이냐 public이냐 정도차이 라고 알고 있을 것이다. 하지만 C#에서는 class와 struct의 차이가 매우 크다. 이 포스트에서는 C#에서 struct와 class에 대한 차이를 설명하고 struct를 이용해 많은 메모리를 절약한 시나리오에 대해 알아 보도록 하겠다. 메모리의 타입(유형) 코드에서 객체를 생성할 때 마다 객체는 어느 정도의 메모리를 필요하게 된다. 객체에 대한 메모리는 사용 중이 아닌 영역에 할 당되어야 하며, 이 할당 되어야 하는 메모리는 크게 '스택'과 '힙'이라는 두 가지 종류가 있다. 본론에 들어가기 앞서 이 두가지 유형의 메모리에 대해 간단히 살펴 보도록 ..

VisualStudio/C# 2023.01.03

[IT지식] OPCUA & CA

OPCUA 서버와 클라이언트를 개발하고 나서 관련 강의를 들으러 다니다 보니 실제 현장의 요구 만큼의 교육을 받기가 힘들어서 블로그에 글을 남겨보려고 합니다. 이런 분들에게 도움이 되길 바랍니다. - PLC 데이터를 상위시스템에서 받고 싶은 엔지니어 - 상위시스템 개발시 PLC와 인터페이스 하는법에 대해서 궁금한 개발자 - 스마트공장을 위해 아키텍처를 구성해야 되는 관리자 등등 간단한 프로그램 소스와 구조에 대해서도 여력이 된다면 적어보겠습니다. 제가 기술한 내용들은 제가 경험한 특정 케이스에 대한 내용이니 보고 현장에 맞게 응용해서 이해하시면 됩니다. 기본적으로 아주 쉽게 설명할 수 있도록 최대한 노력하겠습니다! 1. OPC 란 무엇인가? OPC(OLE for Process Control) 의 약자입니..

IT지식 2022.12.27

[IT지식] 시계열 데이터베이스

종류 1 - InfluxDB(인플럭스DB) 2 - 마크베이스(국산) 1. 시계열 데이터베이스(TSDB, Time Series Database) 란? [ 시계열 데이터(Time Series Data) 란? ] Time-Stamped Data라고도 불리는 Time Seriese Data(시계열 데이터)는 시간에 따라 저장된 데이터를 의미한다. 시계열 데이터들은 동일한 소스로부터 시간이 지남에 따라 만들어진 데이터들로 구성되므로 시간 경과에 따른 변화를 추적하는데 용이하다. 다소 어렵게 느낄 수 있지만 Time Series Data는 어디에나 있는 데이터이다. 예를 들어 어떤 집안의 온도들부터 경제 지표, 환자의 심장 박동수나 회사의 주가 등과 같은 모든 것들이 시계열 데이터가 될 수 있다. 그 뿐만 아니라 ..

IT지식 2022.12.27

[IT지식] EAI 시스템

EAI란 무엇인가? [그림 1] EAI (출처 : TIBCO) EAI(Enterprise Application Integration)은 말 그대로 기업 애플리케이션 통합이다. EAI는 데이터를 교환하고 제공하는 서비스를 호출하여 기업 내 어플리케이션애플리케이션 사이의 통신을 제공하는 프로세스이다. EAI가 애플리케이션을 통합하고 서로 통신을 보장하면 비즈니스를 새롭고 혁신적인 방식으로 운영할 수 있다. 쉽게 말해, 기업 내의 다양한 어플리케이션들이 서로 상호 작용하기 쉽게 도와주는 솔루션이 EAI라고 생각하면 된다. EAI의 등장 배경 전통적인 비즈니스 환경에서 어플리케이션들은 별도의 비즈니스 단위 혹은 기능 내에서 서로 독립적으로 동작하고 사용하는 데이터를 잘 공유하지 않았다. 따라서 이러한 방식은 비..

IT지식 2022.12.27

[C#][개념] 제네릭 클래스

제네릭 클래스(Generic Class)란? 제네릭 클래스(Generic Class)는 클래스 내부의 멤버 변수의 데이터 타입을 일반화한 클래스입니다. 특정 타입에 국한되지 않고 모든 타입을 멤버 변수의 타입으로 설정할 수 있습니다. 제네릭 클래스를 사용하지 않고 멤버 변수의 타입을 object 타입으로 정의할 수 있지만, 안전한 방법이 아니며, 향후 문제가 발생할 가능성이 높기 때문에 좋은 방법은 아닙니다. 이번 포스팅에서는 일반 클래스로 멤버 변수의 타입이 여러개인 경우와 제네릭 클래스(Generic Class)에 대해 정리하였습니다. 목차 일반 클래스의 문제점 제네릭 클래스(Generic Class) 정리 일반 클래스의 문제점 public class IntClass { public int intMe..

VisualStudio/C# 2022.12.02

[Unity] 클라이언트 기본구조 작성 순서

사용 예상 폴더 생성 Managers Script생성 전체적인 모든 Manager class관리 싱글톤 구현 Init()에서 자식 Manager들 초기 세팅 Init()에서 Manager 오브젝트 생성 및 Manager 컴포넌트 연결 Clear()에서 모든 자식 Manager들 초기화 Popup UI 오브젝트 생성 및 Script 생성 오브젝트와 Script는 이름을 똑같이 맞춰준다.(Prefab자동화때 Script컨포넌트로 생성하기 위해) Dictionary - Bind하여 오브젝트를 저장할 공간으로 사용 Dictionary _objects = new Dictionary(); Bind - Enum에 등록된 UI오브젝트 자식 명칭과 Type으로 자식 오브젝트를 찾아 Dic으로 관리한다. void Bind..

Unity 2022.11.29

[C#서버] 서버 개발 순서

DNS부터 SEND 블록킹 방식으로 작성 Listener생성 Accept 논블록킹 Session생성 Recv 논블록킹(SetBuffer 초기값 생성) Send 논블록킹 (sendqueue, pandinglist, lock) Disconnected작성 (Interlock) Session클래스 abstract class로 변경 Onsend, OnRecv, OnConnected, OnDisconnected 구현 Listener AcceptComp를 Func로 Session을 생성하게 수정 Connector생성 Connect논블로킹 RecvBuffer생성 SegmentBuffer, writPos, readPos, FreeSize, DataSize, ReadBuffer, WriteBuffer 구현 Session클..

[Unity] 카메라이동(줌인, 줌아웃, 마우스회전, 마우스이동, 방향이동)

특정위치 변환 SetPositionAndRotation Camera.main.transform.SetPositionAndRotation ( new Vector3(-6.6f, 273.3f, 44.1f), Quaternion.Euler(80.823f, 90.16f, -0.062f) ); 조작이동 기능 마우스 휠 카메라 줌인 줌아웃 마우스 오른쪽 드레그로 카메라 회전 마우스 왼쪽 드레그로 앞뒤좌우 카메라 이동 키보드 1, 2, W,A,S,D 카메라 이동 using UnityEngine; public class CameraController : MonoBehaviour { [SerializeField] float _zoomSpeed = 300f; [SerializeField] float _zoomMax = 20..

Unity 2022.11.17