목록전체 글 (74)
개발일기
에코 서버 구성 & 흐름 에코 서버란? 클라이언트가 전송해 주는 데이터를 그대로 되돌려 전송해 주는 기능의 서버를 뜻한다.다음은 서버와 클라이언트의 통신하는 순서를 나타낸 것이다. 서버접점을 구한다. (접점 = Ip 주소 + Port 번호) 리스너를(소켓) 생성하고 리스너에 접점을 바인드한다. (+ 최대 Listen 수도 설정)Listen을 시작한 이후, 접속한 클라이언트를 Accept하고 Session을 만들어서 대응시킨다. (세션 = 연결 정보)클라이언트에게 보낼 정보를 Send하거나 받은 정보를 Receive하여 처리한다.클라이언트클라이언트 소켓을 생성한다.접속할 접점 정보를 구하고 Connect를 시도한다.서버의 리스너에 의해 Accept되면 Send와 Receive를 하며 통신한다.서버와의 통신..
1. Link깃허브 주소 : https://github.com/kimchosungjun/Toy_2D_Shooting.git 플레이 영상 : https://youtube.com/shorts/aCYT8Qj98GM?feature=share - YouTube www.youtube.com 2. Issue- Limiter- Ranking- Boss Pattern- Infinite Scrolling 3. 설명1) Limiter 플레이어와 적 그리고 아이템이 화면 밖으로 나가지 않게 경계선을 제한하는 기능을 구현했습니다.초기에 Viewport의 최대, 최소 지점(경계선)을 지정하고 이를 World 좌표로 변환하였습니다. //ViewPort의 경계선을 World 좌표로 변환했습니다. [SerializeFie..
Foreach- 내부적으로 IEnumerator 인터페이스를 사용하므로, 특정 상황에서는 for문보다 약간 느릴 수 있다- 성능에 큰 영향을 주지 않는 씬이나 기능에만 제한적으로 사용하는 것이 좋다.- foreach는 컬렉션이나 배열을 순차적으로 탐색할 때 사용되는 반복문이다. Goto- goto는 프로그램 실행 흐름을 지정한 레이블 위치로 강제로 이동시키는 제어문이다- 흐름이 복잡해지고 유지보수가 어려워질 수 있어 일반적으로는 사용이 권장되지 않지만, 예외 처리 루틴이나 일부 성능 최적화에서 제한적으로 사용되기도 한다. * Goto와 Foreach는 치명적인 단점들이 존재하기에 적절한 곳에만 사용해야 한다. Const- 절대 값이 변하지 않는다.- 컴파일 할 때, 값이 결정되어야 한다. (컴파일러 입장..
닷넷 프레임워크- 마이크로 소프트에서 발표한 응용프로그램 개발 환경으로, 프로세스 가상 머신에 속함- 일반적인 네이티브 언어는 운영체제에서 곧바로 실행되지만, 닷넷 프레임워크 기반 응용프로그램은 닷넷 프레임 워크가 설치된환경에서만 작동- CLR(공용 언어 런타임)와 부가요소로 구성됨 Common Language Runtime- .Net Framework의 엔진 역할을 하는 핵심 구성요소- 보안, 코드 실행, 예외처리, 다양한 언어 지원, 메모리 관리(GC를 통해) .. 등을 담당- CLR(공용 언어 런타임)와 부가요소로 구성됨 C# 컴파일 프로세스1) C# 스크립트 작성 2) 컴파일러를 작동하면 IL, Meta Data로 컴파일 됨 (이 결과로 EXE, DLL 파일 생성)3) CLR이 EXE 파일을(어..
환경- 네이티브 환경 : C/C++이 속함. 메모리 할당과 해제를 직접 쌍으로 맞춰야 함- 관리 환경 : C#이 속함. 메모리 해제는 가비지 컬렉터가 담당값 형식과 참조 형식- 값 형식의 데이터는 해당 데이터의 값이 스택에 저장됨 (struct형 데이터)- 반대로 참조 형식의 데이터는 힙에 메모리를 할당 (class형 데이터) Null- c# 참조형 데이터에 null 값을 대입할 수 있도록 지원함- 참조형 데이터가 초기에 null이라면 참조형이지만 힙 영역에는 생성되지 않음 (별도로 생성하거나 대입하지 않으면 null로 설정)힙과 스택- 프로그램 실행 시, 코드는 메모리에 적재되고 CPU에 의해 하나씩 순차적으로 읽힘- 메모리는 코드와 데이터로 채워지고 힙과 스택은 데이터를 위한 메모리- 스레드는 스택 ..
정수형byte범위 : 0 ~ 255 (부호 존재하지 않음)8비트 (1바이트)sbyte범위 : -128 ~ 127 (부호 존재)8비트ushort범위 : 0 ~ 65535 ( 부호 존재하지 않음 )16비트 (2바이트)short범위 : -32768 ~ 32767 (부호 존재)16비트uint범위 : 0 ~ 4294967295 (부호 존재하지 않음)32비트 (4바이트)int범위 : -2147484648 ~ 2147483647 (부호 존재)32비트ulong범위 : 0 ~ 2^64-1 (부호 존재하지 않음)64비트 (8바이트)long범위 : -2^63 ~ 2^63-1 (부호 존재)64비트 - 값 형식의 자료형- 불연속적인 정수형 데이터실수형float범위 : -3.4 * 10^38 ~ 3.4 * 10^38 (정밀도..
1. App Script 구글 스프레드 시트의 ID를 이용하여 해당 Sheet의 정보에 접근하고 이용/갱신/추가하는 기능을 담당한다.Post와 Get을 주로 지원한다. 갱신,추가하는 기능을 사용해야 하므로 Post 기능을 위주로 구현했다.var sheetId = SpreadsheetApp.openById("Secret");var sheet = sheetId.getSheets()[0]; // 첫번째 sheet 정보를 불러온다.var cache = CacheService.getUserCache(); // 로그인 정보를 기록 (캐쉬해둔 정보는 6~12시간 뒤 소멸)var p; // wwwform의 정보를 기록var result, playerName, scoreValue; // 결과의 종류와 스코어를 저장한 변..
1. Link플레이 영상 : https://youtu.be/QpnbotcW4Ec 2. 구현한 기능1) 대화 시스템 구현아래는 구현한 대화 시스템 화면입니다. 선택지를 고를 수 있게 구현했으며, 대화 중에도 함수를 호출시켜 이벤트가 실행될 수 있도록 구현했습니다. Dialogue 데이터를 저장하는 클래스 형식을 만들고 Dial ogueManager에서 Json 파일을 읽어 Dialogue Class에 맞게 변환한 후 저장했습니다.대화를 진행할 때는 DialogueManager에서 해당 대화의 정보를 UI에 전달해 대화가 출력되도록 구현했습니다. 다음은 Dialogue System을 만드는 코드의 일부를 가져왔습니다.다음은 Json 데이터에서 불러오는 Dialogue Data Class들입니다.[Serial..