<aside>
<img src="/icons/sign-in_gray.svg" alt="/icons/sign-in_gray.svg" width="40px" /> 다시 한 번, 합류를 축하드립니다🎉
</aside>
- 채용 1순위 개발자로 가는 3개월의 여정에 합류하신 여러분 반갑습니다 !
- 사전 OT에서 안내드린 내용을 꼭 숙지하고 계셔야, 몰라서 발생하는 불이익을 방지할 수 있습니다.
- 특히 더블입실은 완료하고 오셨죠?
- 혹시 놓치신 분들은 슬랙 공지방 [ 출석&개강발제 안내 ] 확인 필수 !
- 매일 최소 6시간을 채워야 정상 출석이 가능합니다.
- ex.
10:10 입실 → 16:10 이후 퇴실
<aside>
<img src="/icons/groups_gray.svg" alt="/icons/groups_gray.svg" width="40px" /> 개강 발제에 앞서, 끝까지 함께 갈 Spring 심화 트랙의 운영진 분들을 소개합니다.

</aside>
- 튜터님 소개
:
- 담임매니저 소개
: 원성준 매니저님 → 임현정 매니저님
튜터 정보
- 질문이 있다면?
- 기술관련 → 튜터님 (ZEP / 슬랙 질문방)
- 행정관련 → 내배캠 행정봇 & 내배캠 119 (ex.공가처리, 장비대여, 등)
- 운영관련 → 담임매니저님
<aside>
<img src="/icons/volume-high_gray.svg" alt="/icons/volume-high_gray.svg" width="40px" /> 이제 본격적인 학습이 시작됩니다.
</aside>
- 오늘은 학습챕터인 Chapter 1의 첫 날 !
https://docs.google.com/spreadsheets/d/1gs8cCU98fZ2rEBJ5dO7S6QsQOhT9fR6Wn5ZqQTBx64I/edit?usp=sharing
- 본인 페이스에 맞춰 수강하시되, 전반적으로 시간표의 진도를 따라갈 수 있도록 해주세요.
<aside>
<img src="/icons/save_gray.svg" alt="/icons/save_gray.svg" width="40px" /> 지급 강의 안내
</aside>
<aside>
<img src="/icons/checkmark_gray.svg" alt="/icons/checkmark_gray.svg" width="40px" />
Chater 1. 학습 가이드
</aside>
학습 목적
-
Java, Spring
- Spring의 실제 웹 애플리케이션 개발에 필수적인 Java언어와 프레임워크 기초 지식은 필수입니다. MVC 프레임워크를 사용하여 웹 애플리케이션을 구조화하고, JDBC를 통해 데이터베이스와 연동하여 데이터 처리 및 관리 할 수 있습니다.
- CRUD 프로젝트 구현
- IoC와 DI 기초 이해
- 영속성 컨텍스트와 JPA 이해
-
MSA
- 복잡한 시스템을 보다 효율적으로 관리하고 확장하기 위해서는 MSA 가 필수적입니다. MSA를 이해한다면 대규모 시스템을 더 유연하게 설계할 수 있습니다.
- Spring Cloud는 MSA 구현하는데 필요한 다양한 도구와 라이브러리를 제공하는 프레임워크입니다.
-
인메모리 저장소 및 캐싱 전략
- 일반적인 관계형 데이터베이스는 데이터를 읽고 쓰는 시간이 느립니다. 그래서 웹 서비스에 필요한 기능들을 만들 때 비효율적인 상황이 존재합니다. 이럴 때 활용하는 게 인메모리 저장소 입니다.
-
프로젝트 관리 심화
- 실제 서비스를 구축하고 관리하는 것은 신경 쓸 것이 많습니다. 도커와 도커 컴포즈를 활용하여 프로젝트를 관리한다면 이러한 관리 포인트를 줄일 수 있습니다.
- 프로젝트를 효과적으로 관리하고 배포 하려면 어떻게 해야 할까요? 이를위해 현업에서는 여러 CI/CD 툴을 사용하고 있답니다.
학습 목표
- Java, Spring
- [ ] Spring MVC 프레임워크를 사용하여 웹 애플리케이션을 설계할 수 있다.
- [ ] JDBC를 통해 데이터베이스와 연동하여 데이터를 처리할 수 있다.
- [ ] Create, Read, Update, Delete 기능을 통해 데이터베이스 조작을 할 수 있다.
- [ ] IoC와 DI 개념을 이해하고 활용해 객체의 생명주기를 관리하고, 의존성 주입을 통해 코드의 유연성과 재사용성을 높일 수 있다.
- [ ] JPA를 사용하여 데이터베이스와 객체 간의 매핑을 효율적으로 처리할 수 있다.
- [ ] 영속성 컨텍스트를 통해 객체의 상태를 관리할 수 있다.
- [ ] 데이터 변동 기록을 자동으로 관리할 수 있다.
- MSA
- [ ] Eureka를 통해 각 마이크로 서비스의 위치를 동적으로 찾아 서비스간의 통신을 할 수있다.
- [ ] Ribbon(FeignClient)를 통해 클라이언트 사이드 로드 밸런서를 제공하여 서비스간의 트래픽을 효율적으로 분산할 수 있다.
- [ ] Reslilence4j를 통해 서킷 브레이커 패턴을 구현하여, 서비스 장애시 문제를 격리하고 시스템의 안정성을 높일 수 있는 장애처리를 할 수 있다.
- [ ] Spring Cloud Gateway를 통해 클라이언트의 요청을 적절한 마이크로 서비스로 라우팅하고, 로그인 처리등의 기능을 필터를 통해 구현하여 보안을 구성 할 수 있다.
- [ ] Spring Cloud Config를 통해 중앙에서 설정 파일을 관리하고, 각 마이크로 서비스가 설정을 동적으로 로드하게 할 수 있다.
- [ ] Zipkin을 통해 분산 추적 데이터를 확인하여 실제 서비스 간의 호출을 추적하고, 문제 발생 시 원인을 보다 쉽게 분석 할 수 있다.
- 인메모리 저장소 및 캐싱 전략
- [ ] 간단하게 Redis를 구성하여 사용해볼 수 있다.
- [ ] Spring Boot에서 원하는 형태로 Redis와 데이터를 주고받을 수 있다.
- [ ] Session Clustering이 무엇인지 설명할 수 있으며, Redis를 활용해 Session Clustering을 구현할 수 있다.
- [ ] Redis의 Sorted Set을 활용해 리더보드 기능을 만들 수 있다.
- [ ] 캐싱의 개념을 설명하고, 캐싱 젼략 중 Cache-Aside, Write-Through, Write-Behind를 설명할 수 있다.
- 프로젝트 관리 심화
- [ ] 도커를 사용하여 DockerHub의 이미지를 사용하여 컨테이너를 만들 수 있다.
- [ ] Spring Boot 프로젝트에서 Redis를 활용해 메서드의 결과를 캐싱할 수 있다.
- [ ] 도커 컴포즈를 사용하여 여러 컨테이너를 동시에 관리 할 수 잇다.
- [ ] gitLab을 사용하여 프로젝트를 관리하고 AWS ECR, ECS를 사용하여 프로젝트를 배포 할 수 있다.
학습 후 활용 방안
- Java, Spring
- 프로젝트 만들어보기
- 프로젝트를 시작 부터 배포까지 실습해 봅니다.
- MVC 패턴에 대해 이해하고 RESTful 웹 서비스과 API를 설계하고 구현합니다.
- 강의와 기초 코드 없이 명세만 가지고 스스로 프로젝트 빌드까지 완성해보세요.
- 원하는 API 명세를 직접 짜보고, DB 연결도 해보세요. 쿼리와 JPA로 엔티티 매핑을 할 수 있어요.
- 자신만의 기획이나 API를 직접 구현해보는 것으로 활용 능력으로 숙달 시킬 수 있습니다.
- MSA
- 인메모리 저장소 및 캐싱 전략
- 프로젝트 관리 심화