프로그래밍 일기 — 별거같지만 별거아닌 것들 1

배우는 자(Learner Of Life)
5 min readAug 19, 2023

--

#Java, #char, #String

별거같지만 때로는 별거 아닌 것을 지나치지 않는 것도 중요하다.(1)

오늘은 어제에 이어서 알고리즘 문제 풀이 2일차다. 어제 10개 정도의 문제를 풀었고, 오늘도 비슷하거나 조금 더 많은 12개 정도의 문제를 풀었다. 몇몇 문제는 30분에서 1시간도 안 걸렸지만, 몇 시간동안 풀리지 않은 문제도 있었다. 그렇게 해서 문제가 풀리면 좋지만, 그럼에도 불구하고 아직 풀리지 않아 아마 도움을 요청하거나 조금 더 들여다 볼 문제들, 그리고 아직 풀지 못한 문제를 합해 15개 정도가 남았다.

그 모든 문제들을 여기에 오늘 다 적을 수도 없거니와, 따로 더 조사를 해서 정리를 해야할 필요가있어, 오늘은 짜잘하지만 생각해보면 중요할 수 있는 Java관련 팁을 정리하고자한다.

팁: 쌍따옴표와 char의 인연은 이루어지지 않았고, 오히려 자신을 받아준 String 과 결혼했다.

이게 무슨 뜻일까? 아래 예제를 보자. 아래 예제가 문제없이 실행될 수 있을까? 정답은 “아니”올시다. char 는 오직 '' 내 문자만을 받기 때문이다. 반대로 String"" 내 문자만을 받는다. 서로 인연이 엇갈린 것이다. Java내에서 String 은 오직 쌍따옴표내 문자열만을 받는다. char 도 마찬가지로 오직 한따옴표 내 문자만을 받는다. 이 관계를 헷갈리지 않아야 Stringchar 가 서로 얼굴을 붉히지 않는다.

// char/String 사용의 잘못된 예
public class Magic{
char a = "a"; // compile 에러 (char는 오직 '' 내 문자만을 받는다.)
String b = 'b'; // compile 에러 (String은 오직 "" 내 문자열만을 받는다.)
}

// char/String 사용의 옳은 예
public class Magic{
char a = 'a';
String b = "b";
}

오늘의 느낌/다짐/생각

일주일 동안의 강행군이 계속 되었다. 첫 주여서 그런지 아직 적응이 안된 것일까? 오늘 토요일 밤이 되고나니 굉장히 피곤하게 느껴졌고, 잠깐 코딩을 쳐다보기 싫다는 생각조차 들었다. 내가 아주 질리도록 열심히해서 그런 것인지는 모르겠다. 그러나 내일 휴식을 취하고(사실 내일도 아무것도 안 할 수는 없을 것 같다.), 다시 온 종일 공부하는 루틴으로 월요일에 바로 돌아가야한다. 게다가 이제 겨우 1주차가 지났을 뿐이다. 내게는 아직 92~3일 정도의 시간이 남았다. 100km 대장정에서 이제 겨우 10분의 1도 안온 것이다.

그렇지만 일주일이 지난나는 많이 성장했다. 특히 지난 몇 일간 알고리즘 문제를 기초부터 차근차근 풀면서 비슷한 개념, 예를 들어 약수 찾기, 특정 범위의 수 읽기 및 더하기 등등에 대한 패턴이 보이기 시작했다. 하지만, 아직 부족한 점도 느꼈다. 특히 외부의 메서드 없이 정렬(sorting)을 하는 것은 아직 내개 그렇게 쉽게 다가오지 않았다. 공책을 꺼내 아무리 수학적 계산이나 방법론을 떠올려봐도, 아직 관련 문제를 하나도 풀지 못했다. 그래서 내일은 시간을 내서 이 부분에 대해 찾아볼 생각이다.

자세한 한 주의 회고는 WIL정리를 하는 내일 쓰게될 것이지만, 오늘도 정말 지치는 하루였다. 특히 알고리즘 문제는 강의를 듣는 것과는 다르게 집념이 생겨 어떻게든 풀려고하는 마음이 강해진다. 그래서 몰입해서 하게되지만 그만큼 지치는 것 같다. 하지만 반대로 이 만큼 정말 집중해서 밀도있게 학습을 할 수 있는 주제도 많지 않을 듯 싶다. 알고리즘 문제는 직접 풀면서 배우는 것이기 때문에, 거의 모든 순간 게임을 하는 것 같이 재미있다. 남은 일정동안 알고리즘을 최대한 많이 풀어보고 내게 가장 부족했던 코딩테스트 능력을 키우고 싶다.

한편으로는 불안감도 든다. 내가 Java의 개념은 충분히 이해한 것일까라는 생각이든다. 어제 매니저님께 피드백을 받고 내가 Java의 가장 중요한 객체지향개념을 인지하지 못하고 있다는 말을 들었기 때문이다. 그래서 어제는 최대한 클래스에 대해 리뷰했다. 그래서 확실히 내가 이해하지 못한 부분을 채우긴 했지만 그것만으로는 부족하지 않을까하는 우려가 있다. 다음 주 부터 Spring학습에 들어가는데, 클래스 및 객체지향의 개념이 확실하게 잡혀야 이해가 용이하다는 말을 들었기 때문이다. 그래서 최대한 월요일 정도에 알고리즘 문제를 최대한 풀고, 나머지 시간은 Java내용을 복습하는데 시간을 쓸 생각이다.

어쨌든 한 주를 살아냈다. 쉽지는 않지만 하루 평균 12시간 이상을 공부하는데 사용하는데 성공했다. 그 이상이 필요하다고 느끼면 그 이상 시간을 투자했다. 물론 그 조차 부족할 수는 있다. 하지만, 내 페이스를 유지하면서 내 건강을 유지하면서 진행하고싶다. 그리고 아직까지는 괜찮다고 생각한다. 물론 계속해서 내 학습 방법을 어떻게하면 효율적으로 가져갈지 끊임없이 고민하고 조언을 구할 것이다. 단지, 앞으로의 여정에 있어 가장 중요한 자신감을 잃고싶지 않을 뿐이다. 그렇다. 나를 포함해 모든 이들이 자신감을 잃지 않았으면한다. 그것마저 없다면 이 과정은 즐거운 훈련이 아니라 처절한 자기혹사가 될 것이라 생각하기 때문이다. 오늘도 한 발 더 나아간 나를 포함 모든 선원들에게 박수를 보낸다.

참조:

(1) https://pixabay.com/vectors/dialog-tip-advice-hint-speaking-148815/

--

--

배우는 자(Learner Of Life)
배우는 자(Learner Of Life)

Written by 배우는 자(Learner Of Life)

배움은 죽을 때까지 끝이 없다. 어쩌면 그게 우리가 살아있다는 증거일지도 모른다. 배움을 멈추는 순간, 혹은 배움의 기회가 더 이상 존재하지 않는 순간, 우리의 삶은 어쩌면 거기서 끝나는 것은 아닐까? 나는 배운다 그러므로 나는 존재한다. 배울 수 있음에, 그래서 살아 있음에 감사한다.

No responses yet