백엔드 부트캠프 커리큘럼 자세히 보기
Search

백엔드 부트캠프 커리큘럼 자세히 보기

Section 1 : Week 1-4

Java 기초 문법을 배우고 객체지향 프로그래밍과 코딩을 이해할 수 있다.

[부트캠프 활용법] - 부트캠프에서 가져야 할 마음가짐과 학습 태도를 기억하고 이해합니다.
자기주도 학습 가이드
페어 프로그래밍 가이드
아고라 스테이츠 이용법(질문하는 방법)
[Development] 기초 - 웹 개발에 필요한 기반 지식을 학습하고, 개발 환경을 세팅합니다.
컴퓨터와 프로그래밍의 이해
웹 애플리케이션 기본 구조
개발 환경 세팅
[HTML / CSS] 기초 - HTML과 CSS의 기본적인 내용을 이해하고 기본적인 레이아웃을 구현할 수 있습니다.
HTML/CSS 기본 문법 및 사용
와이어 프레임과 목업 페이지 레이아웃 구성
[Linux] 기초 - 리눅스 기본 명령어를 이해하고 CLI에서 개발 환경을 세팅할 수 있습니다.
CLI 개발 환경 세팅
리눅스 기본 명령어
패키지와 패키지 매니저
사용 권한
환경 변수
[Git] 기초 - Git의 핵심 개념과 워크플로우를 이해하고 적용할 수 있습니다.
Git 기본 명령어
Git 환경 설정
Git 워크플로우
[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에서 배웠던 내용을 점검하고, 학습 성취도를 스스로 평가합니다.
프론트엔드도 궁금하다면?  프론트엔드 코스 커리큘럼 보러가기