본문 바로가기
우아한테크코스 8기/level 1

2026/03/04 - 우테코 6일째

by 쪼꼬에몽 2026. 3. 4.

오늘 한 일

1. 프론트엔드 수업 듣기

2. 페어프로그래밍 진행

 

오늘 첫 프론트엔드 수업을 들었다.

수업 내용은 기본 진행 사항, 개발에 필요한 역량, tdd 설명, 생각하는 힘 기르기이다.

 

첫 번째 질문은 가트너가 발표한 AI 역량과 함께 중요한 역량이 무엇인지에 대한 질문이다.

이에 대한 답으로 AI에 내놓은 답을 이해하는 능력으로 적었다.

이외에도 여러 대답이 나왔지만 준이 생각한 답은 다음과 같다.

 

- 비판적 사고 - AI 없이 스스로 생각하는 능력

- 문제 해결 - 독립적으로 접근법을 만들어내는 능력

- 판단력 - 근거를 평가하고 결정하는 능력

- 증거 평가 - AI 없이 정보를 분석하는 능력.

 

AI에 발달함에 따라 많은 사람이 AI에 의존하고 있다.

이에 AI FREE, 즉 AI에 의존하지 않는 역량이 중요하다고 했다.

Strategic Predictions for 2026: How AI’s Underestimated Influence Is Reshaping Business

 

Strategic Predictions for 2026: How AI’s Underestimated Influence Is Reshaping Business

The Gartner top strategic predictions for 2026 reveal how AI agents, sovereign platforms and productivity tools are quietly transforming talent, procurement and governance — often in ways leaders don’t yet see.

www.gartner.com

 

오늘의 학습 방식은 AI Free로 TDD 읽기이다.

1. 켄트 벡, Test-Driven Development
2. Ward Cunningham c2 Wiki — TestDrivenDevelopment
3. Wikipedia — Test-driven development
4. 켄트 벡, Canon TDD (2023)

 

TDD에 관한 자료를 읽고 인상 깊었던 문장, 내용, 생각과 내가 이해한 TDD의 핵심을 한 문장으로 작성하는 것이다.

첫 번째를,

'TDD는 개발자가 코드를 작성하기 전에 요구 사항에 집중한다.
세련되지 않은 코드와 하드 코딩 허용한다. 이후 리팩토링 진행한다.
성공할 때까지 성공한 척하라.'

다음과 같이 적었고,

한 문장을,

'생각하기 힘들지만 완성되면 좋은 것'

이라고 적었다.

 

TDD의 핵심 내용을 적었고, 처음에는 테스트에 실패했지만 성공한 척하고 계속 시도를 하면 성공한다는 TDD 성격을 바탕으로 성공할 때까지 성공한 척하라 라는 문장이 기억에 남았다.

한 문장은 처음에는 무엇을 적을 지 공허하지만 요구 사항을 적고 기획하다 보면 점점 채워져서 좋은 결과물이 나올 것이라 판단하여 적었다.

 

이를 페어와 생각을 나누었다.

 

이제 로또 요구사항을 바탕으로 페어와 함께 TDD 방식으로 구현한다.

 

혼자라면 기능을 내 생각대로 적고 나의 방식대로 코드를 구현했을 것이다.

페어와 함께 있으니 요구 사항 작성부터 시작해서 하나하나 맞추어야 했다.

나는 JS에서 class형을 잘 다루지 않아 사용에 미숙했다.

프리코스와 최종 코테에서도 class형은 적지 않고 함수형으로 작성했다.

이번에 페어 프로그래밍을 하면서 class형을 이용해 객체를 만들자고 합의를 해서

class형에 도전하고자 한다.

 

먼저, 각자 생각하는 기능 요구 사항을 적고, 

TDD를 위해 테스트 코드를 적고자 했다.

 

기능을 만들었지만 해당 기능을 어떻게 테스트할지 막막했다.

우선, 기능을 만들 때 필요한 파일명을 적고자 했다.

domain, view, service 폴더로 나누고 view에는 입출력, domain에는 Lotto 객체, service에는 필요 동작 함수를 적고자 했다.

 

domain
- 로또  Lotto.js
- 로또 구매 갯수

view
- 구입 금액 입력 inputPurchaseAmount.js
- 발행 로또 번호 출력 ouputLottoNumber.js
- 당첨 번호 입력 inputWinningNumber.js
- 보너스 번호 입력 inputBonusNumber.js
- 당첨 통계 출력 ouputWinningStatics.js
- 재시작 입력 inputRetry.js

service
- 발급 받는 로또 갯수 calculateLottoCount.js
- 로또 번호 랜덤 발급 getRandomLotto.js
- 당첨 비교 및 수익률 계산 getStatics.js

 

대략적으로 다음과 같이 파일로 요약했다.

domain과 service에 대한 test를 먼저 적고, view에 대한 테스트 코드는 나중에 적고자 했다.

 

5분 동안 돌아가면서 구현하고자 하는 테스트 코드를 작성하고, 기능을 만들었다.

쉬운 프로젝트임에도 쉽게 진도가 나가지 못했다.

오후 1시 30분에 시작해서 6시가 넘어가도 전체 기능을 만들지 못했다.

 

혼자할 때보다 페어로 진행하다 보니 서로를 이해시키고 진행을 합의하는데 시간이 걸렸다.

그래도 대략적인 기능과 입출력을 만들었다. 내일 마무리를 하자고 했다.

 

처음에는 페어 프로그래밍을 왜 하는지 궁금했다.

혼자 하면 그냥 놓쳤을 내용을 페어와 이야기하면서 상기할 수 있고,

의사소통하는 방식을 기를 수 있다. 

오랜만에 코드를 내 생각으로 작성하려다 보니 머리가 굳었다. 기억이 잘 안난다.

Math.random() 사용법도 까먹고, 객체 생성법도 까먹었다.

class형으로 객체를 만드는 부분은 처음에 이해하지 못해서 헤맸다.

그래도 페어가 잘 설명해주어서 class형과 getter에 대해 이해할 수 있었다. 더 배워야하긴 하지만..

 

내일 마무리를 하고자 했으니 내일도 적어보겠다.