본문 바로가기

분류 전체보기

(83)
도커 이미지 태그를 사용하여 버전관리 패키징 했던 Go 애플리케이션 이미지 gallery에 major. minor. patch 형식의 버전태그를 부여했다. latest는 최신버전 2는 minor 업데이트 특정 패치 버전을 받고 싶으면 2.1이나 2.1.106로 선택하면 된다. major 버전 태그를 지정해 사용한다면 지속적인 업데이트를 받겠지만, 예기치 않은 기능 변경을 겪을 수 있다. 가능한 정확한 버전을 지정하는게 좋다. 도커 교과서 - 예스24 (yes24.com) 도커 교과서 - 예스24 도커 전문가가 알려주는 실전에 강한 도커 사용법!입문자에게 딱 맞는 구성으로 시작하자!200개의 실습으로 실전 투입을 위한 준비를 마치자!이 책은 저자가 수년에 걸쳐 완성한 ‘하루 1시간 학 www.yes24.com
Docker(도커) 및 Docker로 Apache서버 띄우기 실습 1. 도커를 사용하는 이유 (버전 관리가 용이하다) 도커는 리눅스 운영체제를 갖추고 있고 데이터 또는 프로그램을 격리시키는 기능이다 도커가 필요한 이유는 다함께 개발을 할때 예를들어 MYSQL 데이터 베이스 버전5.0, 또 다른 쪽은 버전 8.0이면 문제가 생기곤하는데 이때 도커를 사용하면 각각에 컨테이너를 만들어 따로 격리시킬수 있다. 그리고 여러 컨테이너 안에서 같은 프로그램을 실행할 수 있다. 워드프레스 프로그램을 사용하려면 아파치(웹서버), MYSQL(데이터베이스), 워드프레스가 필요한데 이들을 각각 별도의 컨테이너로 구성할 수 있다. 도커에 원칙중에 하나에 컨테이너에 한 프로그램이 원칙이다. 그런데 여기서 버전이 바뀌면서 컨테이너를 폐기하고 새로운 버전으로 만들면 데이터는 사라질 위험이 있어서 ..
러스트 모듈(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..