본문 바로가기

네트워크, 서버12

(웹)로컬스토리지, 세션스토리지, 쿠키, 세션 / 이벤트 버블링, 캡처링 / 웹팩, 바벨 로컬 스토리지 - html5 나오면서 생김. 웹스토리지로써 최대 5mb까지 클라이언트에 영구 저장됨. ex)자동로그인 세션 스토리지 - html5 나오면서 생김. 웹 스토리지로써 최대 5mb까지 저장되며 브라우저 종료시 데이터 삭제됨. ex)폼정보, 비로그인 장바구니 쿠키 - 클라이언트가 서버와 통신시 항상 헤더에 넣어 보내는 키-값 파일임. 최대 4kb까지 가능하며 쿠키 생성시 지속시간을 정해서 지속시간이 끝나면 사라짐. 세션 - 쿠키기반이지만 브라우저가 아닌 서버에서 관리함. 클라가 접속하면 서버에서 세션ID를 발급해주고, 해당 ID에 데이터를 저장함. 브라우저는 쿠키로 해당 세션ID를 넘기고 서버는 받은 세션ID로 클라를 구별하고 데이터를 가져옴. 브라우저를 종료할때까지 인증상태를 유지하며 보안면에.. 2021. 7. 27.
(NoSQL)Redis 레디스란? - key-value 형식의 NoSQL이다. 이걸 어디에 쓰나? - 원격저장소, 메시지 브로커, 공유 메모리 등으로 사용된다. 보통 인메모리 기반이기에 데이터를 캐싱하는 데에 많이 쓴다고 한다. 레디스의 특징 - value값으로 String, Set, SortedSet, Hash 등 여러 데이터 형식을 지원한다. - SnapShot(특정 지점을 Disk에 백업하는 방식), AOf(모든 쓰기 연산을 log에 기록해서 기존의 명령어들을 재실행하여 복구)를 이용하여 메모리에서 삭제된 데이터 복구가 가능하다. - Replication(Master / Slave)이 가능하다. 해당 Redis인스턴스가 다운됬을때를 대비할수 있다. - 싱글 스레드 기반이기에 RaceCondition이 일어날리가 없다. 캐.. 2021. 7. 26.
(웹) CGI / WAS / Servlet / Servlet컨테이너 / JSP / Web MVC / Servlet 동작과정 CGI(Common Gateway Interface) - 클라이언트로 부터 요청 받은 웹서버와 프로그램이 통신하는 방법 WAS(WebApplicationServer) - 정적인 페이지를 처리하는 WebServer와 달리 동적인 페이지를 처리한다. 보통 WebServer로는 Apach, WAS는 Tomcat을 사용하며 WAS로 들어온 요청은 JSP, Servlet 등을 통해 처리 된다. Servlet - 클라이언트의 요청을 받아서 응답해주는 Java API이다. Servlet만으로 html을 응답할수 있기에 동적인 페이지의 웹 통신을 할 수 있지만 Java로 Html을 만들어서 응답하는 방식이 번거롭고 코드가 바뀔때 마다 매번 컴파일 해야하기에 JSP라는 대안책이 나왔다. Servlet 컨테이너 - 서블릿.. 2021. 7. 24.
(멀티쓰레딩, 비동기처리)다중 쓰레드 동기화 - Mutex 임계영역이란? - 함수 내에 둘 이상의 쓰레드가 동시에 실행하면 문제를 일으키는 하나 이상의 문장으로 묶여있는 코드블록 이러한 임계영역에서 문제를 피하고 다중 쓰레드를 동기화 시키는데 여러 기법들이 존재한다. 운영체제 마다 각 기법의 구현방법이 다르다. Mutex 임계영역을 통과할때 사용하는 자물쇠라고 보면된다. - 과정 뮤텍스 오브젝트를 초기화 해준 후 임계영역 진입부에 뮤텍스락을 걸어준다. 현재 진입한 스레드 외에 다른 스레드는 락을건 부분에서 락이 풀릴때까지 블로킹 되며 진입스레드가 작업 마치고 락을 풀고 나가면 기다리던 스레드 중 하나가 다시 진입하고 락을 걸게된다. 모든 임계영역내 작업을 마친 뒤 해당 뮤텍스 오브젝트를 해제하면 끝난다. 하지만 이렇게 락을 걸었어도 락을건 Blocking상태에서.. 2020. 10. 13.