[Java] Java 관련 지식

merci·2023년 5월 30일
0

JAVA

목록 보기
10/10

WWW, HTTP

  • CERN 연구소에서 팀 버너스 리와 동료들이 여러 연구 자료를 쉽게 검색하기 위해서 프로토콜과 프로그램을 개발했는데, 이것이 월드 와이드 웹이다

  • WWW는 HTTP프로토콜로 규정되어 있고 웹 브라우저는 이를 따른다. WWW는 TCP/IP프로토콜로 구현된 인터넷 통신망을 기반으로한 프로토콜이다.

  • HTTP란 서버와 클라이언트가 어떻게 메세지를 주고 받을지 정해놓은 규칙이다. 요청과 응답으로 구성되어 있다. HTTP는 요청을 통해 응답을 받게 되면 연결을 끊어버린다.( Stateless )


아파치, 톰캣

  • 아파치는 오픈 소스 커뮤니티에서 개발되고 유지되는 다양한 소프트웨어 프로젝트들을 의미한다.
    아파치 소프트웨어 재단은 이러한 프로젝트들을 지원하고 관리하는 비영리 단체이다.
    그중 유명한 프로젝트는 아파치 HTTP 서버, 톰캣, Maven이 있다.

  • 아파치 HTTP 서버는 클라이언트의 HTTP요청을 처리하고 응답으로 정적인 콘텐츠( HTML, 이미지 )를 제공하거나 동적인 콘텐츠를 제공하기 위해 다른 프로그램( PHP, MySQL등 )을 모듈로 붙여서 사용할 수 있다. JSP를 이용하려면 톰캣을 연동한다.

  • 톰캣은 Java 기반의 서블릿 컨테이너이자 웹 서버이다. JSP/Spring으로 웹사이트를 구축한다면 톰캣은 거의 반드시 사용된다고 볼 수 있다. 톰캣에는 오로지 서블릿/JSP 및 HTTP 처리 엔진만 들어있다.

  • Springboot는 톰캣을 내장하고 있어 별도의 웹 서버 구성을 필요로 하지 않는다.


Maven

  • Maven이란 Apache 소프트웨어 재단에서 개발되었으며 Java 기반 프로젝트의 빌드, 관리, 문서화를 자동화하기 위한 도구이다. ( 라이프 사이클 관리 )
  • 프로젝트는 Maven의 표준 디렉토리 구조를 따르며 프로젝트의 종속성은 프로젝트 객체 모델(Project Object Model, POM) 파일에 정의된다. pom.xml에는 프로젝트의 설정, 종속성, 플러그인 및 빌드 프로세스에 대한 정보가 포함된다.
    settings.xml 또는 pom.xml 파일에 필요한 라이브러리만 적으면 Maven이 알아서 다운받고 설치해주고 경로까지 지정해준다.

  • Maven은 Central Repository 리소스에서 종속성을 가져와 라이브러리나 플러그인 등을 자동으로 다운로드하여 관리한다.

  • Maven은 일관적인 방법으로 프로젝트를 관리하고 종속성과 빌드 프로세스를 자동화하도록 도와준다.


Gradle

  • Maven의 장황한 설정 파일과 에러가 쉽게 나는 문제를 해결하기 위해서 만들어졌다. Groovy 기반의 빌드 도구이다.

  • configurations는 기본적으로 비어있는데 Gradle이 기본적인 의존성 구성을 자동화 했기 때문이다.
    일반적인 기본 구성은 implementation, compileOnly, runtimeOnly, testImplementation가 있다.
    만약에 아래와 같은 디펜던시를 추가한다면 configurations에도 추가를 해줘야 한다.

dependencies {
	asciidoctorExt 'org.springframework.restdocs:spring-restdocs-asciidoctor'
}
configurations {
	asciidoctorExt 
}


서블릿

  • 자바를 사용해 웹 서버의 요청을 처리하는 서버 사이드 컴포넌트를 말한다.

  • 서버에서 실행되는 프로그램으로 서버가 요청을 처리할 수 있는 서블릿을 찾아 서블릿을 실행하여 동적인 응답 처리를 하게 된다.

  • 서블릿 컨테이너(웹 서버)는 서블릿의 생명주기를 관리한다. 서블릿은 서블릿 컨테이너에 의해 특정한 요청에 재사용될 수 있다.

profile
작은것부터

0개의 댓글