YAPP 22기 활동의 마무리, 성과공유회 4월 29일부터 8월 5일까지 약 3달이 넘는 기간 동안 진행된 YAPP 22기 활동을 마무리하는 날이다. 우리 팀은 유기견 봉사 매칭 플랫폼, 댕글댕글이란 웹 서비스를 만들었고, 성공적으로 출시할 수 있었다. 모든 팀원이 열정적으로 맡은 바에 최선을 다해준 덕분이다. 다른 팀들이 만든 서비스를 직접 이용해보고 궁금증과 피드백을 주고받는 시간도 주어졌다. 다양한 서비스를 구경하는 재미도 쏠쏠했다. 성과 발표 시간에는 각 팀들이 어떤 과정을 거쳐서 얼마큼의 성과를 만들어냈는지 공유하였다. 나도 우리팀 TPM으로서 22기 멤버들에게 댕글댕글 서비스를 소개하고 이후 목표를 발표했다. 성과 발표. 그리고 향후 목표 우리 팀은 처음 시작할 때부터 목표를 명확하게 잡았다...
TDD 법칙 세 가지 TDD: 실제 코드를 짜기 전에 단위 테스트부터 짜는 개발 방식 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위 규칙을 따면 개발과 테스트가 약 30초 주기로 함께 나온다. 하지만 방대한 테스트 코드는 심각한 관리 문제를 유발하기도 한다. 깨끗한 테스트 코드 유지하기 지저분한 테스트 코드를 짜는 것은 테스트를 안 하는 것보다 못하다. 실제 코드가 진화하면 테스트 코드도 변해야 한다. 테스트 코드가 지저분하면 변경하기 어려워진다. 테스트 코드가 복잡할 수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 길어진..
라이브러리, 패키지, 오픈 소스 등의 외부 코드를 우리 코드에 통합시키는 방법과 이런 소프트웨어 경계를 깔끔하게 처리하는 방법에 대해 알아본다. 소프트웨어 경계란, 인터페이스 제공자와 사용자 사이의 입장 차이로 발생하는 경계 인터페이스 제공자는 최대한 적용성을 넓히는 방향으로 설계한다. 인터페이스 사용자는 자신의 요구에 집중하는 인터페이스를 원한다. 외부 코드 사용하기 예를 들어 Map 객체는 굉장히 다양한 인터페이스로 수많은 기능을 제공하는데, 이런 유연성은 유용하지만 그만큼 위험이 크다. 객체 유형을 제한하지 않는다. 어떤 타입의 객체도 추가할 수 있다. 사용자에게 필요하지 않은 기능까지 제공한다. 누구나 내장된 clear() 함수를 호출하여 내용을 지워버릴 가능성이 있다. 제너릭 사용하기 const..