'전체 글'에 해당하는 글 1053건

C# 순수주의

프로젝트 2023. 5. 20. 03:35

 

 유니티가 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와 멀어지는듯 싶다. 

https://try.fsharp.org/

 

Try F#

 

try.fsharp.org

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
아이고이아

,

재취업했다

프로젝트 2023. 5. 19. 18:03

 

 6개월 이상 근무 후에 6천을 받기로 했다. 결국 처음 생각했던 목표를 이루었다. 

 가서 기존 코드를 리펙토링 하고 새 신규 프로젝트를 진행하는 걸로 가닥이 잡혀있다. 

 주니어들 교육 업무도 맡기로 했다. 이거는 C나 자바스러운 C#을 탈피하고 F#에 가까운 최신 방식으로 코딩하는 법을 전수해 주면 될듯 싶다. 

  F# 특징중에 하나는 적은 문법 요소를 이리저리 돌려서 뭐든 가능하는 거다. 간결하다. 

https://try.fsharp.org/

 

Try F#

 

try.fsharp.org

 

'프로젝트' 카테고리의 다른 글

네트워크 게임 유니티 도전  (0) 2023.05.20
C# 순수주의  (2) 2023.05.20
이번주 쉽지 않았다  (0) 2023.05.18
컴포넌트 패턴을 사용해서  (0) 2023.05.18
코딩 테스트에서 발목을  (0) 2023.05.17

WRITTEN BY
아이고이아

,

 

 순탄하게 흘러갈줄 알았는데 코딩테스트를 못넘었다. 그저께는 전화 받을때 해드헌터가 전화 건줄 알고 실수까지 했다. 

 최근에 느낀건데 난 유니티를 벗어나면 개발이 안되는 사람이였다. 게다가 C#에 전반부 문법도 모르고 있다는 사람이더라. F#과 유사한 후반부 문법만 알고 있다는 생각이 들었다. 

 

'프로젝트' 카테고리의 다른 글

C# 순수주의  (2) 2023.05.20
재취업했다  (0) 2023.05.19
컴포넌트 패턴을 사용해서  (0) 2023.05.18
코딩 테스트에서 발목을  (0) 2023.05.17
큰 실수를 했네  (0) 2023.05.16

WRITTEN BY
아이고이아

,

 

 방금 풀어본 문제를 컴포넌트 패턴을 사용해서 비주얼 하게 구현을 해보도록 한다. 

 타일을 만드는 요소는 스템프나 베이스나 동일하기 때문에 이렇게 함수로 만들어 놓고 같다 붙이기만 하면 작동하도록 만든다. 

 마찬가지로 각각의 큐브에는 각각 큐브 스크립트가 붙는다. 이런식으로 유니티를 개발하는 대부분 일어나는 일들이 컴포넌트 패턴을 의미한다. 

 다시 만들어 본다. 

 코드에서 얻은 결과값과 큐브에서 레이케스트를 쏴서 얻은 결과값이 같은지 비교를 해봐야 겠다. 그래야 맞게 풀었는지 알수가 있을꺼 같다. 

 데이타를 취합해 보니 이동전 값은 30으로 같은걸 알수가 있다. 

 이제 코루틴을 이용해서 큐브를 움직여 보는걸 만들어 보면 될듯 싶다. 

 요렇게 삐져 나가지 못하게 하면 될듯 싶다. 

 366이다. 먼가 실수가 있는듯 싶다. 

 초기 세팅을 해줘야 하는 거였다. 

 완료다. 

'프로젝트' 카테고리의 다른 글

재취업했다  (0) 2023.05.19
이번주 쉽지 않았다  (0) 2023.05.18
코딩 테스트에서 발목을  (0) 2023.05.17
큰 실수를 했네  (0) 2023.05.16
포트폴리오  (0) 2023.05.15

WRITTEN BY
아이고이아

,