본문 바로가기

code-states

[code-states][we-win] 36일차 - refactoring with ES6

[code-states][we-win] 36일차 - refactoring with ES6

어제와 오늘 이틀동안은

우리가 Pre 에서 IM 으로 올라올 때 풀었던 Hiring Assessment 인 Pass Me 를

이번에 배운 ES6 문법을 적용하여 리팩토링 하는 과정 + git ping pong 을 하는 Sprint 시간이었다

많이도 오갔다

주로 배운 ES6의 문법들은 이런 내용들이었다

bare minimum requirements about ES6

 

여기서 많이 사용해 본 개념은 일단

Arrow function, Spread Operator, Template literals, for...of loop

    + 개중에서도 추가적으로 좀더 알아야할 건 Arrow Function (+ Bind)

그리고 아직 사용해 보지 못 한 것들은

Default Parameter, Destructuring assignment

과정은 이러했다

- 각자 한 문제씩 번갈아 가면서 맡는다 (총 예닐곱문제가 있었다)

- 이전에 자신이 어떤 코드를 사용하여 해당 문제를 해결하였는지 상대방에게 코드 설명을 한다

- 상대방은 자신이 올바르게 이해한 것인지, 자신이 이해한 상대방의 코드 로직 + 상대방의 자신의 코드에 대한 설명 을 기반으로

그 코드의 작동 로직을 코드 작성자에게 설명한다

- 상대방은 이제 그 코드를 보면서 위의 ES6 기능중에 어떤 걸 어디에 적용하면 될 것 같은지를 근거를 들어 이야기 한다

- 원래의 코드 작성자는 해당 코드를 상대방의 이야기를 기반으로 리팩토링 한다

- 리팩토링이 끝나면, 원 코드의 작성자는 commit 후 자신의 repo 에 push

- 이제 상대방은 해당 commit 사항을 pull 로 내려받고, 다음 문제를 위와 같은 과정을 반복하여 다시 진행


 

여기서 추가로 활용한 건 ESlint 였다

이게 뭔지 처음엔 잘 감이 안 왔지만, 나중에 보다보니 알게 되었다

linting 은 여럿이서 단체로 작업을 할 때, 우리만의 규칙을 정해서 코드를 짜자는 것을 패키지로 구현한 뒤

그 규칙에 잘 들어맞는 코드인가를 검증하는 과정이라는 것을

* 일단 여기까지 포스팅을 마치고, 오늘(11일) 09시 session 이 시작하기 전에

arrow function 및 bind, this 와 scope, closure 같은 부분을 공부해서 적어서 올리려고 한다

이번의 refactoring 은 그냥 해당 공부에 대한 연습이고, 해당 공부가 정말 중요한 부분이라고 생각한다