Section1 : 시작하기
1장
Spring framework와와 spring boot 마스터하기
스프링 프레임 워크가 어려운 여러 이유 : 의존성 주입(DI), 제어 역전(IOC), 자동 연결(Auto wiring), 자동 설정(Auto configuration) 등
다른 여러 툴과 조화할 수 있다. Maven, gradle, spring data, jpa, hibernate, docker, cloud 등
개발 능력 습득에 있어 효율성 향상 방법 :
1) 적극적 학습 – 생각하고 메모하기.
2) 프레젠테이션과 비디오 다시 보고 생각하기
2장
pdf 다운
3장
자바/이클립스 설치 영상
4장
자바/이클립스 설치 영상
5장
In28 minutes참가하기
Section 2 : java spring framework 시작하기
6장
코드 백업 및 단계별 변경사항
7장
Java spring framework가 필요한 이유 이해하기
20년간 앱 아키텍처 발달
Web app -> rest api -> full stack -> microservices
오늘날은 클라우드에 배포해서 사용한다.
애플리케이션 구축하는 데는 여러 가지 아키텍처가 필요하다.
Spring – spring boot – hibernate – spring security – spring data – spring cloud
애플리케이션 구축하기 위해서 가장 먼저 배워야 할 2가지 :
Spring – spring boot
Spring : 의존성 주입 / 자동 연결
spring boot : 사용하면 spring 프레임워크를 사용하기 쉬워진다.
스프링 프레임워크에서 사용하는 용어들은 추상적이다. 실습을 통해 정확히 이해하는 것이 중요하다.
8장
Java spring framework 사용하기
스프링 프레임워크의 핵심 기능 이해 <- 최신 spring 접근 방식을 사용해 느슨하게 결합(loose coupled)된 앱 구축하기
용어를 먼저 이해하는 것이 중요하다.
용어 :
-Tight Coupling and Loose Coupling
-IOC Container
-Application Context
-Component Scan
-Dependency Injection
-Spring Beans
-Auto Wiring
반복 실습을 통해서 강한 결합과 느슨한 결합 이해하고, spring bean과 annotations 이해하기가 목표이다.
9장
Maver과 java로 새 spring framework 프로젝트 생성하기
초기 세팅이다.
Src/main/java 에는 모든 소스 파일을 보관한다.
Src/main/resources 에는 모든 설정 파일이 보관된다.
Src/test/java에는 테스트 코드를 작성한다.
10장
Java 게이밍 프로젝트 만들기
Gamerunner class
Game clsses : mario, supercontra, pacman etc 만들기 집중
MarioGame과 GameRunner 클래스 2개를 만든다.
메인에서 GameRunner를 실행하는데, 매개변수를 marioGame으로 받고 있기 때문에, gameRunner.run()을 실행하면, MarioGame에 있는 내용이 실행된다.
GameRunner 클래스에서, MarioGame의 인스턴스를 game으로 생성해 준다.강한 결합이기 때문에, 생성자에 MarioGame의 game을 넣어준다. 만약 생성자가 없고, 메인에서 GameRunner()에 marioGame을 넣지 않는다면, null값이 출력된다.
최종 실행결과이다.
마리오게임 클래스에서, 이와 같이 함수를 설정해 준다.이렇게 해두면, 이제 GameRunner 클래스에서, run 함수에 입력해 줄 수 있다.
11장
느슨한 결합과 강한 결합 알아보기
위와 같은 방법은 강한 결합니다. main에서 MarioGame 인스턴스를 marioGame으로 만들었고,을 gameRunner에 초기화시켜 주었다. 이를 gameRunner.run(); 을 실행시키고 나면 마리오게임만 실행시킬 수 있는 gameRunner가 된다.
이전, 마리오게임과 동일하게 superContraGame을 구성했지만,실행이 되지 않는다.
이렇게, GameRunner에 들어가서 파라미터를 바꾸어주라고 도움말이 뜨는 것을 볼 수 있다. 현재 GameRunner는 MarioGame과 강한 결합이 이루어져 있기 때문이다.
GameRunner에서, 마리오게임을 했던 것과 같이 SuperContraGame을 가져와서 생성자에 넣어주면 아까와 같이 실행이 되는 것을 확인할 수 있다. 그러나, 이 역시 강한 결합이기 때문에, GameRunner는 이번에는 superContraGame과만 결합이 이루어진다.
일상생활에서 예시를 찾아본다면,
차 – 엔진 : 강한 결합
차 – 타이어 : 느슨한 결합
으로 볼 수 있다.
우리가 프레임워크, 코드, 비즈니스 등에서 변화는 계속해서 이루어지기 때문에 가능한 한 최소한의 변경을 통해 기능을 변경할 수 있어야 한다. 이러한 기능을 실현하는 것이 느슨한 결합이다.
12장
Java 인터페이스를 이용하여 느슨한 결합의 앱 만들기
인터페이스를 사용하여 느슨한 결합을 해보자.
이전에는 GameRunner-[Mario, SuperContra] 였다면,
GameRunner-GamingConsole-[Mario, SuperContra, PacMan]의 꼴로 나타낼 것이다.
인터페이스를 주입한 후 main에서 실행해 보면 역시 잘 작동할 것이다. 그렇다면 이 상태에서 마리오게임을 실행한다면 어떻게 될까?
아까와 같이, 아직 GameRunner에서 SuperContraGame과 강한 결합이 되어 있기 때문에 실행이 되지 않는다.
위와 같이 바꾼 후, 마리오게임에서도 implements GamingConsole을 해준다. 그 후 main에서 실행한다면, 마리오게임이 잘 작동할 것이다.
'스프링,스프링부트' 카테고리의 다른 글
유데미 RANGA 86장-92장 요약 (2) | 2024.07.02 |
---|---|
유데미 RANGA 74-85장 요약 (0) | 2024.06.28 |
유데미 RANGA 50-73장 요약 (0) | 2024.06.28 |
유데미 RANGA 24~48장 수업 (0) | 2024.06.25 |
유데미 RANGA 스프링부트 13-23장 요약 (0) | 2024.06.24 |