리눅스 서버 간에 비밀번호 없이 SSH로 접속하는 방법은 SSH 키 기반 인증을 설정하는 것입니다. 이 방법은 두 서버 간에 안전한 연결을 제공하며, 비밀번호를 입력할 필요가 없습니다. 아래 단계를 따라 설정할 수 있습니다: 1. **SSH 키 생성**: 먼저, 원격 서버에 접속하려는 로컬 서버(혹은 당신의 컴퓨터)에서 SSH 키를 생성합니다. 이 작업은 대개 사용자의 홈 디렉토리 아래 `.ssh` 폴더에 `id_rsa` (비공개 키)와 `id_rsa.pub` (공개 키) 두 파일을 생성합니다. 이미 키가 있다면 이 단계는 생략할 수 있습니다. 키를 생성하려면 다음 명령어를 사용합니다: ``` ssh-keygen -t rsa ``` 이 명령어를 실행하면, 키의 저장 위치와 비밀번호(선택적)를 설정할 수 ..
데이터 백업은 어떤 시스템에서든 중요한 작업 중 하나입니다. PostgreSQL 데이터베이스에 대한 백업 전략은 여러 가지 방법으로 수행할 수 있고, 각 방법은 특정 시나리오나 요구 사항에 더 적합할 수 있습니다. 전략 빈도: 데이터의 중요도와 변동성에 따라 백업 빈도를 결정해야 합니다. 매일 백업을 할 것인지, 아니면 주간 혹은 월간 백업을 할 것인지를 결정해야 합니다. 자동화: 가능하다면 백업 프로세스를 자동화해야 합니다. 이렇게 하면 사람의 실수를 줄이고, 일관된 백업을 유지할 수 있습니다. 저장 장소: 로컬 머신뿐만 아니라 다른 물리적 위치에도 백업을 저장하는 것이 좋습니다. 이를 통해 재해 복구에 더 유연하게 대응할 수 있습니다. 검증: 백업이 제대로 이루어졌는지 검증하는 단계도 포함되어야 합니..
SOLID 원칙 중 L에 해당하는 리스코프 치환 원칙(Liskov Substitution Principle, LSP)은 "서브타입은 언제나 기본 타입으로 교체될 수 있어야 한다"는 원칙입니다. 다르게 말하면, 클래스 A의 객체를 클래스 B의 객체로 대체하였을 때, 프로그램이 제대로 작동해야 한다면 클래스 B는 클래스 A의 서브타입이라고 할 수 있습니다. 이 원칙을 준수하면 다형성을 이용한 객체지향 프로그래밍이 잘 동작하게 됩니다. 예제 문제 상황: 동물을 나타내는 Animal 클래스와 그 하위 클래스인 Bird 클래스가 있다고 합시다. Bird는 Animal을 상속받고 fly 메서드를 추가로 가지고 있습니다. 여기서 Penguin이라는 특별한 종류의 Bird를 표현하고 싶다면 어떻게 해야 할까요? cla..
int (원시 타입)과 Integer (래퍼 클래스) 사이에서 선택할 때 고려해야 할 몇 가지 중요한 차이점이 있습니다: Nullability: int: null 값을 가질 수 없으며, 초기화되지 않으면 기본값은 0입니다. Integer: null 값을 가질 수 있습니다. DB 컬럼이 null 값을 허용한다면, Integer를 사용하는 것이 적절합니다. 이렇게 하면 Java 코드 내에서 null 값을 제대로 처리할 수 있습니다. Overhead: int: 원시 타입이기 때문에 메모리 및 성능 면에서 추가적인 오버헤드가 없습니다. Integer: 객체이므로 추가적인 메모리 및 성능 오버헤드가 있을 수 있습니다. Boxing and Unboxing: 자바에서는 원시 타입과 래퍼 타입 간에 자동 변환 (오토 ..
좋은 질문입니다. 세마포어는 동시에 여러 스레드가 자원에 접근할 수 있게 허용하는 동기화 도구이기는 하지만, 그 자체로는 데이터의 일관성을 보장해주지 않습니다. 세마포어는 단순히 동시 접근 가능한 스레드의 수를 제한합니다. 세마포어가 동시에 여러 스레드에 자원 접근을 허용하는 경우는 아래와 같은 상황에서 유용합니다: 제한된 자원을 가진 상황: 예를 들어, 데이터베이스 연결 풀에서 동시에 사용할 수 있는 연결 수를 제한하고 싶을 때 세마포어를 사용할 수 있습니다. 연결 풀의 크기가 10이면, 세마포어의 허용 수도 10으로 설정되며, 10개를 초과하는 스레드는 연결이 반환될 때까지 기다려야 합니다. Rate Limiting: 동시에 너무 많은 요청이 서비스에 도달하지 않도록 요청의 수를 제한하고 싶을 때 사..
#GPT4 리눅스에서 크론탭은 기본적으로 크론 작업을 설정한 사용자의 권한으로 실행됩니다. 예를 들어, 일반 사용자 계정으로 로그인하여 크론 작업을 설정하면, 해당 크론 작업은 해당 사용자의 권한으로 실행되게 됩니다. 그러나 루트 사용자로 로그인하여 크론탭을 설정하면, 해당 크론 작업은 루트 권한으로 실행되게 됩니다. 또한, `crontab -e` 명령을 사용하여 특정 사용자의 크론탭을 편집할 수 있습니다. 예를 들어, 루트로 로그인한 후 `crontab -e -u username`을 실행하면, `username` 사용자의 크론탭을 편집할 수 있습니다. 따라서 크론탭이 실행되는 권한은 크론탭을 설정하는 사용자에 따라 달라지며, 별도의 크론탭 계정이 존재하는 것은 아닙니다.
Chat GPT 답변을 기록해놨기 때문에 오답이 있을 수 있습니다. --- PEM(Privacy-Enhanced Mail)과 PKCS#12(Public Key Cryptography Standards #12)는 인증서와 키를 저장하고 관리하는 데 사용되는 두 가지 다른 파일 형식입니다. 이 두 형식의 주요 차이점은 다음과 같습니다: 1 파일 구조: PEM 형식은 인증서와 개인 키를 ASCII 기반 텍스트 형식으로 저장합니다. 각 파일은 보통 “——BEGIN CERTIFICATE——“ 및 “——END CERTIFICATE——“와 같은 헤더와 푸터로 둘러싸인 Base64 인코딩 된 데이터를 포함합니다. 이러한 PEM 파일은 일반 텍스트 편집기로 열어 볼 수 있습니다. 반면에 PKCS#12 형식은 바이너리 형..
Spring Framework 6, Spring Boot 3 등 2022년 11월 새로운 Major 버전이 릴리즈가 됐다. Java version 17 이상을 기본으로 사용하면 Spring Native 를 공식적으로 지원한다. 이와 더불어 Spring Batch 도 5 Version 이 출시 됐다. 오늘 Spring Batch 5를 이용한 간단한 샘플코드와 새로운 부분을 알아 보겠다. Required Java 17+ 스프링 6 부터 Java 최소 사양이 최신 LTS Version 인 17이다. 그에 따라서 Spring Batch 5 역시 Java 17 이상이 필요하다. 지난 포스팅(https://warpgate3.tistory.com/entry/Java-8-to-17) 에 언급 했던 것 처럼 자바의 개선..
Java 17 이 2021년 9월에 Release 됐고 최신 LTS 버전이 됐다. 아직도 Java 11, 8 등이 가장 많이 쓰이긴 하지만 Spring 6 부터는 최소 권장하는 자바 버전이 17 이상이고 다음 세대를 준비하기 위해 Java 17을 적극적으로 도입해야 하지 않을까 생각한다. JVM 성능 향상이나 기타 유틸리티등은 제외하고 코드를 작성할 때 자바 8 과 비교해서 자바 17일 선택할 경우 쓸 수 있는 주요 feature 들만 정리해보겠다. var keyword (java 10+) 가변형 변수 type 이다. 동적 타이핑 되는 python, 코틀린과 같은 언어에서 사용되고 있으면 java 에서도 도입했다. 멤버 변수로는 사용할 수 없으면 지역 스코프에서만 사용 가능하다. public void s..
블랙박스라는 이름이라고 익숙하게 알려진 비행기록장치(Flight recorder)는 항공 사고시 원인을 파악하기 위한 중요한 장치이다. JFR 을 풀어쓰면 Java Flight Recorder 인데 아마도 블랙박스에서 네이밍 영감을 얻었을까? 어쨌든 JFR 은 JVM 의 상태를 확인할 수 있는 프로파일링 유틸리티 소프트웨어이다. Java8 에서는 유료였지만, Java11에 와서 JMC 와 함께 무료로 사용할 수 있다. 용도로만 봤을 때 웹 형태로 지원하는 제니퍼와 같은 국산 상용 툴이 나 Scouter 와 같은 국산 오픈소스, SASS 형태로 제공하는 APM 툴, 설치형으로 VisaulVM 과 같은 무료 CS 프로그램등 과 비슷한 역할을 한다. 하지만 위에서 언급한 Tool은 이용할 경우 설치가 필요하거..
- Total
- Today
- Yesterday