Skip to content

Latest commit

 

History

History
55 lines (38 loc) · 4.45 KB

level2.md

File metadata and controls

55 lines (38 loc) · 4.45 KB

그냥 공부 말고 공부하려면

국영수, 아니 자바 위주로 교과서를 공부했어요

정량적인 목표를 달성하는 것만으로 좋은 개발자가 될 수 있다면 얼마나 좋을까? 수능 SW 과목에서 100점을 맞으면 된다거나.
우테코에 오기 전의 나는 개발을 시험공부 하듯 하려 했다. 하루에 개발 서적을 몇페이지 읽겠다, 인터넷 강의를 하나씩 듣겠다, 알고리즘 문제를 세 개씩 풀겠다 같은 목표를 세웠다. 당시에는 이런 공부법에 의심이 없었다.

유연하게 변화무쌍하게

하지만 우테코에 오자 이런 공부법으로 공부를 할 수는 있어도 공부하기는 어려웠다. 책도 강의도 문제도 없이 미션만이 주어졌기 때문이다. 그래서 달성하려는 목표와 직면한 문제에 따라 다르게 대처하기 위해 다음과 같은 시도를 했다.

  • 상속과 인터페이스가 다르단 건 알겠는데, 차별점을 잘 모르겠다.
    -> 같은 기능을 각각 구현해 직접 부딪혀보며 장단점을 익혔다.
  • 객체지향은 추상화된 개념이라 내 해석과 생각이 맞는지 확신이 없다.
    -> 다른 사람들과 의견을 교환할 수 있는 토론회를 열었다.
  • SQL 문법에 빠르게 익숙해지고 싶다.
    -> 일주일간 SQL 문제를 돌아가며 3개씩 출제하고 푸는 모임을 만들었다.
  • 스프링에 처음 접하는 용어가 많아, 다른 사람의 설명을 읽어도 이해가 어려웠다.
    -> 영어로 된 스프링 공식 문서를 한 줄 한 줄 읽으며 정리해 포스팅했다.

여러 방법을 시도하다 보니 이런 목적에는 이런 방식으로 공부하면 효율적이겠다는 감이 왔다.

스프링의 감초 귀염둥이 빈

그러다 레벨2에서 본격적으로 스프링을 사용하며 혼돈의 시기를 겪었다. 비슷한 개념들이 줄줄이 나오니 헷갈려 어제 공부한 개념이 오늘 낯설었다. 손 틈새로 모래가 빠져나가는 모양새였다. 그래서 이제까지 시도한 여러 공부법 중 상속과 인터페이스를 묶어 함께 익힌 걸 적용했다.

내 또래라면 포켓몬의 감초 귀염둥이 악당 이라는 문구를 들었을 때 로사, 로이, 나옹이다옹! 라는 말이 절로 나올 것이다. 이 셋이 따로 존재하는 캐릭터였다면 이토록 뇌리에 남을 수 있었을까? 함께해서 매력적인 이 셋처럼 헷갈리는 개념을 함께 학습하니 잘 남았다.

@Component가 스프링 빈이 된다는데 그럼 @Bean이랑 도대체 무슨 차이란 말이지? 두 방식을 다 써서 같은 빈을 등록해보니 차이와 쓰임새를 명확히 알 수 있었다. 코드로 체험하고 다시 공식 문서를 읽자 무슨 맥락인지 알 수 없던 영어단어가 자연스레 읽혔다. 컨트롤러 통합 테스트가 있는데 인수 테스트를 작성해야 할까? 이미 잘 안다고 생각했지만 개념을 묶기 위해, 다시 DAOService 단위 테스트를 짜고 살폈다. 이어서 통합 테스트를 보고, 규모별로 작성한 테스트를 나열했다. 규모 단계별 차이점을 중점으로 비교하니 테스트의 범위가 헷갈리지 않았다. 컨트롤러 통합 테스트와 인수 테스트의 간격도 확실히 보였다.

이렇게 하나라도 잘 익히자! 에서 묶음을 만들자!로 시각을 전환하니 학습이 더 수월했다.

여전히 명확한 해답은 없지만

샌드박스라는 게임 장르를 아시는지? 마치 아이들이 노는 모래 놀이터처럼 자유롭게 무언가를 만들 수 있는 장르를 뜻한다. 우테코는 나에게 학습의 샌드박스다. 여기서는 알아서 잘 공부하기라는 목표를 위해 학습법이라는 모래성을 마음껏 여러 방법으로 쌓아볼 수 있다. 옆에서 다른 사람들이 쌓는 걸 보고 같이해 볼 수도 있고 말이다!

우테코에서 터득한 나만의 학습법이 무엇이냐는 주제를 처음 봤을 때 여러 대답이 떠올랐다. 기능 구현해보기? 스터디나 토론회 열기? 블로그 정리 포스팅? 학습로그 말하기?
목표를 조준하고 시도한 모든 방법에서 나름의 효용을 찾았기에, 객관식 답안을 내놓는 대신 이렇게 마무리 지으려 한다.

"가야 할 방향과 목표를 알고 유연하게 대처하기!"