KPT는 각각 Keep, Problem, Try의 약자입니다. 이름에서 알 수 있듯 3가지 관점에서 업무를 돌아보고, 다음 액션 아이템을 도출해내는 데 도움이 되는 회고 템플릿이에요.
- Keep (프로젝트에서 만족했고, 앞으로의 업무에서 지속하고 싶은 부분)
- Problem (프로젝트에서 부정적인 요소로 작용했거나 아쉬웠던 점)
- Try (Problem에 대한 해결 방식으로 다음 프로젝트에서 시도해볼 점)
무엇보다 KPT에서 중요한 관점은 Try입니다. 이번 프로젝트에서 아쉬웠던 점을 Try를 통해 어떻게 보완할 수 있을지 정리해보면서 구체적인 실천 방안을 세울 수 있다는 장점이 있어요.
[https://www.inflearn.com/pages/weekly-inflearn-41-20220215]
I. 프로젝트 개요
1. 프로젝트 이름 및 취지
(1) 이름 , git주소
JavaScript의 canvas를 이용한 게임 만들기
코딩타자연습
git 주소 :
(2) 취지
코딩입문자의 경우 다양한 사유로 어려움이 상존한다. 특히 그 중에서 타자면에서 어려움의 원인은 두가지로 추정할수 있다.
첫번째 영어타자인 점, 두번째 익숙하지않은 특수기호(; ' " ` % & 등)인 점이 있다.
한편 타이핑의 익숙함과 더불어 필수적인 코딩 키워드나, 코드들을 수차례 반복으로 몸으로 익힐수 있게끔 하기 위해서 프로젝트 주제로 정하였다.
2. 프로젝트 일정
12월 30일 최초로 팀구성을 하고, 1월 10일까지는 설계와 개발에 필요하는 지식습득 기간이다.
1월 11일 본격적으로 사수-부사수 책임제로 팀 내 팀을 3개로 세분화하여 본격적으로 시작하였다
1월 18일을 데드라인으로 하였고 이보다 이르게 성공적으로 달성하였다
생각보다 기간이 넉넉하게 남아서 1월20일 발표일이전까지 리팩토링하였다.
II. 개인적인 개발 기록
본 개발기록은 하루에 내가 무엇을 했는지 성취감을 느끼기위해서 메모해둔것이다.
본메모의 구성은 다음과같다
문제, 개발하려는 기능 => 해결 => (또다른 문제) => 다시 해결
III. 프로젝트 회고
1. Keep (프로젝트에서 만족했고, 앞으로의 업무에서 지속하고 싶은 부분)
(1) 팀 관점
1) 팀장으로서 일정 관리를 할 때 넉넉하게 기간을 잡은 점이 뿌듯하다
2) 매일 아침 팀회의 및 스터디를 30~1시간가량 한 것이 팀 협업 및 학습에 도움이 되었다.
3) 개발경험에 따른 사수 - 부사수 책임제로 팀 내부를 세분화한 점이 문제발생및 해결을 수월하게 할수 있어서 도움이 되었다.
4) 개발의 우선순위(core 기능이 무엇인지)를 두어서 소기 목적을 빠르게 달성할 수 있어서 도움이 되었다.
5) 팀원들이 개발적 근거없이 주장을 하지않기 때문에 좌고우면 하지안았다.
(2) 개인관점
1) 지금 무엇이 문제고 무엇을 개발할지 그리고 그 과정을 메모장에 켜두고 명세시켜둔 점
관념적, 무의식적으로 비약해버리는 사고를 바로잡을 수있었음
2) 위와 연결해서 하나씩 목표를 정해두고 개발한점 덕분에 성취감을 느낄수 있었다
3) 개발일지를 메모를 해서 내가 무엇을 했는지 정리와 반성을 할수 있었음
4) 메인으로 개발하던 부분이 잘 되지않는 경우 자칫무기력해지거나 짜증이 날수도 있으나, 부차적인 기능 개발로 의도적 미루기를 한점
5) 아쉬웠던 부분 몇가지를 여유기간에 클린코드로 리팩토링하려고 노력한 점
2. Problem (프로젝트에서 부정적인 요소로 작용했거나 아쉬웠던 점)
1) 클린코드
기능 개발 쫓긴나머지 스파게티코드가 발생한점
예컨데 ) 중복된 기능을 가진 함수를 만든점, 절차지향적으로 코딩을 한점
2) 객체지향 이벤트지향 프로그래밍
: 함수를 만들고 기존에 내가 익숙한 방식으로 코드를 짜고싶어서 반환값을 만들까 고민한점
: 이벤트 지향이 아니라 멤버변수의 this 남발로 스파게티 코드를 야기한점
: 결국 캡슐화를 하지못해서 버그의 연쇄작용으로 디버깅에 힘든점
3) 공식문서 MDN
: 공식문서 기반 개발이 아니라 블로그 기반 개발로 위험을 야기한점
: 공식문서가 익숙해질 수있는 기회를 놓친점
4) 팀내 다른팀의 개발에 관심이 소홀한 점
: 다른팀의 코드를 살펴보거나 배우려고 하지않아서 성장의 기회를 다소 놓친점
5) 리팩토링을 할 때 회피한 점
: 내가 개발한 부분에 물려버려서 그만보고 싶기 때문이다.
3. Try (Problem에 대한 해결 방식으로 다음 프로젝트에서 시도해볼 점)
1) 클린코드 => 정기적 코드리뷰
다음번 프로젝트를 할 때에는 팀원으로 하여금 의식적 제도적 코드리뷰를 하게끔 할것이다. 이로서 스파게티 코드를 막을수는 없으나 최소화 할수있 수 있다.
2) 객체지향프로그래밍 -> 캡슐화를 1순위로 생각하기!
일단 캡슐화만 잘 해놓더라도 추후에 코드수정에 효율은 훨씬 높일수 있으리라 생각된다.
3) MDN문서 익숙해지기 -> 검색시 1순위로 보기
공식문서를 먼저 보고 블로그를 보자
4) 다른팀 관심소홀 -> 코드리뷰를 제도적으로 마련하기
5) 리팩토링 회피
물리고 지겨워진 시점에서 한번 더 한다면 그 지점이 성장의 지점이라는 것으로 생각하기