: Javascript로 작성된 프로그램을 운영체제상에서 일반 애플리케이션 프로그램처럼 실행시켜주는 런타임(환경)
: JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램
: 서버사이트 스크립트 언어가 아닌 환경
: 웹서버처럼 확장성 있는 네트워크 프로그램을 제작하기위해 만들어짐.
: 내장 HTTP서버 라이브러리를 포함하고 있어 별도의 소프트웨어 없이 동작이 가능.
: 독립적이기 때문에 웹 서버의 동작에 있어 통제받지 않음.
==> 스크립트 언어는 특정 프로그램안에서 동작하는 언어이기 때문에 웹브라우저가 없으면 사용할수 없다. Node.js를 설치하게 되면 JavaScript를 웹브라우저에서 독립시키고 cmd창과 같은 터미널에서 브라우저 없이 실행이 가능하게 됨
: nodejs.org에서 다운로드18.12.2LTS(Long Term Support)버전
설치후 CMD에서 버전 확인
: node -v
node.js를 전체 프로젝트에서 사용하도록 설정 후 버전 확인
설정 : npm install express-generator -g
버전 확인 : express --version
npm
: Node.js의 패키지를 관리할 수 있는 도구
Root 생성 (git-github-programming)
생성 : mkdir git-github-programming
이동 : CD git-github-programming
프로젝트 형태 만들어주기
=> express 프로젝트이름 --no-view
: 자동으로 프로젝트 형태의 구조를 만들어줌
필요한 라이브러리 패키지 import & start
설치 : npm install
구동 : npm start
구동 확인
: 브라우저 창에 "localhost:3000"입력
Root에서 gitbash 열기
원격 저장소와 연결할 지역 저장소로 초기화 & 사용자 정보등록 & 확인
원격저장소 생성
지역저장소를 원격 저장소에 저장 후 확인
변경사항 staging 하기
git add .
==> 변경된 모든 사항을 stage에 올리기
commit
push
파일 수정 → 지역저장소 상태 확인 → 수정사항 commit → 원격저장소에 push
개인 브랜치에서 작업 후 변경사항 저장
수정사항을 병합시킬 브랜치로 이동후 변경사항이 저장된 브랜치를 병합
git merge 변경사항이 저장된 브랜치이름
==> 병합이 되었지만 최종 커밋 메세지는 병합된 두개의 브랜치가 다름.
: resources 아래 application.properties에 DB정보와 JPA사용 정보를 입력
: build.gradle에 추가 설정 입력
: main → java 밑에 domain 패키지 생성후 Entity 클래스 생성.
: DB의 모든 테이블에 데이터의 추가시간, 수정시간이 컬럼으로 작성되는 기능과 같이 모든 테이블에서 공통적으로 사용되는 기능을 정의하는 클래스
: @Aspect와 같은 개념.
: domain 패키지에 BaseEntity 클래스 생성.
: Entity 클래스에 변화가 생기는것을 감지하는 listener를 등록해줌.
: Entitylistener 활성화
: main → java 밑에 config 패키지 생성후 RootConfig클래스 생성.
: DTO와 Entitiy간의 변환 처리를 위한 ModelMapper를 빈으로 등록.
: main → java 밑에 repository 패키지 생성후 BoardRepository 인터페이스 생성.
: JpaRepository 인터페이스 상속 (MyBatis의 Mapper와 같은 역할)
: DTO와 Entitiy간의 변환 처리를 간단하게 하기 위해 ModelMapper 사용.
: main → java 밑에 service 패키지 생성 후 BoardService 인터페이스와 그를 구현하는 BoardServiceImpl클래스 생성