ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 항해 99 5기 TIL_47
    항해 99 2022. 2. 26. 00:58

    ▶ Today I Learned

     

    <실전 프로젝트>

     

    [와이어 프레이밍]

     

    모든 웹사이트를 만들기 전에는 전체적인 구도나 그림을 간단히 그려본다.

    지난 번과 동일하게 Figma를 이용해서 해보기로 결정하였다.

     

    프로젝트 와이어 프레이밍 중 일부 페이지

     

    기능을 먼저 짜고 프레임을 짜볼 수도 있겠지만 생각하는 홈페이지의 그림이 눈 앞에 그려지지 않아서 인지 쉽지 않았다.

    게다가 팀원들 모두 같은 말을 하여도 그 말이 나타내는 바는 각자 다를 수 있다.

    그래서 위와 같이 시각화하면서 통일하는 작업이 필요했다.

     

    정말 다행인 것은 피그마가 노션이나 구글 Docs처럼 동시 접속해서 실시간으로 같이 작업할 수 있다는 것이다.

    덕분에 한결 수월하게 작업을 할 수 있었다.

     

    다 그리고 난 후 우리가 제공하는 서비스의 방향성을 잡고 세부 기능들을 하나씩 적어보았다.

    이를 바탕으로 필요한 기능이 Web RTC, Socket.io라는 것을 알게 되었고

    노마드 코더님의 강의에 마침 해당하는 것이 있길래 그것을 빠른 시일내에 들어보기로 했다.

     

     

    <CS>

     

    [Node.js를 사용해야 하는 이유]

     

    1) 러닝 커브가 낮다.

     

    자바스크립트라는 언어를 알고 있다면 처음 접근하기가 쉽다. 물론 백엔드에 관한 지식이 필요하지만

    해당 프로그래밍 언어를 알고 있다면 배움의 속도는 자연스레 빨라질 것이다. 게다가 자바스크립트라는 언어 자체가

    Java 보다 코드를 더욱 간단히 구현할 수 있는 고급언어이다.

    프론트엔드를 다뤄본 적이 있다면 더욱 쉬울 것이다. 프론트엔드에서는 자바스크립트가 사실상 필수 언어이기 때문이다.

     

    2) 커뮤니티가 크다.

     

    Node.js의 설립 단체가 해당 기술의 끊임없는 발전을 추구하고 있으며 오픈 소스 생태계에 이미 수많은 재활용 가능한 리소스들이 있다.

    게다가 npm (node package manager)를 이용하면 무려 65만개의 무료 코드 패키지를 이용할 수 있다.

     

    3) Robustness (기술의 기본기가 '탄탄함' 정도로 해석하면 좋을 듯 하다.)

     

    만들고자 하는 애플리케이션의 속도와 퍼포먼스가 좋은 풀스택 개발을 할 수 있다.

    서버사이드와 클라이언트 사이드의 언어가 같으니 의사 소통이 원활해 개발 프로세스가
    다른 백엔드 언어를 쓰는 것에 비해 빠를 수 밖에 없다.

     

    4) 비동기 처리 방식이다.

     

    싱글 스레드 기반의 비동기 I/O 처리를 하기 때문에 속도가 빠른 고성능 서버를 구현해줄 수 있다.

    특히 한 가지의 무거운 작업을 하기 보다 많은 Connection을 동시에 처리하는 데 적합하다.

    예를 들면 어떤 앱을 실행 시켰는데 메인 화면의 이미지 하나가 모두 불러와지지 않았다고 해서 메인 화면의 다른 요소까지 불러오지 않는다면 사용에 불편함을 느낄 수 있다.

     

     

     

    출처: https://relevant.software/blog/why-and-when-to-use-node-js

    https://relevant.software/blog/7-benefits-of-node-js-for-startups

    https://hyoveemo.tistory.com/33

     

     

    ▶ 느낀 점

     

    기존에는 1주일 단위로만 작업을 했기 때문에 범위가 좁았지만 이번에는 무려 6주간의 프로젝트이다.

    실제로 구현은 3주~4주만에 해내야하지만 그래도 우리에겐 꽤나 큰 도전이라고 할 수 있다.

    기존의 CRUD는 기본이며 새로운 기능까지 사용해보아야 하기 때문에 아직 구체적으로 감을 잡을 수는 없지만

    빠른 시일 내에 필요한 지식을 습득하고 기능을 구현해보도록 해야겠다.

    무엇이든 결국 해보아야 아는 법이기 때문이다.

    큰 틀만 바뀌지 않는다면 중간 중간 약간의 기능 수정도 가능할 듯 하다.

     

    + 처음으로 디자이너 님들과의 협업이 있었다. 소통에는 약간 어려움이 있었는데 이는 서로 간의 입장차이 때문이었다고 생각한다.

    현재 우리는 실제 사업을 하는 것이 아니기에 짧은 기간 안에 원하는 기능, 고급 기능을 사용해보는 것이 더 중요하고

    디자이너 님들은 실제 사업에 쓰일 법한 신박한 아이디어 기획, 디자인 요소, 유저 사용성이 더 중요하기 때문이다.

    양측 모두 이해가 가는 부분이기에 서로에 도움이 되고 현실적으로 기간 내 구현 가능한 방안을 탐색하고 있다.

    만약 실제 현업이었다면 개발자 역시 기획 부분에도 지금보다는 더 신경써야 할 것이기에

    이런 소통과 협업을 미리 연습해두는 것은 분명 큰 도움이 될 것이다.

    열심히 의견을 나눠보고 조율해보아야 겠다.

     

    ▶ 공부 시 참고 링크들

     

    이 영상을 빠르게 들어보면 좋겠다.

     

    https://nomadcoders.co/noom

     

    줌 클론코딩 – 노마드 코더 Nomad Coders

    WebSockets, SocketIO, WebRTC

    nomadcoders.co

     

     

    '항해 99' 카테고리의 다른 글

    항해 99 5기 TIL_49  (0) 2022.02.27
    항해 99 5기 TIL_48  (0) 2022.02.27
    항해 99 5기 TIL_46  (0) 2022.02.25
    항해 99 5기 TIL_45  (0) 2022.02.24
    항해 99 5기 TIL_44  (0) 2022.02.23
Designed by Tistory.