int main() { Dog d; Dog* p1 = &d; // ok int* p2 = &d; // error Animal* p3 = &d; // ok... 기반 클래스 포인터로 파생 클래스 객체를 가리킬수 있다. // upcasting. 객체지향의 중요한 특징 // 1. 기반 클래스 포인터로 파생 클래스 객체를 가리킬수 있다. // 2. 그런데, 기반 클래스 포인터로 기반 클래스 멤버만 접근 가능 p3->age = 10; p3->color = 10; // error. 컴파일 시간에는 무조건 p3를 Animal 이라고 생각하기 때문에 // 3. Dog 고유 멤버에 접근하려면 캐스팅 필요 static_cast(p3)->color = 10; } 위의 코드처럼 기반 클래스(Animal) 포인터(p3)로 파생..
생성자는 객체를 생성할 때, 어떤 정보를 가진 객체를 생성하게 하는지 정의 하는 것이다. class Base { public: Base() {} Base(int a) {} ~Base() {} } class Derived : public Base{ public: // Derived() {} // Derived() : Base() {} // Derived(int a) {} // Derivde(int a): Base() Derived() : Base(0) {} Derived(int a) : Base(a) {} ~Derived() {} } int main(){ Derived d(1); } 위 코드에서는 Derived 클래스가 Base라는 기반 클래스를 상속 받은 것을 볼 수 있다. 그리고 주석이 된 부분은 De..
파이썬을 사용하다보면 list.sort()와 sorted()를 볼 수 있다. 둘의 차이는 간단하다. list.sort()는 사본을 만들지 않고 리스트 내부를 변경한다. 반면 sorted(list)를 하게 되면 새로 사본을 만들어서 기존의 list 값의 변화를 주지 않는다. >>> arr = [2,4,5,1,12,3,13,7] >>> sorted(arr) [1, 2, 3, 4, 5, 7, 12, 13] >>> arr [2, 4, 5, 1, 12, 3, 13, 7] >>> arr.sort() >>> arr [1, 2, 3, 4, 5, 7, 12, 13] 위에서 보면 sorted(arr) 이후엔 arr값의 변화가 없지만, arr.sort() 이후엔 값이 변화한 것을 알 수 있다.(참고로, arr.sort()를..
현재 나의 개발 환경에 대해서 설명하는 글을 써보고자 한다. 우선, 하드웨어의 스펙은 간략하게 적자면 cpu: 라이젠 5600x ram: 32g ssd: 1T gpu: RTX 3070 다음과 같고, 운영체제는 window10과 ubuntu18.04 두 개의 운영체제를 디스크의 파티션을 4:6으로 나눠서 멀티부팅을 설정했다.(살면서 윈도우를 안쓸 수 없으니..) 그리고 노트북은 너무 옛날에 사고 무거워서 더이상 들고 다니기 싫어서, 또 자취를 하다보니 프린터와 a4용지를 매일 사서 놔두면서 뭘 읽기 불편해서? 아이패드를 샀고, 아이패드에서개발하기에 가장 단점(?)인 IpadOS에서 원격으로 데스크톱 환경을 접속하기 위해 teamview, anysync? 등 여러 GUI 원격을 대신 ssh 접속을 할 수 있..
Tensorflow-gpu installation using Docker 도커는 컨테이너를 사용하여 Tensorflow 설치를 나머지 시스템에서 격라하는 가상 환경을 만듭니다. TensorFlow 프로그램은 호스트 머신과 리소스를 공유(디렉터리 액세스, GPU 사용, 인터넷 연결 등)할 수 있는 이 가상 환경 내에서 실행됩니다. Enviroment 정보 내용 CPU AMD Ryzen 5 5600X 6-Core Processor Memory 32GB GPU NVIDIA GeForce RTX 3070 1. Docker 설치 Docker Intro 2. Docker 세팅 및 Nvidia container Toolkit 설치 $ curl https://get.docker.com | sh && sudo syste..
특정 python 파일을 실행 시킬 때, 특정 변수의 값을 입력 받고 싶을 때 사용하는 방법이다. 입력함수 input()을 통해 받을 수 있고, 따로 config.py 파일을 만들어서 변수를 변경하는 방법도 있지만 파일을 실행 시킬 때 간단하게 입력 가능하기 때문에 많이 쓰이는 것 같다. 사용 방법 import argparse parser = argparse.ArgumentParser() # 처음으로 인스턴스를 생성 시켜줘야 한다. parser.add_argument('--model_dir', type=str, default='./model', help='Base directory for the model.', required=False) # add_argument()를 통해서 인자를 입력 받는다. ar..
- Total
- Today
- Yesterday
- NextJS
- rhel
- Producer
- spring boot
- apache
- API
- 프론트엔드
- Java
- centos
- consumer
- OS
- React
- cs
- Front
- broker
- Container
- Linux
- K8S
- backend
- Firebase
- zookeeper
- caching
- KAFKA
- Data Engineering
- frontend
- JPA
- 리액트
- spring
- apache kafka
- feign client
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |