글 전체보기
-
Static array대학/자료구조 2022. 10. 16. 22:47
가장 기본적인 자료구조, 배열에 대해 공부해보자. 공부는 가상의 가방을 구현한다고 가정하고 진행 할 것이다. 단, 정적 배열은 너무 익숙한 방법이라 설명이 많지 않을 예정입니다... class bag { public: static const size_t CAPACITY = 20; ... private: int data[CAPACITY]; // member variable: data container size_t used; // member variable: counting data qty }; 기본적으로 정보를 저장할 data 배열이 있을 것이고, 배열의 기본 사이즈는 CAPACITY = 20으로 할당해준다. 가방의 사용량은 used로 측정할 것이다. 이제 가방에 필요한 기능을 구현 해볼건데, 먼저 가방..
-
c++ operator overloading대학/자료구조 2022. 10. 16. 22:19
기초 타입 변수의 경우 a + b 같은 연산자가 동작하는데 아무런 의심도 없이 사용했다. 하지만, 직접 정의한 클래스의 연산을 할 때, c1 + c2 같은 연산을 하면 에러가 발생한다. 이런 경우에 클래스에서 연산자 오버로딩 기법을 사용하면 된다. 설명을 위해서 이 포스팅에선 아래의 MyDoubleVector 클래스를 간단하게 정의하고 시작하겠다. class MyDoubleVector { public: ... private: double *data; // member variable: data container size_t max_capacity; // member variable: max qty of data size_t used; // member variable: counting data qty }..
-
c++ class, parameter types대학/자료구조 2022. 10. 16. 14:48
이번 포스트는 앞으로 자료구조 포스팅에서 사용할 c++ 기초 문법을 정리하고자 한다. (100% 커버는 못하고, 간단한 문법만 정리하고 나머지는 그 때 가서 정리하자) // rgb.h class RGB { public: // 생성자 RGB(char _red[] = (char *)"red", char _green[] = (char *)"green", char _blue[] = (char *)"blue"); // 파괴자 ~RGB(); void set_rgb(char _red[], char _green[], char _blue[]); char *&get_red(); char *&get_green(); char *&get_blue(); private: char *red; char *green; char *blu..
-
Pre, Postcondition대학/자료구조 2022. 10. 15. 12:11
자료구조와 크게 상관없는 이야기 같지만... 오늘 할 얘기는 함수 작성 시 가져야할 코딩 습관에 대한 이야기이다. 소프트웨어 개발의 단계를 세 단계로 요약하면 다음과 같이 흘러간다. Step 1 1. 요구 스펙 파악 2. 설계 3. 코드로 구현 Step 2 4. 만든 프로그램 분석 5. 테스팅 및 디버깅 6. 유지보수 Step 3 7. 필요가 없어질 시 삭제 개발 단계에서 기능의 구현은 외부 라이브러리를 가져다 쓰거나, 함수의 형태로 분할하여 만들게 되는데, 기능의 구현체는 하나의 공통점을 갖는다. 바로, 어떻게 구현되었는지는 몰라도 사용할 수는 있다는 점이다. 여기서 다음의 개념이 등장한다. Precondition Postcondition Pre, Postcondition을 하나의 주석문 쌍으로 작성하..
-
Git 명령어 정리 - 파일관리 편서비스 공부/Git 2022. 10. 14. 22:58
이 포스트와 사용된 사진은 아래의 책 내용을 기반으로 작성하였습니다. GitHub - progit/progit2-ko Contribute to progit/progit2-ko development by creating an account on GitHub. github.com 또한 크리에이티브커먼즈에 의거 CC-BY-NC-SA를 따릅니다. 이 포스트에서는 아래의 명령어들을 다룹니다. config init clone add reset commit checkout rm vm status diff log (.gitignore 파일 다루기) - 초기 설정 $ git config --global user.name "wjlee611" $ git config --global user.email "wjlee611@gm..
-
Git 정리대학/오픈소스소프트웨어 2022. 10. 13. 16:11
아래의 링크에 개별적으로 정리하였습니다. Git 특징 이 포스트와 사용된 사진은 아래의 책 내용을 기반으로 작성하였습니다. GitHub - progit/progit2-ko Contribute to progit/progit2-ko development by creating an account on GitHub. github.com 또한 크리에이.. with611.tistory.com Git 명령어 정리 - 파일관리 편 이 포스트와 사용된 사진은 아래의 책 내용을 기반으로 작성하였습니다. GitHub - progit/progit2-ko Contribute to progit/progit2-ko development by creating an account on GitHub. github.com 또한 크리에이...
-
Git 특징서비스 공부/Git 2022. 10. 13. 16:08
이 포스트와 사용된 사진은 아래의 책 내용을 기반으로 작성하였습니다. GitHub - progit/progit2-ko Contribute to progit/progit2-ko development by creating an account on GitHub. github.com 또한 크리에이티브커먼즈에 의거 CC-BY-NC-SA를 따릅니다. - 버전 관리의 발전 1. 중앙 집권식 버전관리 시스템 (CVCS, Centralized Version Control System) 중앙 서버에 버전정보가 담긴 데이터베이스를 하나 만들고 사용자가 이에 접근하여 필요한 정보를 다운받거나, 업로드 하는 식으로 협업을 진행한다. 단, 서버가 다운되는 경우 이를 진행할 수 없고, 심한 경우에는 데이터가 모두 소실될 수도 있다..
-
오픈소스 라이센스대학/오픈소스소프트웨어 2022. 10. 13. 15:19
- 지적재산권 vs. 라이센스 지적재산권이 있는 소프트웨어는 저작권, 특허권, 상표권, 영업비밀 등 독점적으로 보호된다. 라이센스가 있는 소프트웨어는 개발자-사용자 간의 사용방법 및 조건의 범위를 명시하여 권리를 보호한다. - 오픈소스 소프트웨어의 조건 다음은 OSI에서 정의한 오픈소스의 정의이다. 1. 자유로운 재배포 2. 소스코드 공개 (난독화 금지) 3. 동일한 규정에 따라 2차 저작물의 배포 허용 4. 작성자 소스코드 보전 (원 저작자의 정보 삭제 금지) 5. 개인이나 단체에 대한 차별 금지 6. 사용 분야에 대한 제한 금지 7. 라이센스 전문을 배포 8. 라이센스 적용상의 동일성 유지 (특정 제품 의존 금지) 9. 다른 라이센스의 포괄적 수용 (특정 라이센스 제한 금지) 10. 라이센스의 기술적..