지인의 추천으로 우아한 테크코스에 지원을 했다. 그전에는 이러한 활동을 하는 곳을 지원해 본 적이 없었다. 하지만 학교 공부와 혼자 독학만으로는 부족하다고 느껴 우아한 테크코스에 지원을 했다.
메일을 늦게 봐서 1 주차 미션을 늦게 시작했다. 처음에는 깃허브에서 시간이 조금 걸렸다. 물론 깃허브를 다뤄봤다. 하지만 한 것이라고는 add commit push 정도였다. 그래서 fork도 처음해 보고 pull request 역시 처음 다뤄보는 기능이었다. 그래도 프리코스 제출 방법에서 아주 친절하게 설명이 되어 있어서 무난히 할 수 있었다.
문제는 1 ~ 7번까지 있었고, 후반부 문제로 갈수록 난인도는 상승했다. 우선 시간이 부족했기에 클린 코드는 생각하지 않고 그냥 생각나는데로 문제를 풀었다. 1번부터 6번까지의 문제는 풀었지만 7번은 풀지 못했다. 그래서 우선 푼 것을 위주로 pr를 보내 마무리를 지었다.
우선 나는 한 번에 문제를 다 풀고 solve 1 ~ 6 이런식으로 commit을 진행하였다. 나는 commit이 내가 한 일을 표시하면 된다고 생각을 했다. 하지만 피드백을 받아보니 커밋 메시지는 해당 컷밋에서 작업한 내용에 대한 이해가 가능하도록 작성하는 것이 좋다고 설명이 있었다. 그렇다 나는 하나 하나가 아닌 여러개를 한 번에 묶어서 구체적을 어떤점을 해결했는지에 대한 설명이 없었던 것이었다. 또한 메시지의 의미 또한 '1 ~ 6번 문제까지 풀었다'이지 어떤 방법으로 해결했는지에 대한 의미있는 메시지가 아니었다. 다음 2주차 미션을 진행하면서 의미있는 커밋 메시지를 작성해보려고 한다.
class Problem1 {
public static int findMax(List<Integer> name){
int maxName = 0;
for(int num : name){
int tmp = num;
int tmpAns1 = 0; // 각자리 더한 값
int tmpAns2 = 1; // 각자리 곱한 값
while(tmp!=0){
tmpAns1 += tmp%10;
tmp /= 10;
}
tmp = num;
while(tmp!=0){
tmpAns2 *= tmp%10;
tmp /= 10;
}
if (tmpAns1 >= tmpAns2){
maxName = tmpAns1;
}
else{
maxName = tmpAns2;
}
}
return maxName;
}
public static int findException(List<Integer> name){
if(name.get(1) - 1 == name.get(0)){
return 0;
}
return -1;
}
public static int solution(List<Integer> pobi, List<Integer> crong) {
int answer = Integer.MAX_VALUE;
int maxPobi = 0, maxCrong = 0;
if(findException(pobi) == -1 || findException(crong) == -1){
return -1;
}
maxPobi = findMax(pobi);
maxCrong = findMax(crong);
if(maxPobi > maxCrong){
answer = 1;
}else if(maxPobi < maxCrong){
answer = 2;
}else if(maxPobi == maxCrong){
answer = 0;
}else{
answer = -1;
}
return answer;
}
}
내가 풀었던 문제 1번이다. 내가 지금봐도 메서드 이름과 변수 이름을 이상하게 지었다. findMax라는 함수를 보면 무엇의 최댓값을 찾는지 정확히 메서드 이름으로 알 수가 없다. 예를들어 findMaxPoint라고 지으면 좀 더 메서드 이름을 통해 어떤 기능을 하는지 알 수 있게 만들면 가독성이 좋아지지 않을까 생각을 한다. 또한 각 메서드 사이에 공백라인을 두어 가독성을 높여야 겠다고 생각을 했다.
저 문제점 외에도 문제가 많았다. 1주차를 진행하면서 느낀점은 내가 아직도 한참 부족하구나 생각이 들었다. 남은 프리코스 통해 더욱 성장하는 개발자가 되도록 노력을 해야겠다.