2023년 7월 회고

dlwl98·2023년 8월 2일
6

7월 회고

데브코스를 시작하고 벌써 두 번째 월간 회고이다.
시간이 굉장히 빠르다.. 8월을 더 의미있고 알차게 보내기 위해 7월 회고를 작성한다.
이번 회고는 멋모르고 작성된 6월 회고와는 다르게 Continue-Stop-Start 방식으로 작성해 보았다.


Continue

생활 패턴

데브코스를 한 달 넘게 하면서 최적화된 생활패턴에 정착했다.
오전 2시에 잠들어서 오전 9시에 기상하는 것.
얼마 전 있었던 함께 자라기의 저자인 김창준님의 특강에서 뜻밖의 지식을 얻었다.
사람마다 생체시계가 있고 그에 반하는 것은 쉽지 않다는 내용이었다. 나의 생체시계는 오전 2시 ~ 4시가 최적의 취침시간이다.
일찍 일어나는 것이 사회인의 기본 소양이라고 생각해 오전 2시에 취침하기로 했다.
하루가 26시간인 팀원분이 있다. 그 분을 보면서 나의 하루는 24시간인 것에 안도한다.

스터디

알고리즘 스터디


올 해 초부터 해오던 알고리즘 스터디는 스터디원들의 사정으로 인해 주에 4문제로 문제 수를 줄였다.
문제 수를 줄이고 한 달 정도 더 진행해 본 결과..
무작위 유형으로 4문제를 뽑다보니 연속으로 뽑히지 않는 유형의 문제들이 늘어났다.
다익스트라 문제가 한동안 나오지 않다가 저번주에 오랜만에 나오자 손에 익었던 다익스트라 코드가 가물가물했고 위기를 느꼈다.

이를 어떻게 하면 좋을까?
우리는 디스코드의 스레드 기능을 활용해 알고리즘 유형별로 최근에 푼 날짜를 기록해 두기로 했다.
그리고 문제를 정하는 기준은 4문제 중 3문제는 무작위 유형, 나머지 한 문제는 가장 마지막에 푼 유형으로 고정.

이렇게 하면 문제 수도 줄이면서 감도 잃지 않을 것 같다.

이펙티브 타입스크립트 스터디

이펙티브 타입스크립트라는 책을 읽고 정리하고 발표하는 스터디다.
요즘 기업들이 타입스크립트를 신입이 갖춰야 할 기본역량으로 요구한다. 그에 부합하기 위해 공부의 필요성을 느꼈다.
유독 타입스크립트 코드를 작성할 때는 DRY원칙을 적용하기가 힘들었다.
타입스크립트 코드는 런타임에 동작하지 않는다는 것을 자주 망각하곤 했다.
아직 초반부지만 책을 읽어보니 내가 타입스크립트를 사용하면서 했던 고민들을 해소해 줄 책이라는 확신은 든다.

과제

데브코스에서의 7월은 강의도 많고, 과제도 많았다.
강의를 다 수강하면서 주어지는 과제까지 하려니 사이드 프로젝트는 거의 손도 못댔다.
하지만 공들인 만큼 얻는 것도 많다. keep going!

바닐라 JS 2

과제의 주된 요구사항은 컴포넌트의 상태에 유효성 검증을 추가하는 비교적 간단한 과제였다.
1. state의 정합성 체크(타입 검증이라고 판단했다)
2. state가 변경 시에만 렌더링하기

실제 서비스를 만드는 것도 아니고, 공부 목적으로 과제를 하는 만큼 유효성 검증 로직을 추상화 시켜보고자 했다.
1. 컴포넌트의 state 타입(런타임 타입의 스키마)을 정의하고, 값이 스키마에 부합하는지 검증하는 isTypeValid 함수를 구현했다.

// 타입 선언 모음
const NodeType = {
  id: 'string',
  name: 'string',
  type: new Set(['DIRECTORY', 'FILE']),
  filePath: new Set(['string', null]),
  parent: new Set([{ id: 'string' }, null]),
};

export const NodesStateType = {
  isRoot: 'boolean',
  nodes: [NodeType],
};

export const LoadingStateType = 'boolean';

export const ImageViewerStateType = {
  selectedImageUrl: new Set(['string', null]),
};

export const BreadcrumbStateType = [NodeType];

export const AppStateType = {
  isLoading: LoadingStateType,
  paths: BreadcrumbStateType,
  ...NodesStateType,
  ...ImageViewerStateType,
};

// 함수 내부는 생략
export function isTypeValid(object, schema) {
  // ...
}
  1. state가 바뀌었는지 deep하게 검증하는 IsEqual 함수를 구현했다. (다 만들고 보니 lodash에 있더라..)

과제를 하면서 타입스크립트의 소중함을 느꼈다.
하지만 한편으로 든 생각은 api처럼 타입스크립트 타입과 실제 타입이 다를 수 있는 경우, 내가 만든 isTypeValid 같은 것을 통해서 재사용 가능한 런타임용 타입가드를 만들어 줄 수 있지 않을까?

scss

scss를 이용해 유튜브의 메인페이지 레이아웃을 클론코딩했다.

가장 어려웠던 것은?
헤더의 검색 바를 반응형으로 만드는 것(포커스 시 바뀌는 것이 많았음..)이었다.

검색 바를 js없이 순수 css만으로 구현해보고, 전체 레이아웃을 최대한 비슷하게 꾸며가면서 css만으로 할 수 있는 영역을 어느정도 알게 된 것 같다.

사이드 프로젝트

데브코스 시작과 거의 동시에 3명이서 프로젝트를 하나 시작했다.
디자이너도 없어서 볼품없지만 셋이서 피그마를 이용해 기획부터 디자인까지 다 했다.

기획과 디자인이 다 끝나고 이제 7월부터는 슬슬 본격적인 개발에 들어가려 했으나.. 한 명은 취직, 한 명은 인턴을 하게되어 프로젝트에 소홀해지게 되었다.
나도 7월 데브코스에 집중하다보니 큰 진전이 없었고, 스크럼때 모여 대책을 세웠다.

  • 기한을 좀 길게 잡자. (내년 복학 전까지)
  • 회사일이나 부트캠프가 조금 한가할 때! 그 때가 프로젝트에 집중할 타이밍이다. 알잘딱하기

모두가 프로젝트의 난이도가 있기 때문에 기한을 늘리는 것에 동의했고,
한 주에 최소 몇시간은 프로젝트에 투자하자 대신 여유 있을 때 해두자로 계획을 변경했다.


Stop

조급해하지 말기

세상에는 개발을 잘하는 사람들이 많다.
뭔가 모르는 것을 검색할 때마다 나보다 잘하는 사람들을 만나게 된다.
그런 사람들을 볼 때마다 더 잘하고 싶은 마음에 조급해지는 것 같다.
하지만 조급해한다고 달라지는건 없으니 조금 덜 조급해져야겠다.
7월 한 달 동안 공부한 느낌을 계속 가져가면 데브코스가 끝날 때는 크게 성장해 있지 않을까?

효율 따지기 금지

나는 극한의 효율을 좋아한다. 그리고 비효율적인 공부법을 싫어한다.
그래서 뭔가를 정리하거나 글로 남기거나 하는 일이 별로 없다. 나중에 다시 볼 일이 없을 것 같다면 굳이 남기지 않는거다.
최근 갑자기 이런게 다 지금 당장의 효율을 따지는 조삼모사같은 짓이라는 생각이 들었다.
개발자에게 문서화 능력은 중요하고, 개발자는 항상 뭔가를 남겨야 한다.
지금 당장은 귀찮고 비효율적이더라도 큰 그림으로 보면 개발자로서의 역량에 기여하지 않을까?


Start

다른 사람의 좋은 점 배우기

데브코스를 하면서 나에게 부족한 점 하나를 알게 되었다.

바로 뭔가를 깊이 파고드는 능력이다.
2depth, 3depth로 파고들면서 공부를 해서 원리를 이해하는 것이 중요하다고 강사님들도 이야기한다.
그동안 '나 정도면 그래도 많이 찾아보는 편이지~' 라고 생각했지만 반성하게 되었다.

같은 개념을 공부하거나 같은 책을 읽고 나는 이해했다고 생각해 넘어갔지만, 팀원의 의견을 들어보면 내가 깊게 생각해보지 않았었다.
나는 그냥 넘겨버렸지만, 물고 늘어지는 사람들을 보면서 많이 배운다.

운동

여름이 지나고 가을이 오면 아침 운동을 시작해야겠다.
사실 운동을 해야겠다고 마음 먹은건 좀 됐지만, 요즘 날씨가 너무 더운 탓에 잠에서 깨면 바로 샤워하고 싶어진다.
진짜 가을되면 운동해야지.

독서

김창준님의 특강을 듣고 난 뒤 김창준님처럼 되고 싶다고 생각했다.
김창준님의 말에는 묘하게 집중하게 되는 이끌림이 있고, 아무리 질문이 추상적이고 모호해도 심리학이나 경험담을 통해 최대한 구체적으로 정답에 가까운 말을 해주셨다.

그래서 읽을 책은

  • 함께 자라기
  • 심리학 관련 도서

13개의 댓글

comment-user-thumbnail
2023년 8월 2일

하루가 26시간인 게 얼마나 좋은데요. 잘 봤습니다.

1개의 답글
comment-user-thumbnail
2023년 8월 2일

keep going

1개의 답글
comment-user-thumbnail
2023년 8월 2일

넘모 멋있어요

1개의 답글
comment-user-thumbnail
2023년 8월 2일

이런 유용한 정보를 나눠주셔서 감사합니다.

1개의 답글
comment-user-thumbnail
2023년 8월 2일

글 알차네요 잘 읽고 갑니다 ㅎ
함께 자라기 다 읽으면 의견 나누고 싶어요

1개의 답글
comment-user-thumbnail
2023년 8월 7일

진욱님 팀이 바뀐 게 아쉽지만.. 8월도 화이팅 입니다!!

1개의 답글

유용한 회고글 잘 읽었습니다 :)

답글 달기