ALL
경희대 테크 콘서트 강연에 서다
경희대학교 컴퓨터공학부에서는 최근 TechKHU Concert라는 IT 테크 콘서트를 꾸준히 주최하고 있다. 경희대 컴공 졸업생들이 연사로 참여하여 후배들에게 조언과 팁을 제공하는 자리인데, 어쩌다 보니 내가 연사로 참여하게 되었다 🥲 (남자 동기들이 대부분 과장, 동장을 맡고 있다 보니 자연스레 제의가 들어왔다.) 사실 재학생 입장에서 어떤 이야기들이 도움이 될까를 고민을 해봤지만, 역시나 기술적인 이야기보다는 공부나 취업에 대한 이야기가 더 고프지 않을까 생각이 들었다. 그래서 이전에 오픈부스 컨퍼런스에서 발표했던 내용과 비슷한 이야기를 또 풀어낼 수밖에 없었다. 그때의 발표 내용을 다시 살펴보니, 조금 공격적인 말투도 있었던 것 같고 PPT 자체의 전달력이 조금 떨어진다고 느꼈다. 그리하여 대대적인..
13. 코드로 이해하는 합성(2/2) | 오브젝트 11장
3. 합성 관계로 변경하기 상속 관계는 컴파일타임에 결정되고 고정되기 때문에 코드를 실행하는 도중에는 변경할 수 없다. 따라서 여러 기능을 조합해야 하는 설계의 경우 클래스 폭발 문제가 발생하게 된다. 합성은 컴파일타임 관계를 런타임 관계로 변경함으로써 이 문제를 해결한다. 컴파일타임 의존성과 런타임 의존성의 거리가 멀수록 설계가 유연하다. 상속은 컴파일타임 의존성과 런타임 의존성을 동일하게 만든다. 합성은 퍼블릭 인터페이스를 사용하여 두 의존성을 다르게 만들 수 있다. 두 의존성의 거리가 멀수록 설계의 복잡도는 상승하지만, 변경에 따르는 고통이 커지고 있다면 유연성을 택하는 것이 좋다. 합성을 사용하면 구현 시점에 정책들의 관계를 고정시킬 필요가 없으며 실행 시점에 유연하게 변경할 수 있다. 상속: 조..
12. 코드로 이해하는 합성(1/2) | 오브젝트 11장
코드 재사용 기법 상속: 부모 클래스와 자식 클래스를 연결해서 부모 클래스의 코드를 재사용 두 객체 사이의 의존성은 컴파일타임에 해결된다. is-a 관계 합성: 전체를 표현하는 객체가 부분을 표현하는 객체를 포함해서 부분 객체의 코드를 재사용 두 객체 사이의 의존성은 런타임에 해결된다. has-a 관계 합성은 상속과 달리 구현에 의존하지 않는다. 합성은 구현이 아닌 퍼블릭 인터페이스에 의존한다. 상속 관계는 코드 작성 시점에 결정한 후 변경이 불가능한 정적인 관계이지만, 합성 관계는 실행 시점에 동적으로 변경할 수 있는 동적인 관계다. 상속은 부모 클래스 안에 구현된 코드 자체를 재사용하지만, 합성은 포함되는 객체의 퍼블릭 인터페이스를 재사용한다. 1. 상속을 합성으로 변경하기 상속을 남용했을 때의 문제..
11. 코드로 이해하는 상속과 코드 재사용 | 오브젝트 10장
코드를 재사용하는 방법 전통적인 패러다임: 코드를 복사한 후 수정 객체지향 패러다임: 새로운 클래스 추가 상속: 클래스를 재사용하기 위해 새로운 클래스를 추가하는 가장 대표적인 방법 합성: 새로운 클래스의 인스턴스 안에 기존 클래스의 인스턴스를 포함시키는 방법 1. 상속과 중복 코드 DRY (반복하지 마라) 원칙 Once and Only Once 원칙 또는 Single-Point Control 원칙이라고도 부른다. 코드 안에 중복이 있어서는 안 된다는 것이다. 한 달에 한 번씩 가입자별로 전화 요금을 계산하는 코드를 예시로 보자. class Call { private from: number; private to: number; constructor(from: number, to: number) { thi..
10. 코드로 이해하는 유연한 설계 | 오브젝트 9장
8장에서 살펴본 의존성 관리 기법들을 원칙이라는 관점에서 정리해보자. 1. 개방-폐쇄 원칙 소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 확장에 대해 열려 있다 애플리케이션의 요구사항이 변경될 때 새로운 '동작'을 추가해서 기능을 확장할 수 있다. 수정에 대해 닫혀 있다 기존 '코드'를 수정하지 않고도 동작을 추가하거나 변경할 수 있다. 컴파일타임 의존성을 고정시키고 런타임 의존성을 변경하라 컴파일타임 의존성: 코드에서 드러나는 클래스들 사이의 관계 런타임 의존성: 실행 시에 협력에 참여하는 객체들 사이의 관계 할인 정책 설계의 경우, 확장에 대해 열려 있다 새로운 할인 정책을 추가해서 기능을 확장할 수 있도록 허용한다. 수정에 대해 닫혀..
DEPROMEET(디프만) 후기: 고인물을 지나 썩은물이 되어서야 써보는 IT 동아리 회고 글
내가 디프만을 시작했던 게 8기, 현재 11기가 끝나가고 있다...! 8기부터 참여했던 사람이 아마 나밖에 없을 것 같기도... 어쩌다 고인물이 되었을까..? 이제 디프만 없이는 못 사는 사람이 된 걸지도... 🤔 디프만은 나에게 꿈의 동아리 같은 느낌이었다. 대학생 나부랭이였던 나에게 현직자와 함께 프로젝트를 해본다는 것은 상상조차 못할 일이었다. 부푼 꿈을 앉고 지원했으나 서류에서 탈락한 적도 있었기 때문에 더욱 더 벽이 높게만 느껴지기도 했다. 2학년이 끝나고 열심히 공부한 것을 바탕으로 8기에 또 지원하게 되었고, 결과는 합격이었다. 엄청나게 기뻤다. 당시 코로나가 크게 유행하기 전이었기 때문에 OT도 엄청나게 기대됐었다. 디자이너와 프로그래머가 만났을 때 대학생 신분으로 혼자서 고군분투했던 때와..
AUSG(아우쓱) 후기: 두 기수를 지내며 써보는 IT 동아리 회고 글
요즘 IT가 붐이긴 한가 보다! 아우쓱 지원자도 매 기수마다 기하급수적으로 늘어나고 있다 👀 나는 4기부터 활동하여 현재 6기 모집이 진행되는 현재까지도 열심히 활동하고 있는 일원이다 :) AUSG? 아우쓱은 AWSKRUG University Student Group의 약자다. 혹시 AWSKRUG는 아시는 분이 있으려나..? AWS 한국 사용자 모임으로, AWSKRUG 밑에 소속되어 있는 느낌이면서 대학생들끼리만으로 따로 구성되어 있는 그룹이다. 즉 AWS와 클라우드에 관심 있는 대학생들의 모임인 것인데... 그렇다면 AWS나 클라우드에 대해 잘 알아야 하나요? 그렇진 않다! 사실 나도 하나도 모르고 들어갔기 때문에..ㅎㅎ 심지어 프론트엔드를 막 공부하기 시작할 때쯤 들어갔기에 개발에 대해서도 빠삭한 상..
어떻게 살아야 할 것인가 | "인생의 태도"를 읽고
웨인 다이어는 유명한 심리학자다. 수많은 저서 중 들어본 책들은 많았다. 하지만 한 번도 읽어보지는 않았다. 평소 "치유물"로 불리는 자기 계발서 서적을 좋아하지는 않는 편이라 더 그랬던 것 같다. 마냥 느려도 괜찮다느니, 모두가 각자의 길을 걸어가고 있을 뿐이라느니 그런 식상한 말을 듣고 싶지는 않았다. 내 안의 궁금증은 "내가 과연 잘 살고 있는 것일까?"가 아닌, "궁극적으로 내가 어떻게 살아야 하는 것일까?"였다. 서점을 거닐며 책을 앞 뒤로 뒤집으며 표지를 구경했다. 내 시선을 사로잡는 문구가 나오길 바랐다. 그런 점에서 이 책은 내 마음을 끌었다고 할 수 있다. '나이, 직업, 재산, 관계까지 그 모든 것이 사라졌을 때 과연 나는 누구일까?' 그 문장을 읽은 찰나의 순간 내 머릿속엔 아무것도 ..