일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준 장학금
- 최소힙
- heapq
- 연결리스트
- 자료구조
- HTTP
- spring
- jpa n+1 문제
- 최대 힙
- 점근적 표기법
- 강화학습
- 스케줄링
- python
- AVL트리
- 멀티프로세서
- SpringSecurity
- 백준장학금
- 엔티티 그래프
- MSA
- 이분탐색이란
- posix
- 완전이진트리
- 운영체제
- 힙트리
- JPA
- 알고리즘
- 연결리스트 종류
- JVM
- Kruskal
- 프로세스
- Today
- Total
목록전체 글 (106)
KKanging

JVM의 클래스 로딩 과정JVM 의 바이트 코드 실행 전체 구조자바 소스 파일을 컴파일 하여 자바 바이트 코드로 변환하면 제일 먼저 메인 메서드의 클래스가 클래스 로더에 의해 로드 된다.클래스 로더에 의해 클래스의 정보 멤버 변수, 전역 변수, 상수, 메서드,, 등등이 Method Area에 점유하게 된다.실행 엔진에 의해서 실행을 한다이때 실행을 진행하다가 클래스가 참조 되어 있는 부분을 발견하면 클래스 로더로 로드 된 클래스인지 확인한다 (로드 된 클래스라면 그냥 Method Area에 가져다 쓸 것)만약 로드 되지 않았다면 클래스 로더가 해당 클래스를 로드하고 초기화 한다.다음 모든 경우에 클래스를 로드하고 초기화 한다.생성자 호출(클래스 생성)클래스의 메서드 호출(당연)클래스의 전역 메서드 호출클..

JVM Run Time Data AreaJVM 전체 구조JVM 은 다음 구조를 따른다Javac 가 컴파일한 자바 바이트 코드(.class) 를 Class Loader가 Load 한다.→ Load 할때Run Time Data Area 에 올린다.Load 된 데이터를 기반으로 Execution Engine (실행 엔진) 은 프로그램을 실행한다.실행할때 RunTimeDataArea를 실행시에 메모리로 사용하는데 이를 RunTimeDataArea 를 사용한다.이때 GC 가 힙 메모리에 불필요한 메모리를 삭제하고 메모리 주소 관리를 하는 등에 작업을 한다. RunTime Data AreaJVM의 메모리 구조이다.JVM이 실행되면 OS로 부터 메모리를 할당 받고 JVM은 메모리를 위 구조로 나누어 용도에 맞게 사용..

JDK, JRE, JVM 의 구분JVMJVM은 Java Virtual Machine 의 약자이다. 단순하게는 컴파일러라고 생각할 수 있음 하지만 C/C++ 같은 한번 컴파일로 번역하는 것이 아닌 .class 파일로 컴파일 한 후 JVM 이 한줄한줄 읽는 인터프리터 역할을 하면서 컴파일러가 많이 사용하는 코드는 미리 번역해놓는인터프리터 + 컴파일러 역할을 한다.추가로 JVM 은 메모리 관리 ( GC ) 그리고 최근에는 User 레밸 스케줄링의 역할도 관여한다. JAVA 의 모토는 "Write Once, Run Anywhere"(한 번 작성하면 어디서나 실행 가능) 현대의 언어는 웬만해서는 OS의 종속적이지 않지만 당시 java 의 위 슬로건은 혁명이었다.java 의 슬로건을 현실화 해준 것이 JVM이다.J..

6.1 인터넷 비디오오늘날 인터넷 대역폭은 스트리밍 비디오가 차지함 하지만 스트리밍 비디오는 그만큼 네트워크의 대역폭에 신경이 많이 씀 비트 전송률 과 비디오 품질을 반비례한다.6.2 HTTP 스트리밍 및 대쉬 (DASH)HTTP 스트리밍에서 비디오는 HTTP 서버 내의 특정 URL을 갖는 일반적인 파일로 저장된다. 사용자가 비디오 시청을 원하면 클라이언트는 서버에게 TCP 연결을 설립하고, 해당 URL에 대한 HTTP GET 요청을 발생시킨다. 하지만 HTTP 스트리밍은 유튜브 등 많은 시스템에서 실제 적용되고 있으나, 중요한 문제점을 가지고 있다. 모든 클라이언트들이 그들 사이의 가용 대역폭의 차이에도 불구하고 똑같이 인코딩된 비디오를 전송받는다는 것이다. 이러한 문제점으로 인해 새로운 형태의 HTT..

4. DNS : Domain Name System호스트의 ip 주소를 사용자가 기억하기 쉽게 매핑해주는 역할을한다. 애플리케이션 계층에서 실행되고 Transport 계층으로 가기전에 실행된다. UDP 상에서 실행된다. DNS 동작 원리 개요DNS 서비스는 분산 계층 데이터베이스로 이루어져 있다. 분산 계층인 이유 - 서버의 고장 : 만약 이 네임 서버가 고장나면 전체 인터넷이 작동x - 트래픽 양 : 만약 DNS 서버가 모든 DNS 질의를 처리한다면 막대한 트래픽을 받게됨 - 먼 거리 : 중앙 집중이면 항상 DNS 서버가 가까울 수 없다. - 유지 관리 요약하면 중앙 집중 데이터베이스는 확장성이 전혀 없다. 분산된 DNS 서버는 3가지 분류로 나뉜다. 1. 루트 서버 2. 최상위 레밸 도메인 서버 (To..

3. 인터넷 전자 메일오늘날에 전자메일의 주요 구성요소는 다음과 같다 1. 사용자 에이전트 2. 메일 서버 3. SMTP 사용자 에이전트사용자 에이전트는 메시지 작성 및 메시지 읽기 시 메일 서버를 이용하는 에이전트이다.메일 서버메일 서버서버는 2가지를 가지고 있는다. mailbox : user로 부터 온 메시지를 포함한다. message queue : 보내기 위한 메시지를 가지고 있는다. SMTPSMTP 는 TCP 위에서 동작하는 신뢰적인 메시지 프로토콜이다. 애플리케이션 계층 프로토콜이다. 중간 메일 서버가 존재하지 않는다. 이때까지 bob 의 메일서버에 bob이 데이터를 받는다고 표현했지만 데이터를 보내는거와 다르게 이는 현실성이 없다. 이유는 bob의 메일 서버가 항상 켜져있어야 메일이 도착하기 ..

1. 네트워크 애플리케이션의 원리저번 챕터에서 배웠듯이 애플리케이션 계층은 네트워크 코어에 해당하는 스위치나 라우터에서 작성하는 소프트웨어를 개발할 필요가 없음 - 호스트의 응용 프로그램만 개발하면 되므로, 응용 프로그램을 쉽게 개발하여 널리 보급되는 원동력을 가진다.1.1 네트워크 애플리케이션 구조서버- 클라이언트 아키텍처서버 - 항상 동작하는 호스트 - IP 주소가 고정 - 확장성 때문에 데이터 센터에 있는 경우가 많음 클라이언트 - 서버와 접속 및 통신 - 서버와 가끔식 연결 - IP 주소가 변경됨 ??? - 클라이언트 간의 직접 통신은 하지 않음 P2P 아키텍처- 항상동작하는서버가없음 - 임의의호스트간의직접통신 - 피어(peer)는다른피어들에게서비스 - ‘요청’과서비스‘제공’을동시에수행 -- 자..

Network CoreNetwork core : 상호 연결된 라우터들의 그물망 어떻게 라우터들은 데이터를 전송할까? 1. 패킷 교환 방식 2. 회선 교환 방식패킷 교환 방식패킷 교환 방식이란? -> 패킷 교환 방식은 호스트는 애플리케이션 계층의 메시지를 패킷으로 분할 - 출발지부터 목적지까지의 경로 상에 있는 링크를 통해 다음 라우터로 패킷을 전달 - 요구할 때만 전송 링크 사용을 할당 패킷 교환 방식의 순서 - 클라이언트가 패킷을 목적지 주소로 보내면 가까운 라우터가 받을 것 - 포워딩 테이블을 확인하여 다음 링크 경로로 포워딩하게 된다. 포워딩 vs 라우팅 라우팅 : 출발지부터 목적지까지 많은 라우터를 거치는데 총 경로 포워딩 : 목적지까지에 당장 라우터의 입장의 링크 경로 패킷 교환 : ..

인터넷의 구성요소들Billions of connected computing deviceshosts = 종단 시스템app : 가장자리에패킷 스위치라우터와 스위치통신링크광섬유 , 구리 , 무선 , 위성통신transmission rate : 대역폭네트워크구성 요소로 본 인터넷인터넷 : ISP 프로토콜 : 메시지의 송신/수신 제어 (HTTP , streaming viedeo , Skype, TCP , IP , WiFi , 4G/5G , Ethernet) 인터넷 표준 : IETF RFC 서비스 측면에서 본 인터넷- 애플리케이션을 제공하는 인프라구조 - 분산 애플리케이션에 프로그래밍 인터페이스 프로토콜이란프로토콜은 규약이다. 프로토콜은통신개체간의교환되는 메시지포맷과순서뿐만아니라, 메시지의송/수신과다른이벤트에 따..

UsernamePasswordAuthenticationFilter란우리가 로그인을 시도할 때 Security에서 기본적으로 동작하는 Filter이다.Security에서 디폴트로 제공하고 만약 SecurityFilterChain을 커스텀한다면 제공해주지 않는다.즉, 우리가 주로 커스텀 해야하는 Filter라는 뜻이다.AuthenticationFilter 구조AuthenticationFilter의 기본 호출 구조이다.호출 순서는 다음과 같다AuthenticationFilter호출UsernamePasswordAuthenticationToken (비인증) 생성AuthenticationManager.authenticate(token) 호출구현체인 ProviderManager 호출ProviderManager 는 A..