데이터 처리 방식에 대한 깨달음 [스코클 TIL_230809]

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

스파르타코딩클럽

목록 보기
29/90
post-thumbnail

오늘의 학습

기술적

  • 데이터 처리는 알아서 처리하는 구조가 편하다
    객체 지향적이라 말한만큼, 알아서 맡은 역할을 다 해야한다.
    그동안 내가 짠 코드를 보면 정말 거대한 하나의 코드를 구성했었다.
    mainViewController에 모든 데이터를 담아서 출력시켰다.
    그렇다보니 코드는 무거워지고 각자 맡은 역할이 무엇이었는지 애매해지는 경우가 많았다.

    정말 간단한 예를 들자면, 아래와 같은 코드로 짰었다.

    func loadName(name: [String]) {
        print(name.map {String($0)}.joined(separator: ","))
        addNewPlayers(name)
    }
    
    func addNewPlayers(_ list: [String]) {
        originalPlayer.append(list)
    }

    뭔지 느낌이 와닿을까?


    함수 속에 다른 함수 - 그것도 목적과 연관성이 낮은 코드를 연결했었었다.
    이유는 "구현"을 위해서 였는데, 결국 원하는 결과를 위해 코드를 건드리다보니 마구잡이로 섞이게 되는 경우가 있었다. 이번 과제를 하면서 비슷한 느낌을 받았었는데, 다행히 예재 코드를 중간에 따라 쳐보면서 느낀 점이 있었다.

    데이터 처리는 담당 부서가 알아서 처리하도록 만드는 구조가 좋다는 점이었다!
    아래 코드가 이번 구현에 사용했었던 코드의 일부이다

    class TodoManager{
        static var list: [Todo] = [
            Todo(id: 0, title: "이렇게 정리", isCompleted: false),
            Todo(id: 1, title: "해봤슴다!", isCompleted: false),
        ]
    
        static func completeList() -> [Todo] {
             return list.filter{ $0.isCompleted == true }
         }
    }

    정-말 간단한 코드이지만, 나는 이렇게 완료된 투두를 추출할 생각을 하지 못했다.

    그저 전역 배열 변수를 만들어 완료 처리 및 삭제하는 메서드 내부에 해당 투두들을 담아 보고자만 생각했었는데, 위 코드를 구현해보며 이미 가지고 있는 값을 활용하면 새로운 변수를 만들 필요도, 이미 특정 역할을 마친 메서드 내부에 다른 메서드를 엮을 필요가 없다는 점을 다시 한번 깨닳았다.

  • 코드리뷰 시간
    기술적인 요소는 아니지만 이번 팀원들과는 서로 오늘의 결과물, 진척도를 보여주고 코드를 공유하는 등 다양한 범위로 인터렉션을 이뤄가고 있다. 다른 분들의 코드를 볼 수 있다니!!! 볼 때마다 각자 서로 가지고 있는 생각과 방식이 다르다는 점을 보면서 많이 배우고 있다. 모두 진도를 많이 못 나갔거나 부끄럽다는 분들도 계셨지만, 이 문화가 나는 너무 좋게 느껴진다. 서로 다른 시선을 가진 예비 개발자들이 악착같이 12시간씩 digging하며 이룬 결과물이다!!

    나 또한 예비 개발자이자 같은 위치에 선 초보 입장에서 진도가 빠르다고
    자부심을 가질 필요도, 느리다고 아쉬움을 느낄 필요도 없다는 점을 다시 깨닿는다.

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

글 잘 봤습니다.

답글 달기