분류 전체보기 44

[C#] 딕셔너리 (Dictionary)

딕셔너리란?C#의 Dictionary 자료구조는 키와 값의 쌍의 데이터를 저장하는 제네릭 컬렉션입니다.이 자료구조는 System.Collections.Generic 네임스페이스에 포함되어 있으며, 키를 사용하여 값을 효율적으로 검색할 수 있습니다.  주요 특징 및 기능1. 키-값 쌍 저장:딕셔너리는 키와 값의 쌍을 저장합니다. 각 키는 고유하며, 중복될 수 없습니다.값은 중복될 수 있지만, 키는 유일해야 합니다. 2. 빠른 검색 속도:딕셔너리는 해시테이블을 사용하여 내부적으로 데이터를 저장하므로, 평균적으로 O(1)의 시간 복잡도로 키를 사용한 값 검색이 가능합니다. 3. 제네릭 타입 지원:Dictionary는 제네릭 타입을 지원하여, 타입 안정성과 성능을 보장합니다.예: Dictionary, Dicti..

CS 공부 2024.06.21

[Unity] 재사용 스크롤 뷰(Recyclable Scroll View)

수정된 설명과  코드, 이미지를 추가하여 새롭게 글을 작성했습니다.재사용 스크롤 뷰의 경우 이곳에서 확인해주세요. https://unity-programming-study.tistory.com/51   재사용 스크롤 뷰(Recyclable Scroll View)란?유니티에서 재사용 스크롤 뷰(Recyclable Scroll View)는 많은 수의 아이템을 포함하는 스크롤 리스트를 효율적으로 관리하기 위한 기법입니다. 이 기술은 메모리 사용량을 줄이고 성능을 향상시키기 위해 사용됩니다. 1. 재사용 스크롤 뷰의 개념일반적인 스크롤 뷰에선 리스트에 있는 모든 아이템을 UI 요소로 생성합니다. 만약 수백 개 이상의 아이템이 있는 경우, 모든 아이템을 한 번에 생성하면 많은 메모리와 CPU자원을 소모하며 버벅임..

Unity 공부 2024.06.18

[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