본문 바로가기
728x90

게임개발자43

[Pattern] Managed code, UnManaged code, Dispose 패턴 [2022. 03. 07. Mon] ※ 개인 학습 기록용입니다. 개념이나 예시가 잘못 되었을 수도 있음을 주의드립니다. 만약에 그러한 점이 발견되었다면 조언 및 첨삭 감사히 부탁드리겠습니다 :) ■ 개념 여러가지 뜻이 존재하지만 위 패턴에서 사용되어지는 개념은 Dispose : 처분하다, 처리하다. 이다. able이 붙은 Disposable은 처분 가능하다는 뜻인데 무엇을 처분하는 것인지를 먼저 이해를 해야 사용할 수 있다. https://docs.microsoft.com/ko-kr/dotnet/api/system.idisposable?view=net-6.0 (참고 자료) 바로 메모리를 관리하는 패턴인데. 처음에 해당 자료를 봤을 때는 'C#에는 .NET Framework안에서 자동으로 리소스를 관리해주.. 2022. 3. 7.
[Block_chain] Typescript(6) 블록체인 구현 - IsValid 체크 [2022. 02. 06, Sun] ▼ 블록 생성이 가능한지를 판단하는 boolean 리턴 타입의 함수이다. 강좌 따라 작성해봤다. 1. 구조가 같은지 체크 2. 인덱스가 이전 보다 +1 되었는지 체크 3. 새로 add될 블록이 prevBlock의 Hash값을 제대로 갖고있는지 체크 4. 새로 add될 블록의 Hash값이 의도한 구조대로 생성되었는지 체크 이다. Typescript에서 타입이 같은 지를 저렇게 체크하나보다. C#에서는 비교를 ==로 하는데 차이가 무엇인지 찾아봤다. 자바에서는 falsy 값이라는 것이 있다고 한다. C#에서는 if(77 == "77") 이 애초에 안되는 것인데 자바에서는 된다고한다. "77"를 파싱해서 같은 지를 비교를 한다고한다. 그래서 if(false == 0) 또한 .. 2022. 2. 6.
[Block_chain] Typescript 활용(5) - 블록체인 구현 [2022. 02. 06] ▼ 강의에 따라 쳐봤다. ▼ 흔히 서버에 json파일을 로그했을 때 볼 수 있는 타입으로 나온다. (타입스크립트 및 자바에서 array가 이런 식으로 나오나보다) ▼ CryptoJS 설치 (목적: 해시 함수를 통해 암호화 하기 위함) 설치를 하고 사용을 하기 위해서는 아래와 같이 맨 위에 import문을 추가해줘야한다. ▼ BlockHash 값을 생성해주는 Static 함수를 만들어준다. index, 이전 hash, timestamp, data를 아까 임포트했던 CryptoJS의 SHA256라는 함수를 통해 해쉬 값을 만들어주고 그것을 toString 해준 뒤 string 타입으로 반환 해주는 함수다. 규격이 없다면 C#에서도 아스키코드라든지 따로 나만의 암호를 만들어서 구현해.. 2022. 2. 6.
[Block_chain] Typescript 활용(4) - 인터페이스 [2022. 02. 06] 자바 스크립트에서는 인터페이스가 없다는데 상위 버전인 TypeScript에서 인터페이스를 제공해준다. ▼ 실행 정상 작동 그래서dist에 기록된 결과물인 app.js(javascript)를 보면 interface가 없다. 그래서 js에서 위 목적으로 주로 활용한다는게 class라고한다. ▼ constructor은 말 그대로 C# 생성자 역할이고 접근 지정자도 비슷하게 하는 것 같다. 감이 잡히니 조금씩 빨리 넘기면서 핵심 내용만 파악하면 될 것 같다. 2022. 2. 6.
[Block_chain] Typescript 활용 (3) 및 생각 중간 정리 [2022. 02. 06] 함수 형태 (1) (2) (3) 아래와 같이 테스트하면 예상대로 정상작동한다. [TSC - Watch] ▼ watch설치 후 package.json 수정 tsConfig 및 package 수정 위와 같이 수저을 한다면 컴파일 시 src 폴더안의 ts파일들을 컴파일할 것이고 결과는 dist폴더에 기록될 것이다. 수정후 npm start를 다시 해주면 아래와 같이 작동한다. 결과 ▼ dist에 타입스크립트컴파일러(tsc)가 작업한 결과(js.map과 js파일)을 dist에 기록(생성)하였다. [과정] src 폴더 안에 있는 Typescript 파일을 tsc(타입스크립트 컴파일러)가 node.js가 해석할 수 있는 javascript파일로 변경할 때 dist폴더 안에 저장을 해주고 .. 2022. 2. 6.
[Block_chain] TypeScript 설치 및 세팅 [2022. 02. 02] 입사 후 C#과 유니티에 대해서 꾸준히 공부를 하고있었다. 최근에는 블록체인 및 NFT에도 관심이 생겼다. NFT를 활용하여 추후에 게임 및 메타버스 쪽 프로젝트를 진행할 때 다방면에서 활용할 수 있을 것 같아서 셋팅하고 공부를 시작했다. ▼ 공부 시작 전에 node를 설치해주고 npm과 node.js를 설치해줬다. ▼ Gitlab에 저장소를 만든 뒤 TypeScript 프로젝트를 새로 만들었는데 Console을 인식 못하는 에러가 있다. ▼ 컴파일러에서 뱉어내는 오류에 말을 따라 tsconfig에서 lib에 dom을 추가해줬다. 그러고나서 vs2019를 껐다 켜보니 ▼ 해당 에러는 없어졌다. 그러나 실행을 해보니 Hello World를 안띄우고 에러를 뱉어내길래 확인해봤는데 .. 2022. 2. 2.
그만두고 싶을 때 '절대' 잊어선 안 될 것들 https://www.youtube.com/watch?v=Mv6HJftqWdU&list=PL7g8Lh8G4gEfcFPR8hHjgqRtfHNUyslX4 2021. 9. 10.
[Shader] 쉐이더를 처음으로 직접 작성해보다. [2021. 09. 01, Wed] 쉐이더를 공부 한지 하루 이틀 밖에 안되었다. 내 스스로 코드를 작성하는 것은 당연히 불가능한 것이기에 참고용으로 동영상을 보면서 공부했다. 참고 : https://www.youtube.com/watch?v=tRYxflC-HCc&list=TLPQMDEwOTIwMjG6Wd5TU0jTYw&index=2 강의에서 나오는 내용들을 적어 옮겨놨다. 생각이 안날때마다 다시 이걸 보면서 공부해야겠다. 불편했던점은 아마 쉐이더는 아마 C++이 변형된 상태 로 작성되나보다 좌측 상단에 보여지는 마크도 ++를 뜻하기도하고 일단 동영상처럼 자동 완성이 안된다 색깔도 구분이 안되어있고.. 아마 내가 비쥬얼 스튜디오에서 직접 설정을 바꿔야할 것 같은데 나중에 찾아보고 해결 해봐야겠다. 혹시라.. 2021. 9. 1.
[Shader] Rendering Pipeline - 래스터라이저 & 프래그먼트 쉐이더 [2021. 09. 01, Wed] ■ 래스터라이저 : 버텍스 셰이더로부터 전달 받은 정점들에 삼각형을 구상하고 채워줘서 '프래그먼트 셰이더'로 전달하는 단계이다. * 프래그먼트 : 픽셀 후보 (두 개의 물체가 앞 뒤로 배치 되어있어 하나의 물체가 다른 물체를 가리게 된다면 최종 픽셀로서 사용되지 않을 수 있음) ▼ 영상 2:31초 참고 https://www.youtube.com/watch?v=RcRjIMTekgc 하는 일 1. 뷰포트 변환 : 클립공간(NDC) -> 스크린 공간 - 정규화된 공간에서 스크린(윈도우 화면)에 맞춘 공간으로 변형해준다. ( x,y축은 스크린 비율((예)1920X1080)에 맞게 크게 변환되지만 z값(깊이)은 0~1사이를 유지한다.) ( z값은 누가 앞에 그려지고 누가 뒤에 .. 2021. 9. 1.
728x90