코드 리팩토링하며 얻은 교훈 및 생각 [스코클 TIL_230808]

7과11사이·2023년 8월 8일
0

스파르타코딩클럽

목록 보기
28/90
post-thumbnail

오늘의 학습

개인적 생각

  • 코드를 잘 짜는 사람은 아니다
    이틀동안 한가지 문제를 해결하기 위해 계속 들여다보고 있는 모습을 보면서 확신이 섰다.
    나는 코드를 잘 짜거나 이해를 하고 있는 편이 아닌 것 같다!

    남들보다 빠르게 이해하는 편이 아니다보니 천천히하되 깊게, 나만의 속도로 배우고자 했는데 어느순간 "잘해야 돼"라는 조바심이 생겨났다. 하고 싶은 것도 많고 빠르게 성정하고 싶은 마음이 욕심이 있어서 그런지 모르겠다.
    오늘이 되서야 지금 내 수준을 좀 다시 돌아보게 됐다.
    기본기를 탄탄하게, 누군가 얼기설기 엮은 코드를 보더라도 제대로 이해할 수 있도록 노력할 것.
    그게 나의 첫번째 목표다. 조바심을 가지지 말 것, 남과 비교하지 말 것, 남에게 설명할 수 있을 정도로 이해를 할 것, 무엇보다 과정을 즐길 것. 현재 상황을 즐길 수도 없는 사람이라면, 애초에 광고를 벗어난 이유가 없다.

기술면

  • text = nil을 부여하는 이유
    예재 코드를 작성하다 아래의 코드 스니펫을 보았다.
func setTodo(_ setTodo: Todo) {
	todo = setTodo
    guard let todo else { return }
    
    	if todo.isCompleted {
    		textLabel?.text = nil
        	textLabel?.attributedText = todo.title.strikeThrough()
		} else {
          	textLabel?.attributedText = nil
          	textLabel?.text = todo.title
		}
	}
}

해당 코드는 사용자에게 '추가' 버튼을 눌러 메모를 더하는 기능을 제공했다.
위 코드를 보면서 가장 의아했던 점은 이거였다.

"text에게 왜 nil이라는 값을 주는걸까?"
nil은 '진짜 없음'을 의미하는 점인데, 이게 왜 필요할까? 라는 생각을 상당히 많이했다.
도저히 이해가 안되서 튜터님께 질문을 드리니 의외의 답이 왔다.

코드에선 어떻게 될지 모르는 문제점이 있다.
그렇기에 모든 상황에 대비를 하는게 중요한데,
textLabel.text가 만약에 이전에 입력한 값을 담고 있다면, 사용자에게 불편을 제공할 수 있는 여지가 있다는 점이었다.
따라서 해당 문제점을 해소하고자 textLabel.text에 nil이라는 값을 할당하여 완전히 값을 지운 뒤, 새로운 값을 더할 수 있도록 만든다는 점이었다!!

THIS WAS A MIND-BLOWING IDEA!
이렇게 대비하기 위해 코드를 짰다니! 생각을 하지도 못했을 법한 코드였다.

회고

전반적으로 일요일부터 금일까지 성장이나 진도를 나간 부분이 없다!
이게 가장 아쉬운 부분이다...
정말 간단한 부분임에도 불구하고 스스로 이해하지 못하는 부분이 많다보니 계속해서 붙잡고 있는 기분이다.
챙겨야할 것들도 워낙 많다보니 이런 생각이 드는게 아닐까 싶다.
최대한 내가 할 수 있는만큼, 시간 분배를 잘해보도록 노력하자. 모두 주어진 하루라는 24시간 이내에 해결을 하고 있다!

이틀동안 그래도 다른 팀원들은 쑥쑥 이해하고 뭔가를 뚝딱 만들고 계셔서 많은 힘을 얻고 있는게 사실이다.
다들!! 힘 좀 나눠줘!!

0개의 댓글