본문 바로가기

분류 전체보기140

[book] 객체지향의 사실과오해 - 02 이상한 나라의 객체 책명: 객체지향의 사실과 오해저자: 조영호핵심 키워드: 행동(state), 상태(behavior), 식별자(identity)객체, 그리고 소프트웨어 나라 객체란 식별 가능한 개체 또는 사물이다. 객체는 자동차처럼 만질 수 있는 구체적인 사물일 수 도 있고 시간처럼 추상적인 개념일 수 또 있다. 객체는 구별가능한 식별자, 특징적인 행동, 변경가능한 상태를 가진다. 상태정의: 상태는 특정 시점에 객체가 가지고 있는 정보의 집합으로 객체의 구조적 특징을 표현. 객체의 상태는 객체에 존재하는 정적인 프로퍼티와 동적인 프로퍼티 값으로 정의. 객체의 프로퍼티는 단순한 값과 다른 객체를 참조하는 링크로 구분할 수 있다.모든 객체의 상태는 단순한 값과 객체의 조합으로 표현할 수 있다. 이때 객체의 모든 특징을 통틀어 .. 2024. 4. 25.
[c++][씹어먹는 c++] 5 - 1. 연산자 오버로딩 출처: https://modoocode.com/202" data-og-description="모두의 코드 씹어먹는 C++ - 작성일 : 2013-08-25 이 글은 92920 번 읽혔습니다. 에 대해서 다룹니다. 안녕하세요 여러분! 지난 강좌에서 만들었던 MyString 을 " data-og-host="modoocode.com" data-og-source-url="https://modoocode.com/202" data-og-url="https://modoocode.com/202" data-og-image=""> 씹어먹는 C++ - 모두의 코드 씹어먹는 C++ - 작성일 : 2013-08-25 이 글은 92920 번 읽혔습니다. 에 대해서 다룹니다. 안녕하세요 여러분! 지난 강좌에서 만들었던 MySt.. 2024. 4. 25.
[book] 객체지향의 사실과오해 - 01 협력하는 객체들의 공동체 책명: 객체지향의 사실과 오해 저자: 조영호 책 표지도 예쁘고 첫 단원을 읽었는데 굉장히 저자가 심오한 개념을 쉽게 풀어내고자 고민을 많이 한 퀄리티가 높은 책이다!! C++을 가지고 밥 벌어먹고 있는 있지만.. 이 언어란 놈은 파고파도 새로운 게 계속 나오는 게 굉장히 깊은 학문이다. 이에 대해 C++을 OOP (객체지향 언어)라고 하는데 과연 객체란 무엇인가에 대해 재미있는 비유로 쉽게 설명해 주는 책을 만났다. 중요한 비유와 내용들을 정리해보고자 한다. 협력하는 객체들의 공동체 객체란 현실 세계에 존재하는 사물에 대한 추상화라는것 객체지향의 목표는 실세계를 모방하는 것이 아니고 오히려 새로운 세계를 창조하는 것이다. 저자는 먼저 객체를 포괄적으로 설명하기 위해 전통적인 설명방법인 실세계 사물 모방으.. 2024. 4. 23.
[c++][씹어먹는 C ++ ]4.6 클래스의 explicit 과 mutable 출처: https://modoocode.com/253 키워드: explicit mutable explicit C++에서 explicit 키워드의 필요성은 주로 형 변환 연산자와 생성자에서 발생. 묵시적 변환 방지: explicit 키워드는 묵시적인 변환을 방지. 예를 들어, 한 개체를 다른 유형으로 변환하는 생성자나 형 변환 연산자가 explicit으로 표시되어 있으면, 컴파일러는 이러한 변환을 자동으로 수행하지 않음. 이는 의도치 않은 동작을 방지하고 코드의 명확성을 향상. class MyClass { public: explicit MyClass(int value) : data(value) {} // 명시적 생성자 private: int data; }; void func(MyClass obj) { //.. 2024. 4. 22.
[c++][씹어먹는 c++] 4.4 스타만들기(const, static) https://modoocode.com/197 주제: 생성자 초기화 리스트(initializer list) 클래스의 const, static 변수 레퍼런스 타입을 리턴하는 함수 this 포인터 const 멤버 함수 initializer list [정의] 초기화 리스트(initializer list) 는 생성자 호출과 동시에 멤버 변수들을 초기화 (생성자 이름) : var1(arg1), var2(arg2) {} [사용이유] 생성자 초기화 리스트는 생성과 초기화를 동시해 하게 된다. (1)상수나 (2)레퍼런스 들은 모두 생성과 동시에 초기화가 필요하므로 이때는 반드시 초기화리스트로. => 호출하고 대입하는것과 비교하면 좀 더 효율적임 static [정의] static 은 클래스에서 전역 변수처럼 쓰이는것으로.. 2024. 4. 22.
[Ourdoor robot] Starship 배달로봇 위치 추정? 출처: How Starship Delivery Robots know where they are going How Starship Delivery Robots know where they are going (plus how to make your very own 1:8 scale papercraft robot model) medium.com 아웃도어 로봇의 대표주자 스타쉽은 어떻게 위치를 측정하는지 설명하는 유일한 포스팅 정리 지도의 필요성: 로봇은 출발지(A)에서 도착지(B)로 효율적으로 이동하기 위해 경로를 계획해야 함. 자동차 네비게이션을 위한 기존 지도 서비스는 도로 중심으로 설계되어 보도와 같은 세부적인 정보가 부족함. ⇒cm 단위의 로컬라이제이션을 위해선 위성지도뿐 아니라 특별한 위치 추정맵이 .. 2024. 4. 21.
[Memory] 부담없는 정리, 메모리 출처: https://modoocode.com/271 블로그는 부담없이써야 꾸준히 쓸 수 있는듯! 눈보단 손이 움직이면 더 습득률이 높을것이다.! 컴퓨터 메모리에 관한 좋은 정보라 조각 정리. CPU 와 컴퓨터 메모리인 RAM 은 물리적으로 떨어져 있습니다. 따라서 CPU 가 메모리에서 데이터를 읽어 오기 위해서는 꽤 많은 시간이 걸립니다. 실제로, 인텔의 i7-6700 CPU 의 경우 최소 42 사이클 정도 걸린다고 보시면 됩니다. CPU 에서 덧셈 한 번을 1 사이클에 끝낼 수 있는데, 메모리에서 데이터 오는 것을 기다리느라, 42 번 덧셈을 연산할 시간을 놓치게 되는 것 캐시 ? 따라서 CPU 개발자들은, 이를 보완하기 위해 캐시(Cache) 라는 것을 도입. 캐시란, CPU 칩 안에 있는 조그마한.. 2024. 4. 21.
[Design patterns.1] 시작편 출처:https://refactoring.guru/ko/design-patterns [리팩토링 구루] 라는곳에서 디자인패턴을 기가 막히게 피규어와 같이 설명해서 이를 정리해보고자한다. 디자인 패턴들은 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 일반적인 해결책들입니다. 이는 당신의 코드에서 반복적으로 되풀이되는 디자인 문제들을 해결하기 위하여 맞춤화할 수 있는 청사진들을 미리 만들어 놓은 것과 같습니다. 디자인 패턴은 크게 3가지 카테고리 (생성 패턴 5개, 구조 패턴 7개 , 행동 패턴 10개) 으로 이루어 져있다. 생성 패턴들은 기존 코드의 재활용과 유연성을 증가시키는 객체 생성 메커니즘들을 제공 구조 패턴은 구조를 유연하고 효율적으로 유지하면서 객체와 클래스를 더 큰 구조로 조합하는 방법.. 2024. 4. 21.