Session & Maven & Log

haribo·2021년 3월 21일
0

Web

목록 보기
2/7

Session


Why?

인터넷뱅킹을 생각해보자. 로그인을 하면 이체, 조회 메뉴등에서 나의 자산을 관리할 수 있고, 10분 뒤 자동으로 로그아웃 된다는 걸 본 적 있을 것이다. 웹 페이지는 하나의 웹 프로그램과 동일한데, 어떻게 단 한번의 로그인 만으로 기능을 모두 이용하고, 제한 시간까지 둘 수 있는 것일까?

정의 및 기능

  • 클라이언트와 서버 간의 연결 단위

  • 만약 웹사이트에 5명의 사용자가 접속한 상태라면 "5개의 Session이 생성되었다." 라고 표현한다.

  • Inside JSP : 몇번 브라우저가 접속했네? 얘를 몇번으로 관리하자 하는 메모리에 변수가 생김.

  • 10분뒤 로그아웃? → 세션 시간 10분. (기본값 30분)
    서버 운영체제 설정 파일에 최대 업로드 가능용량, 세션 유지시간 있을거임 거기서 설정해줌

    → 프로그램에서도 세션 시간 설정이 가능하나, 운영체제 설정파일이 제일 세다.
  • 사이트 내의 모든 페이지들간의 공유할 수 있는 데이터(전역변수)

  • 지정된 시간 or 브라우저가 웹사이트에 접속되어 있는 동안 변수값 유지
  • 사용자 컴퓨터에 텍스트파일 형태로 저장
  • 사용자 브라우저에 저장하기 때문에 서버에 부담 x
  • 상기 사유로 보안 취약

Session

  • 브라우저가 웹사이트에 접속되어 있는 동안만 변수값 유지 (일정시간동안 페이지 이동 없으면 자동 삭제)
  • 웹 서버가 직접 메모리에 저장 (브라우저에게 정보 전송 x)
  • 서버에 저장하기 때문에 보안 걱정 x
  • 사용된 변수 * 접속자 수만큼 변수를 서버 메모리에 저장하기 때문에 많은 값을 저장할 경우 서버에 부담이 된다.

Jsession ID

  • 놀이공원의 자유이용권 같은 개념. 놀이기구를 탈때 자유이용권을 보여줘야 탈 수 있다.

  • 웹 서버는 접속한 사용자를 구분하기 위해 메모리 영역을 할당하는데, 이를 JsessionID라고 한다.

  • 각 브라우저가 접속하면 제이세션 아이디를 줌 (브라우저에 쿠키로 저장)

  • 페이지 요청할때마다 난 몇번 제이세션 아이디에요 확인, 설정하는 것

http 프로토콜 : 페이지 요청마다 새로운 요청임. 계속 이어져있는게 아님. 계속 이어져있는 것 처럼 관리하기 위해 웹상태 유지기법이 쓰인다. 각 페이지들은 독립된 프로그램인데 이걸 하나의 사이트, 거대한 프로그램으로 묶어서 한번 요청하면 땡임.

프로그램의 단위 : 한번 요청해서 한번 응답을 주는 하나의 일련된 동작. 정확히는 메인01에서 run 눌렀을때 콘솔에 나오는... 한번의 실행 주체. 하나의 시작 흐름.

세션이 있으면 로그인 UI를 보여줄 필요가 없음 로그아웃 UI를 보여주면 댐

equiv?

태그의 http-equiv 속성은 content 속성에 명시된 값에 대한 HTTP 헤더를 제공합니다.

http-equiv 속성은 HTTP 응답 헤더를 시뮬레이션할 때 사용할 수 있습니다.

만약 http-equiv 속성이 명시되어 있다면, 반드시 content 속성도 함께 명시되어야만 합니다.

https://tcpschool.com/html-tag-attrs/meta-http-equiv

Maven


프로젝트 빌드 자동화 도구

원격 저장소에 등록되어 있는 라이브러리의 정보를 명시한 XML 파일을 토대로 프로젝트에서 사용되는 각종 라이브러리(jar파일)들에 대한 다운로드와 Java Build Path 설정을 자동화 하는 도구

Maven과 EJB와 POJO의 상관관계

ejb : 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. 라이브러리 다 덕지덕지 붙이니 속도가 느려져서 초심으로 돌아가자고 나온게 POJO. 그리고 그와 연관있는게 Maven이다.

https://m.blog.naver.com/PostView.nhn?blogId=blogpyh&logNo=220021874123&proxyReferer=https:%2F%2Fwww.google.com%2F

log


정의

시스템의 모든 동작과정을 기록해 놓은 텍스트 파일

용도

  • BigData: hadoop을 이용해 빅데이터를 다룰때 사용자 데이터를 로그로 수집한다.
  • How : 사용자가 어떤 루트를 통해 어떻게 접속해서 어떠한 명령어로 어떤 행동을 했는지 시간대별로 출력해준다.
  • Define : IT인프라에서 발생하는 모든 데이터
  • What : 어떤 시스템이 자신이 구동하면서 발생되는 모든 행위와 이벤트 정보를 시간에 따라 기록해둔 데이터
  • Importance : 에러 및 디버깅 처리를 할때 참고하는 용도이므로 중요하다.

로그 수준 6가지

  • Fatal : 시스템 사용조차 되지 않는 심각한 에러
  • error : 프로그램 (요청) 처리 중 걸리는 에러
  • warn : 향후 오류 발생할 수 있는 내용 출력
  • info : 상태 변경 등을 알려줌
  • debug : 프로그램 디버깅 용
  • trace : 디버그보다 더 상세하게 볼때 사용 (성능 향상)

DEBUG : 프로그래머 입장에서 나이스. 트레이스는 성능 향상을 위해

운영중일때는 warn이나 error로 설정함.

profile
그림 그리는 백엔드 개발자

0개의 댓글