꾸준히 성장할 수 있는 개발자 [부스트캠프 2020 챌린지 1주차 후기]

이번주 월요일부터 부스트캠프 챌린지가 시작되었다. 보안 때문에 실제 학습내용은 공유할 수 없지만 1주간의 느낀점들을 공유해보려 한다. (의식의 흐름 주의..!! )

TMI 모음

- 한달간 먹을 구론산 30병과 에너지바 30개도 주문했다. (하루에 1개씩 먹는중)
- 만성불면증이 사라졌다..ㅋㅋ
- 맥북 용량의 한계를 느낀다.ㅠ
- 블로그 글을 쓰며 걱정이 조금 사라졌다. (글쓰며 에너지를 얻는타입)

#. Series

부스트캠프 챌린지 후기 시리즈 한눈에보기[접기/펼치기]

1. 개발 = 구현 + 개선

개발 : 무언가를 새롭게 만들거나 개선하는 것.

개발은 기능을 구현해내는 것 뿐만 아니라, 그런 과정을 개선하고 이런 개선하는 과정을 또 개선하는 과정까지 포함한다.

가독성을 높이는 방법은 없을까? 유지보수가 쉬운 코드를 짜는 방법은 없을까? 좀 더 효율적인 방법은 없을까? 등의 고민과 해결과정 또한 개발의 일부이다.

이렇게 생각하니 정상적으로 작동하는 코드에도 개선점이 계속 보이기 시작했다.

2. 정답이 없다는 게 정답

부스트캠프를 통해 여러 부스트캠퍼분들의 다양한 정답들을 볼 수 있어서 좀 더 열린 시각을 가질 수 있게 되었던 것 같다.

내가 몰랐던 새로운 지식들도 많이 알게 되었고, 잘못 알고있던 지식들도 교정할 수 있었다.

혼자 코드를 짤 때는 내 하나의 관점을 볼 뿐이지만 내 코드를 공유하고 다른 사람의 코드를 보고 서로 비교해 보는 과정은 관점을 넓혀주는 좋은 과정이었다.

물론 선호하는 방식의 차이, 더 좋은 방식(이것도 주관적이다..ㅎ)이 있겠지만 여러 관점을 갖게되는 것은 중요하고 좋은 경험인 것 같다.

어떤 것이 옳다! 라는 정답이 있었으면 지금 존재하는 위대한 프로그램들이나 다양한 디자인패턴들도 나오지 않았을 것이다.

3. 가독성 좋은 코드는 무엇일까

읽기좋다는 것에도 역시 정답이 있나모르겠다. 코드를 읽는 사람이 누구인가에 따라 다르고 어떤 메커니즘을 지향하느냐에 따라 다르지 않을까? 회사마다 컨벤션이 각각 존재할까? 사실 깔끔한 코드를 짜기위해서 함수형 프로그래밍도 한번 공부(겉햝기)해보고 있는 중이긴 한데, 이것에 익숙하지 않은 사람이 본다면 또한 가독성이 안좋다고 볼 수 있지도 않을까?

그렇다면 중요한 것은 나는 이렇게 멋있는 코드를 짤 수 있어!하고 나만의 코딩스타일을 고수하는 것 보다는 이렇게 짠 코드는 이런특징이 있어! 하고 여러 코딩스타일의 특징을 잘 캐치할 수 있는 능력이 아닐까 생각해보았다. 많은 사람들의 다양한 코드를 보면서 “이 사람은 왜 이렇게 짰을까?” 하는 고민을 많이 해봐야겠다.

그리고 오픈소스야말로 많은 사람들이 코드를 읽기 쉽도록 이러한 고민이 많이 녹아들어가 있을 것 같다고 생각했는데, 여유가 생기면 내가 관심있는 분야의 오픈소스도 뜯어보면서 공부해야겠다고 생각했다.

4. 온라인의 장점 : 질의응답

이번 부스트캠프는 온라인으로 진행되었다. 그래서 질문과 답변도 온라인으로 진행되었다.

온라인의 제일 큰 장점은 질문 답변이 엄청 빠르게 달린다는 점인 것 같다. 개발 커뮤니티에서는 질문을 올리면 답변이 달릴지 유무도 알 수 없으며 언제 달릴 지도 알 수 없다. 하지만 부스트캠프는 다같이 동일한 문제를 해결하고 발생하는 문제에 대해 질문할 수 있기 때문에 빠르게 피드백을 받을 수 있다는 점이 좋은 것 같다.

또한 장점 중 하나는 이러한 다양한 질문과 답변들이 휘발되지 않는다는 점이다. 모두 온라인에 기록되기 때문에 내가 보고 싶은 시간에 볼 수 있었고, 질문이 어떻게 해결되었는지의 과정까지도 모두 볼 수 있었다.

나는 미션을 하느라 질의응답은 잘 활용하진 못하고, 다른 사람들의 질의응답을 보며 좋은 정보들을 줍줍했었는데, 앞으로는 좀더 적극적으로 질의응답도 잘 이용해봐야겠다. (잘 할 수 있을까..ㅎ)

// 이런 방법들도 질의응답을 보며 줍줍할 수 있었다.
string.split() -> [...string]
arr = [] -> arr.length = 0

5. 남는 건 사람이다

2일차 미션은 나에게는 매우 생소한 개념들이었다. 그래서 인터넷에 그 개념에 대해서 검색했는데, 친구의 블로그가 나와서 신기했다. 비록 오래전에 작성된 글이었지만 내 옆에서 그친구가 차근차근 알려주는 느낌을 받았다. 우연의 일치일수도 있지만 개발생태계가 의외로 좁구나.. 하는 생각도 들었다.

그렇기 때문에 부스트캠프를 하면서도 처음만난 사람이더라도 더 배려하고, 팀이 매주 바뀌고 짧은 기간동안 지속되지만 더 좋은 커뮤니케이션 방법에 대해서 고민하고 그래야겠다. 비록 온라인이지만 부스트캠프 끝나고 각자의 개발여정을 가다가 캠퍼분의 활약(?)이나 블로그 글등을 보면 정말 반가울 것 같다는 생각도 하게되었다.

운영진분들도 남는 건 사람이다! 라는 말을 하셨는데 부스트캠프를 하면서 좋은 사람들도 많이 만나고 가고싶다.ㅎㅎ

6. 피어세션

부스트캠프 오전타임에는 피어세션이라고 화상미팅을 통하여 서로 전날 공부했던 점에 대해서 공유하는 시간이 있다.

첫날에는 걱정했지만 팀원분들이 모두 너무 재밌고, 개발에 대한 열정도 많은 것 같아서 오전타임은 시간도 정말 빨리가고 정말 유익하고 재밌던 시간이었던 것 같다.

한 팀원분이 따로 진행자를 정하지말고 각 주제에 대해서 자유롭게 자기가 공부한 것을 공유하는 건 어떤지 제안해주셔서 그 방법대로 해봤는데 덕분에 딱딱하지 않고 좀 더 화기애애한 분위기에서 피어세션이 진행되지 않았나 생각한다. 또한 이방법 덕분에 부스트캠프에서 제시한 주제 이외에 것들도 토의 할 수 있어서 더 다양하고 많은 것들을 배울 수 있지 않았나 생각한다.

7. 티타임

중간에 마스터분들께 평소에 궁금했던 것들을 질문할 수 있는 티타임 시간도 있었다. 나는 평소에 궁금했던 점이 있어서 손을 들고 여쭤봤다.

질문 : 기본적인 내용들을 넓게 공부하는 것이 좋은지? 전문적으로 깊게 공부하는 것이 좋은지?
답변 : 전문적으로 깊게 파봐라!

사실 하나의 분야를 깊게 공부하는 것은 스스로 영역을 좁히는 건 아닌가? 취업을 위해서는 어느 분야에서든 적용될 수 있는 걸 공부하는 게 좋지 않을까? 라는 생각을 했었다.

하지만 마스터분들께서는 전문적으로 깊게 파본 경험은 다른 분야를 하게되더라도 큰 도움이 될거고 그것이 자기의 장점이 될 수도 있을 거라고 말씀해주셨다. 올바른 학습방향과 많은 노력이 더 중요하겠지만, 앞으로 확신을 가지고 내가 좋아하는 분야를 공부해봐야겠다!!

우선 지금은 지속가능한 개발 역량을 쌓는 것에 더 집중하자

8. 베이스캠프

베이스캠프는 등산이나 탐험을 할때 도와줄 근거지로 삼는 장소를 뜻한다.

에베레스트산과 같은 고산등반을 하기위해서는, 산중턱에 베이스캠프를 설치하고 등반 중에 사고가 발생하거나 정비가 필요할 때 베이스캠프로 돌아와 재정비를 할 수 있도록 한다고 한다.

부스트캠프도 앞으로의 개발이라는 여정에 있어서의 베이스캠프처럼 개발에 필요한 역량을 쌓는 장소라고 생각한다. 그렇기 때문에 여기서 지식을 쌓는 것도 중요하겠지만 앞으로의 내 개발 여정에 있어서 어떤 시련과 역경을 만나도 내 나름대로의 문제를 해결할 수 있는 나만의 방법들을 익혀나가고 싶다.

비슷한 시기에 프론트엔드 개발자라는 꿈을 갖고, 서로 의지하는 친구도 다른 베이스캠프(우아한 테크 캠프)에서 열심히 성장중이다. 서로 다른 베이스캠프에 있지만 각자 많이 배워서 꼭 산 중턱에서 만날 수 있기를 바래본다.

친구가 최근에 작성한 우테캠 중간회고글

9. 마무리 : 내가 배워야 할 것

모르는 문제를 제한시간 안에 해결하는 것은 힘든게 당연하고, 아는 문제여도 계속해서 개선할 점을 찾는 것도 쉽지 않은 과정이다.

그리고 앞으로 개발이든 인생이든 쉬운 것만 있지는 않을 것이다.

그렇기 때문에 내가 배워야 할 것은 모르는 문제나 어려운 문제에 부딪혔을 때, 해결할 수 있다는 의지와 자신감과 어려운문제을 대처하는 나만의 태도와 방법 같은 것들이 아닐까?

부스트캠프도 아직 1주차이고, 아직도 많은 미션들이 나를 기다리고 있지만 아는 문제든 모르는 문제든간에 그 문제를 나는 어떻게 해결하고 있느냐, 그 문제를 통하여 무엇을 배우고 있는가에 가 더 집중해서 남은 기간 화이팅해봐야겠다!


Written by@taenyKim
웹 프론트엔드 공부 블로그 / Learn in Public

GitHubFacebook