이번 주 한 일, 느낀 점
항해 첫 프로젝트
https://kimdirector1090.tistory.com/52
항해 1주차 미니 프로젝트 '소소미' 후기
API 설계와 HTTP 통신 RESTful API 와 HTTP 상태 코드들에 대해 처음으로 제대로 살펴본 것 같다. 다음에 프로젝트를 진행할 때는 이번에 받았던 피드백들을 바탕으로 더 깔끔하게 API들을 설계해보자.
kimdirector1090.tistory.com
이번 주차에 진행했던 프로젝트 후기는 따로 적어둔 게 있어서 이 글에는 후기에 미처 적지 못한 내용들과 금~토 까지의 후기를 작성하려 한다.
JWT 토큰
우선 왜 프로젝트 후기에서 JWT 토큰이 빠졌는지를 생각해보았다. 1주차 미니 프로젝트의 메인 키워드 중 하나였음에도, 프로젝트를 회고할 때 JWT 토큰에 대해서는 전혀 생각이 나지 않았었다. 왜 그랬을까??
답은 간단하다. 내가 아직 JWT 토큰에 대해 제대로 이해하지 못해서이다. API 설계나 HTTP 통신, 깃허브처럼 직접 몸으로 부딪히면서 필요성을 느낀 것들은 정말 깊이 이해할 수 있었다. 그리고 그 이해를 바탕으로 자연스럽게 프로젝트 후기를 적을 수 있었다.
하지만 아직 JWT 토큰에 대해서는 그 필요성과 장점을 직접 느껴보지 못했다. 토큰을 구현하기 위해 서버와 클라이언트의 통신, 쿠키의 이동 방식 등에 대해서는 꽤 이해할 수 있었다. 그리고 세션과 쿠키 방식에 비해 JWT가 어떤 장점이 있는지 대략적으로는 설명할 수 있다. 그렇지만 다른 보안 인증 방식은 무엇이 있는지, 그런 인증 방식에 비해 JWT가 어떤 장점이 있는지 등 보안에 대한 전반적인 지식이 부족하다. 아직 보안에 대한 이해가 부족하고, 지금 진행하는 프로젝트들이 보안까지 신경쓸 수 있는 단계가 아니라서 그런 것 같다. 심지어 이번 프로젝트는 기간이 매우 짧았고, '완성'에 초점을 맞추어야 했기에 보안에 대해 찾아볼 여유가 없었다.
그래서 이번 프로젝트에선 아직 'JWT 토큰이 있다' 정도만 배운 것 같다. 이후 프로젝트들을 진행할 때, 그리고 진행하기 전에 보안 쪽도 최대한 공부하여 제대로 된 이해를 바탕으로 JWT 토큰을 포함한 여러 가지 보안 방식들에 대해 적어볼 수 있도록 노력하자.
자료구조와 코드의 효율성
금요일부터 항해의 알고리즘 주차가 시작하였다. 원래는 코드의 효율성이 중요하다는 것만 알고 있었지, 그걸 제대로 느끼지는 못하고 있었다. 그런데 알고리즘 문제를 풀다가 배열을 리스트로 바꾸면서 이런 의문이 들었다.
'배열에서 sort를 하고 가는게 효율적인가? 아니면 리스트로 변환한 후 sort를 하는게 효율적인가?'
그래서 직접 실행 시간을 비교하며 테스트를 해 보았다. 테스트를 하다보니 위와 비슷한 의문들이 계속 생겨났고, 점점 테스트의 규모가 커졌다. 결국 배열과 리스트에 관한 여러 가지 효율성 테스트를 진행하게 되었고, 직접 눈으로 결과를 확인하고 나름대로의 결론을 내릴 수 있었다. 아래는 그 효율성 테스트를 기록한 글이다.
https://kimdirector1090.tistory.com/63
[Java] 배열과 리스트, 무엇을 써야 할까?
알고리즘 문제를 풀다가 sort 작업을 배열에서 하는게 좋은지, 리스트로 옮긴 후에 진행하는게 궁금해졌다. 그리고 테스트를 하다 보니 변환 작업은 각각 얼마나 시간이 걸리는지, 그리고 어떨
kimdirector1090.tistory.com
이 작업은 나에게 큰 전환점이 되었다.
우선 알고리즘 문제를 풀 때 '현재 상황에서 어떤 자료구조를 쓰는 것이 가장 효울적인가' 에 대한 답을 이전보다 쉽게 낼 수 있게 되었다. 내가 가졌던 의문을 직접 테스트를 통해 해결하였기에 저 결과들과 테스트의 결론이 내 머릿속에 깊게 박혔던 것 같다. 이건 비단 알고리즘 문제를 풀 때만이 아니라 내가 앞으로 코드를 짤 때 항상 적용될 것이다.
그리고 이 테스트를 진행하고 자료구조의 필요성을 더더욱 느끼게 되었다. 고작 배열과 리스트를 약간 더 깊게 이해한 것 만으로 내 코드의 효율성이 이전과는 크게 달라졌다. 그렇다면 더 많은 자료구조들을 이해하게 되면 지금보다 얼마나 더 효율적으로 바뀌겠는가. 그 기대감에 자료구조를 제대로 배우고 싶다는 욕구가 정말 강해졌다.
어떤 것을 공부할 땐 왜 그것을 공부해야 하는지 제대로 이해하고 있으면 공부에 대한 흥미와 성취도가 차원이 달라진다고 생각한다. 그리고 개발자에게는 그런 흥미를 가지고 공부할 것들이 끝없이 있다고 느껴져서 앞으로가 더욱 기대가 된다.
항해 1주차 후기
환경의 중요성
내가 살면서 단기간에 가장 많은 성장을 이루었을 때는 Bad Comet 이라는 스타트업에서 9개월동안 일했을 때였다. 누나의 지인이 운영하는 스타트업이었는데, 작은 규모의 스타트업이다보니 나의 사수분은 CEO 였다. 운이 좋게도 그분이 나의 성장 욕구를 좋게 봐주셨고, 덕분에 나는 단기간에 정말 많은 1:1 피드백을 받으며 협업, 커뮤니케이션 능력, 리더십, 팀원으로서의 역할, 문제에 대한 접근방식과 해결법 등 '일을 잘하는 사람'이 되기 위한 여러 가지 능력들을 기를 수 있었다. 특히 직접 가르쳐주셨던 것 외에도 그분의 사고방식이나 여러 가지 다른 장점들을 옆에서 보고 흡수할 수 있었기에 짧은 기간안에 정말 많이 성장할 수 있었다.
그때 했었던 경험과 비슷한 경험을 지금 항해에서 하고 있는 것 같다. 전반적으로 진취적이고 뛰어난 사람들, 그리고 열정적인 사람들이 많다보니 다른 사람들로부터 정말 많은 것을 배울 수 있었다. 다른 사람의 장점을 잘 흡수하는 것이 내 장점이라고 생각하기에, 지금의 이 환경이 나에게는 더더욱 좋은 기회라고 생각이 든다. 이러한 환경 덕분에 고작 1주일만에 큰 성장을 이루어 냈기에, 남은 항해 과정이 더욱 기대되는 첫 주 였던 것 같다.
'WIL' 카테고리의 다른 글
221219~221225 WIL (0) | 2022.12.26 |
---|---|
221212~221218 WIL (0) | 2022.12.18 |
221205~221211 WIL (0) | 2022.12.11 |
221128~221204 WIL (0) | 2022.12.04 |
221121~221127 WIL (0) | 2022.11.27 |