Static, heap, stack, 오버로딩의 한계와 오버라이딩
클래스, 오브젝트, 인스턴스 차이
객체지향 원칙(상태, 행위, 책임)
Byte stream과 Buffer 등...
패키지안에는 무조건 .java 파일만 들어가야함
폴더는 아무 파일이나 다 가능함
PC는 CPU와 RAM 메모리만 있으면 실행이 가능하다.
CPU는 연산장치, RAM은 저장장치 그런데 RAM은 전류로 저장을 하기 때문에 휘발성이고, 전류가 끊어지면 저장되어있던 데이터가 다 사라진다.
8비트(1Byte)는 영어 1글자이고, 한글은 16비트(2Byte)이다.(중국어 3Byte, 아프리카 4Byte)
2^8은 256(0~255)
2차 세계대전 당시 통신을 위해서 소통하던 라인은 Byte Stream(개울)이다.
메모리 한 주소에 저장되는 용량값은 1Byte이다.
stateless 와 stateful
아파치 / 톰켓
URL / URI
MVC 패턴
1) Http 프로토콜
약속이라는 개념
두 대상이 수평적 관계에서 하는 약속이다.
2) 인터페이스
엑셀을 밟으면 앞으로 나간다.
갑과 을의 관계에서 권한을 통해서 일방적으로 정해진 룰을 따르게 만듦 자동차 회사에서 정해준 것
3) 최초의 프로토콜 (이걸 이해해야지 웹을 이해할 수 있다)
스위스에 SUN이라는 입자 물리 연구소가 있음
전세계 과학자들이 다 모임 1만명 정도가 있음
4) 브라우저란 .html을 읽을 수 있는 해독기
5) 제일 끝단에 파일명이 있으면 URL
6) 프로그램을 가지고 있다가 누군가가 요청했을 때 넘겨주는게 웹 서버임 서버(갑), 클라이언트(을)
7) 기본적으로 웹은 Stateless 상태가 없는 서버로 시작을 함
서버는 저장소 session을 씀
브라우저는 이것을 저장하기 위해서 cookie를 씀
브라우저가 알아서 값들을 들고감 이런 것들이 프로토콜임
이러한 프로토콜 모임이 Http다.
8) 웹서버는 데이터를 공유하는 폴더이고 갑이다. (데몬)
9) 5876이라는 것은 쿠키값임
10) Get 데이터를 Request/ Post 데이터를 Response
11) 아파치 vs 톰켓
아파치 : 웹서버(갑)
브라우저가 아파치(IP주소는 로컬 호스트)한테 url을 요청함
주소에 치는 것은 전부다 Get요청임 아파치가 a.txt파일을 넘겨줌
이제 선이 끊김 stateless라서
원하는 파일이 파일이 없으면 404에러코드 출력
100 기다려 나 바빠(대학교 수강 신청)
200 통신 성공 (Status Code)
300 Re-direction 다른 페이지를 응답했다
400 요청을 잘못했다. 클라이언트의 잘못이다.
500 서버오류(프로그램을 잘못 만듦)
톰켓 : WAS(Web Application Server)
자바를 해석해서 HTML로 바꿔서 응답해주는 프로그램
템플릿 HTML 사이에 자기 언어를 집어 넣는 것(jsp)
브라우저는 HTML 해석기(자바스크립트, css 등) +스크립트는 기생언어이다.
노드.js 브라우저 없이도 자바스크립트를 돌려주는 프로그램 실행환경 더이상 기생 언어가 아니다. 독립적인 언어가 되어버림, 비동기로 선언됨
URL요청 다이렉트로 파일을 요청하는 것
URL방식은 입구가 없다. 공통 로직을 처리하지 못함 그래서 모든 로직들이 각자의 파일을 다 가지고 있어야함 그래서 중간에 컨트롤러를 만드는 것임
컨트롤러는 클라이언트의 요청을 받아서 필요한 파일을 찾아주는거임
프론트 컨트롤러 패턴, 중간에서 요청을 받는것이 컨트롤러다
URI요청 => 컨트롤러로 감
/board?name=a (URI요청)
컨트롤러가 a를 파싱해서 해당하는 값을 찾아줌
web.xml 필터링의 역할을 함 배포서술자
필요한 정보를 적어둠(총 소지자 막아, 12시 이후로는 막아)
그냥 슬러시(/)만 적어놓으면 index.jsp로 보내라
xml파일은 중간 데이터라고 함, 결국 java파일로 바껴서 메모리에 new되어 뜸
모든 요청은 컨트롤러로 감 외부에서
컨트롤러는 클라이언트랑만 관게를 함
클라이언트는 브라우저랑 관계함
컨트롤러가 응답할때 두 가지 방법이 있음
만약 로그인 페이지를 줘라고 요청하면(URI 요청)
로그인 파일을 찾으러감 이곳이 view임 파일을 찾으면 응답함
이때는 CV만 있으면 돼 Controller랑 View
회원가입 페이지를 줘 CV만 있어도 되긴함
회원 목록을 줘, DAO(Data Access Object)가 필요함
이부분을 Model이라고 부름
스프링은 다른 파일을 응답해서 request를 안날리고 유지하는 기능이 있음
리퀘스트 디스팻처
URL이 좋은점은 공통 로직을 만들 수 있다. web.xml이 공통 입구이다
컨트롤러가 있으면 리퀘스트로 응답이 두 번 일어난다. 리퀘스트를 유지해야한다. DB를 화면에 뿌려주고 싶을 때 리퀘스트를 유지해야함 세션에 저장하는 것 보다 리퀘스트에 저장하는게 더 좋음 리퀘스트를 유지하지 않는 전력이 뭐하는지만 알면됨