2024/09 19

직렬화(Serialization)/ 역직렬화(Deserialization) (feat. JSON, CSV, XML, YAML) 에 대해 알아보자

데이터 저장에 관해 공부하다 보니, 정리의 필요성을 느끼고 이렇게 글을 작성하게 되었습니다.파일들을 자세히 보면 다양한 파일 확장자명을 확인할 수 있었을 것입니다. 이러한 다양한 확장자가 생기게 된 이유는 무엇일까요?데이터의 저장 형식에 대해 설명하기에 앞서, 이를 이해하기 위해서는먼저 "직렬화(Serialization)"와 "역직렬화(Deserialization)" 개념을 알아야 합니다. 직렬화(Serialization) / 역직렬화(Deserialization)데이터를 인터넷으로 전송할 때, 컴퓨터가 이해하기 쉬운 텍스트 혹은 바이트 형태로 변환하는 과정으로 이해하시면 됩니다. 직렬화: 데이터를 보낼 때, 데이터를 텍스트/바이트 형태로 변환하는 과정입니다. 역직렬화:데이터를 받을 때, 직렬화된 내용을..

C# - 개념 정리 6 / 예외 처리 ( try -catch , finally, Throw ,사용자 정의 예외 ), LINQ / 면접 대비

개념정리 5에서 이어집니다.2024.09.27 - [C#/기초] - C# 개념 정리 5 / 인터페이스, 열거형, 델리게이트, 이벤트, 람다, 제너릭, Func, Action, Predicate / 면접 대비  예외 처리프로그램 실행 중에 발생하는 예기치 않은 오류를 관리하기 위한 방법 네 가지의 키워드 try - catch, finally,Throw,사용자 정의 예외 를 통해 예외를 처리할 수 있다. Try - CatchTry 블록 내 예외가 발생할 수 있는 코드를 작성하고, catch에서 이를 처리한다. catch 블록은 위에서부터 순서대로 실행되며,상속 관계에 있는 경우 상위 예외 타입의 catch 먼저 실행한다.Finally예외 발생 여부와 관계없이 항상 실행되는 코드 블록 코드 블록 = 특정한 동..

C#/기초 2024.09.27

C# 개념 정리 5 / 인터페이스, 열거형, 델리게이트, 이벤트, 람다, 제너릭, Func, Action, Predicate / 면접 대비

개념 정리 4에서 이어집니다.2024.09.25 - [C#/기초] - C# 개념 정리 4/ 상속, 다형성, out, ref / 면접 대비 인터페이스 클래스가 구현해야 하는 맴버 정의하는 것 인터페이스 특징 다중 상속 지원클래스가 인터페이스를 구현할 경우 모든 인터페이스 맴버를 구현해야 한다. 인터페이스 와 추상 클래스 차이? 인터페이스  메서드를 정의만 할 뿐 구현을 갖지 않는다.모든 맴버가 public 추상 클래스  일부 동작 구현을 가지며, 추상 메서드를 포함 할 수 있다.클래스이므로 단일 상속만 가능하다.  ※ C# 8.0부터는 인터페이스도 기본 구현을 제공할 수 있고, 정적 필드를 갖는 게 가능하다.   열거형서로 관련된 상수들의 집합을 정의할 때 사용열거형의 각 상수는 정수 값으로 지정된다. e..

C#/기초 2024.09.27

C# 개념 정리 4/ 상속, 다형성, out, ref / 면접 질문 대비

개념 정리 3에서 이어집니다.2024.09.24 - [C#/기초] - C# - 개념 정리 3 / 메서드, 구조체, 클래스, 객체 / 면접 질문 대비 상속(Inheritance)기존 클래스(= 부모클래스, 기본 클래스)를 확장하거나 재사용하여새로운 클래스(= 자식 클래스, 파생 클래스)를 생성하는 방식 상속의 장점 :코드 재사용성 용이계층 구조 표현유지보수성 향상상속의 종류 단일 상속(Single Inheritance) :하나의 클래스만 상속받는 것. C#에서는 단일 상속만 지원. 다중 상속(Multilevel InHeritance) :여러 개의 부모 클래스를 동시 상속 받는 경우. 다중 레벨 상속 (Multilevel Inheritance) :상속이 여러번 이어지는 경우   계층적 상속 (Hirarchi..

C#/기초 2024.09.25

C# - 개념 정리 3 / 메서드, 구조체, 객체, 클래스, 프로퍼티 / 면접 질문 대비

개념 정리 2에서 이어집니다.2024.09.23 - [분류 전체보기] - C# - 개념 정리 2 / 변수, 배열, 컬렉션, 박싱 & 언박싱 / 면접 질문 대비메서드 (Method) 특정 작업을 수행하기 위해 사용되는 독립적 기능 단위.클래스나 구조체에서 객체의 동작 정의.  메서드 역할 :코드 재사용성 용이:가독성 향상모듈화 추상화  추상화는 객체지향 프로그래밍(Object-Oriented Programming, OOP)의특징과도 이어지므로 아래 서술  메서드 구조  [접근 제한자] [리턴타입] [메서드 이름]([매개변수]) 형태 ex) public void Test(string a){ Console.WriteLine(a);}private int Test1(int a){ int sum = a + 1;..

C#/기초 2024.09.24

C# - 개념 정리 2 / 변수, 코드 컨벤션 , 배열, 컬렉션, 박싱 & 언박싱 / 면접 질문 대비

개념 정리 1에서 이어집니다. 2024.09.20 - [C#] - C# - 개념 정리1 / C# 특징 및 기초 /면접 질문 대비 리터럴(literal) :직접 사용되는 값. (메모리 위치 안에 저장되는 값)컴파일러에 의해 상수 값으로 처리된다. 변수 :데이터를 저장하고 사용하기 위해 할당받은 공간 int a // int 자료형 변수 선언키워드(Kewords) :변수명을 지을 때, 이미 용도가 정해져 있어 사용할 수 없는 단어들 ex) public, static, if 등  식별자(identifiers) :변수, 함수, 클래스 등에 사용되는 이름  코드 컨벤션 :코드 작성 규칙-> 가독성과 유지 보수를 용이하게 하기 위해 사용. 자주 사용되는 코드 컨벤션 파스칼 케이스 (PasCal Case) : 첫 글자..

C#/기초 2024.09.23

C# - 개념 정리 1 / C# 정의 및 특징 , GC , Dispose, 네임 스페이스, 값 참조 형식, Nullable , 주석 / 면접 질문 대비

오늘은 C# 내용을 정리하는 시간을 가질까 합니다.면접 대비 겸 자료를 찾다 보니 C# 개념들에 대해서도 자세하게 물어보더라고요.몰랐던 내용뿐만 아니라 아는 내용도 확실히 짚고 넘어가고자 이렇게 정리해 봤습니다.잘못된 부분이 있다면 댓글로 알려주시면 감사하겠습니다. + 정리를 위한 글이므로 내용은 언제나 수정/ 추가 될 수 있습니다. C#이란?마이크로소프트에서 만든 객체 지향 프로그래밍 언어로서.Net 프레임워크(이하 .NetFramework로 통일)에서 컴파일된다. -> .NetFramework : 마이크로소프트에서 개발한 프로그래밍 플랫폼 동작 순서  컴파일러로 Managed Code 컴파일 - > CIL -> CLR -> Machine Code 순으로 진행 Managed Code-> .NET Pla..

C#/기초 2024.09.20

부동 소수점 계산 시 정밀도 문제

0.1 + 1.2를 계산하면 얼마가 나와야 할까요?수학을 배웠다면 1.3이라고 답했을 겁니다.  하지만 실제로 컴퓨터를 통해 계산해 보면 아래와 같은 결과가 나옵니다. 1.3과 a+b의 값을 비교했을 때우리가 생각한 것과 다르게 false가 나왔습니다. 왜 이런 문제가 발생할까요? 컴퓨터는 2진법을 통해 계산을 합니다.이때 소수들의 경우 완벽하게 떨어지지 않는, 무한소수들이 존재하는데,정해진 메모리 공간 아래 무한한 자리수들을 표기 할 수 없으므로이를 처리하는 과정에서 오차가 발생하게 됩니다. 간단히 말하면 a에 정확하게 0.1이 저장된 게 아닌0.1과 가까운 값이 저장된 상태라고 이해하시면 됩니다.  그럼, 오차 없는 완벽한 계산은 못 하나요?  다행이도 이를 위해 언어마다 라이브러리를 제공하고 있습니..

알고리즘 2024.09.19

유니티 - '엑셀'과 연동 해보자#1 Excel-Importer 사용하기

오늘은 유니티와 엑셀을 연동하여,엑셀 내부 데이터를 가져와 사용하는 법에 대해 알아보고자 합니다.  이를 위한 확장 프로그램이 깃허브에 올라와 있습니다. https://github.com/mikito/unity-excel-importer  Code를 누르면 파일을 다운 받으실 수 있습니다.   사용 방법프로그램을 다운 받았다면 압축을 푼 후 내용을 유니티로 옮겨주면 됩니다.   이제 엑셀 파일을 만들어야겠죠? Dialog라는 엑셀 파일을 만들고, 다음과 같이 내용을 넣어주었습니다.시트의 이름은 NPC_Text라고 정해주었습니다.  엑셀의 1 행에 들어가는 내용은 나중에 변수명으로 사용되므로 반드시 영어로 작성해야 합니다.  엑셀을 유니티로 넣어 주었습니다.  이젠 엔티티 클래스 스크립트를 만들어야 합니다..

카테고리 없음 2024.09.19

유니티 - PlayerPrefs를 이용하여 데이터를 저장해보자

유니티에서 데이터를 저장하는 방식에는 크게 두 가지가 있습니다.PlayerPrefs와 JSON을 활용하는 방식인데요,그 중 오늘은 PlayerPrefs를 이용하여 데이터를 저장하는 방법에 대해 알아보고자 합니다. PlayerPrefs 사용법 PlayerPrefs는 유니티에서 제공하는 클래스로서,Key값과 value값으로 정보를 저장합니다. 아래는 이를 사용하는 예시입니다.playerPrefs.SetInt("key", 1); // "key"에 1 저장;playerPrefs.SetFloat("key1", 2.0f); // "Key1"에 2 저장;playerPrefs.SetString("key3", "예시"); // "Key3"에 "예시" 저장 playerPrefs.GetInt("Key"); // "Key"에..

유니티/공통 2024.09.13