2장에서는 각종 개입 기법을 알아본다. 개입이란 상대방의 믿음 형성 과정에 비집고 들어가는 행위를 말한다. 항상 기억해야 할 것은 나부터 열린 태도를 지녀야 한다. #1 본보기 보이기 | 상대방에게서 원하는 행동을 내가 먼저 보인다 내가 상대방에게 원하는 행동이 있다면, 내가 먼저 본보기를 보이자. 이는 말로는 쉬워도 실천하기 어렵다. 하지만 꼭 지켜야 할 원칙이기도 하다. 특히 나와 생각이 다른 사람과 대화할 때는 더욱 그렇다. 이 원칙은 대화가 엉뚱하게 엇나가는 것을 막기 위해서도 매우 중요하다. 읽지 않은 장서 효과 사람들은 주어진 문제에 대해 잘 안다고 착각하지만 막상 그 문제에 대해 설명 해보라고 하면 제대로 설명하지 못한다. 이 책에서는 이를 읽지 않은 장서 효과라고 부른다. 타인의 사고에 개..
예의 있는 대화의 기본은 상대를 적이 아니라 협력 상대로 보는 자세다. 그러려면 내 목표를 알고 상대의 의도를 너그럽게 해석해야 한다. 또 상대의 말을 들으며 메시지 전달이 아닌 양방향 대화를 해야 한다. 원활한 양방향 대화의 첫걸음은 듣는 법 배우기다. 머릿속에 있는 말을 다 하고 싶은 마음을 참아야한다. 그다음에는 타이밍을 잘 판단해 대화를 품위 있게 끝내야 한다. #1 목표 인식하기 | ‘이 대화를 왜하는가?’ 대화의 목표에는 다음의 유형이 있다. 서로 이해하기: 의견 일치 까지는 이르지 못하더라도 서로의 견해를 이해하려 하는 경우 서로 배우기: 상대방이 어떻게 그러한 결론에 이르렀는지 알아보기 위한 경우 진실 찾기: 힘을 합쳐 진실을 모색하거나 착각을 바로잡으려 하는 경우 개입: 상대방의 믿음이나..
Query 사용 우선순위 이 전 글들에서는 getByTestId 쿼리를 사용해 테스트를 진행했지만 사실 getByTestId는 testing-library에서 우선순위가 가장 낮은 쿼리입니다. 때문에 testing-library에서 권장하는 Query들의 우선순위를 살펴보고 가겠습니다. 기본 원칙에 따라 테스트는 사용자가 코드(컴포넌트, 페이지 등)와 상호 작용하는 방식과 최대한 유사해야 합니다. 이를 염두에 두고 다음과 같은 우선순위를 권장합니다: 1. 모든 사용자가 접근할 수 있는 쿼리(Queries Accessible to Everyone) Query 사용 우선순위가 가장 높은 것은 시각/마우스 사용자뿐만 아니라 보조 기술을 사용하는 사용자의 경험을 반영하는 쿼리입니다. getByRole: 이 쿼리..
Test Driven Development 란 무엇인가요? 실제 코드를 작성하기 전에 테스트 코드를 먼저 작성합니다. 테스트 코드를 작성한 후 그 테스트 코드를 Pass 할 수 있는 실제 코드를 작성합니다 TDD를 하면 좋은 점 TDD를 하므로 인해 많은 기능을 테스트하기에 소스 코드에 안정감이 부여됩니다. 실제 개발하면서 많은 시간이 소요되는 부분은 디버깅 부분이기에 TDD를 사용하면 디버깅 시간이 줄어들고 실제 개발 시간도 줄어듭니다. 소스 코드 하나하나를 더욱 신중하게 짤 수 있기 때문에 깨끗한 코드가 나올 확률이 높습니다. TDD 방식으로 카운터 버튼 앱 만들어보기 1. 해야 할 일 - 카운터는 0 부터 시작해야 됩니다. 2. 테스트 코드 작성 import React from "react"; im..
Rust 컴파일러에서 Jest 설치 방법 Next.js 12 릴리스부터 Next.js에는 이제 Jest를 위한 구성이 기본으로 제공됩니다. Jest를 설정하려면 jest, jest-environment-jsdom, @testing-library/react, @testing-library/jest-dom을 설치하세요: yarn add jest jest-environment-jsdom @testing-library/react @testing-library/jest-dom -D 내부적으로 next/jest는 다음을 포함하여 자동으로 Jest를 구성합니다: SWC를 사용한 트랜스폼 설정 스타일시트(. css,. module.css 및 해당 scss 변형), 이미지 import 및 next/font 자동 mock..
해당 글은 John Ahn 님의 따라하는 리액트테스트 강의를 참고하여 작성했습니다. 왜 애플리케이션을 TEST 해야 할까요? 간단하게 더 안정적인 애플리케이션을 위해서는 여러 방법으로 테스트를 해줘야 더 안정적인 애플리케이션이 될 수 있습니다. 테스팅으로 얻는 이점은 무엇일까요? 디버깅 시간을 단축! 만약 데이터가 잘못 나왔다면 그것이 UI의 문제인지 DB의 문제인지등 전부 테스트를 해봐서 찾아야 하는데 테스팅 환경이 구축된 어있다면 자동화된 유닛 테스팅으로 특정 버그를 쉽게 찾아낼 수 있습니다. 더욱 안정적인 애플리케이션! 많은 테스트 코드와 함께 작성된 코드의 애플리케이션이 되기 때문에 훨씬 안정적인 애플리케이션이 됩니다. 이밖에도 재설계 시간의 단축과 추가로 무언가를 더 구현해야 할 때 더 용이하게..
💡 이번 장에서 살펴볼 내용: - 현실적인 문제에 함수형 사고를 적용해 봅니다. - 소프트웨어 구조를 잡는데 계층형 설계가 좋은 이유를 설명합니다. - 액션을 타임라인으로 시각화해 봅니다. - 타임라인을 사용하면 시간에 관한 문제를 잘 해결할 수 있다는 것을 배웁니다. 이 장에서는 함수형 사고가 무엇이고, 왜 함수형 사고가 더 좋은 소프트웨어를 만들려는 개발자에게 도움이 되는지 설명합니다. 토니 피자에 오신 것을 환영합니다. 토니가 운영하는 피자 가게를 살펴보고 두 개의 함수형 사고를 어떻게 적용했는지 알아봅시다. 파트 1: 액션과 계산, 데이터 토니의 피자가게 로봇들을 프로그래밍한 코드에서 액션과 계산, 데이터 각 분류에 해당하는 예를 살펴보고 코드에 적용한 계층형 설계 원칙이 어떤 것인지 알아봅시다...
01 덕업일치를 넘어서 - 박상철 님 “저는 개발자를 두고 공장에 자기만의 생산 설비를 들고 들어가서 일하는 노동자라고 표현합니다.” - 39p 평소 개발자들한테 전문가라는 의미는 변호사, 세무사, 의사 같은 전통적인 전문가들과 달리 정의가 다르다는 느낌을 받아왔었는데 이 문구 하나로 개발자라는 직업적인 특수성에 대한 깔끔하게 확립되었다. 전문가에 대한 정의 - 44p 전문가 = (전문 역량 + 일반 역량) * 동기 * cosθ * 연대 “저는 아직도 우리 개발자가 전문가로 인정받지도, 그렇게 행동하고 있지 않다고 생각합니다” - 46p 다른 직군들과 비교했을 때 미미한 사회적 책임감, 낮은 수준의 개발자 양성 과정등에 자유롭지 못하기에 스스로를 되돌아보게 된다 02 오류를 만날 때가 가장 성장하기 좋을..