섹션 2 회고

Suxxzzy.log·2022년 2월 23일
2

회고

목록 보기
23/34
post-thumbnail


길다면 길고 짧다면 짧다고도 할 수 있는 섹션2가 끝이 났다.

중간에 설 연휴가 껴서 사실은 5주간을 섹션 2를 공부하며 보냈다고 봐도 될 것 같다.
섹션 2에서는 리액트 데이터 흐름에서 좀 힘들었는데, 서버 부분은 비교적 쉬워서 그래도 재밌게 공부를 했던 것 같다.
많은 것을 배웠지만, 실제 현업에서는 이것보다 더 많은 것을 알아야하지 않을까? 하는 생각이 들었다.

섹션 2를 통과했지만 그만큼 더 많은 공부가 필요하다.

아쉬운 점

다소 성급하고, 꼼꼼하지 못하다는 점, 근거를 충분히 생각하지 않은 코드 작성:

대학원 시절에 항상 선배한테 아쉬운 소리를 듣게 만들던 버릇이 아직도 고쳐지지 않는다는 것을 이번 섹션과 HA를 통해서 느낄 수 있었다.

실험을 하면서 좀 더 신중히 생각해 보고, 왜 그렇게 실험을 해야 하는지 근거와 논문을 충분히 찾아보는 습관이 중요했는데, 이것을 지키지 않아 대부분의 실험은 늘 실패했고, 처음부터 다시 시작해야 하는 경우가 많았다.

실제 토이 문제를 풀면서, 반복문에서 시작 조건과 종료 조건을 설정하는게 계속 헷갈렸는데, 값들을 대입해 보면서 그 값들이 어떻게 변화하는지 하나씩 알아가야 했는데, 제대로 확인조차 하지 않고 바로 조건을 작성하려 하니 반복문 작성에서 버벅댈 수밖에 없었다. 그러면서 다시 원점으로 돌아가고 , 시간을 낭비하는 패턴이 반복됐다.

오늘 HA도 그랬다. 지시사항부터 천천히 읽어나갔고, 저번 섹션에 비해 더 많은 테스트케이스들을 통과시킨 점은 잘 했다. 하지만 테스트 케이스를 돌리면서 이게 맞나? 하고 돌려보면 어 맞네? 라는 생각으로 풀어나갔는데, 사실 확실하게 공부했다면, 모든 테스트 케이스에 대해 확신을 가지고 풀어나갔을텐데..라는 생각이 든다.

천재라면 모르겠는데, 나는 그런 사람은 아니니까 무조건 근거를 찾아보고, 코드를 짜는 연습이 필요하다.

학습한 내용중 제대로 설명을 하지 못하는 부분에 대해서, 완전히 이해하고 넘어가지 않았던 점:

useEffect, 리액트 상태관리 같은 부분이 그랬는데, 실제 코드를 작성할 때 상태를 어디에다가 둬야 하지, 무엇을 상태로 관리해야 하지? 언제 useEffect를 사용해야 하지? 같은 부분에서 헷갈린 적이 많았는데, 그때마다, 원리나 여러 레퍼런스들을 잘 찾아보지 않고 미루기만 미뤘다. 그래도 어떻게 사용하는지는 아니까..란 생각에 안심 반 불안 반 하는 마음으로 설렁설렁 넘어간게 큰 문제였다. 어떻게 사용하는지를 익히는 건 따라만 하면 되니까 누구나 금방 하겠지만, 언제, 왜 사용하는지, 원리가 어떻게 되는지를 설명할 정도로 공부하는 게 더 중요했다.

페어분에게 동조(내 탓)되어서 학습 목표를 넘어 심화적인 부분까지 깊이 공부하려 하지 않았던 점:

지금 당장 섹션을 잘 이수하기 위한 게 아니고 장기적으로, 현업에서 내가 일할 수 있을 역량을 키우기 위해 코스에 들어온 건데, 잠시 지쳤다고 , 편하자고 심화된 내용, 아니 당연히 봐야 할 수 있는 advanced한 내용들을 지나치기만 했다. 설령 시간이 다 부족해서 못 볼지라도, 적어도 하나만이라도 더 공부하고 알아가려는 태도가 필요하다.

또한 최근 들어 토이 문제가 어렵게 느껴지면서 문제를 푸는 나만의 원칙을 자꾸 놓치는 경우가 있는다. 입력값들을 좀 더 꼼꼼하게 생각해 볼 필요가 있는데, 이 부분을 자꾸 무시하고 넘어가게 되는 것 같더라. 다시 초심으로 되돌아가서 그 원칙대로 문제를 풀어야겠다.

새로운 공부법에 대해 신뢰를 갖지 않고 기존 공부법을 썼다가 새 공부법을 썼다가...한 점

지금까지는 노션에 정리를 하고, 계속 눈으로 보고, 코드를 따라 쳐 보고 했는데, 손가락 움직이는게 귀찮아져버렸다. 눈으로만 보고서는 기억이 오래가질 않는 것 같아 이윤규 변호사님의 공부법을 보고 따라해보기로 했다.

눈으로 보는 것보다는 스스로를 가르치면서 공부하는 것이 더 효과가 좋다고 하길래, 리덕스 부분을 그렇게 공부를 했었는데, 그 이후 2일간 다른 공부를 하다가 다시 리덕스를 보고 배운 내용을 떠올리니 90%정도는 다시 복기를 할 수 있었다.

그때 그만큼 신뢰를 하고 그 공부법을 고수했어야 하는데, 괜히 노션을 안 보면 불안한 마음에 기존 공부법도 써서 시간도 좀 낭비했던 것 같다.

앞으로는 학습목표를 보면서 배운 내용을 말로 설명해보고, 조금이라도 이해가 안되거나 모르는 부분을 더 찾아보고 공부할 계획이다.

또한, 공부한 내용을 오래 기억하기 위해서, 실제 프로젝트나 현업에서 어떻게 적용을 시킬 수 있을지를 더 고민해보고, 연관이 된 개념들을 묶어서 정리해봐야겠다.

그럼에도 불구하고 조금의 발전이 있었다면..

토이 문제를 조금이나마 푸는 방법을 익혔다는 것, - 최근 들어 조금 흐지부지되어서 그렇지..

토이 문제, 알고리즘 문제는 꼭 수학 공부하는 방법과 비슷한 것 같다. 옛날에 중학교, 고등학교때 수학을 못해서 유형별 문제집을 왕창 사다가 풀었던 기억이 난다. 학원도 다녀보고 복습도 많이 했었는데 그렇게 좋은 성적을 받지는 못했다. 응용 문제가 나오면 거기서 와르르 무너졌기 때문이었다.
코딩테스트 잘 공부하는 법을 수도 없이 많이 검색해보면서 알게된 거긴 하지만, 일단 200문제 정도는 남이 어떻게 풀었는지, 또 유형은 어떤 것들이 있는지 먼저 익혀나가는 게 필요하다고 한다. 하지만 유형을 충분히 익혔다면, 문제에 접근하는 방법을 스스로 잡아나가고 응용도 할 줄 알아야 한다고 생각한다
처음에는 레퍼런스 보는것도 자제하려고 했는데, 오히려 너무 안 풀릴 때는 레퍼런스를 보고 방법을 익혀 나가는 것도 도움이 되었다. 이런 경험을 했기에 유형별로 공부를 해 나가라는 말에는 동의를 한다. 하지만 그 이후에는 새로운 유형의 접했을 때, 그런 문제도 해결할 수 있는 능력을 키우는 것도 중요하다고 생각한다. 이런 능력을 좀 더 키우고 싶은데, 그렇게 하기엔 한달은 좀 길면서도 짧았던 것 같다.

그래도..섹션 1에선 알고리즘 베이직 문제를 풀 때, 수도코드를 너무 대충 짜고 코드부터 후딱 적자는 식으로 문제를 풀었는데, 섹션 2에 와서 토이를 풀면서 알고리즘 문제를 푸는 나만의 순서가 잡히게 되었다.

  1. 문제를 읽고 이해한 부분을 나만의 말로 정리하기
  2. 입력값으로 어떤 것들이 들어올 수 있는지 생각하기. 입력값이 안 주어진다면? 말도 안되는 입력값이 주어진다면? 또는 범위의 시작과 끝에 있는 극단적인 입력값이 들어온다면 어떻게 처리를 해야 할지 먼저 생각하기
  3. 출력값으로는 어떤 데이터타입을 리턴해야 하는지.
  4. 예시 3개 정도 이해하면서, 일관된 규칙 찾아내기(테스트케이스를 먼저 돌려보고 입출력 예시를 몇개 더 얻어내서 규칙을 파악해보는것도 도움이 됐다. 처음에는 빨간색으로 가득찬 테스트케이스를 보는게 거부감이 들었는데, 이제는 오히려 이걸 활용해야겠다는 마인드로 바꿨다.)
    예시를 완벽하게 이해를 하지 않은 상태에서는 코드를 짜 봤자 헷갈리고 다시 수도코드 짜러 원점으로 되돌아가기 때문에, 최대한 깔끔하게 예시를 이해한 과정을 정리해보려 했다. 그게 문제 풀이 시간을 줄이는 데 좀 도움이 됐던 것 같다.

스프린트 파일을 보고 코드의 흐름을 파악하는 능력?

섹션 1보다는 그래도 흐름을 파악하는 요령이 조-금? 생긴 것 같은데.. 아직은 남이 쓴 코드를 더 읽어보거나, 아니면 내가 직접 뭔가 만들어봐야할 것 같다.
특히 리액트 부분에서 섹션 1에서 되게 고전하고 힘들었었는데, 이제는 state와 props의 흐름을 따라가고 그것을 도식화할 수 있게 되었다. 섹션 1을 한번 더 들으면서 혼자서 리액트로 만들어봤던 쇼핑몰 프로젝트가 있었는데 그게 정말 큰 도움이 됐던 것 같다. 그 프로젝트를 하면서 useState에 대해서는 확실하게 로직을 작성하고 이용하고, 페어분들에게도 설명할 수 있을 정도가 됐다. 결국 내가 배운 것을 활용하여 무언가를 만들어볼때, 가장 많이 배우고,또 가장 오래 기억에 남는 것 같다. 또 그냥 이론만 공부하는 것에 비해, 재미도 붙일 수 있는 것 같다.

섹션3: 지금까지의 안 좋은 습관들은 차츰차츰 버리고, 좋은 습관을 만들어나가자.

이제는 백엔드 부분들을 좀 더 집중적으로 공부하게 된다.

간단하게 다짐을 적자면..
-개념 공부에 있어서 공백이 없도록 하기. (정말 중요) 이건 뜯어고쳐야겠다.
-전체 개념을 한번 쭉 읽고 어떤 내용 배우는지 파악해본다음, 디테일 공부하기
-토이: 아직 완전하게 모든 유형을 익힌 것은 아니니, 유형을 익힐것은 익히되, 배운 개념을 활용한 문제가 나온다면 최선을 다해 고민하고 문제 풀기.
-스프린트: 새로운 개념, 배우지 않은 내용에 대해 스스로 검색하고 찾아보는 능력을 키워야한다. 과제로 주어지는 파일들을 보면서, 설명해보고, "조금"이라도 버벅대거나 헷갈리는 개념이 있다면 검색해보거나, 아고라스테이츠를 이용해보려고 한다.

profile
몫을 다하는 사람

4개의 댓글

comment-user-thumbnail
2022년 3월 4일

저는 문제를 그냥 막 덤벼보다가 실패하면 어디서 틀렸는지 헷갈리고 꼬여서 어떻게 이문제를 개선할수있을까 지금도 생각하고 있는데.. 위에 글을 읽고 저와 비슷한 부분이 있는것 같아 공감이 됩니다.. 남은 기간동안 화이팅 하셨으면 좋겠습니다!

1개의 답글
comment-user-thumbnail
2022년 3월 6일

안녕하십니까 유효성 검사 때 페어였던 37기 반준형입니다🌈
늘 입술이 터져 있으시던데 열공하시느라 고생많으십니다💊
벌써 섹션2를 성공적으로 끝내시고 섹션3로 넘어가셨군요. 섹션2가 정말 어렵던데 한번에 패스하신 거 축하드립니다.
우수후기로 선정 되신 것도 축하드리구요🎊
저는 2/14일부터 성수동에 있는 SI업체에 출근하고 있는데, 여기 와보니까 SI업체야말로 굉장히 기회가 많은 분야라는 생각이 듭니다.
대부분의 직원들이 개발자인데 프론트나 백엔드 외에도 퍼블리싱, 웹메소드, API, DATA, 기술영업 등 다양한 분야가 있고, 이런 곳에서 경력을 쌓아야 진정한 풀스텍 개발자가 될 수 있는 것 같습니다.(개발 언어는 JAVA입니다)
남은 섹션3와 프로젝트 기간 동안 실력 쌓으셔서 좋은데 가시길 응원하구요. 궁금하신 사항은 언제든 디스코드로 연락 부탁드립니다✈️ 화이팅!!💥

1개의 답글