남들 다 하는 프론트엔드만 깔짝하면 안되고
진정한 남자는 서버개발을 할 줄 알아야합니다.
▲ 웹서비스를 하나 만들고 싶으면 일단 웹페이지가 필요합니다.
이건 html css javascript 쓰면 쉽게 만들 수 있는데
근데 이거 프론트엔드 껍데기만으로는 아무것도 할 수 없습니다.
실제 동작하는 나만의 서비스를 만들고 싶으면 서버기능이 필요합니다.
서버 기능이 있어야
DB저장기능
이미지업로드기능
회원기능
채팅기능
검색기능
이런 것들을 구현할 수 있으니까요.
근데 생각보다 서버개발을 어렵고 복잡한걸로 알고계신 분들이 많은데
그건 가르치는 사람이 이상하게 어렵게 가르쳐서 그렇지 실은 별로 어렵지는 않습니다
서버개발자가 짜는 코드
어디서 이상한 튜토리얼 따라하다가
서버만드는게 매우 어렵구나라고 생각하고 포기하는 분들을 많이 봐왔는데
실은 프론트엔드보다 쉽습니다.
서버개발 어떻게 하는 거냐면
모든 웹서비스는 요청하면 응답해주는 식으로 이루어져있습니다.
예를 들어서 웹툰을 보고싶으면 어떻게해요?
가만히 있는데 네이버가 갑자기 웹툰을 보내주진 않습니다.
여러분이 네이버 웹툰 들어가서 이거저거 눌러서 네이버웹툰 서버에 웹툰 좀 달라고 요청하죠?
그럼 서버가 웹툰을 보내줍니다.
유튜브 영상을 보고싶으면 어떻게해요?
유튜브 들어가서 이거저거 눌러서 영상 달라고 유튜브 서버에다가 요청합니다.
그럼 유튜브 서버는 영상을 보내줍니다.
그게 기본적인 웹서비스의 동작방식입니다.
유저가 뭔가 데이터를 달라고 하면 서버는 데이터를 보내는 식으로 동작합니다.
그리고 그런 식으로 누가 데이터요청하면 데이터 보내주는 간단한 프로그램을 우리가 서버라고 부릅니다.
그래서 여러분 네이버 웹툰 서버를 만들고 싶으면
"누가 A 웹툰 달라고 하면 A 웹툰 보내주기"
이렇게 코드짜면 끝입니다.
그래서 여러분 유튜브 서버를 만들고 싶으면
"누가 B 영상 달라고 하면 B 영상 보내주기"
이렇게 코드짜면 끝입니다.
그래서 서버개발자가 짜는 코드는
"누가 A 요청하면 A 응답해주셈"
기본적으로 이게 99% 입니다.
근데 이거 코드를 짤 때 비슷한 코드들이 많아서 이상한 객체지향 문법도 쓰고
아니면 가끔 코드를 새로 만들기 귀찮아서 코드중복을 줄일 수 있는 문법도 쓰고
코드가 길어지면 파일도 분리하고
예외적인 사항을 처리하는 if문도 길게 짜고 그럴 뿐입니다.
문법적 기교 빼면 핵심은 "누가 A 요청하면 A 응답해주기" 이거밖에 없습니다.
그래서 서버개발 별거 아니니까 같이 만들어봅시다.
빡대가리라도 크게 상관없음
만들 프로젝트
강의에선 nodejs express mongodb를 이용해서 서버개발을 좀 해보도록 합시다.
간단한 게시판을 만들어보면서 서버개발을 배워볼건데
게시판말고도 더 간지나고 멋있는 프로젝트많은데 왜 게시판 만드냐면
1. 이 강의 목적은 여러분들 이해시켜서 혼자 코드짤 수 있는 사람만드는거라 최대한 쉽고 간단한 프로젝트를 해야하고
2. 어짜피 다른 웹서비스를 만들고 싶어도 웹서비스의 99%는 게시판이랑 기능이 똑같습니다.
▲ 인스타그램 만들고 싶어요?
인스타그램도 사진 올리는 게시판일 뿐입니다.
▲ 쇼핑몰 만들고 싶어요?
옷 올리는 게시판일 뿐입니다.
주문기능도 게시판 글발행이랑 똑같은데 주문이라고 껍데기만 씌워놨을 뿐입니다.
필요한 사전지식
- html css 기초
- 자바스크립트 기초 (var if function for array object)
이런 것들이 필요합니다.
"내가 var if function for array object 문법을 책보고 한번 슥 따라쳐봤다"가 아니라
"내가 코드짜다가 필요할 때 var if function for array object 문법을 꺼내서 직접 사용할 줄 안다"가 권장사항인데
솔직히 그 정도까진 기대안하니까 강의하면서 다시 설명하긴 합니다.
프로그래밍이 아예 처음이면 html 기초, 자바스크립트 기초강의부터 추천드립니다.