뉴렉처 2부: React와 Spring Boot를 이용한 자바 풀스택 프로그래밍

[과정소개]

이 과정은 이론을 배우는 과정이라기 보다 프로젝트 위주로 프로젝트를 진행하면서 프레임워크를 학습하고 실제로 집에서 서비스를 운영하기 위한 방법을 학습하는 것을 목표로 합니다.

이 과정은 1부를 통한 웹개발 과정 전반적인 이론을 이미 알고 있다는 전제하에 진행되는 과정입니다. 1부 과정을 학습하지 않은 분들은 이 과정에 지원할 수 없습니다.

    1. 프로젝트 기획과 팀구성하기
      1. 기획 및 주제발표와 프로젝트 팀구성하기
      2. Git/GitHub로 프로젝트 팀별 버전관리하기
        1. 분산형 버전관리와 기타 버전관리의 장/단점
        2. 로컬 저장소 생성
        3. Tracking 관리
        4. 로컬 버전 조회와 버전 롤백
        5. 병합 처리
        6. 브런치 관리
        7. 병합 처리 방식
        8. 버전 복구의 다양한 옵션
        9. 원격 저장소 관리
        10. 원격 브런치와 로컬 브런치의 관리방법
        11. 풀 리퀘스트를 이용한 리뷰
      3. 웹 문서 구현하기와 팀별 코드 리뷰하기
      4. 웹 문서 구현 발표
    2. 서비스 계층 구현하기
      1. 오라클 또는 MySQL 설치하기
      2. 데이터베이스 개념설계
      3. 데이터베이스 논리설계
      4. 데이터베이스 물리설계 및 구현
      5. Spring Framework와 Spring Boot 기본
      6. Spring JDBC를 이용한 데이터베이스 프로그래밍
      7. 매핑 프레임워크 Mybatis를 이용한 데이터베이스 프로그래밍
      8. ORM 프레임워크 Hibernate&JPA를 이용한 데이터베이스 프로그래밍
      9. Spring이 제공하는 트랜잭션처리 방법
      10. 서비스 계층 모듈 구현하기
    3. 테스트
      1. Log4J를 이용한 로깅
      2. Junit을 이용한 단위 테스트 및 통합 테스트
    4. 백엔드 화면 계층 구현하기
      1. Spring MVC와 JSP를 이용한 백엔드 프로그래밍
      2. Spring Boot와 Thymeleaf를 이용한 백엔드 프로그래밍
      3. Spring Security를 이용한 인증과 권한
      4. OAuth 2를 이용한 인증과 권한
      5. RESTFul API 작성방법
      6. Restful API URL 주소 패턴 이해하기
      7. Spring 웹 소켓을 이용한 Push 서비스
    5. 프론트엔드 화면 계층 구현하기
      1. MVC와 MVVM 그리고 Flux의 차이점 이해하기
        1. MVC 개념 이해하기
        2. Angular를 이용한 MVC와 MVVM 방법으로 UI 작성해보기
        3. 템블릿 View 엔진
        4. 1Way 와 2Way 바인딩
      2. ReactJS 프레임워크를 이용한 Flux 프로그래밍
        1. DOM 과 가상 DOM의 차이와 필요성 이해하기
        2. Babel로 가상 DOM 조작하기
        3. JSX에 자바스크립트 코드 연동하기
        4. State와 1Way 바인딩 이해하기
        5. 2Way 바인딩을 지원하지 않는 Flux에서 2Way를 처리하는 방법
        6. View 템플릿의 반복과 입력처리
        7. 콤포넌트 이해하기
        8. 콤포넌트 분리와 결합과 중첩
        9. ES6 기능으로 콤포넌트 import 하기
        10. 웹팩의 필요성
      3. WebPack과 NodeJS
        1. 웹팩으로 웹모듈들 패키징하기
        2. 패키징 결과물 커스터마이징하기
        3. 결과물 배포하기
      4. Spring Boot에 NodeJS와 WebPack 연동하기
        1. 스프링 부트에 노드모듈을 위한 플로그인 설정
        2. 스프링 부트 환경에서 노드 프로젝트 함께 개발하기
      5. Reat 프레임워크를 이용한 SPA 프로그래밍
        1. 컴포넌트 결합과 라우팅
        2. Fetch API를 이용한 Restful API 이용하기
        3. API를 이용해서 React에서 데이터 처리하기
      6. Redux를 이용한 인증과 권한
        1. ES6의 모듈화를 이용해 전역상태 저장하기
        2. Redux를 이용한 전역상태 저장하기
        3. Redux를 이용한 인증과 권한을 위한 커스텀 Router 콤포넌트 작성하기
      7. 스프링 앱에 React 앱 패키징하기
        1.  
    6. 리눅스 서버에 자신이 만든 서비스 배포하기
      1. 사전지식: 뉴렉처 유툽 채널의 리눅스를 미리 학습했다는 전제로 진행 함.
      2. 네트워크의 이해(포트,스위치허브,라우터, DNS 등)
      3. 공유기 설정과 홈 서버 구축하기
      4. 도메인 이름 구매하기
      5. 리눅스에 웹서버와 DB 설치와 배포 운영하기
      6. Docker를 이용한 플랫폼의 다양화
      7. Jenkins를 이용해 배포 자동화하기
      8. Nginx를 이용해 로드벨런싱과 서버 중단없이 배포하기