Section1 회고

SangYu Lee·2022년 9월 19일
0

codestates backend

목록 보기
20/30

중구난방한 느낀점 회고

 

내가 지금 여기까지 알아야 할까?

java는 조금 알고 있었기 때문에 진도에서 크게 뒤쳐지지는 않았지만 코드를 직접 작성하면서 내가 문법을 꽤 많이 모르고 있었다는 것을 깨달았다. 한 글자의 차이로 예외처리가 될 수도 있다는게 대강 배워서는 애매한 개발자가 되겠다는 느낌을 받았다. 예를 들면

  • String 타입의 경우, int, double, char은 모두 소문자로 타입이 시작하는데, 왜 비슷해보이는 문자인 String만 대문자인가?

그냥 '그런가보다' 라고 넘어갈 수도 있고 사실 나도 그냥 넘어갔다. 그런 사소한 거에 집중하고 파고들 시기가 아니라고 생각했다. 이유도 모르고 넘어가면 계속 틀린다. String의 경우에는 메모리의 heap 영역에 String constant pool에 생성이 되고 stack에 그걸 가리키는 참조 변수를 만드는 것이다. 다른 원시형 값들이 stack에 그대로 저장이 되는 것과는 다르게 오히려 객체에 가깝다고 할 수 있다. 그래서 대문자로 시작했던 것이다. 알고 나면 절대 틀리지 않는다.

Person syu = new Person(27);

이 간단한 한 문장 안에 숨겨진 내용은 엄청 많다. 물론 그냥 넘어갔다. Person형을 new로 생성하니까 당연한 문법처럼 앞에 Person이 오는게 맞다고 생각했다. 대충 넘어가니 다형성에서 걸리게된다.

Person syu = new Korean("서울");

앞에는 Person을 썼지만, 뒤에 new 생성자에는 Korean이 쓰였다.

  • 어떻게 이렇게 쓸 수 있는거지? Person형은 Person형과 붙여쓰는게 아닌가?

한 문장 안에서도 각각의 단어가 가지는 프로그래밍적 의미를 이해하고 있지 않으면 알기가 어렵다. new를 통해 객체가 생성되는 과정을 메모리의 동작을 통해 이해해야 한다. new를 통해 Korean 클래스의 객체를 메모리의 heap 영역에 생성하고 그 주소를 Person형 참조변수 syu에 담는게 이 문장의 문법적 의미이다. 메모리에 대해서는 라이브 세션에서도 다루어주셨지만 한 번에 이해하기는 쉽지 않다. 내 시간을 따로 투자하여 집요하게 파고드는 것을 통해 기초를 단단하게 쌓는 것이다. 내가 지금 여기까지 알아야할까? 라는 생각이 들어도 포기하지 않았기 때문에 얻을 수 있는 것들이 꽤 많았다.

부트캠프는 굉장히 압축된 컨텐츠이지만, 핵심은 대부분 포함하고 있다.

개발자는 구글과 친해야 한다는 내용도 어디서 주워들어서 모르는게 있으면 구글에 질문부터 했다. 연습문제를 풀다가 막혀서 한참을 stackoverflow에 전문영어를 뒤져가며 얻은 지식이 유어클래스에 보란듯이 있던 적이 한두번이 아니다.
유어클래스에 적힌 한 문장 한 문장이, 라이브세션에서 툭 던지듯 하셨던 한마디가 모두 굉장한 핵심 내용을 담고 있다. 그래서 부트캠프가 힘든 것 같다. 집중력을 한순간도 놓치지 않으며 모두 흡수하려고 노력해야하기 때문이다.

기초를 만들 시간이 없다

기초가 중요하다는 것은 모두가 안다. 근데 기초를 쌓을 시간조차 없으면 어떻게 해야할까? 내가 지금 가장 걱정하는 부분이다. 확신하는 것은 나는 부트캠프 이전에 미리 시간을 써서 이해한 부분이 있었기 때문에 모르는 부분에 시간을 더 쓸 수 있었고 그래서 section1을 무사히 마쳤다고 생각한다. 아직 못한게 있긴 하다. 그렇지만 section2에서는 맨땅에서 시작하는 내가, 주어진 시간 안에 기초 개념과 원리를 이해하고, 심화된 부분까지 활용할 수 있을까? 미리 최악의 시나리오를 예상해보면

  1. 유어클래스 컨텐츠를 주어진 시간 안에 이해하지 못한다.

  2. 컨텐츠가 밀린다.
    2-1) 기초에 구멍이 난 채로 스케쥴에 맞춰서 다음 컨텐츠를 본다면
    -> 뭔지 당연히 이해못함 (시간낭비)
    2-2) 스케쥴을 무시하고 구멍난 부분을 메꾸려고 하면
    -> 라이브세션과 페어프로그래밍, 연습문제를 전부 포기해야 한다.

  3. 멘탈이 터지고 못하겠다 선언한다.

아주 있을법한 시나리오다. 글을 쓰면서도 이정도면 멘탈이 안터지는게 이상하다고 생각한다. 이러한 사태를 방지하기 위해서 어떤 것을 해야할까 고민해보았다. 최우선적으로는 주어진 시간에 진도를 끝내는 것이 목표이다. 구체적 방안으로는

  • 예습을 한다.
    =>미리 컨텐츠를 보고 예제를 실습해보고 오는 것
  • 기초를 전혀 이해하지 못했다면 당일날 잠을 줄여서라도 이해한다.
    =>부트캠프에 올때 각오를 했다고 생각한다.
  • 블로그를 포기한다.

블로그는 내가 아무리 빨리 쓰려고 해도, 제목과 오늘 배운 것만 쓰는게 힘들었다. 지금은 알지만 나중에 이 개념을 까먹지 않을까? 이 예제도 나중에 알면 좋을 것 같아~ 등 계속 추가되면서 시간을 엄청나게 잡아먹었다. 내가 알게된 부분을 메모해놓긴 하지만, 그 메모 또한 이제 막 이해한 상태에서 쓴 글이라서 나중에 보면 이해 못할 수도 있기 떄문에 블로그에 정확하고 자세하게 적으려는 성향이 있다. 블로그를 쓰는 것이 내 공부를 방해한다면, 컨텐츠도 이해못했는데 오늘 배운 것을 정리하여 꾸준한 스펙으로 쌓는게 무슨 의미가 있을까? 과감히 버릴 것이다.

profile
아이스커피

0개의 댓글