Java Spring

[Java Spring] 기초 개념

begong 2023. 1. 27. 18:33
반응형

reflextion api

  • 객체생성시 reflection api를 사용하여 만들면 다른 클래스에서 private인 매서드도 사용 가능
  • 스프링 프래임워크에서 많이 사용됨

HttpServletRequest

  • tomcat이 http request를 HttpSevletRequest 객체에 담아 요청을 전달
  • 많이 쓰는 메서드
    • getCharacterEncoding() : 요청 내용의 인코딩
    • getConteentLength() : 요청 내용의 길이. 알수 없을 때 -1
    • getContentType() : 요청 내용의 타입. 알수 없을 때 Null
    • getMethod() : 요청 방법
    • getProtocol() : 프로토콜 종류와 버전
    • getScheme() : 프로토콜
    • getServerName() : 서버 이름 또는 ip주소
    • getServerPort() : 서버 포트
    • getRequestURL() : 요청 URL
    • getContextPath() : context path
    • getServletPath() : servlet path
    • getQueryString() : 쿼리 스트링
    • getLocalName() : 로컬 이름
    • getLocalPort() : 로컬 포트
    • getRemoteAddr() : 원격 Ip 주소
    • getRemoteHost() : 원격 호스트 또는 Ip주소
    • getRemotePort() : 원격 포트

웹 애플리케이션 서버(WAS) : 웹 애플리케이션을 서비스하는 서버

Tomcat의 내부구조

  • Thread Pool을 만들어 놓고 사용자 요청이 오면 한가한 스레드가 처리
  • tomcat 서버 안에 service가 요청을 처리
  • protocol 종류에 따라 다른 connector사용
  • Connector가 요청을 엔진에 전달
    • 엔진에 여러개의 host가 존재할 수 있음
  • host안에 context가 존재 (여러개 존재 가능)
  • 하나의 context는 하나의 web app
  • servlet : 작은 서버 프로그램

Tomcat의 설정 파일

  • /conf/server.xml : Tomcat 서버의 설정 파일
  • /conf/web.xml : Tomcat의 모든 web app의 공통 설정
  • /WEB-INF/web.xml : web app의 개별 설정 (intelliJ : /src/main/webapp/WEB-INF/web.xml)

Base 64

  • 모든 운영체제에서 존재하는 공통된 문자들 64개(아스키코드의경우 운영체제마다 다른 문자들이 있음)
  • 바이너리 데이터를 텍스트 데이터로 변환할 때 사용
  • 데이터를 6비트씩 짤라서 변환.
  • 빈 자리는 0으로 체움
  • 단점 : 용량이 늘어남(인코딩의 종류에 따라서 다름)

관심사의 분리, MVC 패턴

  • 관심사(concern) : 해야할 작업
  • oop 5대 설계원칙 SOLID
  • SRP : 단일 책임 원칙
    • 하나의 매서드는 하나의 책임
  • 분리
    1. 관심사
    2. 변하는 것
    3. 공통(중복)코드
  • Model : 데이터를 주고받기 위한 객체
  • View : 출력
  • Control : 정보 처리
반응형