스월
20
2020-08-29 22:36:50
7
571

백엔드관해서 질문이있습니다!


안녕하세요! 3학년1학기까지 학점관리만하면서 코드를 한번씩 맛만보다가 이렇게하다가 취업못할거같아서 분야를 하나 제대로잡으려고 알아보다가 백엔드쪽에 관심이가서 질문이있습니다 node.js와디장고중에서 고민중인데 결국 두개다 할거지만 하나를 먼저 정하려고하는데 node.js는 html/css와 js를 잘알면 더좋다고해서 현재 html/css 공부중이고 디장고는 제 복수전공이 빅데이터관련이라 파이썬으로 기초 웹크롤링정도만 할줄압니다. node.js와 디장고 공부를 할수있는 유용한 사이트라던가 추천하는책이있나요??그리고 공부순서를 어떻게해야할지모르겠습니다 ㅠㅠ 둘중하나 정하는건 결국 제가하는거지만 혹시나 더 추천하는쪽 있으면 알려주세요 ㅠㅠ

2
  • 답변 7

  • 이오니
    1k
    2020-08-29 23:20:21 작성 2020-08-29 23:20:33 수정됨

    일단 html, css 가지고 원하는 형태로 화면을 띄울 수 있을 때 백엔드가 의미가 있을 거에요.

    (물론 누군가가 대신 해주면 상관없습니다.)

  • 스월
    20
    2020-08-29 23:36:44

    아~감사합니다! 그럼 지금 하고있는대로 html/css가지고 원하는 형태의 레이아웃을 만들정도의 수준이된다면 바닐라JS -> Node.js로 하는게 좋겠죠?? 디장고의 경우에도 바닐라JS는 하는게 좋나요? 

  • hoonnote
    302
    2020-08-30 02:01:16 작성 2020-08-30 02:09:17 수정됨

    어느 분야를 살리고싶은지 먼저 정하는게 중요하지 않나 싶어요.


    일단 웹개발 백엔드라면 nodejs와 장고 둘다 사용해서 개발이 가능하지만 

    굳이 둘다 다 사용을 할 필요는 없거든요. 

    하나만 제대로 파서 서비스제작을 할수 있는 실력을 만들면 취업도 어렵진 않을테구요.


    그리고 웹서버라는것 자체가 사용자가 어떤 요청을 넣으면 그 요청을 처리하면서 데이터베이스에 필요한 정보를 요구, 입력, 업데이트, 삭제를 하고 가져온 데이터를 ui template에 맞춰서 보내주는건데 

    html css를 굳이 퍼블리셔급으로 공부할필요가 있나 싶기도 해요.


    그리고 현재 실력은 파이썬으로 기초 웹 크롤링이라 하면 정말 웹 상에 있는 모든 웹사이트들을 새로 생성되면 다 내용을 가져오는 크롤링을 말하는건지 그냥 url을 입력해주면 해당 페이지에 있는 html만 가져오는건지 모르겠는데 아마 후자라고 생각을 할게요. 


    그렇다면 웹 백엔드 개발자를 하고싶은데 왜 굳이 조금이라도 쓸줄 아는 python 실력을 더 키우지 않고 javascript로 똑같은 기능을 구현해보려하는지 모르겠어요. 거기다가 html css도 굳이 왜 다 배우려고 하는지도 모르겠구요. 


    만약 내가 만능 웹개발자가 되고싶다, 하면 html css (특히 css) 엄청 공부해서 ui적으로 원하는거 다 만들수 있게 하고, javascript 기본기 겁나공부한다음에 node express 프레임워크를 사용해서 서버개발한 다음 react 사용해서 ui component 제작해서 풀스택으로도 노려보셔두 되구요. 

    그게 아니라 백엔드에 집중하고 싶다 하면, 일단 javascript의 기본기를 겁나 공부한다음에 nodejs를 사용해서 서버제작을 해보고, node 프레임워크인 express 로도 사용해보고, mvc 모델이나 restful api, 데이터베이스 통신 보안 socket  네트워크관련한것들을 공부해서 백엔드 개발자로 취업을 하면 되겠구요


    그냥 서버만 만드는 개발자에서 끝내는게 아니라 pm일도 하면서 데이터분석까지 할수 있는 사람이 되고싶다 하면 파이썬의 기본기를 겁나 판다음에 쟝고나 플라스크 프레임워크로 웹서버를 만들어보고, 

    여기서도 똑같이 mvc모델이나 restful api등등 node에서 공부해야하는것들을 공부하시고 

    데이터베이스에서 데이터 모델링, 클리닝, 통계학, 확률, linear algebra, mutivariable calculus, panda, data structure algorithm 등등을 공부해서 원하는 스토리에 맞추어 데이터를 가져와서 프로세싱한뒤에 분석을 할수 있는 실력을 키워 프로젝트를 만들어 data statistics 직무로 취업해도 될거에요.




    공부 순서는 일단 결정한 프로그래밍 언어에 관한 미국 유투버들의 강의를 보면서 그대로 따라치세요.

    그러면서 미국 유투버들이 해당 언어로 만든 프로그램, 프로젝트들을 같이 따라치며 클론코딩 해보고

    그러면서 내가 모르는 부분들이 있다, 혹은 이해가 아예 안된다 하면 그부분을 더 파고 계속 파서 공부를 한 다음에,

    계속 똑같이 공부를 하면서 개인 프로젝트를 하나 만들어서 진행해보면 와 내가 할수있는게 하나도 없구나 느껴질거에요. 그때부터 이제 뭐가 필요한지 고민해 나가면서 필요한 지식에 관한 책 베스트셀러를 두세권씩 찾아 읽어가며 문제해결을 하는식으로 공부하시면 됩니다.


    -------------------------------------

    위에 답글 다신걸 보니까 프로그래밍 언어에 대한 정보도 뭔가 헷갈리시는것 같은데


    일단 웹개발 할때 javascript를 배우는게 좋다 하게 된 계기를 설명드리자면

    1. 인터넷의 ui적인 부분은 html과 css, 그리고 자바스크립트로만 개발이 가능합니다.

    2. javascript는 구글 크롬이나 mozilla, firefox같은 웹 엔진으로만 사용이 가능한 언어였구요.

    3. 그런데 javascript가 업데이트 되어가면서 점점 컴퓨터에서도 사용할수 있게 되었어요.

    4. 그렇게 웹 엔진에서 나와 컴퓨터에서도 자바스크립트로 프로그램할수 있게 해준게 node.js입니다.

    5. 근데 node js도 사실 자바스크립트를 기반으로 만든 언어기때문에 자바스크립트에 대한 이해도가 낮다면 제대로 사용할수가 없어요.

    6. 그래서 javascript를 제대로 사용하지 못한다면, node.js도 제대로 못쓰고, node를 더 쉽게 사용할수 있게 해준 express같은경우도 javascript 에 대해 이해를 못하면 절대 쓸수가 없죠.


    따라서 위에 계속 말씀 드렸던 javascript의 기본기를 계속 파고 들라 한 내용은.

    자바스크립트로 

    - ui component (html css로 만든 디자인들)의 위치를 마음대로 조정할수 있는정도

    - asynchronous의 개념

    - promise와 .then catch

    - async await

    - callback함수

    - 에러 핸들링

    - http module

    을 직접 작성하고 사용할수 있을정도는 되어야 

    nodejs로도 안정적으로 시스템 개발이 가능하고, 

    특히 async await, callback, error handling, http 에 관해 잘 알아야만 express도 잘 사용할수 있습니다.


    그런 이유에서 기본 자바스크립트를 뜻하는 바닐라 자바스크립트 공부하라는 말들이 많이 나온거구요.



    그렇다면 계속 질문자님께서 물어보시는 쟝고는 뭘까요

    쟝고는 어떤 코딩 천재가 파이썬으로 웹 서버를 만들수 있게 제작한 모듈이에요.

    그래서 쟝고를 사용해서 nodejs로 만든 서버와 똑같이 작동하는 서버를 (너무 깊은 서비스가 아니라면) 만들수 있죠.



     

  • DizY
    267
    2020-08-30 03:14:45 작성 2020-08-30 03:15:12 수정됨

    아직 학습하시는 과정이라면 굳이 백엔드를 하겠다, 프론트엔드를 하겠다 구분하실 필요는 없다고 봅니다.
    결국은 한 묶음을 개발해봐야지 돌아가는 구조를 파악할 수 있으니까요.

    말씀하신대로 클라이언트 사이드 구현은 그게 HTML을 기반으로 한 개발이 될수도 있고 앱과 같은 다른 구현체가 될 수도 있을 것 같고요. 

    하지만 지금 말씀하시는 내용들을 보면 일단 전반적으로 웹에 대한 이해도가 없는 것 같다고 생각합니다.
    노드를 한다고 해도 웹을 클라이언트로 사용하지 않는다면 굳이 HTML/CSS 에 대한 내용은 넘어갈 수 있을수도 있구요.
    장고를 한다고 해도 웹을 클라이언트로 사용한다면 HTML + Javascript는 필요하죠. 

    보편적으로 HTML의 폼을 이용해서도 충분히 기존의 동작은 구현할 수 있지만, 흔히 API로 호출하고 동작하는 걸 경험하려면 장고를 하든 노드를 하든 클라이언트 사이드에서 JS 동작을 어느정도는 구현할 수 있는게 도움이 되실껍니다.

    그런 의미에서는 굳이 더 학습해야 할 걸 추가하지 않아도 되니 노드가 더 간단할 수도 있겠네요. 

  • DizY
    267
    2020-08-30 03:18:31

    노드를 완벽히 하겠다, 파이썬을 완벽히 하겠다. 라는 목표보다는 한번 웹 개발을 해보고 재미도 붙여보고 어떻게 동작하는지 원리도 알아보는걸 추천드려요. 실제로 현업에선 어떤 언어와 프레임워크를 쓸지도 모르지만, 기본적 원리나 개념은 똑같기 때문에 그 생태계를 이해하는걸 권장합니다. 그렇지 않고 언어와 프레임워크에 매몰되시면 지금 선택하신 프레임워크가 커리어패스에 발목을 잡을수도 있습니다. ㅎㅎ

  • 노예 근성 자제 좀
    -13
    2020-08-30 10:35:27 작성 2020-08-30 10:37:38 수정됨
    기업 입장에서는 신입이 어느 종류의 언어와 프레임워크를 써봤나 같은거보다, 알고리즘, 데이터 구조, HTTP API 작동방식, 기본 OS/프로그램/메모리 작동 지식 이런게 중요하더라고요. 그래서 둘 다 해볼 수 있으면 좋겠지만 시간이 안될테니까 하나를 꽉 잡고 하는게 좋을꺼 같아요. 또 백엔드라면 HTML/CSS/JS를 알면 좋지만 깊게 알 필요없고요. Node.js쪽으로 하려면 깊게 알아야 할 수 밖에 없습니다.
  • 스월
    20
    2020-08-30 16:36:48

    다들 친절한 답변 감사합니다!! 우선 제가 너무 언어와 프레임워크에만 얽혀있었던거 같습니다ㅠㅠ

  • 로그인을 하시면 답변 을 등록할 수 있습니다.