728x90
오늘 학습한 내용
1) 문자열 다듬기 (Trim() 활용)
- Trim()을 사용하여 문자열의 앞뒤 공백을 제거하는 방법을 학습하였습니다.
- TrimStart(), TrimEnd()를 활용하여 특정 방향의 공백만 제거할 수 있는 기능 또한 확인하였습니다.
2) 얕은 복사 (MemberwiseClone())
- MemberwiseClone()을 사용하면 객체의 얕은 복사가 이루어진다는 점을 학습하였습니다.
- 깊은 복사가 필요한 경우 별도의 후처리가 필요함을 확인하였습니다.
문제 및 해결 과정
1) 문제 (문자열 공백 제거 (Trim()))
사용자 입력값을 Trim()으로 다듬었으나, null 값이 들어왔을 때 예외가 발생하는 문제가 있었습니다.
시도한 해결 방법
string.IsNullOrEmpty() 메서드를 활용하여 null 또는 빈 문자열인지 검사한 후 Trim()을 적용하도록 수정하였습니다.
결과
예외 발생 없이 안전하게 문자열을 처리할 수 있도록 개선되었습니다.
2) 문제 (얕은 복사 (MemberwiseClone()))
MemberwiseClone()을 활용하여 객체를 복사했으나, 참조형 필드가 원본 객체와 동일한 메모리를 참조하여 데이터가 변경되는 문제가 발생하였습니다.
시도한 해결 방법
복사할 때 수동으로 깊은 복사를 수행하는 itemCopy() 메서드를 구현하여 해결하였습니다.
결과
MemberwiseClone())을 사용하고 후처리를 하여 완전히 복사되는 깊은 복사 방법을 적용하여 원본 데이터와 별도인 객체를 생성하는 데 성공하였습니다.
새롭게 알게 된 점
문자열 다듬기 (Trim())의 활용법
Trim()을 사용할 때 null 값 처리를 반드시 고려해야 한다는 점을 배웠습니다.
얕은 복사와 깊은 복사의 차이점
MemberwiseClone()을 사용할 경우 참조형 필드는 원본 객체를 공유하므로, 깊은 복사가 필요할 경우 별도의 처리가 필요함을 알게 되었습니다.
앞으로의 계획
- 앞으로 있을 팀프로젝트때 CSV혹은 TSV로 정보를 받게 될텐데 Trim()을 활용하여 오류없이 작동하도록 할 것 입니다.
- 마찬가지로 이번 개인과제와 비슷한 주제로 예상되는 팀프로젝트때 복사 개념을 사용할 것 같아 MemberwiseClone()을 비롯한 여러 복사 방법을 학습할 예정입니다.
728x90
'내일배움캠프' 카테고리의 다른 글
내일배움캠프 Unity - TIL : 25.02.05 (0) | 2025.02.05 |
---|---|
내일배움캠프 Unity - TIL : 25.02.04 (0) | 2025.02.04 |
내일배움캠프 Unity - TIL : 25.01.31 (1) | 2025.01.31 |
내일배움캠프 Unity - TIL : 25.01.29 (0) | 2025.01.30 |
내일배움캠프 Unity - TIL : 25.01.27 (0) | 2025.01.27 |