220711 TIL 문제의 핵심을 파악하기

깐깐한 계산기

오늘은 새로운 퀘스트가 주어지는 날이다. 이번 주는 퀘스트가 2개가 주어졌는데 하나는 "깐깐한 계산기", 하나는 저번 주와 동일한 주제인 ToDoList 만들기였다. 계산기 만드는 퀘스트는 이번에 주간 과제에 TDD 활용해서 계산기 만드는 과제가 있어서 문제일 거라고 추측을 했다. 그리고 제목에 "깐깐한"이라는 수식어가 붙은걸 보고 계산기가 깐깐하면 얼마나 깐깐하겠어??라고 생각하면서 퀘스트를 보기도 전에 얕봤다. 깐깐한 계산기의 요구사항을 처음 봤을 때는 솔직히 크게 어려워 보이는 느낌은 아니었지만 막상 해보니까 조건들이 많아서 그런지 까다로웠다. 그래서 깐깐한 계산기구나.. 

 

이 문제의 풀기 위해서 내가 검사해야 할 조건은 크게 두 가지라고 생각했다

1. 문자열의 길이

2. 입력받은 식의 연산할 숫자위치의 문자

문자열의 길이는 length를 써서 간단하게 검사할 수 있었는데, 애 먹었던 건 2번째 조건이었다.

 

내가 원하는 조건은 숫자만 갖고 있는지 없는지 검사하고 싶었다. 그래서 0부터 9까지 있는지 없는지 반복문을 쓰고 조건문을 썼는데 그 안에 또 조건문이 추가가 돼서 식이 상당히 복잡해졌다. 그래서 구글에 숫자만 갖고 올 수 있는 방법이 있는지 검색을 해봤는데 역시 있었다.

여러 가지 방법이 있었는데 내가 사용하던 반복문을 이용하는 거랑 stream 사용하는 거 그리고 정규표현식을 사용하는 거였다.

그중 정규표현식이 눈에 띄었는데 예제 코드를 보니까 엄청 간단하게 문자열에 특정 문자가 포함되어있는지 검사하고 있으면 그 문자들을 replaceAll로 전부 바꿔버리는 에제 코드였다. 이걸 보고 나도 정규표현식을 이용하면 되겠다고 생각을 했다.

 

정규표현식(Regular expressions)이란 컴퓨터 과학의 정규 언어로부터 유래한 것으로 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 언어라고 하는데, 그냥 간단히 문자열에 어떤 패턴의 문자들이 있는지 찾는데 도움을 준다고 생각하면 될 것 같다.

 

내가 사용한 정규 표현식은 [0-9]이다 0~9 사이의 숫자를 말한다. 이 정규표현식을 이용해서 조건을 검사할 때는 matches 메서드를 활용해서 검증한다고 한다. 내가 입력한 문자열에 숫자가 입력됐는지 안됐는지 검사를 아주 간단하게 할 수 있었다. 

 

구글링도 자~~ 알 하자!

사실 오늘 코딩 도장 문제 풀때도 구글의 도움을 받았다.

오늘 코딩도장 문제가 문자열을 내림차순으로 배치하는 거였는데 나는 당연히 내림차순이나 오름차순이나 정렬해주는 메서드가 무조건 있을 거라고 생각하고 구글에 정렬해주는 메서드를 찾아서 손쉽게 풀 수 있었다. 자바에는 내가 알지 못하는 메서드들이 무수히 많기 때문에 자기 상황에 맞는 메서드들을 잘 찾아서 사용하는 것도 필요한 능력이라고 생각한다.

 

개인적으로 구글링도 실력이라고 생각한다. 

자기 상황에 맞는 해결법을 어디서 어떻게 찾아야 할지 아는 것과 모르는 것의 차이는 크다고 생각하고, 구글에 검색하면 정보는 무수히 넘쳐나는데 이게 맞는 정보인지 아닌지도 내가 판단해야 하기 때문이다.

검색을 할 때도 무엇을 검색하냐가 문제인데 문제 해결에 전혀 도움이 안 되는 것을 검색하고 있다면 시간낭비밖에 되지 않는다.

하지만 문제의 핵심을 파악하고 그 문제를 해결하기 위해 필요한 것을 정확히 찾는다면 시간 절약을 엄청 할 수 있다.

그래서 구글링을 "잘"하려면 내 상황에 필요한 게 무엇인지 정확하게 핵심을 파악해야 한다. 

 

정보의 바다에 빠지지 않기 위해 항상 문제의 핵심을 잘 파악해서 키워드를 잘 검색하자!