스코클 TIL_230721

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

스파르타코딩클럽

목록 보기
8/90
post-thumbnail

오늘 배운 것

  • 프로토콜에 대한 개념을 조금은 더 잡을 수 있게 됐다.
    예전에 처음 언어를 배울 때 너무 많은 정보를 흡수하느라 헷갈리는 문법들이 많이 있었다.
    하지만 조금이더라도 꾸준히 파보니 어느정도 이해를 하는 것 같다.

    프로토콜은 단일 상속을 지원하는 Swift 언어에서 중요한 포인트이다.
    오죽하면 프로토콜 지향 프로그래밍이라고 불릴까?
    프로토콜은 메소드의 틀을 만들어, 사용하고자 하는 클래스에 채택 시킬 수 있도록 되어 있다. 네이밍과 parameter가 지정됐을 뿐, 내부 구현 코드는 채택한 클래스에서 별도로 사용할 수 있는 구조다.

    상속과 비슷한 점이 있지만, 간단하게 보면 부모 클래스가 지니고 있는 모든 값과 메소드를 자식 클래스에게 물려주는 구조를 가진 상속과 다르다. 행동만 실현하도록 만들 수 있기 때문이다!
  • 추가 과제 프로그램을 짜며 조금씩 SOLID에 대한 이해도를 높이고 있다.
    // 내일.... 작성하자...
    SOLID는 앞서 이야기한대로 OOP를 위한 5가지 설계 원칙이다.
    5가지 원칙을 정리하자면...

    1. Single Responsibility 단일 책임 원칙
    2. Open-Closed 개방-폐쇄 원칙
    3. Liskov Substitution 리스코프 치환 법칙
    4. Interface Segregation 인터페이스 분리 원칙
    5. Dependency Inversion 의존 역전 원칙


    보면 볼수록 코드를 분리시키고 코드의 결합도를 낮추고 응집도를 높인다는 부분이 어떤건지 이해가 조금씩 되고 있다. 효율적인 코드는 재사용성이 높아야 한다고 한다.
    그 이유는 코드를 복사해서 다른 파일 혹은 프로젝트에서 사용할 수 있도록 하기 위함이다!
    다만, 재사용성을 넘어 기존 기능을 유지한 채 업데이트나 변경을 할 경우,
    다른 코드에 영향을 주는 부가 영향이 없어야 하기 때문이다.

    SOLID는 내가 느끼기로는 이걸 이루기 위해 가장 기본적인 틀을 제시하는 게 아닌가 싶다.
    단일 책임 원칙은 클래스는 하나의 책임에 수행해야 하며 변경되는 이유 또한 오직 하나뿐이어야 한다는 점이다. (여전히 함수가 하나의 역할을 해야한다는 포인트와 헷갈리는 부분이 있지만, 클래스는 하나의 기능을 뜻하는게 아니라 하나의 책임을 의미한다.)

회고

  • 과제를 제출했다.
    얼마 되지는 않았지만 그럼에도 뿌듯함이 남아 있던 하루였다.
    새로운 코드를 배우기보다 복습을 정말 많이 하고 있는 기분이지만, 나의 기반을 더 단단하게 만들 수 있으면 뭐든 좋겠다는 생각을 한다.

개선 방법

  • 스몰토크의 중요성 (기술적인 개선은 아니지만...)
    회사를 다닐 때에도 나는 항상 일을 할때는 일만 했다.
    사람들과 친하게 지내는 시간은 점심 시간이나 함께 커피를 마시러 가거나, 산책하거나 퇴근한 뒤에 주로 보냈다. 코딩을 할 때도 비슷한 생각이 들었는데, 몇 몇 팀에서는 항상 대화가 끊기지 않아 보였다. 질문을 하고 있는건지, 대화를 하고 있는건지 모르겠지만, 하루종일 컴퓨터 앞에 앉아 화면만 보고 있는 우리 개발자 꿈나무들이 조금이라도 더 편하게 코드를 하고 편한 분위기를 만들기 위해서 지금처럼 조용히 내 할 것만 집중하면 안되겠다는 생각을 하게 된다.

0개의 댓글