우아한 테크 코스 5기 - 2주차 회고록
우아한 테크 코스 2주차 회고록
2주차 소감
11월 2일 오후 3시에 2주차가 시작됬다.
1주차 처럼 알고리즘을 푸는 걸 까라고? 생각을 했지만 2주차부터 이전처럼 프로젝트를 만드는 것으로 바뀌었다.
하지만 조금 다른점이 있다면 터미널을 통해 결과를 구현을 하는 것이였다.
(터미널을 사용하는 것에 큰 거부감이 없었기에 이는 큰 문제가 되지 않았다.)
1주차에는 자바스크립트의 알고리즘적인 지식을 요구했다면 2주차는 무엇인가를 만들 수 있는지를 판단하는 주차인듯 하다.
어려웠던 점
Class
프로젝트 자체의 난이도는 1주차와 비슷하게 크게 높지 않았다.
하지만 Class
를 오랜만에 사용했기에 살짝 헷갈리는 것이 있었다.
나는 초기에 파일 하나에 모든 메서드를 구현하여 완성을 시켜놨다.
그리고 에러를 찾기 위해서 계속해서 코드를 수정하기 시작했는데 여기서 한가지를 깨닫게 된다.
프로그래밍 요구사항에서 함수는 한가지 일만 하게 해야 한다고 해서 함수를 한가지 일만 하게 만들었기 때문에 많은 메서드들이 존재했고, 이렇게 만든 메서드들이 클래스에 모두 모여있었기에 에러가 발생한 메서드를 찾는것에 매우 긴 시간이 걸렸다.
이전에 Class
를 사용하여 작은 프로젝트를 할때도 클래스 하나에는 한가지 분야의 메서드를 구현하는 것이 좋다고 했다.
(게임을 예로 들자면 게임을 실행/종료하는 전반적인 메인 클래스, 캐릭터를 담당하는 클래스, 몬스터를 담당하는 클래스)
그래서 먼저 제일 분리하기 쉬운 에러 처리를 하는 메서드를 새로운 클래스로 만들어줬다.여기서 생각해야 할 것이 이전에는 에러가 발생하지 않았다면 같은 클래스에 존재하는 결과를 출력하는 메서드를 실행해 줬는데 지금은 파일을 나눴기에 직접 호출할 수가 없어졌다.
그래서 나는 어떻게 해야하나 깊은 고민을 하다 true
,false
를 통해 에러 상태를 관리하는 방법이 떠올랐다.
currentState && 실행할 함수();
그렇게 나는 에러를 관리하는 클래스를 분리를 하였다.
이후에 나는 결과를 출력하는 메서드를 따로 묶어서 나누면 좋을 것 같다고 생각했고, 바로 실행으로 옮겼다.
여기서 두번째 문제가 발생했는데 메서드를 너무 타이트하게 연결시켜놨기에 분리하는데 어려움이 있었다.
그렇게 결과 출력 메서드를 분리하는 것을 포기할까 2번 생각했다. (솔직히 더 많이 생각했을 수도 있다. )
하지만 여기서 포기하면 뭔가 앞으로 이것보다 더 어려움이 있을 때 못할것 같다는 생각이 들었다.
그래서 결과를 출력하는 메서드를 분리하는데 제일 많은 시간을 사용했고, 결국에는 이쁘게 분리를 하였다.
(물론 잘하는 사람들이 보면 많이 어설프지만 내눈에는 너무 이뻐보였다. )
그뒤로 랜덤한 숫자를 만드는 메서드를 분리하는데 막힘없이 술술 진행했고,
결국에는 하나의 파일에 구현되어있던 메서드들이 4개의 파일로 나누는데 성공을 하였다.
마무리
2주차를 진행하면서 정말 많은 것을 배웠다.
클래스를 나누고, 함수를 한가지 일만하게 만들고를 진행하면서 아 이게 코딩이구나!!! 무릎을 탁 치게 만들었다.
2주차를 진행하면서 아직 큰 시련이 닥치지 않았는데 언제 닥칠지 모르고 있기 때문에 현재를 즐기고 있다.어쩌면 내가 그동안 꾸준히 공부해왔기에 큰 시련이 아직 온것같지 않다고도 생각이 조
~
금 들었다. (물론 내가 안일하게 생각하는 것일 수도 있다.)앞으로 남은 2주동안 큰 시련이 안왔으면 좋겠다!!