1. spring framework 는 어렵다?
- 기능이 많은 좋은 장비를 샀다?
- 매뉴얼을 공부하는 과정이 있는 것은 당연.
-> 어려운데 가장 많이 쓰이는 이유가 분명히 있음
2. 프레임워크
- 소프트웨어 개발은 분석 > 설계 > 개발
- 건축과 소프트웨어 개발은 유사성이 많다
- 정의 : 뼈대나 근간을 이루는 코드들의 묶음
- 왜 사용하는가?
- 개발자들의 개인별 능력차가 크고, 개발자들의 구성에 따라 프로젝트의 성패가 좌우
이런 상황을 극복하기 위한 코드의 결과물이 프레임워크 프로그램의 기본적인 흐름이나 구조가 정해져있고 자신의 코드를 추가하는 방식으로 개발.
- 개발자들의 개인별 능력차가 크고, 개발자들의 구성에 따라 프로젝트의 성패가 좌우
- 프레임 워크의 장점
- 개발에 필요한 구조를 이미 코드로 구현
- 실력이 부족한 개발자여도 일정 부분 완성된 상태에서 필요한 부분을 조합하는 형태의 개발이 가능
- 기업 : 일정한 품질의 결과물을 기대함
- 개발자 : 완성된 구조에 자신의 코드를 개발하므로 개발 시간이 단축
3. 웹 개발의 역사
- Http 통신으로 정적 데이터만 전송
- 동적으로 페이지를 보여줄 수 있는 CGI 등장
- 자바버전 CGI 라고 불리는 서블릿 등장
- 서블릿의 html 작성 방식의 불편함을 줄인 JSP(Java Server Page)의 등장
- 자바로 기업 환경의 어플리케이션을 만드는 데 필요한 스펙들을 모아둔 J2EE(후에 Java EE로 개칭) 등장
- J2EE는 너무 많은 기술, 다양한 스펙의 집합체
- 특히 대규모 분산처리 시스템을 구축하는 EJB(Enterpries Java Beans)는 너무 복잡
- 서비스의 비즈니스 로직을 구현하는 것보다 EJB 컨테이너를 사용하기 위해 설정하는 시간이 더 오래 걸린다.
- 개발 시간보다 환경 구축에 더 많은 시간이 소요됨
-> 개발 시간보다 환경 구축에 더 많은 시간이 소요되어 EJB 사용이 대세였떤 이 기간을 winter라고 부름
- Spring
- EJB의 통치 기간을 Winter로 비유하면서 지어진 이름
- 창시자는 로드 존슨
- EJB를 비판하는 책을 쓰고 개선점을 구현한 3만줄의 예제
- Spring 프레임워크의 특징
- 복잡함이 싫어서 만들어진 프레임워크
- 프로젝트 전체 구조를 설계할 때 유용한 프레임워크
- 다른 프레임워크와 혼용해서 사용 가능(포용)
- 개발 생산성을 높이며 다양한 개발 도구 지원
- POJO 기반의 구성
- POJO(Plain Old Java Object)
- 오래된 방식의 간단한 자바 객체라는 의미
- JAVA 코드에서 일반적으로 객체를 구성하는 방식을 스프링에서 그대로 사용 가능
- 의존성 주입(DI)을 통한 객체간 관계 구성
- AOP(Aspect-Oriented Programming)
- 편리한 MVC 구조
6. 개발 환경 구축
- Java 21, Eclipse 설치 (for Web Developers)
- Eclipse 실행 > Help > MarketPlace
- Spring 검색 > STS 4 설치
- 2번의 trust -> Eclipse 재시작
- New > Spring Starter Project로 프로젝트 생성
- Java 21, Maven, Jar를 선택하고 프로젝트 명은 board
- Dependecy 추가 - 9개
- 우측 하단에 다운로드 표시줄 완료되길 기다리기
- 프로젝트 우클릭 > Run as > Spring App
=> 오류 메세지(DB 설정이 되지 않았따는 메세지) - BoardApplication.java에서
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
Application.properties에
server.port = 10000 - 재실행 > 브라우저에서 localhost:10000 입력
WhiteLabel Error 발생 - resources -> template에 index.html 생성
- 브라우저 재접속 후 환영 메세지 확인
환경 구성
이클립스 실행 -> Help -> 이클립스 마켓플레이스 -> 스프링 검색 후 스프링4 설치

File -> New Project -> spring 검색 -> New spring Starter Project


project exploer -> 우클릭 -> properties -> java Editor -> Save Action -> 자동저장 설정 가능

src/main/resources -> application.properties
server.port = 10000

src/main/java -> com.koreait.board -> BoardApplication.java

package com.koreait.board;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
public class BoardApplication {
public static void main(String[] args) {
SpringApplication.run(BoardApplication.class, args);
}
}
src/main/resources -> templates -> New -> Others -> Html


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Welcome</title>
</head>
<body>
<h1>My First Spring Work</h1>
<hr>
</body>
</html>

'자바 공부 > [자바] 기본 공부' 카테고리의 다른 글
| [SPRING] Mapper (1) | 2024.12.12 |
|---|---|
| [SPRING] Lombok 라이브러리 (1) | 2024.12.11 |
| [vue.js] 날씨 앱 만들기 (0) | 2024.12.09 |
| [Vue.js] Component(advanced) (0) | 2024.12.05 |
| [Vue.js] Axios (0) | 2024.12.05 |