Section 1 : Week 1-4
Java 기초 문법을 배우고 객체지향 프로그래밍과 코딩을 이해할 수 있다.
•
[부트캠프 활용법] - 부트캠프에서 가져야 할 마음가짐과 학습 태도를 기억하고 이해합니다.
◦
자기주도 학습 가이드
◦
페어 프로그래밍 가이드
◦
아고라 스테이츠 이용법(질문하는 방법)
•
[Development] 기초 - 웹 개발에 필요한 기초 지식과 프론트엔드의 기반 기술인 HTML과 CSS를 학습합니다.
◦
컴퓨터와 프로그래밍의 이해
◦
웹 애플리케이션의 기본 구조
◦
HTML/CSS 기초 문법
•
[Linux] 기초 - 리눅스 기본 명령어를 이해하고 CLI에서 개발 환경을 세팅할 수 있습니다.
◦
CLI 개발 환경 세팅
◦
리눅스 기본 명령어
◦
패키지와 패키지 매니저
◦
사용 권한
◦
환경 변수
•
[Git] 기초 - Git의 핵심 개념과 워크플로우를 이해하고 적용할 수 있습니다.
◦
Git 기본 명령어
◦
Git 환경 설정
◦
Git 워크플로우
•
[Java] 기초 - Java 의 특성과 기초 문법을 학습합니다.
◦
Java 개발 환경 세팅
◦
Java 언어 특성
◦
Java 기초 문법(변수, 상수, 타입, 문자열, 연산자, 입출력, 제어문, 배열)
◦
계산기 만들기 (+ 다수의 실습 과제)
•
[Java] OOP(Object-Oriented Programming) 기초 - 객체지향의 기초가 되는 클래스와 객체를 이해하고 활용할 수 있습니다.
◦
객체지향 프로그래밍
◦
클래스와 객체
◦
필드와 메서드
◦
생성자
◦
내부 클래스
•
[Java] OOP(Object-Oriented Programming) 심화 - 객체지향의 핵심 원리를 이해하고 적용할 수 있습니다.
◦
객체지향 프로그래밍 핵심 원리
◦
상속
◦
캡슐화
◦
다형성
◦
추상화
◦
버거퀸 주문 프로그램 만들기
•
[Java] 컬렉션(Collection Framework) - 컬렉션 프레임워크를 학습합니다.
◦
제네릭
◦
예외 처리
◦
컬렉션 프레임워크(List, Set, Map)
•
[Java] 심화(Effective) - Java의 심화 문법을 학습합니다.
◦
열거형
◦
애너테이션
◦
람다
◦
스트림
◦
파일 입출력
◦
스레드
◦
JVM
•
Section 1 회고
◦
Section1에서 에서 배웠던 내용을 점검하고, 학습 성취도를 스스로 평가합니다.
Section 2 : Week 5-8
컴퓨터가 어떤 방식으로 자료를 구성하고 정리하는지 이해할 수 있다.
•
[DS/AL] 재귀 - 재귀의 의미와 동작 방법을 이해하고 Java 언어로 코드를 구현할 수 있습니다.
◦
재귀의 의미와 동작 방법
◦
재귀 함수
◦
과제 - StringifyJSON
•
[DS/AL] 자료구조 - 다양한 자료구조의 개념을 이해하고 이해한 자료구조를 직접 Java 언어로 구현할 수 있습니다.
◦
자료구조의 개념
◦
Stack, Queue
◦
Graph, Tree, BST
◦
BFS / DFS
◦
(심화 학습) Deque, Linked List, Hash Table, Heap Tree
•
[DS/AL] 알고리즘 - 다양한 문제를 해결하는 데 필요한 알고리즘 설계 기법을 이해하고 Java 언어로 코드를 구현할 수 있습니다.
◦
수도 코드 작성법
◦
시간 복잡도
◦
greedy, implementation
◦
순열 / 조합
•
[네트워크] 기초 - 클라이언트, 서버 아키텍처를 기억하고 브라우저의 작동원리를 학습합니다.
◦
클라이언트-서버 아키텍처
◦
브라우저의 작동 원리
◦
크롬 네트워크탭 사용법
◦
HTTP
•
[네트워크] 실습 - REST API에 대해 학습하고, 설계 및 구현할 수 있습니다.
◦
REST API
◦
Postman
◦
과제 - Message States 요청
•
[데이터베이스] RDBMS - DB와 SQL에 대해 학습합니다.
◦
SQL 기초 문법
◦
DB 설계
•
[Spring Core] 스프링 프레임워크(Spring Framework) 기본 - Framework와 라이브러리의 차이점과 필요성에 대해 학습합니다.
◦
Framework와 라이브러리의 차이점
◦
Spring Framework 특징
◦
Spring Framework 모듈 구성
◦
Spring Boot 소개
•
[Spring Core] Spring Framework의 핵심 개념 - Spring의 핵심 중의 핵심인 DI의 개념을 IOC 개념과 함께 살펴보고 학습합니다.
◦
DI(Dependency Injection)
◦
AOP(Aspect Oriented Programming)
•
Section 2 회고
◦
Section 2에서 배웠던 내용을 점검하고, 학습 성취도를 스스로 평가합니다.
Section 3 : Week 9-12
객체지향 설계원칙을 바탕으로 웹 애플리케이션을 제작할 수 있다.
•
[Spring MVC] 웹 계층 - API 계층의 의미와 DTO 클래스를 사용하는 방법, DTO 클래스의 데이터 유효성 검증 방법을 학습합니다.
◦
Spring MVC 아키텍처
◦
DTO 클래스
◦
Controller
◦
Data Serialization/Deserialization
•
[Spring MVC] 비즈니스 계층 - 비즈니스 계층의 의미를 학습하고 비즈니스 계층에서 DI를 어떻게 활용할 수 있는지 학습합니다.
◦
비즈니스 계층에서의 DI
•
[Spring MVC] 예외 처리 - 비즈니스 로직에서 발생하는 예외 처리 및 비즈니스 계층에서 던져진 예외를 API 계층에서 어떻게 처리할 수 있는지 학습합니다.
◦
예외 처리 사례
◦
Spring MVC에서의 예외 처리
◦
비즈니스 로직에서의 예외 처리
•
[Spring MVC] JDBC 기반 데이터 액세스 계층 - 도메인 모델의 개념 학습 및 JDBC 기반의 엔티티의 모델의 작성법 등을 학습합니다.
◦
JDBC 기본
◦
도메인 모델 개념
◦
Spring 에서의 데이터 접근(공통)
◦
Spring Data JDBC 기반 엔티티 모델 작성법
•
[Spring MVC] JPA 기반 데이터 액세스 계층 - JPA의 특징과 동작 방식, ORM을 학습합니다.
◦
JPA(Java Persistence API) 개요
◦
JPA 엔티티(Entity) 매핑
◦
JPA의 특징과 동작 방식, ORM을 학습합니다.
•
[Spring MVC] 트랜잭션 - 트랜잭션의 의미를 이해하고, Spring Framework에서의 트랜잭션과 PSA의 관계를 학습합니다
◦
트랙잭션 개요(커밋, 롤백, 경계 설정)
◦
Spring Framework에서의 트랜잭션 처리
•
[Spring MVC] 테스팅 - 테스트가 필요한 이유와 Slice Test의 의미를 이해하고 API 계층과 데이터 액세스 계층을 Slice Testing하는 방법을 학습합니다.
◦
단위 테스트(Unit Test)
◦
JUnit을 사용한 단위 테스트
◦
슬라이스 테스트(Slice Test)
•
[Spring MVC] API 문서화 - Spring RestDocs의 개념 및 설정 방법을 학습합니다.
◦
API 문서화가 필요한 이유
◦
Spring RestDocs
◦
AsciiDoc
•
[Spring MVC] 애플리케이션 빌드 / 실행 / 배포 - Spring Boot 기반의 애플리케이션을 빌드하고 실행하는 방법을 학습합니다.
◦
애플리케이션 빌드
◦
애플리케이션 실행
◦
애플리케이션 배포
•
Section 3 회고
◦
Section 3에서 배웠던 내용을 점검하고, 학습 성취도를 스스로 평가합니다.
Section 4 : Week 13-16
•
[인증/보안] 기초 - 사용자 인증 과정 전반과 보안 기초 개념에 대해 학습합니다.
◦
HTTPS
◦
해싱(Hashing)
◦
쿠키(Cookie)
◦
세션(Session)
◦
웹 보안 공격
•
[Spring Security] 기본 - Spring Security의 동작 방식 및 기본적인 설정 방법에 대해 학습합니다.
◦
Spring Security 개요
◦
Spring Security 인증 구성요소 이해
◦
Spring Security 인가 구성요소 이해
◦
웹 요청에 대한 권한 부여
•
[Spring Security] JWT 인증 - JWT의 개념과 사용해야하는 이유, 사용하는 방법에 대해 학습합니다.
◦
JWT(JSON Web Token) 개요
◦
Spring Security에서의 JWT 인증
•
[Spring Security] OAuth2 인증 - OAuth2의 개념과 사용하는 방법에 대해 학습합니다.
◦
OAuth2 개요
◦
Spring Security에서의 OAuth2 인증
•
[Cloud] 운영 환경 구성 - 온프레미스와 클라우드 환경에 대해 학습하고 3-티어 아키텍쳐를 배포하는 과정을 실습 합니다.
◦
Amazon Web Service
◦
과제 - 백엔드 배포
◦
과제 - 클라이언트 배포
◦
과제 - 데이터베이스 연결
◦
과제 - 도메인 주소를 이용한 HTTPS 인증 (Advanced)
•
[Cloud] 배포 컨테이너 - 서비스 배포 과정을 이해하고 컨테이너를 사용한 배포를 실습 합니다.
◦
왜 Docker인가?
◦
Docker CLI
◦
과제 - Docker 이미지 다루기
•
[Cloud] 배포 자동화 - 배포 자동화의 로직을 학습하고 웹 애플리케이션 배포 자동화를 실습합니다.
◦
배포 자동화(Automated Deployment)
◦
과제 - AWS Pipeline을 통한 서버 배포 자동화
◦
과제 - 환경 변수 설정
◦
과제 - Github Actions를 통한 서버 배포 자동화
•
[Cloud] 운영 전략 - 실무 환경의 트래픽 분산, 로드밸런서 등 서비스 운영 전략에 대해 학습합니다.
◦
프록시 서버
◦
수평 확장
◦
웹 서버
◦
VPC
•
[Spring WebFlux] 리액티브 프로그래밍 개요 - 리액티브 프로그래밍의 개념과 Non-Blocking 통신에 대해 학습합니다.
◦
리액티브 시스템 및 리액티브 프로그래밍 개요
◦
Non-Blocking 통신 개요
•
[Spring WebFlux] Project Reactor 개요 - 리액티브 프로그래밍 구현체인 Project Reactor의 기본 동작 방식에 대해 학습합니다.
◦
Project Reactor 개요
◦
Reactor의 Publisher와 Subscriber
◦
Operators
•
[Spring WebFlux] Spring WebFlux 개요 - Spring MVC 기반의 애플리케이션에 Spring WebFlux 적용을 실습합니다.
◦
WebFlux 개요
◦
Spring WebFlux 기반 애플리케이션으로의 전환
•
웹 애플리케이션 설계 - 웹 애플리케이션 제작을 위한 설계 과정에 대한 학습을 진행한 후 주어진 주제에 따라 설계를 직접 실습합니다.
◦
Github Repository 분석
◦
웹 애플리케이션 기능 분석 및 정의
◦
웹 애플리케이션 설계 실습
•
Section 4 회고
◦
Section 4에서 배웠던 내용을 점검하고, 학습 성취도를 스스로 평가합니다.
Pre-Project : week 17 - 19
그동안 학습했던 내용들을 바탕으로 실제 팀 단위로 백엔드 개발자와 협업하여 웹 애플리케이션을 개발하는 방법을 체득합니다.
•
[서비스 기획 및 분석]
◦
웹 애플리케이션 구현을 위해 필요한 기술 요구사항을 정의하고 작성합니다.
•
[팀 단위 업무 수행 노하우]
◦
실제 개발 업무 진행 중 많이 사용되는 방법을 학습하고 프로젝트 진행 과정에 적용합니다. ex)애자일, 스크럼, git-workflow
•
[교육 엔지니어 코칭]
◦
프로젝트를 관리하고 실제 구현하는 과정을 교육 엔지니어의 전문적인 코칭을 통해 체험하고, 주기적으로 그룹 회고를 진행하여 프로젝트의 완성도를 높입니다.
•
[프로젝트 수행]
◦
서비스를 구현하는 것을 목표로 팀원과 함께 IT 제품의 개발 및 배포를 진행합니다.
Main-Project : week 20 - 23
포트폴리오로 활용될 수 있는 수준의 높은 완성도를 자랑하는 프로젝트를 기획, 분석, 설계, 구현, 검수(회고) 합니다.
•
[프로젝트 관리]
◦
팀 단위로 선택한 주제에서, 다양한 웹 기술을 분석하고 활용하며 도전적인 수준의 서비스를 출시할 수 있는 관리 방법들을 경험합니다.
•
[멘토 피드백]
◦
전문적인 멘토의 피드백을 통해 프로젝트 완성도를 높이고, 주기적으로 그룹 회고를 진행하며 프로젝트를 수행합니다.
•
[프로젝트 구현]
◦
기획/설계한 서비스를 구현하는 것을 목표로 팀 단위로 IT 제품의 개발 및 배포를 진행합니다.
•
[기술 발표]
◦
프로젝트를 진행하면서 얻은 소중한 지식과 경험을 공유하고 자신의 포트폴리오가 될 프로젝트를 설명하는 방법과 기술을 학습합니다.
커리어코칭 : week 24
커리어코칭을 통해 채용 시장을 이해하고 구직 전략을 세워 회사에 지원한다.
•
잡서칭 가이드
◦
구직활동을 위한 잡서칭 일정을 이해합니다.
◦
나의 강점과 에피소드 스토리를 찾는 시간을 갖습니다.
•
이력서/자소서 세션
◦
이력서/자소서 쓰기에 대해 배우고, 본인의 이력서를 작성합니다.
•
일반면접 & 기술면접 세션
◦
개발자 취업에 필요한 기술 / 일반(인성) 면접 예상질문을 이해하고 답변을 작성합니다.
•
모의면접 Role-Play
◦
모의 면접관과 함께 기술 / 일반(인성) 면접을 간접 경험을 합니다.
◦
팀별 활동을 통해 면접관, 면접자 역할을 이해하고 표현능력을 강화합니다.
•
연봉협상 & 구직전략 세션
◦
연봉 협상에 대해 배우고, 구직 전략을 세워 회사에 지원합니다.
◦
가고싶은 기업을 분석하는 방법을 학습합니다.
프론트엔드도 궁금하다면?
프론트엔드 코스 커리큘럼 보러가기