❐ Description
1주차 작업 과정에서 느꼈던 점과 과제 후기를 작성한다.
❐ Source code
❐ Self - Review
1. 설정 목표를 성실히 수행했는가?
#️⃣ 최적화된 요구사항 분석 방법 찾기
1주차 요구 사항 분석은 사용자의 관점과 시스템의 관점에서 나누어서 분석을 진행했다. 관심사를 분리한
방법으로 요구사항을 파악하니 명확한 구분감을 가지는 장점이 있었다. 이와 동시에 너무 명확하게 구분되다
보니 추후 요구사항이 더 많아질 경우, 조금 더 체계적인 세분화 과정이 필요할 것으로 느껴진다.
최초에 요구사항을 분석, 기능 리스트 업 까지 완료 후에 작업을 했는데, 역시나 중간에 수정하는 과정이
몇 번 있었다. 주로 새로운 기능 추가가 주된 수정의 원인이였다. 물론 완벽한 설계는 없지만,
적어도 시스템의 코어 로직에 필요한 기능을 누락하는 일은 없어야 할 것 같다. 핵심 코어 로직의 누락이
생기면 큰 변경을 감수해야 하기 때문이다.
이를 수행하기 위해서는 핵심로직 파악을 보다 더 꼼꼼히 수행해야 한다.
이번에는 아래와 같이 굉장히 추상적으로 메인 로직을 분색했다.
2주차에는 1주차 보단 더 구체적으로 작성해야 한다. 예를 들면, 다음과 같이 말이다.
- 입력된 문자열에서 custom-delimiter가 있는지 확인
- "~~" regex를 사용해서 확인한다.
- 없다면 ~~~ 처리를 한다
- custom-dlimiter를 찾을 때 ~~~ 예외가 발생할 수 있다
모든 로직에 적용하는게 아닌 메인 로직에만 하는 거니깐 오히려 총 개발 시간을 단축시킬 수 있을지도 모른다.
#️⃣ 성장에 대한 욕구가 강한 개발자 네트워크 형성하기
현재 프리코스 디스코드에서 많은 참가자들이 활동을 하는 것으로 보인다. 모두 밤낮 가리지 않고 성실하게
과정에 임하시는 것 같다. 다양한 토론 주제들과 기타 유용한 정보들이 많이 올라온다. 그 중에서 개인적으로
괜찮았던 것은 GPT를 어디까지 사용할 것이가를 논의 하는 내용이 였다. 나도 항상 생각하고 있던 부분이라
다양한 사람들의 의견을 들으수 있어서 새로웠다.
그리고 프리코스는 요구하는 컨벤션이 있는데 개발하다보면 실수도 있을 수 있기 마련인데, 인텔리제이에서
코드 포맷터를 적용하는 방법을 공유해주신 분이 있다. 이 부분도 굉장히 유용했다.
아마도 이제 시작이라 1주차 제출이 완료되면 열정적인 많은 분들과 네트워크를 형성할 수 있을 것 같다.
#️⃣ 아는 것과 모르는 것을 명확하게 구분하기
7기 프리코스 시작하기 전에 6기에서도 Regex로 해결할 수 있는 문제가 있어서 7기에서도 무조건 Regex를
사용하는 문제가 나오겠다라고 생각은 했다. 아무래도 문자열 처리가 어떻게 보면 간단한거 같으면서도 수많은
예외 케이스들이 있어서 우테코에서 매년 관련 문제를 출제하는게 아닌가 싶다.
[7기 1주차 - 문자열 던셈 계산기]도 Regex를 사용해서 구현할 수 있는 문제였다.(물론 다른 방법도 존재)
이번 과제를 통해 "확실히 Regex는 제대로 모른다."라고 자신있게 말할 수 있다.
매번 느끼는 거지만 Regex는 사용할 때 마다 확신이 없다. 구글링과 테스팅 사이트 그리고 최종적으로
Gpt한테 검사 받기 이런 순으로 작업 하는데 시간도 오래 걸리고 체득화가 잘 안되는 것 같다.
Regex의 경우에는 2,3,4주차 과제에서도 충분히 사용할 확률이 높을 것 같다.
그리고 Deep Copy와 clone 제정의에 대해서도 다시 봐야한다. Shallow&Deep Copy는 아는 부분이지만
clone 재정의는 모르는 부분이기 때문에 학습이 필요하다. 이 부부은 이펙티브 자바를 참고하면서 할 계획이다.
암튼, 1주차에는 Regex와 clone 재정의를 중점적으로 학습한다.
2. 과제 후기
1주차 과제는 개인에 따라 프로젝트의 규모에 차이가 있을 수 있다고 생각한다. 디스코드에서만 봐도 이게 꼭
OOP가 필요한가요? 그정도까진 안해도 될 것 같다는 의미의 의견도 있었다. 그리고 과제 PR 올린 사람 코드
2~3개 정도 봤는데 다양한 방법으로 구현했고, 규모에서도 차이가 있었다.
어떻게 보면 over-engineering일 수 도 있지만, 1주라는 기간 동안 책에서 봤던 내용 일부를 최대한 적용해
볼 수 있는 시간이 주어졌다고 생각한다. 그래서 난 Regex도 써보고, Changelog.md, tag도 작성해 봤으며,
클린코드, 이펙티브 자바 책을 참고하면서 리팩토링도 해봤다 .
책으로 공부할 땐 예제를 적으면서 공부해서 딱히 막 재밌지는 않았는데, 내가 짠 코드에 참고 서적에서 언급해준
내용들을 몇몇 적용해보니깐 훨씬 더 코딩&공부가 재밌다고 느꼈다.
'우테코 7기 > 1주차' 카테고리의 다른 글
[JUnit5] 입력 값을 mockking할 수 있을까? (0) | 2024.10.21 |
---|---|
[Java] 객체를 복사해보자 (0) | 2024.10.19 |
[Refactoring] Pattern을 캐싱하자 (0) | 2024.10.19 |
Regex 뿌시기 (0) | 2024.10.17 |
문자열 덧셈 계산기 (0) | 2024.10.14 |