본문 바로가기

Study/개발 지식2

[개발 지식][C++/C#] 얕은 복사, 깊은 복사 1. 얕은 복사(shallow copy) - 한 객체의 모든 멤버 변수의 값을 다른 객체로 복사 - 실제 포인터가 가리키는 값은 같기 때문에 한 쪽이 변하면 다른 한 쪽도 따라서 변함 2. 깊은 복사(deep copy) - 한 객체의 모든 멤버 변수의 값 뿐만 아니라, 포인터 변수가 가리키는 모든 객체에 대해서도 복사 - 포인터까지 복사가 되어 생기는 것으로, 한 쪽이 아무리 바뀌어도 다른 한 쪽에는 영향이 없음 3. 소스코드(C++) // c++ #include #include #include #define _CRT_SECURE_NO_WARNINGS using namespace std; class Student { public: char* name; int age; Student(const char* .. 2023. 10. 31.
[개발 지식] 클린코드와 리팩토링 1. 클린 코드 - 가독성이 높은 코드 - 코드를 작성하는 의도와 목적이 명확하며, 다른 사람이 쉽게 읽을 수 있어야 함 - 다른 사람이 코드를 봐도 자유롭게 수정이 가능 - 변경된 내용이 어떻게 상호작용하는지 이해하는 시간을 최소화 시키는 것 - 가독성을 높이는 방법 1) 의미있는 네이밍 2) 오류 제거 3) 중복 제거 4) 의존성 최소화 5) 클래스, 메소드가 한가지 일만 처리 6) 보기 좋게 배치하기 7) 주석 달기 2. 클린 코드 예시 // 클린 코드 변경 전 public int A(int a) { return a * a; } // 클린 코드 변경 후 -> 의미있는 네이밍 public int Square(int num) { return num * num; } 3. 리팩토링 - 프로그램의 외부 동작.. 2023. 10. 24.