4차산업혁명의 일꾼/Java&Spring웹개발과 서버 컴퓨터

스프링 부트의 정석 : 이번에도 남궁성과 끝까지 간다 1

르무엘 2023. 3. 6. 17:41

스프링 부트의 정석 : 이번에도 남궁성과 끝까지 간다

 

1. Chapter 1. 스프링부트 준비하기

스프링 부트의 장점 

1. 자동설정

2. 의존성 관리

* 2022년 기준  스프링 6.0, 스프링부트 3.0 까지 나옴

 

* 스프링 툴(sts4 다운로드)

https://spring.io/tools

 

Spring | Home

Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform.

spring.io

 

메이븐은 의존성관리, 자동빌드, 패키징을 관리 해준다. (그래들)

 

스프링부트 프로젝트 :(spring initilizer)

- 2.7.9 버전 : Spring Boot DevTools, Thymeleaf, Spring Web

 

* 메이븐 적용시키는법 - pom.xml (우클릭후 Maven - Reload Projects)

 

메이븐 카테고리에서 m버튼을 나오면

maven 명령어를 칠수 있는데 mvn package 를 치면

현재 프로젝트가 jar 파일이 된다.

* java -jar 해당.jar  로 해당 프로젝트를 실행시킬수 있다. (port 충돌로 변경시 --server.port=80)

 

원격프로그램의 작성과실행

클라이언트와 서버

원격프로 그램에 데이터 전달하기

HTTP요청과 응답

 

 

 

원격 프로그램으로 응답하기


@RequestMapping("/getYoil")
void main(HttpServletRequest request , HttpServletResponse response) throws IOException {
String year = request.getParameter("year");
String month = request.getParameter("month");
String day = request.getParameter("day");

int yyyy = Integer.parseInt(year);
int mm = Integer.parseInt(month);
int dd = Integer.parseInt(day);

// 2. 처리
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(yyyy, mm-1, dd);

int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
char yoil = "일월화수목금토".charAt(dayOfWeek-1);

response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
out.println(year + " " + month + "" + day + "일은 ");
out.println(yoil + "요일입니다.");
out.println("</body>");
out.println("</html>");
out.close();

}

 

MVC로 관심사를 분리하기

 

단일 책임 원칙 : 관심사 1개만(관심사 여러개면 분리)

개방폐쇄원칙(OCP) : 상속open -> overiding , 변경에는 closed

리스코프치환원칙(LSP) : 다형성

인터페이스 분리원칙(ISP) : 유사한 interface , 목적이 다르면 분리

의존관계 역전 원칙(DIP) :  덜구체적 -> 추상화 의존한 코드 작성  , 구체적코드는 변경에 불리

 

 

@RequestParam과 @ModelAttribute

로그인화면 만들기

@RequestMapping과 URL인코딩

Thymeleaf로 레이아웃 적용하기

filter와 interceptor

forward 와 redirect

thymeleaf 사용하기

 

 

 

LIST