일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dart
- 책
- 코딩
- vscode
- 유데미 러닝크루
- 맥
- 프로그래밍
- 파이썬
- 플러터
- python
- 다트
- 개발자
- ExpansionTile
- freezeD
- 유데미 코리아
- 리눅스
- 유데미
- 명령어
- Code Generation
- flutter
- linux
- copyWIth
- 리버팟
- ListTile
- command
- 도서
- riverpod
- 디자인패턴
- 개발
- 가상환경
- Today
- Total
목록깊은복사 (2)
승상의 코딩 블로그
왜 불변 객체을 써라고 하는 것일까?* 불변 객체만 쓰라는 것은 아니다. 대부분의 경우에 장점이 많기 때문이다* 대부분의 경우에서 불변 객체의 단점을 장점이 상쇄시킨다.불변 객체를 사용하면 외부에서 의도하지 않은 수정으로부터 객체를 보호할 수 있다.코드는 한 사람만이 개발하는 것이 아니다.즉, 내가 구현한 객체가 의도치 않게 외부에서 수정될 수 있다.데이터와 로직의 흐름을 파악하기 쉽다.데이터가 변경이 일어날 경우, 이를 추적하면 코드를 파악하는 것은 쉽지 않다.데이터가 불변이 아니라면, 데이터가 변경이 되지 않았음을 계속해서 파악해야한다.자신이 코드를 작성할 경우에는 로직을 정확히 파악하고 모든것을 컨트롤 할 수 있다고 생각할 수 있다.(내가 처음에 이랬다)그러나 개발하는 시스템이 복잡해지고 시간이 지..
복사에는 얕은 복사(shallow copy)와 깊은 복사(deep copy)가 있다.얕은 복사얕은 복사는 객체의 참조값만 복사한다.(원본 객체와 동일한 메모리 주소값을 참조하는것이다.)즉, 데이터를 "공유"하는 것이다. 위 코드는 얕은 복사에 대한 예시이다.데이터를 공유하기 떄문에 x 객체의 값을 변경하였는데, y 객체의 값도 변경되었다. 얕은 복사는 메모리 데이터가 공유되기 때문에 메모리를 절약할 수 있다.하지만, 일반적인 프로그램에서는 메모리 부족에 대한 문제를 겪기 힘들것이다.복잡한 프로그램이라면 데이터의 독립성을 보장하여 사이드 이펙트(버그)가 생기지 않도록 하는것이 더 효과적이다.깊은 복사깊은 복사를 사용하면 객체의 값 자체를 복사하여 독립적인 객체를 만들 수 있다.깊은 복사는 객체를 다시 ..