👥 사람이라는 객체
🌐 어디까지 소프트웨어라고 할 수 있을까?
시와 코드, 변수명 짓기
- 같은 점 : 메세지를 추상화 시켜서 단어에 담는다.
- 다른 점 : 시는 의미를 각자가 다르게 느껴도 되지만, 변수명은 명확한 의미가 필요하다.
노하우가 생길 수 있는 모든 것은 소프트웨어 아닐까?
- 체계화해서 반복 사용할 수 있는 것들이 노하우가 되는데, 그렇다면 그것을 아키텍처로 생각한다면 노하우가 생길 수 있는 모든 것은 소프트웨어가 아닐까?
이름 짓기와 상수 Enum 활용
- 상담에는 이름 짓기라는 기법이 존재하는데, 내가 회피하고 있거나 구체화시키지 못하고 있는 대상에 이름을 지어서 그것을 스스로에게 분리해서 바라볼 수 있도록 한다. 이것도 상수 모듈을 분리해서 Enum을 사용하는 것 같지 않을까?
- 장점 : 식별이 편해진다. ⇒ 반복적으로 발생하는 삶의 문제에 대해 이름을 지으면, 비슷한 장점을 가질 수 있지 않을까?
- 단점 : 선언해야한다. ⇒ 삶의 문제에 이름을 지었을 때 추상화를 잘못한다면, 해당 문제가 아닌 문제들도 해당 변수명으로 합리화 할 수도 있겠다. (ex. 나는 MBTI가 ~라서 그래.)
소프트웨어는 문제 해결, 이 방법론을 삶에 적용시키면 개발도 더 빨리 늘지 않을까?
- 무언가를 통해 내 삶의 문제가 해결되면 빨리 배운다. 어른들이 말씀하시던, ‘필요하면 다 하게 되어있다.’라는 말씀이 이런 것 아니었을까-
🗣️ 프로그래밍 언어와 커뮤니케이션
여러가지 프로그래밍 언어
- 여러가지 프로그래밍 언어를 객체화해본다면 서로의 차이점을 통해 각 언어의 본질에 접근해볼 수 있지 않을까?
- 캠프동안 처음으로 JS를 접했었는데, 마구 튀어다니는 JS가 처음에는 적응이 어려웠지만 적응되니 너무 좋았다. 이제는 C언어가 사람이었다면 너무 깐깐해서 친해지기 힘들었을 것 같다. 😄
얄미운 사람, 얄미운 JS
- 사람과 JS만 암묵적인 타입변환을 하는 것 같다. 사람도 JS도 종종 야속하다.
- 반대로, 그렇기 때문에 사람간의 커뮤니케이션에 신뢰가 중요한 것처럼 JS 코드도 예측가능하게 써야겠다는 생각이 든다.
👤 사람을 소프트웨어로 접근한다면?
나를 소프트웨어로 본다면, 우리는 다들 버전업하면서 살고 있지는 않을까?
인간도 머신러닝과 비슷한 것 같다.
- 우리도 많은 경험과 사례, 표본을 통해서 성장해야 좋은 방향으로 성장 할 수 있지 않을까?
여러 메서드가 의존하고 있는 프로퍼티에 큰 수정이 발생하면 여러 문제가 생긴다. 사람도 이런 경우가 있을까?
- 사람은 누구나 ‘인간’이라는 객체에 의해 여러 메소드와 프로퍼티를 기본적으로 상속받는다.
- 객체에서 this.property를 이용해서 메서드를 작성한 경우, 해당 프로퍼티의 내용이나 자료형등이 바뀌게 되면 해당 프로퍼티에 의존하는 여러 메서드가 영향을 받게되는데 사람이 이런 경우는 없을까?
- 키가 확 자라나면, 갑자기 변한 내 삶의 환경들에 적응하기 어려웠다. 큰 변화가 생기면, 삶에서도 리팩토링이 필요했던 것 같다.
- 그럼 삶에서 했던 리팩토링을 이용해서 코드 리팩토링을 쉽게할 수 있는 방법은 없을까?
사람만 스스로 버그 수정과 리팩토링을 한다.
- 병원이나 물리치료를 받는 것이 이슈를 잡아서 리팩토링 하는 것 같다.
- 그런데 코드와 다른 점이 있다면, 인간만 직접 리팩토링을 하는 것 같다.
- 또한 이런 리팩토링의 접근도 다 달랐다. 자신의 문제를 해결하기 위해서 누군가는 공부를 하고, 누군가는 운동을 하고, 누군가는 또 다른 것들을 했다.
- 사람을 개인의 상위 객체로 표현한다면, 우리는 어떤 메서드나 프로퍼티를 오버라이딩 하면서 살고 있는건 아닐까?
💊 사람을 객체화해본다면?
사람을 객체로 접근
- 개인이 인간이라는 상위클래스에게서 상속 받는 것이 무엇이 있을까?
- 인간이라는 클래스가 동물이라는 상위클래스에게서 상속 받은 것이 아니라, 인간이라는 클래스에서 작성된 메서드가 무엇이 있을까? 이게 인간과 동물을 나눠줄 수 있지 않을까?
- 그럼 개인이 인간이라는 클래스에게서 상속 받은 것과 아닌 것은 무엇이 있을까?
- 이 고민이 고민을 위한 고민이 아니라 실제 삶에 적용할 수 있으려면 어떤 이야기를 나눠보아야할까?
아까 나왔던, 사람과 의존성으로 돌아가봅시다.
- 상위 클래스인 ‘인간’에서 새로운 메서드와 프로퍼티를 가지는 것이 개성이 만들어지는 과정 아닐까?
- 개인이 상위 클래스에서 받은 ‘상식’, ‘사회가 가지고 있는 통념’ 같은 것들에 스스로가 강하게 결합되어 있으면 개성을 가지거나 확장하기 어려워지는 것 같다.
생각 정리와 매몰
- 사회 속 상징등에 갇히게 되는 경우가 많았다. 아는 만큼 보는 것도 같은 맥락인 것 같다.
- 무언가가 인상적이었다면 그것에 끼어맞추며 생각하게 되는 경우도 있는 것 같다.
- 종종 내가 정리하고 정의한 것에 매몰되어서 합리화하는 경우도 생겼다.
내가 안다고 생각하지만 사실 상속받은 것
- 종종 개인은 상위클래스에게서 무얼 받았는지 잊고, 내가 아는 것이라고 생각하는 경우도 있는 것 같다.
- 사람은 정보은닉이 너무 잘되어 있는 것 같다. 문제는 this에서도 그 정보를 모른다는 점이다.
사람 클래스의 의존성
- 사람의 의존은 다른 사람들과 가장 크게 연관되어 있는 것 같다.
- 어디에 크게 의존하고 있는지 인지하는게 중요한 것 같다. 이것을 인지할 수 있는게, 말해보자면 의존성 주입의 가능 아닐까?
- 그럼 사람이 의존하는 관계에는 어떤게 있을까?
- 내가 소중히 생각하는 많은 것에 결합도가 높아지는 것 같다. 사람 뿐만 아니라 책임감, 사랑, 우정, 애착이 가는것까지 나라는 사람이 의존해서 결합도가 높아진 것 같다.
- 고3 때 친구들과 하는게 많았는데, 대학에 진학하며 그 분리를 겪기가 힘들었다. OOP에서 응집도를 높여야하는 것처럼, 나라는 사람도 의존성을 낮추고 스스로로서 응집도를 높이는 것이 필요하지는 않은가 생각이 든다.
- 누군가라는 외부에 의존하게 되면 나라는 객체를 수정하는게 쉽지 않아지는 것 같다. 의존성 주입이 중요한 것 같다.
❤️ 소감
- 다들 코딩에 미쳐있다. 광기가 눈에 보인다.
- 다들 광기가 있었다. 다른데에서는 하지 못하는 말들을 할 수 있어서 좋았다.
- 언어유희가 많아서 재미있었고, 다들 비유를 잘했다. 앞으로 많이 배우고 싶다.
- 처음에는 긴가민가 했는데, 재미있었다. ‘어디서 나라는 사람이 추상화가 잘되어있어.’ 같은 말을 할까
- 재미있었습니다. (이후 관계와 의존성 주제 발제)
- 일상에서 얻을 수 있는 영감과, 응집도 있는 집단 속 광기에서 얻을 수 있는 영감이 다르다고 생각한다. 광기 속 많은 영감을 얻을 수 있어서 너무 좋았다.