스프링부트 | Spring Boot 소개 Spring Boot & Maven Spring Boot & Gradle Writing the code(Spring Boot main) Writing the code(CommandLineRunner) Spring Boot에서 property 파일 읽기 |
---|---|
JPA & Spring Data JPA, Qquerydsl | 1장. 개발환경 1.1. 개발환경 구성 1.1.1. 개발도구 설치 1.1.2. 데이터베이스 설치 1.1.3. 개발도우미 플러그인 설치 1.2. 데이터베이스 처리기술의 발전 1.2.1. Spring Boot 1.2.2. Spring JDBC 1.2.3. MyBatis 1.2.4. Spring Data JPA 1.2.5. Logging 2장. JPA 2.1. EntityManager 2.2. JPA에서 사용 가능한 쿼리의 종류 2.2.1. JPQL 2.2.2. Criteria 2.2.3. Native SQL 2.2.4. Querydsl 2.2.5. 기타 데이터베이스 처리기술 2.3. Spring Data JPA 살펴보기 2.3.1. 새 프로젝트 생성 2.3.2. 프로젝트 환경 설정 2.3.3. 엔티티 클래스 생성 2.3.4. 테스트 용 더미 데이터 입력 2.3.5. 테스트 2.3.6. Persistence Layer 2.3.7. 테스트 2.3.8. Service Layer 2.3.9. Presentation Layer 2.3.10. Paging 2.3.11. 테스트 2.3.12. @Query, @NamedQuery 2.3.13. 정리 3장. Querydsl 입문 3.1. 장점 3.2. Querydsl의 종류 3.2.1. Querydsl 구분 3.2.2. 엔티티 클래스를 만들어서 사용 3.2.3. 엔티티 클래스를 만들지 않고 사용 3.3. JPAQuery, JPAQueryFactory 3.3.1. 프로젝트 생성 3.3.2. 프로젝트 환경설정 3.3.3. Q 타입클래스 생성 3.3.4. Persistence Layer 3.3.5. JUnit 테스트 클래스 작성 3.3.6. 테스트 3.3.7. EntityGraph 3.4. JPASQLQuery, SQLQueryFactory 3.4.1. 프로젝트 생성 3.4.2. 데이터베이스 및 테이블 생성 3.4.3. 프로젝트 환경설정 3.4.4. Q 타입클래스 생성 3.4.5. Persistence Layer 3.4.6. JUnit 테스트 클래스 작성 3.4.7. 테스트 4장. Querydsl을 이용한 JPQL 쿼리 4.1. 테스트 프로젝트 만들기 4.2. JPA Query 학습 4.2.1. Select 4.2.2. Insert, Update, Delete 4.2.3. Grouping, Having 4.2.4. Join 4.2.5. Subquery 4.2.6. Projection 4.2.7. JPA Query 실습 5장. Querydsl을 이용한 SQL 쿼리 5.1. 테스트 프로젝트 만들기 5.2. SQL Query 학습 5.2.1. Select 5.2.2. Insert, Update, Delete 5.2.3. Grouping, Having 5.2.4. Join 5.2.5. Subquery 5.2.6. Projection 6장. Querydsl SQL 쿼리 with Oracle 6.1. 테스트 프로젝트 만들기 6.1.1. 프로젝트 생성 6.1.2. 데이터베이스 및 테이블 생성 6.1.3. 프로젝트 환경설정 6.1.4. Q 타입 클래스 생성 6.1.5. SQLQueryFactory 빈 등록 6.2. Rownum 6.2.1. 상위 로우 구하기 6.2.2. 범위 로우 구하기 6.3. With 6.4. Sequence 6.5. Union 6.6. Nvl 6.6.1. Nvl 6.6.2. Nvl2 6.7. Decode 6.8. Rank 6.9. Hierarchical Queries, Hint 6.9.1. 프로젝트 생성 6.9.2. 계층형 쿼리 6.9.3. 힌트 6.10. Procedure 6.10.1. 프로젝트 생성 6.10.2. 오라클 프로시져 6.10.3. @NamedStoredProcedureQuery, @Procedure |
ECMAScript & TypeScript | 1. ECMAScript 2. 개발환경 설정 - Node - Atom 3. var 4. let 5. const 6. parameter 7. spread operator 8. Destructuring Assignment 9. Module System - CommonJS 방식 - ES6(ECMA2015) 방식 10. 함수 축약식 11. Arrow function 12. $ e-pression 13. class - 함수의 역할 - 함수로부터 클래스까지 - this - extends - super - getter/setter - 표현식 vs 선언식 14. 비동기 처리 - Call-back Function - Event Emitter - Promise 15. TypeScript - Type - Interface - Class |
Angular Basic | Step 1 – 앵귤러 소개 - Angular Architecture Step 2 – Demo Project Step 3 – Project Structure - 처리흐름 파악하기 Step 4 - CLI - 빌드하기 - npm http-server Step 5 – Component - 단방향 바인딩 - 양방향 바인딩 Step 6 – Service - 커스텀 서비스 Step 7 – Pipe - 빌트인 파이프 - 커스텀 파이프 Step 8 - Directive - 커스텀 디렉티브 Step 9 – Module - 루트모듈, 전역모듈, 공유모듈, 기능모듈 |
Angular Core | Step 1 – Life Cycle Step 2 – Component Communication @Input, @Output @ViewChild @ContentChild @ViewChildren @ContentChildren Step 3 – HTTP Communication - npm json-server - Promise - Observable & Subject Step 4 – Router Step 5 - Guard Step 6 – Form |
Vue.js | [1부] Vue.js 기초 1장: Vue.js 설치 1.1 독립 실행 버전 1.2 NPM 사용 1.3 Bower 사용 2장: 시작하기 2.1 안녕하시나이까 전하! 2.2 양방향 바인딩 2.3 jQuery와의 비교 2.4 연습 문제 3장: 디렉티브 3.1 v-show 3.2 v-if 3.3 v-else 3.4 v-if vs. v-show 3.5 연습 문제 4장: 리스트 렌더링 4.1 부트스트랩 설치와 사용 4.2 v-for 4.3 배열 렌더링 4.4 v-for를 이용한 객체 프로퍼티 순회 4.5 연습 문제 5장: 상호작용 5.1 이벤트 처리 5.2 이벤트 한정자 5.3 키 한정자 5.4 계산된 프로퍼티 5.5 연습 문제 6장: 필터 6.1 필터링된 결과 6.2 결과 정렬 6.3 사용자 정의 필터 6.4 유틸리티 라이브러리 6.5 연습 문제 7장: 컴포넌트 7.1 컴포넌트란? 7.2 컴포넌트 사용하기 7.3 템플릿 7.4 프로퍼티 7.5 재사용성 7.6 종합 예제 7.7 연습 문제 8장: 사용자 정의 이벤트 8.1 발생과 청취 8.2 부모-자식 간 통신 8.3 인자 전달 8.4 비부모 자식 간 통신 8.5 이벤트 리스너 제거 8.6 이야기로 돌아가서 8.7 연습 문제 9장: 클래스와 스타일 바인딩 9.1 클래스 바인딩 9.2 스타일 바인딩 9.3 바인딩 예제 9.4 연습 문제 [2부] API 사용하기 10장: API 사용하기 10.1 CRUD 10.2 API 11장: 실제 데이터 활용하기 11.1 비동기로 데이터 가져오기 11.2 리팩터링 11.3 데이터 갱신 11.4 데이터 제거 12장: HTTP 클라이언트 활용 12.1 개요 12.2 vue-resource 12.3 axios 12.4 axios 사용하기 12.5 기능 개선 12.6 자바스크립트 파일 12.7 소스코드 12.8 연습 문제 13장: 페이지 처리 13.1 구현 13.2 페이지 처리 링크 13.3 연습 문제 [3부] 대규모 애플리케이션 구축 14장: ECMAScript 14.1 소개 14.2 변수 선언 14.3 화살표 함수 14.4 모듈 14.5 클래스 14.6 기본 매개변수 값 14.7 템플릿 리터럴 15장: 고급 워크플로우 15.1 Babel을 이용한 ES6 컴파일 15.2 Gulp를 이용한 워크플로우 자동화 15.3 Webpack을 이용한 모듈 번들링 15.4 정리 16장: 단일 파일 컴포넌트 16.1 vue-cli 16.2 Webpack 템플릿 16.3. vue 파일 만들기 17장: 중복 상태 제거 17.1 프로퍼티를 이용한 공유 17.2 전역 저장소 18장: 컴포넌트 교체 18.1 동적 컴포넌트 19장: Vue 라우터 19.1 설치 19.2 사용법 19.3 이름을 가지는 라우트 19.4 히스토리 모드 19.5 중첩 라우트 19.6 자동 active 클래스 설정 19.7 라우트 객체 19.8 동적 세그먼트 19.9 라우트 별칭 19.10 라우트 푸시 19.11 트랜지션 19.12 내비게이션 가드 19.13 연습 문제 20장: 마무리하며 21장: 참고 자료 21.1 튜토리얼 21.2 동영상 21.3 책 21.4 오픈소스 프로젝트 21.5 Awesome Vue |
Spring Security | 1장. Application Security 스프링 시큐리티의 기반기술 1. Acegi Security 선언적인 시큐리티 설정 지원 2. Spring Security 스프링 시큐리티 작동방식 스프링 시큐리티의 장점 3. Spring Security Filter Chain Integration Filter Authentication Processing Filter Exception Translation Filter Filter Security Interceptor 4. Authentication Manager Supported Authentication Types Access Decision Manager Authentication vs Authorization 5. 핵심 클래스 6. 커스텀 DAO로직과 시큐리티의 연동 7. Spring Security Modules 8. Dependencies with Maven Optional dependencies 2장. Spring Security XML-config 1. 새 프로젝트 생성 2. Dependencies pom.xml 3. Presentation Layer ExampleController.java basics.jsp 4. Security Configuration src/main/webapp/WEB-INF/spring/spring-security.xml 필터들의 연결 순서와 역할 5. Spring Security and Spring MVC Integration web.xml 6. Test 7. Custom Login Page spring-security.xml Cross Site Request Forgery (CSRF) Protection basics.jsp login.jsp LoginController 8. Test 9. 인증정보를 다른 파일로 분리 spring-security.xml src/main/resources/conf/users-config.xml Test 10. Customize 403 Access Denied Page RoleVoter AuthenticatedVoter 스프링 시큐리티에 포함된 SpEL 메소드와 가상프로퍼티 Test : 에러 메시지가 그대로 노출 3장. Spring Security Java-config Technologies used Few Notes 1. 새 프로젝트 생성 2. Spring Security Dependencies 시큐리티 환결설정 기본 값 3. Spring MVC Web Application HelloController.java hello.jsp admin.jsp 403.jsp 4. Spring Security Configuration SecurityConfig.java AuthenticationManagerBuilder 인메모리 저장소 설정 메소드 URL에 시큐리티를 적용하기 위한 HttpSecurity 설정 메소드 access() 메소드에서 사용 가능한 SpEL 표현식 SpringSecurityInitializer.java 5. Spring MVC Configuration AppConfig.java SpringMvcInitializer.java 6. XML 설정 지우기 web.xml 7. Test 4장. Access Handler XML 설정 새 프로젝트 pom.xml application.properties DataController.java home.jsp LoginController.java login.jsp 403.jsp SpringSecurity6AccessHandlerApplication.java conf/security-config.xml MyAuthenticationSuccessHandler.java MyAccessDeniedHandler.java MyLogoutSuccessHandler.java Test 자바 설정 SpringSecurity6AccessHandlerApplication.java Test 5장. Security Authentication Using Database 1. Technologies used : 2. 새 프로젝트 생성 3. Project Dependencies pom.xml 4. Database Insatall MariaDB 데이터베이스 생성 및 테이블 만들기 5. Spring Security Configuration root-context.xml spring-security.xml web.xml 6. JSP Pages hello.jsp admin.jsp login.jsp 403.jsp 7. Spring MVC Controller MainController.java 8. Test 6장. Spring Security Remember-me Technologies and tools used : Some quick notes : Project workflows : 1. 새 프로젝트 생성 2. pom.xml 3. SQL 4. spring-security.xml web.xml 5. root-context.xml 6. admin.jsp 7. login.jsp 8. update.jsp 9. MainController.java 10. Test 오토 로그인 확인 테스트 7장. Spring Security Tag Library 1. 새 프로젝트 생성 2. pom.xml 3. spring-security.xml web.xml 4. users-config.xml 5. basics.jsp 6. BasicController.java 7. Test 8. 조금더 살펴보기 SecretController.java spring-security.xml basic.jsp Test 9. @Secured pom.xml servlet-context.xml 설정 시 주의사항 basic.jsp User.java UserService.java UserServiceImpl.java UserController.java Test 8장. Spring Security + Boot + JPA 1. 새 프로젝트 생성 2. pom.xml 3. application.properties 4. Spring Boot Java-config 5. SecurityTestController.java 6. View 7. Test Run log 정보 첫 페이지 테스트 spring-boot-starter-security 디펜던시 favicon 적용 8. Spring Security Config SecurityConfig.java home.jsp SecurityTestController.java 9. Test In Memory Authentication 10. Spring Data JPA Test 11. Spring Security + My Custom DAO Service Logic Test 9장. Session Management session-fixation-protection="migrateSession" 작동확인 |
GitHub | 1. 깃 소개 - 작동방식 - 체크섬 - Working Directory - Staging Area(Index) - Git Repository - 특수 목적 포인터 2. 설치 및 설정 - 깃 설치 - 도움말보기 - 사용환경 설정 3. 로컬 저장소 - 로컬 레포지터리 개요 및 생성 - $ git init, $ git clone [url], .gitignore 4. 원격 저장소(Github) - Github URL 패턴 5. 명령어 학습 - 브랜치 변경 명령이 거부될 때 - 파일 관리 - 임시저장 - 상태관리 - 브랜치관리 - 히스토리(커밋의 기록) 리뷰 - reset - checkout 파헤치기 - 변경사항 연동하기 - 커밋에 태그 붙이기 - cherry-pick - Squash(대화방식 리베이스 6. 브랜칭 전략 - 깃플로우 7. 시나리오 학습 - 좋은 git 커밋 메시지를 작성하기 위한 7가지 약속 - 커밋을 골라서 적용하기 - 한참 전 커밋의 내용 바꾸기 - 이정표(태그) 확인 - origin/master가 원격 저장소보다 뒤처져 있을때에 push 작업 - 팀 프로젝트 수행 시나리오 8. 실습 |
미니프로젝트 | [Spring Boot, JPA, Spring Security, Querydsl, Angular, Vue를 이용한 개발] - 프로젝트 개발을 위한 GitHub 소개 - 프로젝트 주제 설정 - 기본설계, 기능설계, 인터페이스 설계 - ERD 작성 - ERD를 기준으로 엔티티 설정 및 객체모델링 - 코딩 단계별 코딩 진행(Front/Admin 영역 구분) 엔티티 작성(모델) -> 테이블 Creation Repository 작성 Service 기능 구현(인터페이스, 구현체) Spring Security를 이용한 로그인 공통 인터페이스/클래스 작성 JSON 인퍼테이스 구현 컨트롤러 작성 화면 UI 작성(Angular, Vue.js 적용) - 테스트 및 배포 |