유니티가 7.0까지 지원을 하니 거기까지 역사를 보자면 4.0이전은 C에서 연유한 특징이 많이 보이고 그 이후에는 마이크로소프트에서 새로 만든 F#에 문법적인 특징을 따라가는 경향을 보인다. 게다가 자바를 많이 모방하였고 Linq라는 새로운 방식도 도입했었다. 덕분에 C#에 특징 중에 하나가 같은 기능을 하는 중복된 문법이 많아 번잡하다는 거다.
F#에 경우에는 최소한의 문법으로 최대한에 구현을 한다는 특징을 가지고 있다. 문법을 돌려가면서 이것저것 구현을 할수 있도록 만들어 두었다. 따라서 후반부에 F#스러운 문법으로 초반부 C라이크 문법을 대체를 할수가 있다.
그래서 F#과 C#을 비교해가며 C#에서 쓸 문법만 추리고 있는 중이다. 무언가를 더하는 거보다 빼는게 중요한 법이다. 나는 C# 순수주의를 지향한다.
현업에서 이거에 대해서 이야기 하면 C#이 F#화 하는 것에 대해서 부정적인 의견이 있다. 특히 과거 C를 했던 사람들이 우려를 표하는 경우가 많더라. .net 진영의 최근행보에 다들 불만이 많다.
특히 F#에 경우에는 성능이 C에 미치지 못하며 컴퓨터 공학에 기본 개념을 학습하기가 어렵다. F# 문법은 보다 인간에 언어에 가깝게 고안이 되어 있고 컴퓨터 공학적인 이해를 돕는 것은 대부분 언어에서 은패되어서 해결을 하도록 처리가 되어 있는 편이다. 때문에 성능적인면에서 손해를 본다.
근데 컴퓨팅 파워가 점차 늘어나고 있는 경향이 있기 때문에 성능적인 부분은 크게 문제가 되지 않는 경우가 많다. 실재로 실무에서 작업을 해보면 코드를 고치는 것보다 셰이더를 수정하는게 더 최적화에서 실질적인 이점을 가져간다. 현업에서는 언어 자체가 더 쉬워 져서 주니어들이 보다 더 쉽게 1분을 할수 있는게 더 절실하더라.
나는 .net진영의 행보에 찬동하는 입장이고 그런 의미에서 C#의 후반부 문법을 중점적으로 연구를 할 생각이다. 회사 나갈때까지 10일 정도 시간이 비기 때문에 이거 하면서 시간을 때우면 될듯 싶다. 먼가 C#인데 C와 멀어지는듯 싶다.
F#에 문법은 여기서 확인을 해볼수 있다.
서두가 길었다. 바로 시작하자. Foreach를 그동안 in 이렇게 썼는데 화살표 함수를 사용하는 방식으로 바꿀 생각이다.
요것도 문법이 좀 바꼈는데 자바식에 get set return하는 문법이 => 로 바꿨을 꺼다. 이 방식이 더 깔끔하다. F#도 같은 방식일꺼다. 문득 그런거 보면 F#이 화살표 함수를 많이 쓰는듯 싶다.
=>로 막으면 읽어오기는 되는데 재정의가 안되는걸 볼수가 있다. 편리한 기능이다.
F# 샆에서는 Switch Case가 아닌 패턴매치라는 방식으로 문제를 해결한다. 그거를 C#에서도 도입을 해서 이런식으로 자동완성을 해준다. 여기도 화살표 함수가 사용이 된다.
패턴매치를 밖에서 쓰면 static을 해주라고 한다. 근데 이거는 먼가 복잡한 방식으로 보인다.
이게 더 훨씬 깔끔한듯 싶다.
true false를 반환하는 거는 더 간단하다.
이게 더 간단하기 때문에 두개일때는 if else를 쓰도록 해야 겠다. 3개 이상일 때만 저 방식을 써야 할듯 싶다.
이것도 불필요한 사족을 없애고 정리를 해야 겠다.
하나 하나 제거해 가도록 한다.
하는 김에 여기 코드도 제거한다.
'프로젝트' 카테고리의 다른 글
넷코드 초회차 도전 (0) | 2023.05.21 |
---|---|
네트워크 게임 유니티 도전 (0) | 2023.05.20 |
재취업했다 (0) | 2023.05.19 |
이번주 쉽지 않았다 (0) | 2023.05.18 |
컴포넌트 패턴을 사용해서 (0) | 2023.05.18 |
WRITTEN BY