All :L

[우아한테크코스] 프리코스 4주차 회고록 본문

카테고리 없음

[우아한테크코스] 프리코스 4주차 회고록

ofijwe 2024. 11. 13. 18:33
반응형

 

프리코스 4주차를 마치며...

 

마지막 편의점 미션에는 그동안 프리코스를 통해 익힌 다양한 기술을 하나의 프로그램에 모두 적용해 보았다.

프리코스의 처음부터 끝까지 매일 새로운 문제에 직면하며 이를 해결하기 위한 과정을 통해 많은 기술적 성장을 이루었다. 처음에는 모든 과정이 복잡하고 낯설게 느껴졌지만, 프리코스를 진행하며 배운 내용을 바탕으로 차근차근 진행하면서 각 단계의 중요성을 이해할 수 있었다. 요구 사항을 명확히 정의하는 것부터 시작해, 이를 구현하는 과정에서의 중요성도 실감하게 되었다. 매일 설정한 목표를 하나씩 이루어가며 그때그때 배운 점과 경험이 하나의 큰 결과물로 이어지는 과정에서 많은 배움을 얻었다.

https://github.com/jhw296/java-convenience-store-7-jhw296

 

 

초반에는 미션의 전반적인 흐름과 요구 사항을 파악하고, 코드의 기초 구조를 세우는 데 집중했다. 그동안 진행했던 미션을 되돌아보며 OOP와 SOLID 원칙을 복습하고, MVC 패턴을 기반으로 클래스 구조를 설계하는 데 중점을 두었다. 이 과정에서 SOLID 원칙과 OOP의 중요성을 다시 한 번 되새길 수 있었고 코드의 확장성과 유지보수성을 고려해 프로그램을 설계했다.

 

객체지향 5원칙 (SOLID)

단일 책임 원칙 (SRP)  개방 폐쇄 원칙 (OCP)  리스코프 치환 원칙 (LSP)
 인터페이스 분리 원칙 (ISP)  의존성 역전 원칙 (DIP)  

 

중반부에는 MVC 패턴을 적용하고 테스트 케이스를 작성했다. MVC 패턴을 처음 접했을 때는 다소 어려움을 느꼈지만 점차 익숙해지기 위해 MVC패턴에 대해 공부했다. 지난 미션에서 해당 패턴을 사용했음에도 디렉터리 구조를 명확히 하지 않았다는 점을 피드백을 통해 깨달았다. 디렉터리로 각 컴포넌트의 역할을 분리하고 코드의 구조를 개선하는 방식이 유지보수성에 큰 도움이 된다는 점을 실감했다. 따라서 각 컴포넌트의 역할을 분리하고 디렉터리 구조를 더욱 꼼꼼히 작성했다. 또한, 다양한 입력값에 대해 견고한 코드를 작성하려는 노력을 기울이면서 테스트의 중요성도 점차 실감하게 되었다. 단위 테스트를 진행하며 코드를 작성하니 개발해야 할 순서가 명확하게 보였다.

 

MVC 패턴

 

후반부에는 파일 처리와 예외 처리에 집중했다. 특히 파일에서 데이터를 읽어오는 과정과 예외 상황을 처리하는 데 많은 시간을 할애했다. 오랜만에 파일의 텍스트를 파싱하는 작업을 하다 보니 필요한 메소드가 잘 기억나지 않았다. 하지만 Java의 파일 처리 방법을 공부하고 이를 코드에 적용하면서 최적의 방법을 찾아나갔던 것 같다. 이 과정에서 문제를 체계적으로 해결하는 방법과 예외 처리의 중요성을 다시 한 번 깨달았다. 또한, 지속적으로 단위 테스트를 작성하면서 예상치 못한 오류를 사전에 방지할 수 있었다. 그리고 리팩토링을 통해 코드를 더 효율적이고 깔끔하게 개선했다.

 

FileReader

https://www.geeksforgeeks.org/java-io-filereader-class/

 

 

프로젝트 마무리 단계에서는 작성한 코드를 간결하고 효율적으로 개선하는 데 집중했다. 반복되는 로직을 함수로 분리하기 위해 노력했다. 한 번 잘못된 방향으로 진행된 로직을 제대로 작동하도록 되돌리기 쉽지 않았다. 다양한 방법을 시도하며 코드를 최적화하려고 했고 이 과정에서 리팩토링이 단순한 수정이 아니라 코드 구조를 개선하는 중요한 작업임을 확실히 깨달았다.

 

마지막 미션을 마치며 객체지향 설계, 단위 테스트, 리팩토링의 중요성을 깊이 이해하게 되었다. 초반에는 시행착오가 많았지만 매일 진행 사항을 기록하고 분석하며 점차 더 나은 코드를 작성하는 방법을 익혔고 기술적으로 많이 성장한 것을 느낄 수 있었다. 앞으로의 프로젝트에서도 이번 미션에서 배운 점들을 적극적으로 활용해 더 체계적이고 효율적인 개발 방식을 적용해 나갈 것이다.

 

반응형
Comments