인터넷(Internet) LAN(Local Area Network) 근거리 통신망 가까운 지역을 한 데 묶는 컴퓨터 네트워크 인터넷 Inter-Network 다양한 네트워크들을 서로 연결 지어주는 범지구적 네트워크 웹(World Wide Web) 인터넷 위에서 동작하는 서비스들 중 하나 정보(자원)의 공유를 목적으로 한다. 수 많은 요청과 응답 사이클의 연속으로 이루어진다. 서버 정보, 자원, 서비스를 제공하는 측 클라이언트 정보 자원 서비스를 사용하는 측 HTTP(HyperText Transfer Protocol) 웹 요청과 응답에 관한 클라이언트와 서버 사이의 규약(약속) 비연결성(Conectionless) 응답을 마치면 연결을 끊어버린다. 무상태(Stateless) 서버와 클라이언트는 하나의 요청이..
HTTP connectionless 비연결성 stateless 비상태성 → 확장성이 높아진다. 그러나, 로그인 여부를 확인할 수 없다. 따라서 쿠키와 세션을 사용한다. 특정 웹 페이지에 접속하면 서버는 쿠키를 만들어 브라우저로 보낸다. 브라우저는 쿠키를 저장하고 있다가 서버에 정보를 요청할 때 쿠키에 저장된 정보를 같이 보낸다. 서버는 쿠키를 통해 현재 상태를 파악하고 이에 따른 정보를 보내준다. 쿠키 헨젤과 그레텔 동화에서 유래되었다. 로그인 검색 기록 등을 쿠키에 저장한다. 웹사이트 재방문시 효율적으로 서비스를 제공하기 위해 서비스 개선을 위한 통계자료 광고 보안상 위험이 존재한다. 쿠키의 구성요소 키 값 도메인 경로 기한 보안 요소
Web Server vs WAS Web 인터넷을 기반으로 한, 정보를 공유, 검색할 수 있게 하는 서비스 URL(주소), HTTP(통신 규칙), HTML(내용) Server 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템 Web Server 인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터 Web Application 웹에서 실행되는 응용 프로그램 WAS(Web Application Server) 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크 웹 애플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달한다. php, jsp, asp와 같은 언어들을 사용해 동적인 페이지를 생성할 수 있는 서버 프로그램 실행 환경과 데..
개발자의 겨울이 끝났다. → 봄이 왔다 (Spring 등장) Spring vs Spring Boot Dependency 모든 dependency를 버전까지 정확하게 한땀 한땀 —> 짧아졌다. 버전 관리도 권장 버전으로 자동 설정 Configuration 매우 길다. —> application.properties / applications.yml 사용 : 간단하다. Tomcat 등(내장서버, embedded server) —> 내장 서블릿 컨테이너 덕분에 jar 파일로 간단 배포 가능 ++Security, JPA 등 다른 프레임워크를 간단하게 사용할 수 있다.
Servlet 웹 애플리케이션을 만들 때 필요한 인터페이스 Spring Web MVC Spring Framework에 있는 모듈 Web Service를 만든다. MVC 패턴을 사용한다. Servlet을 사용한다. web server는 정적 데이터만을 전달했다. 동적 데이터를 처리하는 CGI 가 등장했다. CGI : 동적 데이터를 처리하는 인터페이스 많은 사용자를 처리할 수 없었다. 개선사항 process 중심 → thread 중심 여러 instance → singleton Web Application Server 등장 동적 데이터를 처리한다. Servlet : 인터페이스 HTTPServlet : Servlet 을 구현한 것 Spring Web MVC에서는 Dispatcher Servlet을 사용한다.
Index 검색을 위해 임의의 규칙대로 부여된 임의의 대상을 가리키는 무언가 Clustered Index Cluster : 군집 Clustered Index : 군집화된 인덱스 데이터와 인덱스가 군집화된 인덱스 데이터와 인덱스가 아주 밀접하게 관련되어 있음 정렬이 되어있어 범위를 이용할 때 강점을 보인다. 새로운 데이터가 추가되면 추가 작업이 필요하다. PK와 거의 같다. 테이블에 하나만 존재할 수 있다.(여러 개로 정렬할 수 없기 때문) Non-Clustered Index 데이터와 연결된 것이 아닌 인덱스와 연결된 것 간접참조하는 형태 순서 상관 없음 한 테이블에 여러 개 가능하다. 추가 저장 공간 필요 X Insert시 추가 작업 필요(인덱스 생성)
아파치, NginX, IIS : 대표적인 웹 서버 APM(Apachi + PHP + MySQL) : 동적 웹을 구성할 수 있다. 톰캣 Web Application Server 동적 웹사이트를 전문적으로 처리한다. 스프링으로 코딩한 웹앱을 war 파일로 빌드하면 그 안에 .class 파일들, jsp, 이미지, css, javascript 파일 등이 압축되어 있다. war파일을 넣고 명령어를 실행하면 스프링 서비스가 톰캣을 사용행서 돌게 된다. 웹 서버 기능 1. reverse proxy 손님들의 정보를 감춘다. 서버 내부적으로 파일들이 어느 폴더에 들어있는지, 서비스가 몇 번 포트로 돌고 있는지 등을 감추는 것 → 보안에서 장점을 가진다. 2. 로드밸런싱 여러 WAS 사이에서 밸런스를 맞추는 것 업데이트를..
DOM(Document Object Model) 웹 페이지에서 자바스크립트로 요소들을 제어하는데 사용한다. 웹 사이트에 접속하면 브라우저가 html 코드를 읽어들인다. 이를 해석, 파싱하여 DOM을 만든다. HTML을 구성하는 것을 트리 형태로 만든 것 각각의 요소들은 Node라고 부른다. BOM(Browser Object Model) 사용자가 브라우저에서 일어날 일들을 프로그래밍 할 수 있도록 브라우저가 제공한 것 WEB API : DOM과 BOM을 포함하여 브라우저가 제공하는 모든 것
웹은 웹 브라우저가 html, css, javscript 를 읽어 해석하는 방식으로 작동한다. 웹 브라우저는 다양한 종류가 있다. 과거에는 익스플로러가 독점을 하고 있었으나, 사파리, 크롬 파이어폭스 등 다양한 웹 브라우저가 등장하였고, 웹 표준의 질서를 만들어왔다. 익스플로러는 웹 표준을 따라가지 않았고, 결국 도태되며 edge라는 새로운 브라우저를 내세웠지만 아직 점유율이 낮다. 여전히 익스플로러 사용자가 있기에 프로그래밍 과정에서 골머리를 앓는다. Cross Browsing 여러 브라우저에서 사이트가 정상적으로 동작하는지 확인하는 것
쿠키 사이트를 방문하고 이용할 때 브라우저에 저장되는 내용들 사용자 측이 정보를 저장하고 있는 상태다. 보안 문제가 발생할 수 있다. 세션 다른 누군가에게 노철되어서는 안되는 서비스 제공자가 직접 관리해야 하는 정보를 서버 안에서 세션으로 관리한다. 사이트나 서버에 정보가 저장되는 상태다. 캐시 가져오는데 비용이 드는 데이터를 한 번 가져온 뒤에는 임시로 저장해두는 것