뭘 어찌 공부할지 몰라서 찾아봤더니 우선 만들고 보라더라.
근데 뭘 만들지?? 어떻게 만들지?? 를 모르는데 만들라고 하면 그게 되나 ㅋㅋ
그렇다고 기존처럼 하나하나 개념공부 하고 예제소스 치는 건 아무 도움이 안되니까..
흔히 말하는 클론코딩을 많이 해 보기로 했다.
NodeJS를 비롯해서 자바스크립트 관련 기술을 익히고 싶어서 우선 따라한 것이 이 동영상이다..2시간 30분 짜리인데 거의 12시간 걸린듯..ㅡㅡㅋ (맥과 윈도우가 다름, 그 외에는 거의 에러처리...ㅠㅠ)
참조 :
Learning Expressjs
소스코드 :
https://github.com/buzz-software/expressjs-mvp-landing-page
동영상 :
Express.js & Node.js Course for Beginners - Full Tutorial
내용이 꽤나 많아서 다 정리하려면 시간이 너무 걸리니까..걍 몇 가지만 간단하게 정리함.
- 기본 설치:Visual Studio Code + Git + Prettier 설치함
- Visual Studio Code 는 최신버전으로 업데이트
- Git 는 꽤나 삽질을 많이 했음..프로젝트 디렉토리를 만든 후 PowerShell에서 원격리포지토리 설정을 해 주면 자동으로 연결.
참조 : Visual Studio Code에서 git 설정하기
- Prettier는 자동으로 소스코드를 정리해주는 플러그인. 아직 잘 활용은 못하지만 어찌되던 써 봤다.
참조 : Visual Studio Code에서 Prettier 설치하기
- NodeJS 설치 - 윈도우 기반이라 공식사이트에서 다운로드 후 설치
참조 : NodeJS 공식 사이트
- 에러 : HttprequestInvailated 관련 에러가 남 -> 최신버전 설치
- Express 설치 - NodeJS 관련 프레임워크, 왠만한 플러그인이나 프레임워크 다 들어있더라..설치는 npm 으로 했음.
참조 : ExpressJS 공식 사이트
- 설치 후 초기화를 하면 자동으로 폴더구조를 만들어 줌, 페이지 렌더링하는 엔진으로는 pug (구 : Jade) 가 들어있는 듯.
참조 : ExpressJS - generate 로 초기화하기
- Nodemon 설치 - 소스코드가 수정되면 재부팅 없이 자동으로 웹페이지와 nodeJS엔진을 갱신해주는 플러그인. 난 왠지 예제 동영상을 아무리 따라해도 안되서 그냥 일반적인 방법으로 했음.
참조 : (일본어) nodemon으로 자동실행시키기
- DB 연결&사용 : postgresql을 사용, 프레임워크로는 Sequelize 사용
- Sequelize 및 Sequelize-cli 을 설치 : 버전에 따라 약간 다른 듯..나는 v5를 사용했음.
참고 : Sequelize 설치방법
- pg (postgre용 플러그인) 를 설치, npm으로 업데이트 함.
- 사용법
- models 폴더에 모델을 정의하는 js 파일을 만듦.
- migration 을 정의함, 파일명은 날짜+시간.js 으로 하던데..
- 커멘드라인에서 다음을 입력 : > sequelize db:migrate
- Bootstrap 사용 : 여러가지 방법이 있지만 여기서는 CDN 링크를 활용
- Bootstrap 홈페이지에서 CDN 링크를 복사한 후, 공통으로 사용하는 pug 파일에 포맷을 변경해서 잘 붙이면 끝. (예제에서는 footer에 붙임)
- 가능하면 views에 있는 pug 파일을 용도별로 정리해서 사용하면 좋음. 공통으로 들어가는 부분은 별도의 파일로 나눈 후, 필요에 따라서 include 함.
- ajax 혹은 jquery 를 사용하는 경우, jquery 를 silm 이 아닌 min 버전으로 할 것. 또한, 자바스크립트 파일을 첨부하는 경우, 코드 하단에 붙일 것.
- pug 에서 디자인을 하는 경우, pug문법으로 작성해야만 함, 또한 들여쓰기랄까..탭이 엄청나게 중요함. 연습삼아서 다 쳐봤는데 탭을 틀리거나 한 글자라도 틀리면 화면이 아예 안 뜨거나 깨져버려서 디버깅 힘듦...ㅠㅠ
참조 : htmlTopug 변환기
- 인증을 위한 프레임워크 : PassportJS 사용
- 설치 커멘드
npm install passport passport-local bcrypt validator express-session connect-flash --save
- 설치 후, 프로젝트 폴더에 passport_setup.js 파일을 생성해서 기본설정을 해 줌.
참조 : http://www.passportjs.org/docs/
- middleware 형식으로 각 세션별로 페이지를 접근거부 할 수 있으며, 에러페이지를 별도로 보여줄 수 있다.
- 패스워드는 해시값을 이용하여 암호화 가능, bcrtpy 알고리즘으로 gensaltsync 를 사용해서 값을 생성함.
- 폼의 값을 체크하기 위한 프레임워크 : Validator 사용
- 설치 커멘드
npm install validator lodash --save
- 설치 후, 프로젝트 폴더에 validators 라는 폴더를 만든 후, 설정파일을 만듦.
- 어려웠던 부분은, rerender를 하는 부분임. 문제가 있으면 해당 폼 페이지를 재렌더링 한 후, pug 파일에서 에러가 있는 경우에 표시할 문자열을 별도로 설정해야 함.
느낀점이랄까..정리해 둘 내용은 다음과 같음.
- 철자 및 들여쓰기 엄청나게 중요함..한 글자라도 틀리면 안 돌아가는데 그게 어디가 문제고 틀렸는지 감이 잘 안잡힘..게다가 대소문자도 구분함. 자바스크립트 함수명을 잘못 기입하면 정말 헬...pug파일은 심지어 띄어쓰기 하나 잘못해도 페이지가 깨지거나 화면이 안 뜸..근데 뭐가 문제인지 알 수가 없음..뭔가 디버깅 방법이 없을까??
- 괄호도 엄청 중요..콜백함수에 화살표함수에 하나의 코드가 다수의 함수로 구성되거나 하므로, 괄호의 순서가 바뀌거나 종류가 바뀌면 에러가 남. 그나마 이건 에디터에서 빨간 줄 표시해주니 알기가 쉬울수도.
- 자바스크립트 및 프레임워크 특유의 문법이 매우 헷갈림..좋게 말하면 단순해지고 빨리 개발할 수 있는 반면, 익숙하지 않은 나에게는 같은 이름의 변수가 있으면 뭐가 뭔지 모르거나 헷갈릴 수 있다. 이건 뭐 익숙해지는 수 밖에 없을까..
- 공부해야 할 게 너무 많음..간단히 말하면 설치해서 사용하는 프레임워크가 너무 많아서 이걸 모르면 죽도 밥도 안 됨..설치 잘못하면 안돌아가고, 의존성 관리 잘못하면 에러나고, 복잡도가 엄청남. 이것도 뭐 익숙해지고 자주 사용하면 npm install 땅땅땅 해서 프레임워크 스택 만들어놓고 바로바로 사용이 가능한 듯...하지만 나에게는 미지의 세계에서 이건 뭐지?? 저건 뭐야?? 얜 또 뭐하는데 쓰는거?? 혼란만 가중..ㅠㅠ
- git이며 visual studio code 사용법이나 단축키 등등..경험이 없다보니 그럴 수 밖에 없다지만 쓸데없는 조작이 많음. 단축키를 익히려는 노력을 해야 할 듯.
- git은 좋은 듯. 무엇보다 뭐가 어떻게 바뀌었는지 확인이 가능한 점이 편리함. 비록 나 혼자 개발한다고 하더라도, 이전 소스가 돌아갔는데 왜 갑자기 안돌아가나?? 할 때 바뀐 부분을 한 화면에 비교가능한 점은 매우 좋았음. 단, git 명령어를 모르는 점 & 그걸 콘솔에서 입력하는 부분이 문제임. GUI 툴도 있다는데 우선 명령어를 써 보겠음.
댓글
댓글 쓰기