자바칩

[우아한테크코스 프리코스] 1주차 미션 진행 소감 본문

우아한테크코스/프리코스

[우아한테크코스 프리코스] 1주차 미션 진행 소감

아기제이 2024. 10. 21. 02:51
728x90

소감

처음에는 프리코스 과제 가이드 페이지를 그대로 따라하면서 과제가 "숫자 야구 게임"인 줄 알고 이 저장소를 fork후 clone 했더니 dependencies가 주입이 되지 않는 문제가 발생했었다.
구글링을 해서 모든 방법을 따라해 보았지만 되지 않아서 결국 스스로 방법을 찾았다.
원인은 C:\Users\{사용자명}\.gradle\caches\modules-2\files-2.1 디렉토리에 존재하는 dependencies들을 적용하지 못하는 이슈였던 것이었다.
그래서 결국 수동으로(프로젝트 우클릭 -> Build Path -> Configure Build Path -> Add External JARs) 외부 jar 파일을 직접 추가했다.
이 방법을 끝났는데 과제가 아예 다른 것이었다는 것을 깨닫고 곧바로 "문자열 덧셈 계산기" 저장소를 fork 후 clone했더니 이번에는 dependencies가 정상적으로 주입이 되었다.
어떻게 보면 하루 동안 헛고생을 한 것이지만 만약 나중에 dependencies가 주입이 되지 않는 문제가 발생한다면 이 방법을 사용하면 될 것 같다는 생각이 들었다.
그래도 얻은 것이 있어서 다행이다.

과제의 요구사항은 생각보다 간단했다.
하지만 나는 클린 코드 작성법을 배웠으니까 절대로 main에 모든 기능을 다 때려넣지 않았다.
객체 지향 SOLID 원칙 중에서 '클래스당 한 가지의 책임만 가져야 하는 단일 책임 원칙(SRP)'이 있다.
기능 별로 클래스나 메서드를 분리하는 것이 결합도를 낮춰주어서 좋은 코드라고 할 수 있다.
그래서 나는 모든 기능들을 잘게 클래스와 메서드로 쪼개었다.
또한, 의존 역전 원칙(DIP)에 의하여 구현 클래스에 의존시키지 않고, 인터페이스를 의존시켰다.
구현체끼리는 서로 어떤 기능인지 몰라야 하므로 인터페이스만 넘겨주었다. 
즉, OCP(개방-폐쇄 원칙)을 지켰다.

이번에 새로 배운 점은 Git 커밋 메시지 규칙이다.
이전에는 커밋 메시지에 새로 추가한 기능이나 변경 사항을 한 줄로만 작성하였는데, 커밋 메시지를 여러 줄로 작성할 수 있는지는 몰랐다.
커밋 메시지를 txt 파일에 길게 작성하고 관리할 수 있다는 것은 참 편한 것 같다.
심지어 cmd 콘솔 창에 커밋 메시지를 굳이 길게 한 줄로 작성할 필요 없이 txt 파일 명만 입력하면 되니까 1석 2조이다.
그동안은 새 기능과 변경 사항을 한 줄로만 단축하는 것이 어렵고 불편했는데, 이런 편한 방법을 알게 되어서 다행이고 앞으로도 유용하게 잘 사용할 것이다.


제출 완료


코드

https://github.com/agi1004/java-calculator-7

 

GitHub - agi1004/java-calculator-7

Contribute to agi1004/java-calculator-7 development by creating an account on GitHub.

github.com