목록프로그래밍 (7)
M8z.log

1. 개요 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼이다. 쿠버네티스는 컨테이너 런타임을 통해 컨테이너를 다루는 도구를 말한다. 쿠버네티스가 해 주는 일은 여러 서버(노드)에 컨테이너를 분산해서 배치하거나, 문제가 생긴 컨테이너를 교체하거나, 컨테이너가 사용할 비밀번호나 환경 설정을 관리하고 주입해 주는 일을 한다 이것을 컨테이너 오케스트레이션이라고 한다. 1.1. 배포 방법에 따른 여정 1.1.1. 전통적인 배포 시대 한 물리 서버에서 여러 애플리케이션이 함께 리소스를 나눠 사용하였다. 리소스 할당 문제 발생. 1.1.2. 가상화된 배포 시대 단일 물리 서버의 CPU에서 여러 가상 시스템(VM)을 띄워 애플리케이션을 분리, 격리시켰다. 보안성..

JSSE(Java Secure Socket Extensing)는 데이터 암호화, 서버 인증, 메시지 무결성 및 선택적 클라이언트 인증을 위한 기능을 포함하며 자바 버전의 SSL(Secure Sockets Layer)과 TLS(Transport Layer Security) 프로토콜을 구현한 프레임워크를 제공한다. JSSE는 클라이언트와 서버간 컨텐츠를 전달하기 위해 TCP/IP 프로토콜을 이용하는 모든 응용 프로그램 프로토콜(예: HTTP, Telnet, FTP)에 안전한 데이터 통신을 보장한다. JSSE가 지원하는 암호화 프로토콜과 버전은 다음과 같다. TLS: version 1.0, 1.1, 1.2, and 1.3(JDK 8u261부터 지원) SSL: version 3.0 JSSE API는 SSL/TL..

개요 SSL(Secure Socket Layer) 1995년에 넷스케이프에서 개발한 암호화 기반 인터넷 전송 프로토콜이다. 1996년에 3.0 이후 새로운 버전은 없으며 최종버전인 3.0이 TLS 1.0으로 대체되었다. TLS는 IETF(Internet Engineering Task Force, 국제 인터넷 표준화 기구)에서 관리하는 국제 표준 통신 프로토콜이다. 현재 SSL은 여러 가지 보안 문제로 사용되지 않고 있으며 대부분 TLS 버전(1.0, 1.1, 1.2, 1.3)을 사용하고 있다. 이름이 바뀐것은 SSL을 개발한 넷스케이프가 업데이트에 참여하지 않게 되어 소유권을 변경하기 위함이다. 흔히 우리가 인터넷 통신에서 많이 사용하는 HTTPS(Hypertext Transfer Protocol Sec..

접속 권한 획득 (비대칭 방식 사용) 서버 또는 사용자가 Key Pair(키 페어, 키 쌍)를 생성한다. 키 페어는 공개 키와 개인 키로 이루어져 있다. 비대칭 암복호화 방식 사용. 비대칭 암호화 방식은 이전 포스팅을 참고 : https://essue.tistory.com/entry/%EA%B3%B5%EA%B0%9C-%ED%82%A4%EB%B9%84%EB%8C%80%EC%B9%AD-%ED%82%A4-%EC%95%94%ED%98%B8%ED%99%94-%EB%B0%A9%EC%8B%9D 보통 공개 키는 .pub, 개인 키는 .pem의 파일 확장자를 갖는다. AWS나 NBP, OCI 등 클라우드 서비스 기반 서버 생성시 키 페어를 생성하는 경우 사용자에게 개인 키(.pem) 파일을 제공한다. 사용자가 키 페어를..

암호 방식의 한 종류로 비밀 키 암호 방식과 달리 암호화와 복호화에 이용하는 키가 다른 방식을 말한다. 비대칭 암호라고 부르기도 한다. 원리 공개 키 암호 방식은 출제자만이 알고 있는 특정한 종류의 정보(비밀 키) 없이는 매우 풀기 어려운 수학적 문제(공개 키)를 바탕으로 만들어진다. 키를 만드는 사람은 이 문제(공개 키)를 일반에 공개하고 특정한 정보(비밀 키)는 자신만이 알 수 있도록 숨긴다. 그러면 어떤 사람이건 이 문제를 이용해 메시지를 암호화하면 키를 만든 사람만이 이 문제를 풀어 원래 메시지를 해독할 수 있다. 기밀성 언제 대칭 암호화를 사용하고, 언제 비대칭 암호화를 사용할까? 비대칭 암호화는 클라이언트와 서버 간 시크릿을 교환할 때 사용한다. 실생활에서는 양방향 비대칭 통신이 필요하지 않다..

1. 개요 Java EE 스펙을 구현한 EJB는 지금까지 분산 환경을 지원하기 위하여 필요 했던 작업을 단순화 시켰다. 그러나 개발에 있어 소스 수정, 빌드, 배포, 테스트와 같은 복잡한 과정으로 인한 개발 생산성의 저하와 성능이 느려지는 등 여러가지 문제점들이 드러나게 되었고 그 대안으로 나타난 것이 스프링 같은 Lightweight 프래임워크이다. 스프링 프래임워크에 관심을 가지는 가장 큰 이유는 EJB의 단점을 극복할 수 있을 뿐 아니라 Java EE 기술이 발전하면서 점점 더 복잡해지고 있는 스펙들을 개발자들이 사용하기 쉽도록 지원하고 있기 때문이다. 2. 동작 원리 스프링 프레임워크로 제작된 Java 프로그램은 스스로 동작하지 못한다. 그럼 어떻게 동작 시키고 실행 시킬 수 있을까? Spring..

1. 개요 JVM(Java Virtual Machine)은 자바 코드(.java)를 컴파일해서 얻은 바이트 코드(.class)를 메모리에 배치하고 배치된 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꾸어 실행시켜주는 역할을 한다. ‘Write once, run anywhere’ 라는 말 처럼 JVM만 설치되어 있으면 동일한 자바 바이트 코드를 어떠한 플랫폼에서도 실행시킬 수 있다. 1.1. 주요 특징 스택 기반의 가상 머신 가비지 컬렉션(Garbage Collector) - 힙 메모리 영역에 생성된 객체들 중에서 참조되지 않은 객체들을 탬색 후 제거하는 역할 데이터 흐름 분석(data flow analysis)에 기반한 자바 바이트코드 검증기를 통해 스택 오브플로우, 명령어 피연산자의 타입 ..