728x90 반응형 전체 글48 [타입스크립트] 타입스크립트에 타입 지정하기 서론타입스크립트와 자바스크립트의 가장 큰 차이이자 타입스크립트의 존재 이유는 동적 언어인 자바스크립트의 단점을 보완하는 타입 지정이다.그런데, 정말 간단하면서 당연한 사실임에도 일반적인 정적 언어를 사용해오며 습관적으로 작성했던 타입이 사실 타입스크립트에서는 정확하지 않을 수 있다는 사실을 확인하여 기록하게 되었다. 본론그동안 자바를 사용하면서는 다음과 같이 선언했다. String str = "test"; 위 코드는 의심의 여지 없이 정확한 코드이다. 자바에서는 문자열의 타입이 String이고, 정적 언어이기 때문에 타입을 지정하여 변수를 선언했다. 그래서 타입스크립트에서 다음과 같이 선언했다. const str: string = "test"; 타입스크립트에서는 문자열의 타입이 string이고, 마찬가지.. 2024. 9. 25. [현문hyun답] go의 goroutine(고루틴), kotlin의 coroutine(코루틴), typescript의 generator(생성기), roblox lua의 corotuine(코루틴) 비교 0. 서론Go 언어나 Kotiln 언어는 웹, 앱 또는 서버 등을 제작할 때 사용하게 되었는데, 기존에 주로 사용하던 Java나 Javascript에서는 쉽게 접하지 못했던 고루틴과 코루틴을 접하게 되었다.Typescript의 생성기는 zepeto(제페토) 게임을 만들면서 접하게 되었는데 zepeto unity에서 typescript로 코드를 작성하면서 게임 내에 필요한 비동기적 작업을 generator로 쓰게 되었다.Roblox Lua의 코루틴은 Roblox 게임을 만들면서 접하게 되었고 상당히 자주 사용하게 되었다.여러 언어를 사용하면서 이름은 다르지만 비슷한 기능을 사용하고 있다는 점에서 흥미가 생겨 비교를 해보게 되었다. 1. Go의 gorotuine(go 루틴, 고루틴)Go 언어에서 경량 스레.. 2024. 8. 13. [스프링부트] 스프링캐시 Spring Cache 설정 및 속도 비교 서론특정 데이터들을 반복적으로 호출하고 있는 코드가 있었다. 현재까지는 2천 개보다 조금 많은 수준의 데이터를 가지고 있었지만, 앞으로 훨씬 더 많은 데이터가 들어갈 예정인데 단순히 조회를 위한 데이터임에도 여러 곳에서 데이터를 호출해야하기 때문에 캐시 도입을 결정하였다. 캐시를 설정하는데에는 여러 방법이 있지만 스프링부트로 백엔드를 개발하고 있기 때문에 스프링에서 제공해주는 스프링 캐시를 사용하기로 하였다. 본론1. 캐시 메모리에 저장할 데이터 정의@Datapublic class SomeDataCache { private T someData; private LocalDateTime expirationDate;}2. 캐시 설정 파일 정의@EnableCaching@Configurationpubl.. 2023. 9. 4. [유니티/C#] FSM을 알아보자 서론 if - else if 지옥과 예외 처리 지옥에 빠진 나를 구원하는 FSM 본론 FSM: Finite State Machine(유한 상태 기계)은 상태 패턴의 한계를 해결할 수 있는 방안 중 하나다. 상태 패턴: 행동과 상태를 나누는 디자인 패턴. 행동을 인터페이스로 정의하여 상태에 따라 행동을 분류. 먼저 상태 패턴의 구조에는 세 가지 핵심 요소가 있다. Context 클래스: 클라이언트가 객체의 내부 상태를 변경할 수 있도록 요청하는 인터페이스를 정의하고 현재 상태에 대한 포인터를 보유함. IState 인터페이스: 구체적인 상태 클래스로 연결할 수 있도록 설정. ConcreteState 클래스: IState 인터페이스를 구현하고 Context 오브젝트라 상태의 동작을 트리거하기 위한 퍼블릭 메서.. 2023. 6. 11. [운영체제] 메모리 단편화(Memory Fragmentation) 서론 메모리 누수와 관련된 이야기를 하다가 메모리 단편화에 대한 조사가 필요해졌다. 본론 메모리 단편화(Memory Fragmentation)에는 외부 단편화(External Fragmentation)과 내부 단편화(Internal Fragmetation)가 있다. 1. 외부 단편화(External Fragmentation) - 총 메모리 공간은 만족하지만, 연속적이지 않아 새로운 메모리 할당이 불가능한 경우 - 해결법 Compaction(압축): Execution time binding(실제 실행되는 시점)에서만 가능한 방법으로, 메모리가 할당되지 않은 조각 공간들을 하나의 큰 공간으로 변환하는 방법 Paging 등의 비연속적인 할당을 통해 외부 단편화의 근본적인 문제를 해결하는 방법(내부 단편화는 발.. 2023. 5. 15. [Roblox/로블록스] 기본 디렉토리 정리 서론 이직이 그렇게 됐습니다. 본론 기본적으로 새로운 로블록스 프로젝트를 생성하면 다음과 같은 디렉토리들이 생성된다 Workspace Players Lighting MaterialService ReplicatedFirst ReplicatedStorage ServerScriptService ServerStorage StarterGui StarterPack StarterPlayer Teams SoundService Chat TextChatService LocalizationService TestService 1. Workspace - Workspace의 핵심 작업은 Objects, BaseParts 및 Attachments를 유지하는 것 - Object가 Workspace에 존재할 때 그 Object는 활.. 2023. 5. 14. 이전 1 2 3 4 5 ··· 8 다음 728x90 반응형