백엔드 개발자(node.js)가 되는 과정

[WIL] 22. 06. 05 ~ 06. 09

soopy 2023. 6. 12. 11:44
728x90

지난 주 일정에 대해서 간략하게 정리합니다.

팀프로젝트 진행

자바스크립트 문법에 익숙해지는 것을 목적으로 팀프로젝트가 진행되었습니다. 목표는 기존 개인프로젝트로 진행되었던 영화 소개 페이지를 기반으로 상세 페이지와 리뷰 기능을 추가하는 것이었습니다. 해당 과제를 수행하는 과정에서 배운 점은 아래와 같습니다.

  1. Github 협업 시스템 활용에 대한 이해
    Pull Request를 적극 활용할 수 있는 계기였고, 특히 collaborator와 contributor 간의 차이를 배울 수 있었습니다. 협업 관련하여 내용은 아래 링크에서 확인할 수 있습니다.

Github을 활용한 협업 관련 요약

  1. localStorage의 활용
    난이도가 높은 내용은 아니었지만 웹 브라우저 내 저장할 수 있는 공간이 있다는 사실에 대해서 처음 알게 되었고, 활용법 또한 간단하다는 것을 배울 수 있었습니다. 더 나아가 쿠키에 대한 지식도 함께 습득하는 과정에서 유저 로그인 정보를 토대로 토큰 발행 및 전달 수단으로 쓰인다는 것을 알게 되었습니다.

  2. 모달 활용을 통한 UI 구현
    정석적인 방법인지는 모르겠지만 새로운 페이지로의 전환을 원하지 않을 경우 하나의 html에서 섹션을 나누어 숨김, 보이기 기능을 활용하여 모달을 구성하는 방식을 배울 수 있었습니다. 특히 모달 구현이 CSS의 비중이 다소 높은 것으로 보여 CSS를 활용한 디자인 기능에 대해서 좀 더 폭넓게 배울 수 있었던 것 같습니다.

JWT 로그인 토큰 생성 관련

로그인 과정, 토큰 생성과 관련하여 node.js 기반으로 실습해보았습니다. Access Token과 Refresh Token을 JWT 패키지 기반으로 생성 및 관리할 수 있다는 점을 배울 수 있었습니다. JWT 토근에 대하여 해싱 기법으로 생성한다고 하는데 어떤 해싱 기법을 사용하는지 알 수 있다면 복호화가 그리 어렵지 않은 것 아닌가? 라는 생각이 들었습니다. 그래서 해싱 자체가 강력한 보완 강화 수단이 될 수 있는 것인지, 아니면 쿠키를 탈취 당하면 어쩔 수 없이 보안 사고를 방지할 수 없게 되는 것인지 의문이 들어 개인적으로 좀 더 공부가 필요하다고 생각했습니다.

Typescript에 대한 맛보기

타입스크립트가 함수 실행 전에 오류에 대한 디버깅을 할 수 있다는 점과 특히 모든 변수에 대해서 타입을 사전에 지정해줄 수 있다는 점이 javascript와의 차별점이라는 것을 확인할 수 있었습니다. 아직 타입스크립트 사용을 위한 npm 설치 및 셋업 과정, 그리고 기본 타입에 대해서 공부한 정도이지만 이전 프로젝트에서 디버깅 시 겪었던 문제를 생각하면 타입에 대한 사전 지정과 이를

함수형 프로그래밍

함수형 프로그래밍의 개요와 예시 정도 공부했다. 대규모 서비스가 되었을 때 기존에 익숙해져 있던 명령형 프로그래밍 방식보다 유지보수 측면에서 뛰어날 것 같다는 생각이 들었다. 특히 어디로 튈지 모르는 부수효과를 다량 지닌 명령형 함수보다는 수학에서 배우는 함수, 즉 함수의 입력값에 따른 출력값이 기대하는 값과의 차이가 없어 좀 더 쉽게 통제가 가능하지 않을까 라는 생각이 들었다. 또한 확장 가능성 측면에서도 좋아 보였다. 함수형 프로그래밍은 마치 게임기과 게임팩을 연상케 했는데 이는 모든 코드 구조가 액션, 계산, 데이터 이 세 단계를 주제로 함수형으로 정의하고 있어 마치 게임기에 게임팩을 교체하면서 게임을 즐기듯 함수의 합성을 통해 기능을 비교적 쉽게 교체할 수 있겠다는 그림이 그려졌기 때문이다. 하지만 전통적으로 명령형 방식을 오랜 기간 취해온 이유가 아무래도 컴퓨터의 성능을 고려한, 컴퓨터의 입장에서 명령을 해야 컴퓨팅 리소스에 대한 부분이 고려되어 높은 가성비의 작동 환경을 구성할 수 있기 떄문이 아니었나 라는 생각이 들면서 모두가 동의할 수는 없을 수 있겠다는 생각도 들었다. "함수형 코딩" 도서에서는 초반부에 "명령형으로 코드를 짤 수 있다면 함수형으로도 가능하다."라고 말하고 있어, 많은 사람들이 나처럼 의심이 드는구나 라는 생각이 들었다. 왜냐하면 range 1~100까지의 수를 모두 더해주는 코드를 명령형과 함수형으로 개발한 코드를 살펴봤는데, 명령형은 익숙했지만 함수형은 어떤 기능을 어떤 주제의 함수로 분류해서 구현을 할지에 대한 사전 계획 단계가 어렵게 느껴졌고, 특히 액션 함수를 최소화하여 최대한 계산 함수로 돌리기 위한 과정도 "머리가 좋아야 겠는데?" 라는 생각이 들었다. 물론 처음이라 익숙치 않은 부분에서 오는 간극일 수는 있겠거나 하면서 좀 더 관심을 갖고 "쏙쏙 들어오는 함수형 코딩"을 독파해 나가고자 한다.

728x90
728x90