[React] 리액트 시작!
·
etc/React
JavaScript에 대한 왠지모를 거부감이 있었는데 최근에 웹개발에 흥미가 생겨서 React를 공부해보려 한다. js에대한 지식이 아예 없기 때문에 처음부터 천천히 다져나가면서 정리해보겠다!
[C#] switch 제어문
·
etc/C#
switch 제어문은 거의 모든 프로그래밍 언어에 들어있는 기초적인 제어문이다. 우리의 특별한 C#은 switch제어문에서 조금 더 특별한 기능을 제공한다. switch 제어문의 원형 int num = 1; switch(num) { case 1: Console.WriteLine("One"); break; case 2: Console.WriteLine("Two"); break; case 3: case 4: Console.WriteLine("Three or Four"); break; default: Console.WriteLine("Out Of Range"); break; } One 이때 switch의 조건식으로는 모든 데이터 타입이 올 수 있다. 모든 객체의 조상인 object도 넣을 수 있다. objec..
[C#] 문자열 보간(Interpolation)
·
etc/C#
문자열 보간? 처음 봤을 때 뭔 느낌인지 몰랐다. 영어로 하면 Interpolation인데 더더욱 모르겠다. C#에서 문자열을 나타내는 방법 보통 많은 사람들이 알고있는 방법으로는 int a = 3; int b = 4; Console.WriteLine("{0} + {1} = {2}", a, b, a+b); 이렇게 문자열을 나타낸다. { } 안에 들어올 변수들의 순서를 넣은 다음, ,를 통해 실제 순서에 맞게 매칭해주면 된다. 문자열 보간을 사용하면 비슷한 방식이지만 가독성을 높일 수 있고 디버깅에 용이하게 바꿀 수 있다. int a = 3; int b = 4; Console.WriteLine($"{a} + {b} = {a+b}"); 위의 예제와 같이 { }를 통해 문자열을 나타낸다는건 동일하지만 "" 문..
[C#] Property(프로퍼티), C#만의 특별한 기능
·
etc/C#
C# 공부를 하면서 처음으로 당황했던 부분 맨 처음에는 이게 변수인지 함수인지 정체를 몰라서 당황했었다 Property에 대한 얘기를 본격적으로 하기 전에, OOP에서 자주 볼 수 있는 getter / setter 패턴에 대해 알아보자 getter / setter 란? OOP를 공부하다 보면 캡슐화, 은닉화, 등등 추상적인 얘기를 많이 듣는데 도대체 언제 어떻게 쓰이는건지는 알려주지 않아 뜬구름잡는 얘기같다는 생각이 들때가 있다. 그중 getter / setter 패턴은 클래스의 필드에 접근하도록 도와주는 기능을 하는 패턴이다. 보통 OOP의 규칙에 따라 특별한 이유가 없는 한 클래스의 필드는 private로 지정한다. OOP를 지향하는 C#에서는 접근 제한자를 설정하지 않으면 기본적으로 private로..
[C#] Null-Safety를 지원하는 C#
·
etc/C#
JAVA는 Null Safety를 지원하지 않는다. C#이나 코틀린등은 이와 반대로 Null Safety를 지원한다. Null-Safety란? 아마 코딩을 하다보면 한번쯤은 Null Pointer Exception(NPE)을 겪어보았을 것이다. NPE는 null인 object에 접근해서 필드를 가져오거나 메소드를 호출할 때 생기는 에러이다 당연히 object가 null이므로 런타임에 우리가 원하는 대로 동작을 할 수 없어 Exception을 뱉는것이다. NPE는 정말 까다로운 에러로 디버깅하기가 무척 힘들다. 이러한 NPE를 해결하기 위해 C#은 Null-Safety를 지원한다. Null-Safety를 이해하기 위해서는 Nullable 형식을 이해해야 한다. Nullable 우선 Nullable은 값 형..
[Unity] VS에서 Unity 메세지 띄우는 법
·
etc/Unity
제목이 조금 이상해 보일 수 있는데 이 창을 띄우고 싶어서 열심히 구글링을 해보았지만 부족한 나의 구글링 실력때문인지 해결하지 못했다. 그러다가 우연히 발견! 도구 - 옵션 - 텍스트 편집기 - 모든 언어 - Code Lens - Code Lens 사용에 체크하면 끝!
[C#] Lambda Expression(람다 식) 이란?
·
etc/C#
C#을 비롯한 여러 언어들에서 람다 식을 지원하는데 이 람다 식이란 과연 무엇일까? 람다식의 기본 원형은 다음 두가지가 있을 수 있다. (parameter) => expression (parameter) => { statements }; 이렇게만 봐서는 전혀 모르겠으니 아래를 보자 람다 식은 도대체 뭘까? 람다 식을 보다 정확하게 이해하려면 우선 delegate(대리자)에 대해 알아야 한다. delegate에 대해 설명하는 글은 여기에 있다. // 링크 글을 읽었다 가정하고, delegate를 이용해 익명 메소드를 전달하는 방식 중 제일 단점은 매번 delegate라는 키워드로 함수를 감싸줘야 한다는것이다. 이 불편함을 해소하고자 Lamda Expression이 나오게 되었다. 람다식은 익명메소드의 완벽..
[Unity] 코루틴, Coroutine이란?
·
etc/Unity
C#과 JAVA의 차이점중에 하나인 코루틴, C#에는 코루틴이 있지만 JAVA에는 코루틴이 없는걸로 알고있다. 그럼 코루틴이란 정확히 무엇일까? 일반적으로 어떤 함수(루틴)를 구현할 때 return을 넣어 함수가 종료될 때를 정하게 된다. void Func() { print("A"); print("B"); return; } 위 함수를 호출하면 순차적으로 A를 출력하고 B를 출력할 것이다. return을 만나게 되면 제어권을 호출자에게 넘겨주게 되는데, 문제는 호출자는 Func()가 return 해주기를 하염없이 기다려야 한다는 것이다. 만약 Func()가 서버에서 데이터를 로드하는등 시간이 오래걸리는 작업이라면 사용자는 프로그램이 멈춘듯한 느낌을 받을 수 있다. 이것은 동기 프로그래밍의 단점인데, 이를 ..
Serialization(직렬화)란?
·
etc/CS
Serialization은 객체를 저장하거나 메모리, 데이터베이스 또는 파일로 전송하기 위해 개체를 바이트 스트림으로 변환하는 프로세스이다. 주 목적은 필요할 때 다시 객체로 만들 수 있도록 객체의 상태를 저장하는 것. 게임을 예로 들자면 유저가 어떤 stage를 clear하고 나면 - 해당 stage name - 걸린 시간 - 얻은 점수 - 얻은 아이템 - 기타 여러 정보들... 등등이 게임상에 남아있을것이고 이를 기록하기 위해 local이든 server든 어떤 정해진 형태로 저장을 해놓아야 할것이다. 이때 특정 형태로 데이터들을 json이나 xml 혹은 byte 스트림 형태로 바꿔주어 객체화 및 저장 가능하게 만들어 주는것이 Serialization이다. 웹통신을 하는 게임이라 가정하고 웹통신에 유리..