반응형
- AWS Solutions Architect Associate 합격 후기 시험 소개 AWS Solutions Architect Associate, 줄여서 SAA-C03 이라고 하는 이 자격증은 AWS에 있는 기본적인 서비스들에 대해 이해하고 활용할 수 있는 사람에게 부여됩니다.시험은 객관식으로 이루어지며 총 130분 동안 65문제를 풀어야 합니다.집에서 원격 감독 하에 응시할 수도 있고 근처에 시험 센터가 있다면 오프라인 응시도 가능합니다.언어는 영어 또는 한국어로 선택할 수 있고 비영어권 국가에서 영어를 선택할 경우 30분이 추가로 주어집니다.(단, 시험 접수 전에 미리 신청을 해야합니다!)영어에 익숙하더라도 모국어에 비해 느릴 수 있어서 한국어를 선택하는 게 조금 더 안전해 보입니다.정 이해가 안 되면 영어 원문을 볼 수도 있습니다. 다행히 번역이 나쁘지 않아서 원문을 봤.. 2025.12.29
- 리눅스에서 공격을 탐지하고 차단하는 방법 (fail2ban, modsecurity, iptable) ModSecurity는 오픈 소스 웹 애플리케이션 방화벽(WAF)으로서, 들어오는 HTTP 요청을 분석하여 악의적인 공격 패턴(예: SQL 인젝션, XSS)을 탐지하고 해당 요청을 거부(Deny)하는 역할을 합니다지속적, 반복적인 공격 시도를 하는 사람을 IP로 차단하기 위해서는 ModSecurity가 남긴 로그를 감시하면서 공격자를 감지, 차단하는 fail2ban이 추가적으로 필요합니다.또, fail2ban 자체적으로 차단 기능을 가지고 있지는 않기 때문에 iptable이나 firewalld 같은 방화벽 프로그램이 활성화 상태여야 합니다. ModSecurity 설치 및 사용 방법 (이하의 내용은 CentOS 7 환경을 기준으로 합니다.) 우선 mod_security와 mod_security_crs을 설.. 2025.09.19
- [Leetcode] Longest substring without repeating characters 1. 개요 주어진 문자열에서 가장 긴 부분 문자열(연속된 문자로 이루어진 부분)의 길이를 반환합니다.부분 문자열은 중복되는 알파벳을 가지고 있지 않아야 합니다.예) abcdabefgabcda는 a를 2개 포함하므로 탈락입니다.cdabefg에는 중복되는 문자가 없고 가장 깁니다.따라서 정답은 7입니다. 2. 나의 풀이 가장 간단한 방법은 모든 부분 문자열을 구한 다음, 각 문자가 중복되지 않고 가장 긴 것을 찾는 것입니다.저는 전체 문자열에서 시작 문자 char를 선택한 다음,char로 시작하는 부분 문자열을 모두 구하는 방식으로 풀었습니다.class Solution: def lengthOfLongestSubstring(self, s: str) -> int: answer = 0 .. 2025.09.18
- [Leetcode] add two numbers 1. 개요 링크드 리스트 형태의 두 숫자를 더한 결과를 링크드 리스트로 반환합니다.예)L1: 3 -> 2 -> 1 (123)L2: 6 -> 5 -> 4 (456)123 + 456 = 579 이므로정답: 9 -> 7 -> 5 2. 나의 풀이 class Solution: # 클래스 안에 정의한 함수는 인스턴스 메서드로 취급되므로, 첫 번째 인자가 self여야 한다. def getNum(self, node: Optional[ListNode]): if node is None: return 0 num = node.val next = node.next i = 1 while next: num += (10 ** .. 2025.09.17
- [Leetcode] two-sum 1. 개요 숫자 배열 nums과 목표 숫자 target 하나가 주어집니다.숫자 배열에 있는 숫자 두 개를 더해서 목표 숫자를 만들고,각 숫자의 인덱스를 배열로 반환해야 합니다.예를 들어,[1, 2, 3] 과 5가 주어진 경우2 + 3 = 5 이므로, [1, 2]를 반환해야 합니다.문제의 정답은 반드시 존재합니다. 2. 단순 무식한 방법 이중 루프를 돌면서 리스트에서 두 개의 숫자를 골라 더해보는 방법이 있습니다.쉽고 간단한 대신 O(n^2)의 시간 복잡도를 가집니다.class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i, n in enumerate(nums): for j, m.. 2025.09.16
- DNS 캐시와 hosts 설정 1. DNS란 DNS는 Domain Name Service의 약자로, 도메인 이름을 IP 주소로 변환해주는 시스템입니다.컴퓨터 통신을 위해서 IP 주소를 사용하는 것은 다들 알고 계실 텐데요,의미없는 숫자로 된 IP 주소를 기억하고 사용하기란 어렵기 때문에www.google.com 같은 도메인 이름을 입력하면 이를 실제 구글 서버의 IP로 변환하여 통신할 수 있도록 해주는 것이 바로 DNS입니다.일반적으로는 다음과 같은 프로세스를 거치게 되는데,1 도메인을 등록할 때 DNS 서버 즉, 네임 서버에 대한 NS 레코드를 지정할 수 있습니다.2 사용자가 브라우저에 도메인을 입력하면 브라우저는 NS 레코드를 읽어 네임 서버에게 IP를 질의합니다.3 그럼 네임 서버에서 변환된 IP를 반환하고, 이를 이용해서 서.. 2025.06.27
반응형