IT 면접족보/자바 면접족보

자바 수업 정리 -210105_030_화_css:position,float | JSP:쿠키(30일 차)

낙산암 2021. 1. 6. 17:16

1. 절대 경로와 상대 경로에 대하여 설명하시오.

 

물리적 경로와 웹사이트로 들어가는 주소 모두 절대경로상대경로를 사용할 수 있다.

 

절대 경로

 

1) c:\ → 웹 서버에서는 절대 사용 할 수 없는 절대 경로

2) http:// → 웹 사이트에서 주소로 치고 들어가는 절대 경로

3) / → 웹 프로그래밍에서 사용하는 절대 경로

 

웹 서버 프로그램에서 절대 경로 사용 방법

  • 절대 경로는 ip까지만 붙여 주는 것 root경로!
  • 컨택스트명이 없기 때문에 이 절대 경로를 쓰고 싶으면 /컨택스트명/파일명 까지 붙여 줘야 작동한다!

상대 경로

  • 절대 경로 아닌 건 모두 상대 경로
  • 기준이 자기 자신

웹 서버 프로그램에서 상대 경로 사용 방법

 

http://ip주소/컨택스트명/** → 까지 자동으로 들어간다.

http://localhost:8282/practice/request_send.jsp

(웹사이트 주소에는 webContent 없이 들어간다. 물리적 주소와 다름)

현재 폴더 기준으로 작성함

 

request_send.jsp        <!-- 현재 파일이 있는 폴더 위치 기준에서 찾음 -->
0105/request_send.jsp   <!--현재 파일이 있는 위치에서 0105폴더 안의 파일로 찾아감 -->
../0105/reqeust_send.jsp <!-- 상위 폴더로 가서 찾음 -->
0106/request_send.jsp →  <!-- 현재 파일이 있는 위치에서 0106 폴더 안에 파일로 찾아감 -->

2.아래의 action 속성에 대하여 아래의 3가지 케이스에 대하여 테스트 하고 결론을 내려 보세요.

 

  • 0105/request_send.jsp

  • ../0105/request_send.jsp

  • /0105/request_send.jsp

  • /practice_210105/0105/request_send.jsp

하위 폴더 0105와 0106을 만들고 0106에 있는 addressEx.html 에서 전송버튼을 눌러 0105폴더에 있는 request_send.jsp를 실행시켜 보는 test

 

./0105/request_send.jsp

 

  • /practice_210105/0105/request_send.jsp

     

 

3. css에서의 position 의 4가지 설명하시오.

 

#box1 { position:static }
#box2 { position:absolute }
#box3 { position:relative }
#box4 { position:fixed }

static (정적위치)

  • static은 top, right, bottom, left 속성값에 영향을 받지 않는다.
  • 다른 태그와의 관계에 의해 자동으로 배치, 위치를 임의로 설정해 줄 수 없다.
  • 아무 설정안했을 때 default가 static이다.

relative (상대위치)

  • 동위 원소일 때는 바로 전거에 영향을 받고, 부모 자식 관계에서는 부모의 영향을 받아서 상대 위치를 결정함
  • 영향을 주는 것의 bottom과 left 값을 기준으로 함

absolute (절대위치)

  • position: static속성을 가지고있지 않은 부모를 기준으로 움직인다.
  • 만약에 부모 중에 포지션이 relative, absolute, fixed인 태그가 없다면 가장 위의 태그인 body가 기준
  • 영향을 주는 것의 top,left를 기준으로함

fixed (고정위치)

  • 뷰포트(viewport) : 스크롤과 상관없이 항상 문서 각 끝을 기준으로 고정함(어디에 고정시키는지에 따라 다름)

4. float 속성에 대하여 설명하시오.

float

  • float는 위로 띄운다는 말!
  • 이렇게 띄운 요소와 아래 남아있는 요소는 레이어 2개가 겹친 것 처럼 놓이게 된다.
  • 하지만 아래 있는 요소에 text가 있을 경우 공간은 겹치지만 text는 띄워진 요소와 겹치지 않게 디스플레이 된다.
  • 이렇게 이미지와 글이 있을 때 공간을 낭비하지 않으면서 이미지와 글이 같이 어우러지게 만드는게 float의 원래 용도이다.

5.쿠키에 대하여 설명하시오.

  • 웹에서 제일 중요한 부분이 1) http프로토콜 2) get, post방식 3) 쿠키와 세션 이다.

쿠키란?

웹 브라우저에서 서버로 어떤 데이터를 요청(Requset) 하면, 서버 측에서는 알맞은 로직을 수행한 후 데이터(html페이지 혹은 파일, 등 01010덩어리)를 웹 브라우S저에 응답한다. 그리고 서버는 웹 브라우저와의 관계를 종료한다. (종료한다는 것이 중요!!) → 웹 브라우저에 응답 후 관계를 끊는 것은 http프로토콜의 특징

왜 연결을 끊을까?

서버 한 대에 몇 천만명을 계속 유지하고 있으면 당연히 서버가 죽는다. 어쩔수 없이 끊을 수 밖에 없는 것이다. 연결 시키려면 소켓프로그램을 해야하는데 그건 리소스를 많이 잡아먹는다.(리소스=메모리=비용)

쿠키와 세션이 나오게 된 배경

클라이언트 ip -> <- 서버 ip

클라이언트와 서버 양쪽 모두 ip가 있어야 정보를 주고받을 수 있다.

웹 프로그래밍 방법은 채팅 프로그램을 만드는 것과 똑같지만 하나의 큰 차이가 있다.

  • 채팅 프로그램은 양쪽이 연결을 한번 맺으면 일단은 세션을 유지한다.(웹 프로그램의 세션과는 다름 → 연결성 유지 측면에서 보는 것) = 연결된 상태에서 누구 한 명이 끊지 않으면 계속 연결된 상태이다.
  • 반면에 인터넷은 연결성이 유지가 안된다. 서버로부터 response받으면 연결이 유지되지 않고 **관계를 종료!**한다. → 이게 핵심!!!

관계가 종료된다고 했는데, 그럼 로그인한 상태는 뭘까?

  • 이런 연결성 유지를 위해 쿠키와 세션이 생겼다. (→ 쿠키는 꼼수?)

    = 연결이 끊겼을 때 어떤 정보를 지속적으로 유지하기 위해 쿠키 사용

  • 쿠키는 서버에서 생성하고, 클라이언트 측(브라우저)에 저장한다. (각 서버 별로 따로 정리해서 저장함)

  • 그리고 클라이언트가 해당 서버에 다시 접속할 때 마다 쿠키를 서버에 전달한다. (http프로토콜 원칙) → 해당 서버에 대해 가지고 있는 쿠키가 있으면 무조건 웹 브라우저는 반드시 자기가 가지고 있는 쿠키를 같이 전송하게 되어있다.!!!!! (해당 서버에 다시 접속하게 될 때마다! 지정한 **분 동안에는 계속!)

  • 쿠키는 4kb로 용량이 제한적이며, 300개까지 데이터 정보를 가질 수 있다. → 기억할 것!!!

브라우저는 두개의 영역을 가지고 있다.

하나는? 쿠키를 담는 영역

다른 하나는? 캐쉬 영역

  • 이미지 등을 다시 다운로드 받지 않기 위해서 사용한다. → 브라우저 성능을 위해서
  • 캐시는 각 브라우저마다 있다. → 크롬, ms 등등

6.액션 태그에 대하여 설명하시오.

  • JSP페이지 내에서 어떤 동작을 하도록 지시하는 태그 (예를 들어 페이지 이동, 페이지 include 등등)

    Bean과 관련된 태그도 있다. → 요즘 거의 안쓰긴 하지만 나중에 배움

  • <jsp: 붙은걸 말함 스크립트릿 아님

  • <jsp: 뒤에 동작이 나온다. forward, include 등등 (액션=동작)

forward

  • **jsp:forward page="이동할 페이지" />**

  • 포워딩 시키면 원래 페이지는 실행이 종료되고 이동한 페이지를 실행하는 것

  • 하나의 jsp페이지에서 다른 페이지로 강제 이동 시키는 것

  • 포워딩의 특성 sub.jsp을 줬음에도 main.jsp주소는 바뀌지 않는다. → 이게 제일 중요함! (웹 브라우저 에는 원래 페이지의 url이 남아 있다. 당연히 클라이언트가 접근한 주소는 바뀌지는 않는다. → 서버 안에서 일어나는 동작이기 때문에)

    주소가 바뀐다는 의미는 클라이언트가 다시 접속한다는 의미이다!!

    → redirect는 클라이언트에게 주소를 주고 그 주소로 접근하라고 함 → 그래서 주소가 변경됨

include

  • <**jsp:include**page="경로" />

  • 해당 파일의 실행 결과를 원 jsp페이지의 실행 결과에 삽입 시킬 때 사용한다. (동적 include)

    → incldue 지시자는 해당 파일의 소스 자체를 그대로 끼워넣기 하는 정적 include

  • 페이지를 모듈화 할 때 사용

  • 지정한 페이지를 태그가 위치한 부분에 포함시킴, jsp페이지가 실행될 때 처리된다.

param

  • <jsp:param name=“name” value=“abcde” />

  • name = request.getParameter(); → 이 방식으로 받으면 된다. (request 객체 이용)