분류 전체보기 42

[C#] 리스트 (List)

1. C# List란?C#에서 List는 제네릭 컬렉션으로, C++에서 동적으로 크기가 조절되는 Vector와 유사합니다. List는 . Net의 ‘Systtem.Collections.Generic’ 네임스페이스에 속해 있으며, 다양한 데이터 타입을 저장하고 관리하는데 유용합니다.   2. 주요 특징제네릭 타입: 리스트는 제네릭 타입으로, 특정 타입의 데이터를 저장할 수 있습니다. 타입 안전성을 제공하여 컴파일 시간에 타입 오류를 방지할 수 있습니다.동적 크기 조정: 리스트는 내부적으로 배열을 사용하여 요소를 저장합니다. 리스트의 크기 조정은 다음과 같이 작동합니다. 1. 요소 추가 시 크기 조정: 리스트의 용량이 현재 요소의 수를 초과할 때, 새로운 요소를 추가하면 내부 배열의 크기가 두 배로 증가합니..

CS 공부 2024.06.16

[C#] 자료구조와 컬렉션

자료구조(Data Structure)자료구조란?자료구조는 컴퓨터 과학에서 데이터를 효율적으로 관리하기 위해 사용되는 다양한 방식과 체계입니다. 데이터의 조직, 관리, 저장 형식을 정의하며, 이를 통해 데이터에 빠르고 효율적으로 접근하고 조작할 수 있도록 합니다. 적절한 자료구조의 선택은 프로그램의 성능에 직접적인 영향을 미치므로 매우 중요합니다.  자료구조의 중요성1. 효율적인 데이터 관리: 자료구조는 데이터를 체계적으로 저장하여 관리의 복잡성을 줄이고, 데이터를 빠르게 검색, 삽입, 삭제할 수 있게 해줍니다.2. 성능 향상: 적절한 자료구조를 사용하면 프로그램의 성능이 크게 향상됩니다. 예를 들어, 배열과 링크드 리스트의 선택은 데이터 접근 속도와 메모리 사용량에 큰 차이를 가져올 수 있습니다.3. 코..

CS 공부 2024.06.11

CS 지식 강의 요약 정리본 1 (메모리, 대리자, 람다식)

제가 학원에서 강의를 들으며 간략하게 정리한 내용을 올립니다. 이 글을 보시고 도움이 됬으면 좋겠습니다!  new 키워드란?메모리를 동적할당 하여 생성하는 키워드구조체에 new키워드를 사용하면 구조체의 내의 변수들을 초기화한다.함수내의 변수들 중 참조타입은 주소의 크기(4byte)를 할당받고 값 타입은 변수크기만큼 할당한다.Dummy: 정수형 변수 4개를 가진 클래스(참조 타입이기에 주소의 크기만 할당)Coord: 정수형 변수 3개를 가진 구조체(값 타입이기에 변수의 크기만큼 할당)   RAM이란?저장장치, CPU간의 병목 현상 해소를 위해 CPU에서 필요한 데이터를 미리 적재해 놓는 공간실행하려는 프로그램의 인스턴스를 만들어서 올려놓고 연산에 필요한 데이터를 찾기위해 컴퓨터에 있는 전체 프로그램을 탐색..

CS 공부 2024.05.27

[Unity]뒤끝 4 (서버 데이터 불러오기)

저번에는 뒤끝 서버와 연결해 유저 정보를 저장시키는 기능을 구현했었습니다. 이번 글에선 로그인 후 게임내 데이터를 불러오는 기능을 구현해 보도록 하겠습니다. 데이터 불러오기 구현 1. 엑셀을 켜 아래와 같이 작성 후 CSV 파일로 저장합니다. 2. 뒤끝 홈페이지에 접속, 로그인 후 차트 탭을 클릭합니다. 3. 상단의 차트 파일 업로드를 클릭후 1번에서 작성했던 CSV파일을 엽니다. (CSV파일 첫번째 줄에는 대, 소문자 영문, _만 입력할 수 있습니다.) 4. 차트에 등록된 것을 보실 수 있습니다. 다음으로 저번까지 작성했던 유니티 파일을 엽니다. 저번과 이어서 작성을 해보겠습니다. 전체 코드는 최하단에 작성해놓았으니 참고하시면 되겠습니다. 5. BackendManager.cs에 아래와 같이 함수를 추가..

뒤끝 2024.02.29

[Unity] 카메라 이동(드래그)

안녕하세요. 이번 시간엔 마우스 및 화면 터치 & 드래그로 카메라, 오브젝트를 이동하게 하는 방법에 대해 작성하고자 합니다. 먼저 카메라 및 오브젝트들을 임의의 위치로 생성합니다. 다음 CameraController.cs 를 생성합니다. CameraController.cs using UnityEngine; public class CameraController : MonoBehaviour { [SerializeField] private GameObject _camera; [Tooltip("드래그 하여 이동할 거리 비율")] [SerializeField] private float _moveRate; private Vector3 _tmpClickPos; private Vector3 _tempCameraPos;..

Unity 공부 2024.02.04

[Unity] 컷 아웃 마스크(Cutout Mask)

Unity에서 특정한 이미지 모양만 보이도록 하기 위해 찾다가 발견한 영상입니다. 원본 링크: https://youtu.be/XJJl19N2KFM 코드 CutoutMaskUI.cs using UnityEngine; using UnityEngine.UI; using UnityEngine.Rendering; public class UICutoutMask : Image { public override Material materialForRendering { get { Material material = new Material(base.materialForRendering); material.SetInt("_StencilComp", (int)CompareFunction.NotEqual); return mater..

Unity 공부 2024.01.24

[Unity] 뒤끝 3 (데이터 저장)

저번에는 뒤끝 서버와 연결하여 회원가입, 로그인 기능까지 구현해 봤습니다. 이번 글에선 로그인 후 게임내 데이터를 서버에 저장시키는 기능을 구현해 보도록 하겠습니다. 데이터 저장 구현 1. 뒤끝 홈페이지에 접속, 로그인 후 게임 정보 탭을 클릭합니다. 2. 상단의 테이블 생성을 클릭합니다. 클릭하면 나오는 테이블 생성 창에서 테이블 명을 기입 후 확인 버튼을 눌러 주세요. (유니티 내에서 테이블 명으로 테이블을 찾습니다.) 3. 이전에 작업했던 프로젝트를 켠 후, BackendManager.cs를 아래와 같이 수정합니다. 설명은 아래 코드에 주석으로 해놨습니다. using BackEnd; using System; using UnityEngine; public enum BackendState { Failu..

뒤끝 2024.01.18

[Unity] 뒤끝 2 (로그인)

저번 글에서는 뒤끝과 유니티를 연동하는 방법에 대해 알아봤습니다. 연동은 완료되었지만 뒤끝과 데이터를 주고받기 위해선 뒤끝에 로그인이 되어야합니다. 이번 글에서는 로그인을 할 수 있도록 진행해보겠습니다. 로그인 구현하기 1. Canvas를 생성 후 아래와 같이 UI를 넣어줍니다. 2. 스크립트를 하나 생성하고 아래와 같이 코드를 입력합니다. using BackEnd; using UnityEngine; using UnityEngine.UI; public class LoginManager : MonoBehaviour { [Tooltip("아이디 입력 필드")] [SerializeField] private InputField _idInput; [Tooltip("비밀번호 입력 필드")] [SerializeFie..

뒤끝 2024.01.16

[Unity] 뒤끝 1 (연동)

뒤끝 서버란? AFI에서 AWS 인프라를 바탕으로 개발한, 자동 완성형 게임 서버 관리 시스템 클라우드 서버의 한 종류인 BaaS, 그 중에서도 GBaaS(게이밍 BaaS)로, 별도의 개발 없이 간단히 API만 붙여 사용할 수 있는 것이 특징입니다. 명칭은 서버를 뜻하는 IT 용어 백엔드(backend)를 한글로 직역한 것 back(뒤)+end(끝) 특징 게임 개발(비동기, 실시간), 게임 운영, 지표 분석 툴을 모두 제공 필요한 단일 기능을 선택적으로 구현할 수 있어, 클라우드 서비스 특유의 종속성으로부터 비교적 자유 서버 개발이 어렵거나 개발 리소스가 부족한 인디게임 개발자도 쉽게 사용 가능 유니티(Unity)연동 지원 멀티 플레이 게임을 위한 실시간 채팅, 매칭 기능을 제공 기능 실시간 채팅 채팅 ..

뒤끝 2024.01.14

동기와 비동기 방식[블로킹과 논블로킹]

동기란? 요청과 결과가 동시에 진행 요청중인 경우 요청받는 함수의 작업이 완료되었는지 계속 확인 설계가 간단하고 직관적 비동기란? 요청과 결과가 동시에 진행X 연관 되어있는 함수들이 서로 언제 시작하고, 언제 일을 마치는지 서로 신경쓰지 않는다. 요청을 받는 함수가 완료되었는지 여부를 알아서 알려주는 방식 요청중인 경우 결과 값을 바로 응답받지 않아도 된다. 동기 방식에 비해 설계가 복잡 블로킹이란? 요청(부모함수)는 요청한 작업이 끝날 때까지 다른 작업을 하지않고 대기 (그 동안은 모든 일이 중지) 다른 함수를 호출할 때, 제어권도 넘겨주고 작업이 끝난뒤 돌려받는다. 요청받은 함수는 모든 실행을 마치고 최종 return 값을 돌려준다. 논블로킹이란 ? 요청자는 요청한 작업이 수행되는 동안 다른 작업 가..

네트워크 공부 2023.12.25