기존의 코드를 수정하는 과정에서
private void makeJobLogPath(Job job) {
if (!StringUtils.hasText(job.getLogStorePath())) {
String logPath = new StringBuilder().append(job.getSpecificFilePath()).append(File.separator)
.append(PATH_JOB_LOG).toString();
makeDirectory(Paths.get(innoQuartzProperties.getPersistencePath(), logPath).toString());
job.setLogPath(logPath);
}
}
Job 로그저장경로를 저장하는 기능부분에 if (!StringUtils.hasText(job.getLogStorePath()))
에 의해서 값이 들어가는 경우와 그렇지 않은 경우가 생긴다. 이 조건 때문에 특정 상황에서 문제가 발생했다. 이 문제를 해결하기 위해서
job.getLogStorePath()
를 팀 막내와 살펴봤다.
public String getLogStorePath() {
return hasLogLabel() ? getLogLabel().getPath() : this.logStorePath;
}
이 코드를 보면서 팀막내(입사한지 1년이 넘어 2년차가 되어가는)에게 물었다.
"저 메서드를 읽으면서 설명해봐요. ㅎㅎ"
"어음..."
".... 저 getLogStorePath()
메서드가 호출되었을 때 일어나는 동작과정을 설명해달라구요."
"어음..."
"...로그레이블이 있다면, 어떻게 처리 되는지 설명해줘요."
"그러니까 어음..."
"..."
내가 유도했던 대답은,
로그레이블이 있다면, hasLogLabel()
에서 true
가 반환되고 그러면 getLogLabel().getPath()
의 값이 반환됩니다.
였는데... 내가 너무 무리한걸 기대한건가?
그리고 잠시 후, 팀막내에게 말했다.
"3년차까지는 정말 공부 많이 해야해요. 기본기를 갖춰야할 때니까."
"네."
"물론, 나도 공부 많이 해야하죠."
코드를 읽어보라는 저 지시가 무리였던 것인가에 대해서 고민하고 있다.
그러면서 해당코드는 다음과 같이 수정되었다.
private void makeDefaultLogStorePath(Job job) {
String defaultLogStorePath = new StringBuilder().append(job.getSpecificFilePath()).append(File.separator)
.append(PATH_JOB_LOG).toString();
makeDirectory(Paths.get(innoQuartzProperties.getPersistencePath(), defaultLogStorePath).toString());
job.setLogStorePath(defaultLogStorePath);
}
나는 어떤가 고민하고 있다.
현재는 초창기에 비하면 공부를 많이 하지 않는다.
지금은, 퇴근후에는 클라이밍한다고 한-두시간을 보내고, 집에와서는 유투브 영상 틀어놓고 기술책을 훑어보고 있지만...
사내 스터디를 조직해서 스터디를 하고, 개발자 커뮤니티 활동을 하고, 기술문서를 번역하고 있지만...
초창기 때에 비하면 그렇게 집중도 있게 열심히 하고 있지는 않다.
3년차까지는 정말 공부 많이 해야해요. 기본기를 갖춰야할 때니까요.
라는 이야기를 1년이 넘게 해주고 있다는 것에 생각이 미치니,
'나는 누구인가? 나는 여기 왜 있는거지?'
하는 생각까지 빠져든다.