본문 바로가기

우아한테크코스

[1주차] 프리코스 1주차 회고

 

 

 

 

 

 

 

드디어 시작된 4주간의 프리코스


 

프리코스 시작을 알리는 메일

 

 

 

 

 

 

 

1주차를 마친 소감

 

 

 

  정말 잘 해내고 싶었던 과정인 만큼 미션이 공개된 이후 프리코스 미션에만 몰두하며 시간을 보냈습니다. 급한 마음에 미션별 요구 사항을 충분히 읽지 않고 미션을 진행했습니다. 몇 문제는 요구 사항을 잘못 이해하여 중간중간 수정을 거쳐야 했습니다.

 

 

기능 요구 사항, 프로그래밍 요구 사항, 과제 진행 요구 사항 이렇게 세 가지 요구 사항이 있었는데 이 중 특히 

기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.

라는 요구 사항이 까다롭게 다가왔습니다. 지금까지 돌이켜보면 구체화 된 기능 목록 없이 기능을 만들었습니다. 체계적인 순서 없이 기능들의 단순 나열이었던 것 같습니다. 반면 기능 목록을 구체적으로 만들고 전체적인 흐름을 의식적으로 생각하고 구현을 시작하니 완전 다른 세상이었습니다. 기능에 따라 메서드를 분리할 수 있었고 SRP 원칙을 지키기 훨씬 수월해졌습니다. 특히 이번 미션에서는 비교적 구현에 어려움은 적었던 미션이다보니 최대한 객체지향적인 코드를 작성해보는 것을 목표로 삼았습니다. Java는 객체지향언어로 설계된 만큼 객체지향적인 코드를 작성하는 것이 중요합니다. 하지만 이런 부분을 평소에 깊게 생각하며 코딩을 하지는 않았습니다. 그만큼 이번 미션은 객체지향적인 관점에서 접근하려 노력했고 과거 읽었던 클린코드 책을 다시금 읽게 되는 계기가 되었습니다. 이전에는 보이지 않았던 부분이 보였고 새롭게 다가오는 부분도 있었습니다. 또한 우아한테크코스에서 강조하는 객체지향 생활체조 9가지 원칙에 대해서도 하나씩 적용해보려 합니다.

 

 

 

 

  1주차 미션을 진행하며 생각보다 껄끄러웠던 부분은 바로 Java 컨벤션을 지키는 것이었습니다. 코드를 나 혼자보는 경우는 정말 드뭅니다. 협업이 기본이 되는 개발인 만큼 다른사람의 코드를 잘 보는 것도, 내 코드를 상대방이 잘 보게 하는 것도 중요하다 생각합니다. 그 만큼 정해진 규칙, 관습을 따르는 것이 중요합니다. 실제로 미션을 풀이한 코드를 지인들에게 보여주며 자연스럽게 읽히는지 물어보기도 하였습니다. 주석을 최소화하고 네이밍만으로 해당 변수, 메서드의 기능을 유추하게끔 구성하려 노력했습니다. 네이밍은 최고의 주석이라는 말을 들었는데 실제로 적용해보려하니 쉽지만은 않았습니다. 네이밍에 많은 시간을 할애했고 네이밍 컨벤션, 좋은 네이밍을 보며 공부했습니다. 특히 첫 번째 프리코스 코수타를 보며 코치님이 알려주신 네이밍 방법에 대해서도 2주차 미션부터 적극 적용시켜 볼 예정입니다.

 

 

 

 

  아쉬운 점은 발생할 수 있는 예외에 대해 좀 더 현실 세계에 비추어 생각했어야 했다는 점입니다. 현실 세계의 서비스는 다양한 사람이 이용하는 만큼 다양한 예외가 발생 할 수 있습니다. 다만 이런 미션을 풀면서도 굳이? 라는 안일한 생각에 기본적인 예외처리 이외에 깊게 생각해보지 않았습니다. 당시에는 이 부분이 문제인지 몰랐지만 첫 번째 프리코스 코수타를 보며 코치님의 말씀을 듣고 알게 되었습니다. 현실에서 설계할 때도 요구사항이 명확하지 않기 때문에 일부러 모호하게 설계했다고 하셨습니다. 발생할 수 있는 예외상황을 생각해보고 대응하라는 말씀이었습니다. 또한 요구사항이 알고리즘 코딩 테스트문제처럼 정확히 제시되지 않은 이유도 위와 동일하다고 하셨습니다. 현업에서의 요구사항은 이보다 훨씬 빈약하다고 하셨습니다. 2주차 부터는 제시된 요구사항에 내가 생각하는 요구사항을 더해 미션을 풀이하려 합니다. 이런 연습이 많이 필요해 보이고 중요해 보입니다.

 

 

 

 

 

 

 

 

 

 

앞으로..

 

 

 

 

  지나간 일은 이미 지나간 일이다. 내 결과물에 100% 만족하지 못하지만 고쳐야 할 부분, 개선해야 할 부분을 찾은 것에 큰 의의를 두기로 했습니다. 하루하루 어제의 나보다 아주 조금씩 더 공부하려합니다. 당장 저보다 뛰어난 분들도 많겠지만 조금씩 발전하면 언젠간 넘을 수 있을 것이라 확신합니다. 남은 주차의 미션에 피드백 받은 내용, 공부한 내용을 최대한 적용시켜 보려합니다. 무엇보다 재미가 있기에 하루종일 프로그래밍 공부를 할 수 있는 것 같습니다. 메서드를 추출하고, 기능에 따라 분리하는 과정이 특히나 너무 재미있습니다. 남은 3주도 몰입하며 많은 것을 얻어가려 합니다.

 

 

 

 

 

 

 

 

Recent Posts
Popular Posts
Recent Comments