본문 바로가기

분류 전체보기

(88)
러스트 모듈(pub mod) 웹애플리케이션을 만들 때 보면 외부 공개 모듈 pub(public이라는뜻)을 사용하여 프로그램을 기능별로 분리한다 모듈은(mod)는 스코프 범위 단위, 모듈의 관계는 트리 구조로 표현할 수 있다. mod 안에 pub mod라는 서브모듈이 있고 use를 사용해 서브 모듈을 꺼내서 사용할 수 있다. pub는 해당 모듈을 외부로 노출시킨다는 의미이다. mod random { // linear 모듈 선언 pub mod linear { use std::num::Wrapping; // 선형합동법으로 난수 생성 pub fn rand(seed: &mut u32) -> u32 { let (a, c) = (1u32, 2u32); // Wrapping을 사용하여 연산 오버플로우를 무시한다. *seed = (Wrapping(..
타입스크립트 제네릭(generics) https://www.yes24.com/Product/Goods/117963966 프로가 되기 위한 타입스크립트 프로그래밍 입문 - 예스24 TypeScript다운 코드를 작성하는 법을 배우자!타입스크립트(TypeScript)는 자바스크립트에 정적 타입 시스템을 덧붙인 프로그래밍 언어입니다. 정적 타입을 가진 언어는 많지만, 타입스크립트의 타입 www.yes24.com 책을 읽고 공부한것을 정리한 내용입니다. 제네릭은 타입 인수를 받는 함수를 만드는 기능을 말한다. type User = { name: N; // 타입이 string이 될수도 있고 number가 될수도 있다. } 함수의 타입인수는 생략할 수 있다. 앞에 예시로 보았던 코드를 보면 repeat과 같이 타입인수를 명시 했는데 명시하지 않으면 타..
타입스크립트 instanceof 연산자와 타입좁히기(type narrowing), 그리고 생성자 https://www.yes24.com/Product/Goods/117963966 프로가 되기 위한 타입스크립트 프로그래밍 입문 - 예스24TypeScript다운 코드를 작성하는 법을 배우자!타입스크립트(TypeScript)는 자바스크립트에 정적 타입 시스템을 덧붙인 프로그래밍 언어입니다. 정적 타입을 가진 언어는 많지만, 타입스크립트의 타입www.yes24.com class에 객체(instance)를 생성해줄려면 new연산자를 사용해야한다 instanceof연산자는 주어진 객체가 어느 클래스에 인스턴인지 (ture or false) boolean값으로 평가를 해준다. class User{ name: string = ""; age: number = 0; } const uhyo = new User(); /..
정적타입의 장점과 타입을 세분화 https://www.yes24.com/Product/Goods/122890814 타입으로 견고하게 다형성으로 유연하게 - 예스24 “타입과 다형성 잘 배우고 잘 쓰는 법”최근 몇 년간 프로그래밍 언어 세계를 살펴보면 타입 그리고 타입과 관련된 검사 기능이 강화되는 추세다. 그런데 한편으로는 이해하기 복잡하고 사용 www.yes24.com 책을 읽고 공부한 것을 정리한 내용입니다. 정적 타입은 실행하기 이전에 타입을 체크해서 실행시간이 짧은 장점이 있다. 대표적인 예로는 C/C++, 자바, 러스트등이 있다. 타입 검사를 할때 타입만 체크해서 예외 상황들이 발생하는데 예를 들면 예시 코드에서 보이는 타입과 상관없는 계산에 의한 실수, null참조같은 오류들은 발견하지 못한다 그래서가장 에러가 많이 나는 것..
러스트 제네릭(generic) 함수 정의 https://www.yes24.com/Product/Goods/116586619 만들면서 배우는 러스트 프로그래밍 - 예스24 고효율, 현대적 프로그래밍 언어 Rust의 결정적 해설서!러스트는 효율적이고 신뢰할 수 있으며 생산성이 높은 언어로, 프로그래머가 가장 배우고 싶어 하는 언어로 꼽힌다. 배울 가치가 높은 언 www.yes24.com 공부한것을 정리한 내용입니다 제네릭은(generic)은 추상적인 타입을 지정해 다양한 데이터 타입 조작을 가능하게 하는 프로그래밍 기법이다. 러스트는 타입 체크를 엄격하게 해서 타입이 다르면 컴파일 되지 않아 만약 비슷한 함수가 여러개 있으면 실수가 많아져 코드 중복을 줄이고 실수를 방지하고자 이때 제네릭을 사용하게 된다. fn add_i32(a:i32, b: i3..
C언어 오버플로우와 언더플로우, 쓰레기값 float의 범위는 1.175494351 E - 38 ~ 3.402823466 E + 38 이다. 이 범위를 곱하거나 나누면 오버플로우와 언더플로우가 발생해 0또는 무한대가 출력된다. #include // 실수 자료형의 양수 최솟값, 최댓값이 정의된 헤더파일 #include int main() { float num1 = FLT_MIN; // float 양수 최솟값 float num2 = FLT_MAX; // float 양수 최댓값 num1 = num1 / 100000000.0f; // float 양수 최솟값에 100000000.0을 나누면 수가 아주 작아져서 언더플로우 발생 num2 = num2 * 1000.0f; // float 양수 최댓값에 저장할 수 있는 범위를 넘어서서 오버플로우 발생 printf..
C언어 구조체 메모리 활용하기(초기화 0) https://www.yes24.com/Product/Goods/117080938 C 언어 코딩 도장 - 예스24프로그래밍은 연습으로 배우는 것이다!가장 깊이 있는 C 언어 입문서C 언어의 난해하고 까다로운 주제도 생략하지 않고 단계별로 차근차근 설명한다. 개념을 생략하고 쉬운 책이 되는 것보단 제www.yes24.com 공부한 것을 정리한 내용입니다. 구조체의 메모리값을 0으로 설정하거나 초기화 할려면 memset(구조체포인터, 설정한 값, sizeof(struct 구조체)); 함수를 이용하면 된다. #include #include // memset 함수가 선언된 헤더파일 struct active { int x; int y; }; int main(){ struct active a1; memset(&a1..
C언어 구조체 멤버 정렬(alignment) 사용 https://www.yes24.com/Product/Goods/117080938 C 언어 코딩 도장 - 예스24프로그래밍은 연습으로 배우는 것이다!가장 깊이 있는 C 언어 입문서C 언어의 난해하고 까다로운 주제도 생략하지 않고 단계별로 차근차근 설명한다. 개념을 생략하고 쉬운 책이 되는 것보단 제www.yes24.com 공부한것을 정리한 내용입니다. C언어 컴파일러는 CPU가 메모리의 데이터에 효율적으로 접근할 수 있도록 구조체를 일정한 크기로 정렬한다. 예를 들어 구조체 크기가 15,17 바이트가 되면 접근 효율이 떨어지므로 2, 4, 8, 16 바이트 단위로 정렬을 한다. 하지만 예외가 있는데 사진파일을 저장할 때마다 정렬이 발생해 사진이 깨질 수도 있고 네트워크 데이터를 전송할 때 몇바이트씩 보내..