개발/기술
-
VIP, HA개발/기술 2023. 11. 27. 22:16
VIP VIP 는 가상의 주소를 의미한다. 하나의 컴퓨터에 물리 ip 주소와는 별개로 새로운 가상 IP 주소를 설정할 수 있다. VIP 를 설정하면 같은 네트워크 내에서 설정한 vip 주소에 대한 요청을 받을 수 있게 된다. 하지만 아무 주소나 정할 수 있는건 아니고 몇가지 규칙이 있다. 네트워크 범위 네트워크의 서브넷 설정에 맞는 주소를 골라야한다. inet 192.168.1.4/24 로 설정된 경우 서브넷에 따라서 192.168.1.x 범위의 주소를 가상의 주소로 설정할 수 있다. 주소충돌방지 너무 당연하지만 기존에 있던 주소와 겹치면 안된다 HA(High Availability) VIP 는 고가용성 서비스를 구성할 때 주로 사용된다. 실제 사례를 알아보기 위해 먼저 데이터베이스의 프라이머리, 스탠드..
-
가상 스레드(Virtual Thread) 그리고 스프링개발/기술 2023. 11. 24. 20:19
1. 가상스레드란? 가상 스레드를 이해하려면 물리 스레드와 가상스레드의 차이점을 이해해야 한다. 1.1 물리스레드 학교 수업시간에 배웠던 스레드 개념이다. 하드웨어 기반 cpu 코어에서 실행되는 스레드다. 각 코어는 한번에 하나의 스레드를 실행할 수 있으며 멀티코어는 동시에 여러 스레드를 실행할 수 있다 시스템 리소스 시스템 리소스를 직접 사용한다. cpu 하나를 독차지 하고 있는 스레드라고 보면 된다. 가상스레드에 대한 개념이 없는 상태에선 이게 무슨 당연한 소리냐 싶을 수 있는데 일단 이렇게만 알고 있자. 계산집약적 작업에 효율적 직접 하드웨어 리소스를 사용하기 때문에 높은 CPU 사용량을 뽑아낼 수 있으므로 계산 집약적 작업에 적합하다 운영체제에서 관리 운영체제에서 관리되므로 컨텍스트 스위칭 비용이..
-
single threaded vs multi threaded개발/기술 2023. 3. 16. 16:15
싱글 쓰레드 시스템은 쓰레드 하나로 시스템을 구성하는 방식이고 멀티 쓰레드 시스템은 두개 이상의 쓰레드를 이용해서 프로그램을 구성하는 것을 말한다. 멀티 코어가 대세인 하드웨어 환경이라면 쓰레드를 늘려서 시간당 작업량을 늘리는게 당연히 좋지 않을까 하는 생각이 들겠지만 구조마다 장/단점이 있다. Single Thread 특징 Simplicity: 쓰레드가 하나만 있기 때문에 간단한 아키텍처를 구항할 수 있다. 개발하고 배포하고 유지하기가 쉽다. 멀티 쓰레드 환경에서 발생할 수 있는 동시성 이슈 같은 것은 고민하지 않아도 된다. Limited Concurrency: 싱글 쓰레드 환경에서는 요청 하나당 한개만 처리할 수 있다. 동시에 처리할 수 없기 때문에 응답 속도도 느려지고 througput도 좋지 않다..
-
HTTP 2.0 주요사항개발/기술 2023. 3. 1. 19:36
Multiplexed Streams HTTP1 .0 에서는 요청을 보내기 위해선 반드시 이전 요청이 완료돼야했기 때문에 속도면에서 딜레이가 있었다. 그래서 HTTP 1.1에서는 하나의 TCP 안에 두개 이상의 HTTP 요청을 담아 속도를 높일 수 있는 Pipelining을 기술을 도입했다. 동시에 여러개의 요청을 보낼 수 있기 때문에 속도면에서 HTTP 1.0 에서 발생한 딜레이를 줄일 수 있다. 그러나 순서가 보장돼야하는 한계가 있었다. 서버는 TCP에서 요청을 받은 순서대로 응답해야하기 때문이다. 그래서 앞선 요청에 의해 뒤에 있는 요청이 딜레이 되는 문제가 발생한다. 이미지 세장을 받는 경우 가장 앞선 이미지 응답이 지연되면 두, 세번째 이미지도 지연이 발생하게 된다. 이 문제를 Head Of Li..
-
HTTP개발/기술 2023. 2. 28. 17:32
HTML 문서, 이미지, 텍스트를 가져올 수 있는 프로토콜. 웹에서 이루어지는 모든 데이터 교환의 기초다. 브라우저인 클라이언트에서 보내는 메시지는 요청, 서버에서 응답하는 메시지를 응답이라 부른다. HTTP, TCP 클라이언트와 서버서 HTTP 요청, 응답을 교환하기 위해선 TCP 연결을 설정해야한다. 브라우저로 http://google.com 를 요청 할 때 HTTP 처리 순서는 아래와 같다. 브라우저는 DNS로부터 호스트 주소, google.com 대한 IP 주소를 가져온다 브라우저는 IP 주소와 Port에 대해서 TCP 연결을 형성한다 브라우저는 TCP 연결로 서버에게 HTTP 요청을 보낸다 브라우저는 TCP 연결로 서버로부터 HTTP 응답을 받는다 응답이 완료되면 TCP 연결을 종료한다. HTT..
-
HTTPS, TLS, SSL개발/기술 2023. 2. 28. 17:21
HTTPS HTTP는 Hyprtext Transfer Protocol의 약어로 HTML을 전송하는 통신 프로토콜을 의미한다. HTTPS는 Hypertext Transfer Protocover over Secure Socket Layer 로 SSL 위에서 이뤄지는 HTML 통신 규약을 의미한다. 간단히 데이터를 안전하게 전송, 전달 할 수 있도록 보안 기능을 추가한 HTTP 프로토콜이라고 말할 수 있다. TLS Transport Layer Security의 약자다. 과거에는 SSL로도 불렸다. TLS는 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약이다. TLS를 이용하면 클라이언트 서버 응용 프로그램이 네트워크로 통신할 때 암호화, 인증, 무결성을 보장한다 HTTP와 달리 암호화, 복호화 ..
-
JAVA - 다중상속을 허용하지 않는 이유는 뭘까?개발/기술 2023. 2. 24. 12:59
최근 면접에서 "Java가 다중상속을 허용하지 않는 이유는 뭘까요?" 라는 질문을 받았다. 상속은 오직 클래스 하나만 가능하다는 문법만 알았지 그 이유에 대해서 깊게 고민해보지는 않았다. "인터페이스는 다중으로 구현할 수 있는데, 상속만 이렇게 막은 이유가 있을까요?" 라는 추가질문이 이어지자 제대로 답변도 못하고 '정말 그렇네... 왜그렇게 만들었을까...?' 라는 생각이 면접을 마치고 집에 와서도 머릿속을 멤돌았다. java class 는 암시적으로 object 클래스를 상속하고 있다. 대부분의 클래스에서 기본으로 포함된 함수 toString(), hashCode(), equals() 가 object 로부터 상속받은 함수들이다. 클래스 상속 관계에선 위 함수들은 어떻게 처리될까? public clas..
-
Kubernetes Object개발/기술 2022. 2. 22. 21:30
Object Kubernetes 상에서 말하는 Object 는 Kubernetes 시스템 상에서 영속성을 지니고 있는 엔티티(Entity) 말한다. Kubernetes는 이 Entity를 이용해 클러스터의 상태를 나타낸다. Object가 나타내는 것은 컨테이너화돼 동작하는 애플리케이션이 무엇인지 애플리케이션이 사용하는 리소스는 어떤 것이 있는지 애플리케이션과 관련된 정책은 무엇인지 에 대한 것이다. 처음에는 Object라는 개념이 와닿지 않을 수 있는데 Kubernetes 가 하는 역할이 무엇인지 알아가다 보면 당연히 필요한 개념이라고 익히게된다. Object를 생성하면 Kubernetes는 지속적으로 동작하며 오브젝트가 존재하고 명세한 대로 동작하도록한다. 개발자는 오브젝트를 생성/변경/삭제 해서 시스..