SW과정 주말 보충 강의 0918(1)

JongseokLee·2021년 9월 18일
0
post-thumbnail

SW과정 주말 보충 강의 0918(1)

자바 기본 1일차

Static, heap, stack, 오버로딩의 한계와 오버라이딩

클래스, 오브젝트, 인스턴스 차이

객체지향 원칙(상태, 행위, 책임)

Byte stream과 Buffer 등...


1. Intro 강사님 소개

다운로드 바로가기
깃허브
블로그


2. 폴더 vs 패키지

패키지안에는 무조건 .java 파일만 들어가야함
폴더는 아무 파일이나 다 가능함


3. 메모리 정리

PC는 CPU와 RAM 메모리만 있으면 실행이 가능하다.
CPU는 연산장치, RAM은 저장장치 그런데 RAM은 전류로 저장을 하기 때문에 휘발성이고, 전류가 끊어지면 저장되어있던 데이터가 다 사라진다.
8비트(1Byte)는 영어 1글자이고, 한글은 16비트(2Byte)이다.(중국어 3Byte, 아프리카 4Byte)
2^8은 256(0~255)
2차 세계대전 당시 통신을 위해서 소통하던 라인은 Byte Stream(개울)이다.
메모리 한 주소에 저장되는 용량값은 1Byte이다.

4. http 프로토콜(논문)

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를 화면에 뿌려주고 싶을 때 리퀘스트를 유지해야함 세션에 저장하는 것 보다 리퀘스트에 저장하는게 더 좋음 리퀘스트를 유지하지 않는 전력이 뭐하는지만 알면됨

profile
DataEngineer Lee.

0개의 댓글