Kubernetes 설치에 대해서 다룬다. 이번에는 Ubuntu 20.04 LTS, Centos 8.2 기반으로 진행했으며 이전에 설치에서 CNI 를 Calico 로 진행 했다. 더 나가 Helm, Metric Server 까지 진행 한다. 설치 환경은 다음과 같다. Master Distribution: Ubuntu 20.04 IP: 192.168.96.31 Hostname: kmaster account: systemv Worker Node Distribution: CentOS 8.2 IP: 192.168.96.32 Hostname: knode account: systemv CNI: Calico Helm 설치 Metric Server 설치 공통 설정 부분 Master, Node 두 서버 모두 Static IP 주소를 가지고 있어야 한다. 그리고 모두 일반 계정을 가지고 있어야 […]
VSCode 폰트 변경하기
VSCode 폰트(font) 변경하기에 대해서 알아본다. 환경도 윈도우즈가 아닌 리눅스(Linux) 에서 VSCode 폰트 변경이다. 리눅스 환경에서 폰트변경은 뭐든 쉬운 일이 아니다. 폰트(font) 알기 – fc-list 리눅스에서 폰트는 fc-list 명령어를 통해서 알 수 있다. $ fc-list /usr/share/fonts/truetype/tlwg/TlwgTypo-Bold.ttf: Tlwg Typo:style=Bold /usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold /usr/share/fonts/truetype/noto/NotoSansThai-Regular.ttf: Noto Sans Thai:style=Regular /usr/share/fonts/truetype/noto/NotoSansModi-Regular.ttf: Noto Sans Modi:style=Regular /usr/share/fonts/opentype/urw-base35/URWBookman-LightItalic.otf: URW Bookman:style=Light Italic /usr/share/fonts/truetype/fonts-kalapi/Kalapi.ttf: Kalapi:style=Regular /usr/share/fonts/truetype/fonts-gujr-extra/Rekha.ttf: Rekha:style=Medium 결과를 보면 다음과 같은 정보를 보여준다. 설치된 폰트 파일(전체 경로 포함) 폰트 이름. 스타일. 스타일은 Regular, Bold, Italic 등이다. 옵션없이 실행하자 설치된 모든 폰트들을 […]
Oracle Linux 8 UEK 커널 설치
Oracle Linux 는 UEK(Unbreakable Enterprise Kernel) 라고 해서 커널을 제공 한다. Oracle 은 이를통해 최신의 커널을 제공하고 자신들만의 퍼포먼스 패치를 더해서 고성능을 낼수 있도록 했다. Oracle Linux 8 에서 UEK 커널을 설치해 보자. Yum Repository 확인 Oracle Linux 8 에는 uek 를 위한 yum repository 가 추가되어 있다. 다음과 같이 확인이 가능하다. yum repolist Failed to set locale, defaulting to C.UTF-8 repo id repo name ol8_UEKR6 Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64) ol8_appstream Oracle Linux […]
Oracle Linux 8.2 설치
Oracle 에서 만들어서 배포하는 Oracle Linux 8.2 를 설치해 본다. 현 시점(2020.07) 에서 최신버전은 Oracle Linux 8.2 이다. 다운로드 Oracle Linux 를 설치를 위해 준비된 이미지는 두가지로 전체 패키지를 담은 DVD 이미지와 Boot 이미지를 제공한다. Boot 이미지는 또 일반 커널과 UEK 커널을 가지는 버전으로 제공한다. 어느걸 하던 상관은 없다. ]# wget https://yum.oracle.com/ISOS/OracleLinux/OL8/u2/x86_64/x86_64-boot-uek.iso –2020-07-23 16:53:15– https://yum.oracle.com/ISOS/OracleLinux/OL8/u2/x86_64/x86_64-boot-uek.iso Resolving yum.oracle.com (yum.oracle.com)… 104.75.8.194 접속 yum.oracle.com (yum.oracle.com)|104.75.8.194|:443… 접속됨. HTTP request sent, awaiting response… 200 OK Length: 682622976 (651M) [application/octet-stream] Saving to: ‘x86_64-boot-uek.iso’ x86_64-boot-uek.iso 100%[===============================================================>] 651.00M […]
Spring5 Security 기초 템플릿 – Session
이 글은 Spring5 에 Spring-Security 에 대한 기초 템플릿이다. Session 유지를 위해서 Redis 를 필요로 한다. 또, ElasticSearch 의 RestHighLevelClient 로 ElasticSearch를 연결 한다. 데이터베이스는 JNDI 설정으로 연결 된다. 다음과 같은 내용을 담았다. JDK 11 Tomcat 서버 9 를 이용. spring-session.xml 을 작성해 Redis 를 세션으로 사용하도록 했다. JNDI 를 이용해 MySQL 에 연결된다. Redis 설정한 이유는 Spring Security 에 인증을 InMemory 를 요구 한다. 이는 다음과 같은 설정 때문이다. 인증을 위한 패스워드가 {bcrypt} 로 되어 있다. 이 설정은 InMemory […]
Spring5 Security 기초 템플릿
이 문서는 Spring5 Security 기초 템플릿에 대한 것이다. Spring5 에 Spring-Security 를 이용해 기초적인 로그인을 구현 했다. Session 은 InMemory 가 아닌 WAS 서버에 세션을 저장한다. 로그인 정보는 spring-security.xml 에 정의된 것을 그대로 사용했다. 그야말로 기초적인 내용만 담았다. 이 템플릿이 동작하기 위한 조건은 다음과 같다. Java 1.8 기반. 데이터베이스가 연결되어 있어야 한다. 데이터베이스는 MySQL 이다. WAS 서버에 JNDI 를 연결된다. users 테이블이 필요한데, user.sql 파일에 내용이 있다. spring security 의 Role 기반 권한 접근 제어. context root 는 malluser 이다. […]
Mybatis에 DAO 와 Mapper
SpringFramework 을 이용하다보면 데이터베이스 액세스를 위해서 MyBatis 를 사용하곤 한다. SQL 매퍼라고 불리기도 하는 것인데, 이를 이용하면 손쉽게 자바 코드와 SQL 문을 분리해줄 수 있을뿐만 아니라 MyBatis 에서 제공하는 여러가지 추가적인 기능을 이용해 데이터베이스를 좀 더 유연하게 사용할 수 있다. DAO 보통 MyBatis 를 이용할대는 DAO 를 구조를 사용하곤 했다. Data Access Object 라고 불리는 것으로 말 그대로 데이터 접근을 위한 객체로서 sqlSession 객체를 이용해 데이터베이스 조회만 전담하는 객체다. 이 구조는 인터페이스와 그것을 구현한 구현체 클래스가 있어야 한다. 이를 위해서 […]
Oracle JDBC Memory Management
이 문서는 Oracle JDBC Memory Management 를 번역한 것 입니다. 일부 오역과 오타가 있을 수 있습니다. Introduction 데이터베이스 애플리케이션들은 아주 많은 양의 메모리를 사용할 수 있다. 큰 스케일의 JDBC 애플리케이션들은 그들이 사용하는 아주 많은 메모리 때문에 성능상의 문제를 발생시킬 수 있다. 오라클 데이터베이스 10i, 11g JDBC 드라이버는 의도적으로 성능 향상을 위한 많은 메모리 사용과 트레이드 오프 관계다. Oracle Database 12c 드라이버는 메모리를 좀 더 절약하지만 여전히 아주 큰 애플리케이션은 메모리 문제를 일으킬 수 있다. 이 화이트 페이퍼는(White paper) 다양한 드라이버들이 […]
HTTP 응답 헤더 보안
의외로 웹 프로그래밍을 하는 사람들 조차도 HTTP 응답 헤더에 대해서 생각을 하지 않는다. HTTP 응답 헤더에 대한 생각을 하지 않는다는 것은 웹 프로그래밍을 깊게 공부한 사람이 아니라고 말할 수도 있다. Cache Control 대부분의 사람들은 이 부분에 대해서는 잘 안다. Cache Control 헤더는 Client 에 컨텐츠를 어떻게 캐시할 것인지에 대한 제어를 할 수 있다. 하지만 고려해야할 사항이 존재한다. 만약 AWS Cloud 를 사용한다면 더 더욱 고려해야할 사항이 존재한다. AWS 의 CloudFront 는 CDN 서비스로서 컨텐츠 캐시를 기반으로 한다. 만일 특정 컨텐츠에 […]
Helm 설치하기
이 문서는 Kubernetes 의 Helm 설치에 대해 다룬다. Helm 은 Kubernetes 에서 작동하는 많은 Application 들을 손쉽게 설치하도록 도와주는 프로그램이다. 마치 Ubuntu 의 APT 나 CentOS 의 Yum 이 프로그램 설치를 손쉽게 해주는것과 같다. Helm Helm 은 Client – Server 로 구성된다. Client 는 CLI 명령어를 말하며 플랫폼마다 바이너리로 배포된다. 따라서 다운로드 받아서 압축을 풀면 바로 사용할 수 있다. Server 는 Tiller 라고 불리운다. 이것은 Kubernetes 상에서 작동되는데 Deploy 해서 설치하면 된다. Helm Client Helm 클라이언트는 GitHub 에서 다운로드가 가능하다. […]