ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] 01_I.o.C, D.I, Request, Response, Method, Maven, 자잘한 Spring 설정들
    웹개발/Spring 2024. 4. 9. 12:39

    - 스프링 세팅 

    스프링 부트는 톰캣이 내장되어 있다. (제스퍼 빠져 있음)

    스프링은 톰캣이 외부에 있다. (제스퍼 있음)

     

    그래서 부트에서는 임베디드 서블릿, 제스퍼를 추가하면 된다. 

     

    세팅은 개인 소장한 동영상 참고 - 미래의 나에게

     

    톰캣 Tomcat의 역할 

    - 자바 서블릿 및 JSP 실행 : 

    톰캣은 자바 서블릿과 JavaServer Pages(JSP)를 실행하는 환경을 제공합니다. 이를 통해 자바 기반의 동적 웹 애플리케이션을 개발하고 실행 가능. App을 항상 사용할 수 있도록 실행 상태로 두는 것. 

     

    - 웹 컨테이너 :

    톰캣은 웹 컨테이너로서의 역할을 수행합니다. 클라이언트 요청을 받아들이고, 서블릿 및 JSP 컨테이너를 통해 해당 요청을 처리하여 동적인 콘텐츠를 생성. 

     

    - 정적 및 동적 콘텐츠 제공 : 

    톰캣은 정적인 HTML 파일 뿐만 아니라, 동적으로 생성된 서블릿 및 JSP 페이지를 제공할 수 있따. 

     

    - 웹 서버와의 통합 : 

    톰캣은 아파치 HTTP 서버와 연동하여 사용할 수 있다. 이를 통해 정적 콘텐츠의 처리는 아파치 웹서버가 담당, 동적 콘텐츠는 톰캣이 담당하여 웹 애플리케이션의 성능을 최적화할 수 있다. 

     

     

    톰캣이 동작하기 위해 설정된 루트 경로(root path)를 가지고 있다. 루트 패스는 톰캣이 웹 애플리케이션의 파일 및 리소스를 검색하는 기본 경로를 나타낸다. 일반적으로 톰캣이 설치된 디렉토리의 하위에 위치한다. 

     

     


    - I.o.C, D.I

    IoC (Inversion of Control) : 메모리의 효율 때문에 쓰는 것.

    제어의 역전을 의미하고 원래 개발자들이 해야하는 것들을 떠넘긴 것. 

    클래스의 생명주기를 관리한다.

    우리가 등록/부여한 것만 제어의 역전을 시킨다. 

    ex) 서블릿을 하려면 메모리에 올라가야 실행됨. 이는 톰캣 자신에게 등록된 서블릿을 대신 해준다.

     

    DI (Dependency Injection) :

    빈 객체를 만들고, 여기에 내가 쓸 객체를 넣는 것 == 의존성 주입을 의미

    내가 사용할 객체를 톰캣, 스프링에게 달라고 하는것. (받아 쓰는것)

     

     

    왜 이 두 개가 필요한가?

    매번, 프로그램을 짤 때마다 객체를 생성한다면 Garbage collecter가 주어갈 것. 단 이게 텀이 길다. 

    그래서 이것을 대신 시키는 것. 

     

    init() : 자동실행   ->  service [ doget, dopost, doput, dodelete, do~] (http Servlet이 가지고 있는 메소드들)

    그래서 Override 해서 쓰는 것임. 

     

     


    - Request와 Response 

    Web은 http를 쓰고, http는 요청(Request 객체)과 응답(Response 객체)을 사용한다. 

     

    인터넷에서 보내는 건 단 방향밖에 안된다. (쌍방향이 안됨)

    서버는 저 두 개로 왔다 갔다 한다. 

     

    둘 다 header 와 body가 있고 이곳에 내용물이 들어가 있다. 

     

    header : 

    요청자, 요청주소, 타입, 전송 Data 타입과 같은 기본정보 

     

    body : 

    Data (요청하는 내용의 실제가 담긴다)

    요청자 IP
    요청주소 내가 보고 싶은 페이지(뭘하고 싶은지)
    타입 Method
    전송 Data 타입 content-type = html, xml

     

     


    - Method(Get, Delete, Put, Post...options)

    Method는 전송방법을 뜻한다.

    : Get, Post, Put, Delete, Option

     

    Get과 Delete 그리고 Put과 Post가 각각 형식이 비슷하다.

    이 친구들은 Restful API 할 때 구분하면서 사용한다. 

    (API가 발전해서 나온게 Restful API)

     

    Options : 

    내가 전송할 곳이 어떠한 전송방식을 보낼 수 있는지 확인하는 것

    어떠한 데이터를 Access 할 수 있는지 물어보는 것

    내가 서버에다 옵션즈 날리면 너네 서버에 어떤 메소드로 전송 받을 수 있어?

     

     

    Get은 Data가 주소 안에 있고, Post는 http 안에 Request 객체 안의 body에 있다. 

     

    Get은 주소에서 ?부터 Data를 담고 있고 이를 Query Sring으로 부른다.

    그래서

    Get = 주소 + Query Sring(Data)

     

    Post 는 http 의 Request 안에 body 안에 넣어서 온다.

    이 body 안에는 form Data, Parameter Data, Json, Xml... document

    거의 all type이 들어올 수 있고 Get처럼 안이 보이지 않는다. 

     

     


    - Maven

    메이븐 만들기. 

    오른쪽 상단에 보면 이 중에 맨 왼쪽 아이콘 선택 -> Java EE 선택 ==> 웹개발 용도(이클립스)로 바뀜

     

    왼쪽 Project Expoler 에서 Create a Maven project 선택 -> Create a simple project (slip archetype selection) 체크

    Group Id, Artifact Id, Packaging(jar), Name 설정 후 Finish

     

     

     

     

     

     

     

    가 생김

    저기서 pom.xml 선택하면 코드화면 나옴

     

    라이브러리를 사용 방법 

    접속 후 원하는 라이브러리의 버전 선택 후 하단의 Maven 탭의 코드 복사 

     

     

    dependencies 안에 코드를 넣고 Ctrl + S 저장하면

    Maven Dependencies 파일 생성 시트에서 해당 라이브러리 지우고 똑같이 저장하면

    해당 Maven Dependencies에서도 사라짐

     


    - Spring 내 설정

    상단 바에서 Help로 들어가 Eclipse Marketplace에 들어가서 popular 클릭 후 이클립스(두번째) 다운로드

    confrim -> accept -> finish

     

    상단 바 Window -> Pregerences -> Server -> Runtime Environments -> Add 

    -> Apache Tomcat v9.0(다운로드 받은 버전) -> Browser(다운로드한 파일 선택)

     

    상단 바 Window -> Pregerences -> General -> Content Types -> Text(펼치기)

    -> CSS, JSP(group folder), JSP Fragment, JSP Tag Definiton( in JSP group folder), XML(G-folder),

    Java Properties File ( 안에 있는 파일들도 체크), Spring Properties file, JSON(illformed)

    들의 Default encoding을 UTF-8로 Update하기 

     

    상단 바 Window -> Pregerences -> Java -> Installed JREs -> 기존거 삭제 후 다운받아둔 JDK-17 파일로 add

     

    상단 바 Window -> Show View -> Other ->  Server의 Servers 키고

     Show View -> Other -> Java -> Package Explorer를 꺼내 Project Explorer 자리로 대체 

     

    상단 바 Window -> Perspective -> Customize Perspective -> 상단 바 Shortcuts 선택

    -> Java 와 Gradle 체크 -> Java 안에 Annotation, Class, Enum, Interface, Java Progect, Package 선택

     

    이렇게 하면 새롭게 만들때 이클립스 처럼 옵션들 생김.  == 클래스 패키지 등 생성 가능 

     

    톰캣 설정도 따로 해야함 (메모장 가서 하는거 개인 필기 참조)

    위에서 킨 Servers 에서 톰캣 더블 클릭 후 생긴 화면의 하단의 Modules 클릭 -> 

    edit -> Path: / -> ok

    Play button 누르면 서버 실행됨. 

    드레그 한대로 뜨면 정상적으로 실행된 것.

연의 취업 도전기.