41기 개발자과정

20211129 스프링부트

segment 2021. 11. 29. 17:24

 

 

model 1. -> dao, 비즈니스 로직.
java는 네이티브 언어다. 

웹 : http 통신을 위해서 만들어져야 되는 기술들이 있다. 

java만으로는 힘들어. 만들어져 있는 프로그램들을 사용하고싶어. 요게 servlet 입니다.

sp는 서블릿을 포함하고 있습니다. html 안에다가 form으로 get post 방식으로 주소요청을 했었죠. 요청을 받을 수 있는 화면이 필요할 거아니에요. db도 조작을 하고... 그게 한번에 가능한 것이 jsp 에요. 요 jsp도 컴파일러를 거쳐서 java 소스는 클래스화시키고. 변혀을 시킵니다. html에 대한 요소들은 . 

최종적으로 java 소스는 보여지지 않아요. java 하면서 f12 눌러봤다? 

java 소스는 보이지 않아요. 순수한 html만 보여지게 돼요. jsp가 모든것을 다 하게되면 문제점이 몰까요? 개발할때는 빠른데, 역할 분배에 있어서 유지보수가 힘들다. model1으로 들어와서는 jps는 주소요청, 화면만 담당합니다.

나머지는 class (java bean)으로 담당해. 영역을 확실하게 구분을 짓자. 그러면서 좀 효율적이긴 했어요. 

근데 작은 프로젝트는 이게 더 빨라요. (model1) 근데 정말 대규모일 경우에는 확실히 나눠주는 게 좋아요. 화면에 <%%> 들어가는게 짜증나... 

그러면서 나온게 mvc가 나온거에요. 주소요청하는 애 따로. 화면 구현 따로. .. 컴포넌트 기반. 필요한 요소들을 묶어놨다. """java를 사용해서 웹을 만들기 위한 기술""" 이 핵심. 

servlet 의 역할 : 클라이이언트의 요청. 주소 요청을 받는 애에요. mvc에서 어떤 역할?? 
(model(비즈니스 로직역할), view(화면), controller(주소분기) 중 controller의 역할을 담당한다.)

 


URL, URI?? 
URI가 모두포함한다. 
모든 URL은 URI 이다(O) 
모든 URI는 모든 URL 이다 (X)

 

 



스킴은 어떤 통신을 할거냐. 프로토콜이다. https 이 있는 보안이 있는 웹. 그 뒤는 유저정보가 들어간다. 사용 안해요. 

그담엔 바로 kmsart.or.kr <- 호스트이다.  jdbc 할때 뭐 해요. localhost 치죠. 내 컴퓨터로 가겠다는 거죠. 웹 서버 주소를 향하는 것이다. https 기본 포트는 443이다. http 는 80이다. mysql 기본포트는 3306이다. 

포트는 프로그램이 통신할 수 있게 항구역할이다. 딱 하나만 가질 수 있다. 보안을 하려면? 포트를 막으면 된다.. 

443까지가 해당 서버에 있는 웹 프로그램. forum ~ 이후는 경로. 


url은 자원의 주소를 알고있다. l : locator
? 붙은 이부분은 get. get 방식은... 다른 jsp에다가 데이터를 보낸다. 어려운말로 query parameter. 주소에다 실어서 보내는 방법이 있고, header 안에 정보를 실어서 보내는 방법이 있다(post). 

fragment 는 뭘까. ... 
그 요소에 대한 id. 그 위치로 찾아가준다. ex) #footer

uri.. 식별자로만 판단한다. 
이제 주소가 아니라 해당 자료, 컨텐츠의 아이디를 식별을 한다. 식별자를 둬서.

uri 나 url를 많이 사용하고 urn은 사용거의 안한다. 이걸다 uri라고 봤을때 경로에 해당하는 위치까진url이라고 얘기를 하고 , 프로토콜을 제외한 나머지는 urn이라고 한다. 

Previous Versions · spring-projects/sts4 Wiki · GitHub



서블릿~

서블릿은 MVC 중 CONTROLLER 의 역할이다. 주소의 요청을 받고 응답해주는 역할. 브라우저에서 사용자가 뭘 입력하고 엔터. 브러우저엗가ㅏ 다시 결괏값을 돌려준다, 요거가 서블릿이구나,,, 'ㅇ'

스레드는 프로세스 안에 프로그램이 돌 수도있구나. 메모리를 효율적으로 관리한다.
GET은 조회한다. SELECT의 역할. post는 insert의 역할. 갱신의 역할은 put. delete는 삭제. 

udp > tcp 순으로 속도가 빠르다. 

정적. <- 내가 만들어놓은 파일들만 보여준다. 그 이후에 나온 것이 tomcat이다. 웹 어플리케이션 서버. 
webserver : 정적  페이지 구성
was : 동적 페이지

아파치는 웹 서버의 역할. 

was 역할은 tomcat이다.


서블릿은 java 언어로 웹을 구현하는 기술이다. 더 들어가면 서블릿은 클라이언트로부터 요청이 들어왔을 때 요청에 대해서 제일먼저 반응하는 아이. 반응을 해주고 반응에 대해서 처리를 한다음에 응답해주는. 컨트롤러 역할. 

dev - ops / 디벨롭. 오퍼레이션.
개발과 운영.. 클라우드 들어오면서 대두.

프레임워크 vs 라이브러리 vs api
api : 누군가 만들어놓은 것을 요청을 한다. 주소를 요청을 합니다. 사용자의 요구사항에 대해서 output 할 수 있게 만들어놓은..

라이브러리 : 내가 필요한 것을 가져다 쓴다..? 개발자 주도형.

프레임워크 : 정해진 틀이 있다. 웹에 대한 기초설계가 되어있다. 내가 거기에 맞춰서 문법만 써주면 알아서 구현이 된다. 개발자가 수동적이다. 만들어진 틀이 있기 때문에 개발속도는 빠르다. 

엔터프라이즈? 큰 규모의 기업 프로세스. 
경량급 : 메모리를 적게 차지한다. 

POJO : 가장기초가 되는 것. 
GETTER SETTER 만 있구나...

DI : 의존성 주입. 클래스들 간에는 주소를 참조한다.

 

 

 

 

 

 

GitHub - spring-projects/sts4: The next generation of tooling for Spring Boot, including support for Cloud Foundry manifest file

The next generation of tooling for Spring Boot, including support for Cloud Foundry manifest files, Concourse CI pipeline definitions, BOSH deployment manifests, and more... - Available for Eclipse...

github.com

 


springboot 시작하기.

Spring | Tools

설치는 C 드라이브의 바로아래. 하위 폴더에 설치한다.

 

window -> prefereneces -> enc (인코딩) 검색

 

위의 화면과 workspace, css, html, xml, encoding 을 utf-8 로 변경

 

 

Spring Initializr

위의 화면에서 generate 할 수도있지만 이클립스에서 아래화면을 지원한다.

 

 

group : 역방향으로 쓴다 . kr.or.ksmart

 

snapshot 없는 것이 안정화 버전?

 

 

 

반결합 상태 : A 클래스를 생성하기 위해서는 ... 어쩌구

약결합상태 : 주소를 참조

~

~

 

 

 

 

 

 

 

스프링 부트 소개 :

 

스프링 프레임워크 개발 단계 : 

 

 

스프링 부트 구성 요소 :

 

어플리케이션 프로퍼티 : 프로젝트를 구성하는데 모든 설정을 구성한다.

 

# <- 주석처리는 # 서버 포트 설정

뒤에 공백을 두거나 server.port = 80 <- 이런 행위는 에러.

 

생성했던 패키지 -> 오른쪽 클릭 -> pakage 생성

새로운 패키지를 만들 때, 최초 생성했던 규칙은 변경하지 않는다.

 

maincontroller클래스 생성후 @controller 입력.

@Controller 스프링 MVC의 컨트롤러 객체임을 명시하는 어노테이션

 

탬플릿 -> 오른쪽 클릭 -> other -> html -> main.html 생성

 

 

 

상위 폴더 오른쪽 클릭 -> RUN AS -> Spring boot app 실행!

 

주소창에 localhost 입력

 

 

콘솔창 : 

 DispatcherServlet  = servelt

 


 

MVC

 

 


Maven

 

pom.xml : maven에 대한 설정 정보가 들어가 있다.

프로젝트 정보가 표시되며 스프링에서 사용되는 여러 가지 라이브러리를 설정해 다운로드 가능

 

src/main/java : 자바 소스 파일이 위치

 

src/main/resource : 프로퍼티 파일이나 xml파일 등 리소스 파일이 위치

 

pom.xml 

 

 

프로젝트명, 버전 등 정보 등을 포함.

dependencies 하위 : 라이브러리를 관리

build : maven의 빌드 관련 정보.

 

 

viewresolver 의 역할 :

return "ksmartView"; 을 아래와 같이 변경해준다.
// viewresolver = src/main/resources/template/ + return(논리이름) + .html