분류 전체보기 (154) 썸네일형 리스트형 Rust lang - 참조 및 대여에 대한 생각 정리 https://cdbst.tistory.com/159 Rust lang - 소유권(Ownership)에 대한 생각https://rust-book.cs.brown.edu/ch04-00-understanding-ownership.html Understanding Ownership - The Rust Programming LanguageOwnership is Rust’s most unique feature and has deep implications for the rest of the language. It enables Rust to make memory safecdbst.tistory.com 서론이전에 작성한 소유권에 대한 생각을 먼저 읽으면 앞으로 작성한 글에서 무슨 소리를 하는지 이해하기 편할 것이다.. Rust lang - 소유권(Ownership)에 대한 생각 https://rust-book.cs.brown.edu/ch04-00-understanding-ownership.html Understanding Ownership - The Rust Programming LanguageOwnership is Rust’s most unique feature and has deep implications for the rest of the language. It enables Rust to make memory safety guarantees without needing a garbage collector, so it’s important to understand how ownership works. In this chapter,rust-book.cs.brown.edu .. GIGABYTE 지포스 RTX 4080 EAGLE D6X 16GB 구매 후기 30시리즈는 새 제품이라지만 뭔가 의심스러워서 사기가 꺼려졌다. 울며 겨자먹기로 어쩔수 없이 40 시리즈를 구매하기로 마음먹었는데 4090은 4k 환경에 사용시 적합하다 하여 나한텐 과소비 같아 4080을 사기로 결정했다. 처음 4080 출시 가격이 190~200정도 하길래 너무 심하다 싶어 구매를 꺼리던차 4080 하급이 150후반 160 중반으로 내려오면서 비싸지만 구매하기로 결정했다. 그중 기가바이트 이글 논 OC 모델을 결정했는게, 다른 감성 다 필요없고 오로지 가성비만 봤다. 왜 기가바이트를 결정했냐면, 4090 모델중에서 고주파라던지 기타 소음 이슈가 가장 적은게 기가바이트라고 해서 산거다. 처음 박스를 열면 이런 상태다. 저 위에 올려져있는 검은 봉투는 열어볼 필요가 없을거 같아서 그냥 냅뒀.. MSI PRO Z-790 A WIFI 사용기 z-790 ddr5 지원 보드를 한동안 국내에서 구매하기가 힘들어서 간신히 구매했다. 최근 경쟁사인 a사의 가격대비 성능, as 수준 등을 고려해서, g사와 msi 제품 중 하나를 골라서 사려고 했는데, 바이오스 등의 소프트웨어 측면에서 msi가 더 우수하다는 평이 많아 msi를 사기로 결정.. 아래 사진들은 조립 후 동작하기 까지의 모습을 사진으로 찍어놓은 것들임. 메인보드에 CPU, 램, SSD 까지만 결착하여 케이스에 결합해놓은 모습. 보드가 검은색 케이스와 잘 어올리며 컴펙트한 스타일이다. 모든 부품들을 다 조립하여 최초로 부팅테스트를 하기 전의 모습이다. 여기서 잘 동작하지 않으면 멘탈이 깨질지도 모른다. 다행히 1큐에 잘 동작했다. 최초 부팅후 윈도우 설치후 아래의 공식 제품 페이지에서 드라이.. Effective Typescript - 11 - 잉여 속성 체크 한계 인지하기 타입이 명시된 변수에 객체 리터럴을 할당할 때 타입스크립트는 해당 타입의 속성이 있는지, 그리고 '그 외 속성이 없는지'를 확인합니다. (구조적 타이핑 무시) interface Room { numDorrs: number, ceilingHeightFt: number; } const r: Room = { numDorrs : 1, ceilingHeightFt: 10, elephant: 'present' // 오류 }; const obj = { numDorrs : 1, ceilingHeightFt: 10, elephant: 'present' }; const r: Room = obj // 정상, 임시 변수를 도입하면 잉여 속성 체크가 동작하지 않습니다. 위 예제에서 확인 되듯, 타입이 명시된 변수에 리터럴을 할당.. Effective Typescript - 10 - 객체 래퍼 타입 피하기 타입스크립트는 기본형과 객체 래퍼 타입을 별도로 모델링합니다. * string과 String * number와 Number * boolean과 Boolean * symbol과 Symbol * bigint와 BigInt 여기서 string을 사용할 때는 특히 유의해야 합니다. string을 String이라고 잘못 타이핑하기가 쉽고, 실수를 하더라도 처음에는 잘 동작하는 것처럼 보이기 때문입니다. function getStringLen(foo: String){ return foo.length; } getStringLen("hello"); // 정상 getStringLen(new String("hello")); // 정상 그러나 string을 매개변수로 받는 메서드에 String 객체를 전달하는 순간 문제가 .. Effective Typescript - 9 - 타입 단언보다는 타입 선언을 사용하기 아래 예제는 변수를 할당 할 때, 타입 단언과 타입 선언을 사용하는 코드입니다. interface Person { name: string }; const alice: Person = { name: 'Alice' }; // 타입 선언 (추천) const bob = { name : 'Bob'} as Person; // 타입단언 (비추) 타입 선언이 타입 단언보다 타입스크립트의 언어지원을 받기에 훨씬 유리합니다. 그 이유에 대한 것은 아래 예제를 보십시오. interface Person { name: string }; const alice: Person = {} // 오류 const bob = {} as Person // 오류가 아님 타입 체커의 기능을 온전히 사용하려면 어떤 방식을 쓰는게 유리한지 이해할 수.. Effective Typescript - 8 - 타입 공간과 값 공간의 심벌 구분하기 타입스크립트의 심벌(symbol)은 타입 공간이나 값 공간 중 한 곳에 존재합니다. 심벌은 같더라도 속하는 공간에 따라 다른 것을 나타냅니다. 따라서 이와 관련된 혼란이 올 수 도 있습니다. 아래 예제가 바로 그러한 상황입니다. //타입 공간에 존재 interface Cylinder { radius: number; height: number; } // 값 공간에 존재 const Cylinder = ( radious : number, height: number ) => ({radious: radious, height: height}); 위와 같은 상황에 혼란에 빠지면 아래와 같은 상황에 직면할 수 있습니다. //타입 공간에 존재 interface Cylinder { radius: number; height.. 이전 1 2 3 4 ··· 20 다음