[Week6 ~ 9] Hanwha System BEYOND 6기 회고

kangking·2024년 6월 30일
1

회고

목록 보기
17/17

주간 회고(6~9주)

학습 내용

CS

자료구조

알고리즘

Spring

Spring Boot

Spring Security

+기타 등등.. 제대로 정리해놓기 위해서 포스팅이 꽤나 밀려있다.

📝 전반적인 학습내용에 대한 회고

5~6주차는 전반적으로 부트캠프를 하면서 한번은 배우고 넘어가고 싶다고 생각했던 기본 알고리즘과 자료구조위주로 학습했고 그 과정에서 조금 깊게 파다보니 CS까지 일부 학습했다.

7주차 부터는 Spring과 Spring Boot가 왜 편한지 기존의 불편했던 웹개발 방식들을 다뤄보면서 직접 체감할 수 있었고 상당히 난해하고 어려운 내용인 JPA를 학습했다.

8주차는 Spring Security, 카카오톡 로그인, 포트원 등 각종 API 사용법에 대해 공부하며 실직적으로 웹서비스에서 사용하는 내용들을 익힐 수 있었다.

중간에 알고리즘과 자료구조는 팀별로 하나씩 맡아서 발표를 준비해와 직접 이해시켜보는 방식으로 진행되었고 우리팀은 레드블랙트리와 벨만포드 알고리즘을 준비해서 발표했고 각각 1등 2등이라는 결과를 얻었다.

다른 팀 발표도 열심히 듣고 추가적으로 조금 덧붙여서 포스팅을 작성해놓으니 최단거리 알고리즘과 이진 탐색 트리에 대한 내용이 머리속에 더 잘 남는 기분이었다.(물론 아직 코테 문제를 자유자재로 풀 수 있는 수준은 아니다)

알고리즘이나 자료구조까지는 기존 전공자들이나 개발 경험이 조금이라도 있던 사람들이 많이 앞으로 치고 나갔지만 스프링부터는 그런 느낌을 많이 받지 못하고 있다. 아무래도 학교에선 최신 트렌트를 반영한 웹 개발을 충분히 가르쳐주지 않다보니 스프링부터는 거의 초기화되어 동등한 상태에서 학습을 시작하게 되는 것 같다.

적으면서 보니 3~4주 사이에 정말 많은 내용을 배웠고 이해한 것 같다. 원래 성격 자체가 단순히 사용법만 암기하고 넘어가기 보다는 포스팅이 밀린 것에서도 알 수 있듯이 시간이 허용되는 만큼 딥다이브 해야 직성이 풀리는 편이라서 남들이 물어보는 질문에 대해 조금 더 자세히 답변할 줄 아는 수준까진 온 것 같다.

⏰ 현재의 공부 방식

강사님께서 스프링 부트부터는 내부 동작구조가 겉으로 드러나지 않기 때문에 원리를 너무 공부하려하면 꽤 어려움을 겪을 거라고 말씀 하셨는데, 아니나 다를까 점점 내부구조가 길고 복잡해지니 레퍼런스로 참고할 자료들이 다루는 깊이도 동시에 얕아지고 있는 것을 느꼈다. 마치 모두가 적당히 이정도면 충분하지 하면서 타협하는 느낌이 강하게 들었지만 나 또한 시간이 부족해서 온전히 만족할 수 있을 정도로 딥다이브 하진 못했다. 그래도 조금 다행인건 딥다이브를 너무 고집하지 않고 적당 선에서 직관적으로 받아들일 수 있게 된 것이다.

예전 같았으면 Controller의 동작 코드를 전부 뜯어보면서 이해하려하고 충분히 이해되지 않았을 경우, 기계처럼 Controller를 사용하려하지 않고 강의도 안들은 채 원리에만 매달렸을텐데 이젠 선암기, 후다이브를 할 수 있을 정도로 그냥 받아들이고 있다. 이 방식이 스프링 부트를 공부할 때는 훨씬 더 효과적인 것 같다.

다뤄야할 내용이 너무 많은데 전부 딥다이브 할 수도 없을 뿐더러 특정 부분 이외에, 깊은 이해가 그다지 코드에도 큰 변화를 주지 못하는 경우가 많다. 이미 스프링 부트는 충분히 간편하고 편리하기 때문에 규격에 맞게 잘 사용하고, 일부 커스텀 하여 사용할 수 있는 내용들이나 큰 틀의 개념은 딥다이브 하는 방식으로 앞으로도 계속 공부할 것 같다.

부족했던 점

💻 GPT 사용 빈도가 높아짐

원래는 코드를 직접 타고들어가서 뜯어보거나 블로그 포스트들을 비교해가며 개념을 하나씩 잡아나갔는데 양이 워낙 방대하다 보니, 단순한 내용들은 GPT에 간단히 물어보는 빈도가 높아졌다.

물론 당연히 좋은 학습 보조툴이고 잘 사용하면 나쁘지 않지만, 지금은 GPT에 의존할 수 밖에 없을 만큼 어려운 내용이었던 것도 아니고 단순히 편의성을 위해 찾았다는 사실이 다소 아쉬웠다. 물론 지금도 코드를 붙여넣고 문제를 찾아달라는 질문은 아예 하지 않는다.

발상이 중요한 것인데 발상자체를 맡겨버리면 내 실력은 제자리가 된다고 생각해서 앞으로도 완벽히 이해한 개념이 아니거나, 마감 기한 때문에 어쩔 수 없이 완료해야하는 작업이 있지 않은 이상은 앞으로도 코드에 대한 내용은 직접적인 질문은 하지 않을 생각이다. (물론 학습이 어느정도 되면 이제 생산성을 위해 GPT를 커스텀해서 잘 쓰는 방법도 해볼 생각이다. 아마 최종 프로젝트 쯤이 되지 않을까 싶다.)

코딩 테스트 풀이에 소홀함

개념을 잡아야한다는 생각이 워낙 컸던 터라 지금까지 코딩테스트 문제풀이에 대한 시간투자가 상대적으로 너무 적었던 것 같다. 아예 안푸는 것은 아니지만 매일 꾸준히 풀어야 뇌도 풀리면서 도움될 것 같은데, 지금은 거의 날잡고 푸는 방식이다. 그마저도 많이 풀지도 않는다.

물론 훨씬 더 중요한 내용은 개념이고 동작방식이라고 생각한다. 코테는 실무적으로 도움이 된다는 느낌보단, 대기업이나 중견이상 취직하고 싶어서 자격요건을 맞추기 위해 준비하는 느낌이 크다. 코딩 테스트 문제를 푼다고 개발 실력이 느는 것은 아니지만 반대로 실력이 좋은 사람들은 문제를 꽤나 잘 푼다. 그런 의미에서 간단하게 실력을 판단할 수 있는 기준은 되는 것 같다. 그냥 복잡하게 생각하지 말고 개념은 지금처럼 착실히 잡아나가고 매일 하루 1문제 풀이 등과 같은 구체적이고 지키기 쉬운 수준의 목표를 정해서 체크하는게 효과적일 것 같다.

잘한 점

어려워도 딥다이브

스프링 부트까진 괜찮았지만 JPA부터 내부적인 동작과정이나 메소드 호출 흐름이 너무 많아지고 복잡해져서 한눈에 파악하기가 굉장히 어려워졌다. 블로그들에서 다루는 포스팅들도 어느순간부터 다같이 타협이라도 한 듯 비슷한 내용만 돌고있어서 원하는 만큼의 정보를 구글링으로 찾기도 점점 어려워 지고 있었다. 이거까진 몰라도 된다라는 말을 좋아하지 않았는데 최근에 딥다이브를 해보면서 어느정도 한계를 느껴보긴 했다.

그럼에도 불구하고 오기가 생겨서 계속 딥다이브를 시도했다. 솔직히 강사님도 이거까진 몰라도 된다고 하지만, 내 생각은 약간 다르다. 몰라도 된다고 말하는 사람들은 그 내용을 대부분 알고있는 경우가 많고, 본인들이 느끼기엔 필요없다고 느낄지 몰라도 알게모르게 그 내용을 기반으로 문제를 해결하고 있거나 이해에 도움을 받고 있다고 생각한다. 그리고 동작 원리를 알아갈 수록 디버깅을 했을 때 빠르게 문제의 원인에 접근할 수 있게 되는 것을 교육과정 내내 경험하고 느꼈기 때문에 더 포기할 수 없는 것 같다.

다만 너무 매몰되지 않도록 항상 경계해야하고 이제는 내용이 워낙 어려워지고 복잡해지는 만큼, 지금처럼 우선 익숙해지도록 노력하고 많이 궁금하거나 이해가 반드시 필요하다고 판단되는 내용에 대해서만 선택적인 딥다이브를 진행해야 할 것 같다.

꾸준한 블로깅

다루는 내용이 워낙 많아지고 학습 속도도 상당히 빠른 편이기 때문에 처음에 생각했던 것 처럼 1일 1포스트씩 하진 못하고 있지만 주제별로 키워드를 분류해서 학습을 기록하다가 기록이 완료되면 포스팅을 게시하는 방향으로 현재 운영하고 있다. 처음에는 워낙 미미하다보니 큰 보람이나 재미를 느끼진 못했지만 지금은 개발공부를 하면서 유일한 낙이 깃에 잔디심는것과 블로그에 공부한 내용을 포스팅하는 것이다. 꾸준한 포스팅을 하려고 하다보니 이해가 안되면 글로 설명할 수 있을 때 까지 더 공부하려 하게되고 어려운 부분은 시각적으로 표현하려고 하게되는데 이 점들이 공부에 정말 도움이 많이 되었다. 가끔 같이 스터디를 하는 동기들이 어려워할 것 같은 내용을 미리 그려서 스터디에 가져가기도하고, 스프링 시큐리티와 같은 내부 흐름이 정확하게 잘 나오지 않는 내용들도 열심히 자료를 찾고 코드를 따라가면서 그려서 스터디원들의 이해를 도와주기도 했다. 앞으로도 꼼꼼하게 기록해서 나중에 내가 직접 사용할 수 있는 백업 자료로도 활용되길 바라고 있다.

계획

자격증 준비

정보처리기사 필기가 7월 7일에 예정되어있고 8월달에 SQLD자격증도 예정되어 있다. 많이는 못하고 있지만 그동안 미뤄뒀던 어학공부도 꾸준히 하고 있어서 못해도 내년 초쯤이면 내손에 어학2개 IT 자격증 2개는 손에 들려있길 희망하고 있다.

취미활동 축소

운동과 밴드활동으로 남들보다 주말 및 평일 저녁시간대 공부에 할애할 수 있는 시간이 적은 상태이다. 공부하는 내용이 점점 어려워지고 있어서 할애해야할 시간이 대폭 늘어남애 따라 조금씩 취미활동 시간을 줄여나갈 생각이다. 밴드활동은 현재 8월까지 예정되어있는 활동이 끝나면 대폭 줄이거나 10월 말 최종프로젝트까지 잠시 쉴 예정이고 운동은 분할방법을 바꿔서 시간을 줄였다. 운동시간을 줄이고 집착을 줄이고나니 평일에 9시 40분까진 남아서 공부할 수 있게되어 조금 큰 도움이 되고있다. 주말에도 더 공부할 수 있다면 최종프로젝트를 시작할 즘에는 꽤나 폼이 오른 상태로 프로젝트에 임하게 될 수 있을 것 같다.

학습 계획

기본적으로 강의 때 듣는 내용과 더불어 아래의 내용들을 추가적으로 하면서 이론에만 머물러있지 않고 직접 사용해보는 연습을 많이 해볼 예정이다. 그리고 현업에서 종사하고 있는 지인들에게 적극적으로 도움을 요청해볼 생각도 있다.

  • 개인 사이드 프로젝트 (공연 입장 관리 - 실제 공연때 사용까지 해 볼 예정)

  • 자격증 공부(정처기, SQLD, 토익, 오픽)

  • 클론 프로젝트(간단한 사이트의 백엔드를 클론해보기)

  • 지인들(현업자들)에게 코드리뷰 받기

느낀 점

길다면 길고 짧다면 짧았을 두 달이 지났다. 정말 정신없이 보냈고 하루하루 열심히 보내고 집에 돌아가는 길이면 녹초가 되어서 유튜브도 보기 어려울 정도로 힘이 빠져있게 된다. 분명 쉬고 있지 못하고 매일 잠도 4시간 정도밖에 못자는데 포기하고 싶다거나 너무 힘들다 라는 생각이 들지 않는다. 그저 빨리 더 배우고 싶다라는 생각 뿐이고 공부를 더 못해서 아쉽다는 생각 뿐이었다. 목표가 없어서라는 핑계로 열심히 해오지 않았기 때문에 그 말이 핑계가 되지 않으려면 목표가 생겼으니 미친듯이 달리는 일만 남은 셈이다.

물론 이런 이유 때문만은 아니고 실제로 너무 즐겁다. 아무래도 지금은 성장에 중독된 것 같다. 정신적으로도 육체적으로도 열심히 갈고닦아 좋은 성과를 조금씩 내는 일들을 하다보니 게임이나 유튜브같은 스위치형 도파민에서 자유로워 졌고 인생이 건강해지는 기분을 요즘 하루하루 느낀다.

그렇다 보니 가끔은 이런 생각도 든다. 나는 원래 꾸준함에서 오는 성취감과 결실들을 좋아하는데 그게 너무 어려운 일이라는 것을 너무나도 잘 알기 때문에 준비되지 않은 상태에선 피해왔던게 아닐까?

처음엔 6개월만에 좋은 개발자가 되긴 어렵다고 생각했다. 하지만 지금은 생각이 조금 바뀌었다. 분명 좋은 완성형의 개발자가 되는건 불가능하다. 하지만 완성형 개발자라는 단어를 조금 다르게 정의하면 가능해질 것 같다. 스스로 문제를 파악하고 좋은 결과를 내기위해 최선의 노력을 다하는 개발자가 되는 것이라면 6개월안에 해낼 수 있다는 확신이 든다.

정말 다른 생각은 없다. 그냥 열심히 열심히 열심히 하자!

profile
하루하루 의미있게

1개의 댓글

comment-user-thumbnail
2024년 7월 1일

와우~ 한번에 6주~ 9주 동안의 회고를 한방에? ㅋㅋ
코드 한 줄, 프로젝트 하나하나가 태성님의 성장의 밑거름이 될거라 생각합니다. 매일 조금씩 발전하는 태성님을 믿고, 앞으로 나아가세요~ 응원합니다. ^___^

답글 달기