Spring Kafka Consumer 부분을 맡으면서 예외 상황을 처리하기 위해 Kafka Retry 전략에 대해 알아보았다. 메시지를 소비하는 동안 예상치 못한 오류가 발생할 수 있으며, 이를 적절히 처리하는 로직이 필요하다. 메시지를 반복적으로 재처리하거나, 재처리 후에도 실패하는 메시지를 별도의 토픽으로 관리해야한다. Consumer의 예외 상황을 처리하기 위한 방식으로는 ErrorHandler 방식과 어노테이션 방식 이 있다. ErrorHandler 방식Spring Kafka는 이러한 예외 상황을 처리하기 위해 DefaultErrorHandler 와 BackOff 기능을 제공한다.재시도 간격에 따라 다양한 Backoff 전략이 있다.Fixed Backoff : 일정된 시간 간격으로 재시도하는 전..
React 알못이 쓴 글입니다 :) 잘못된 내용 있으면 댓글 부탁드려요 React 의 데이터 흐름은 State & Props 를 사용해 단방향으로 이루어져야 한다는 규칙이 있다. 이러한 데이터 흐름은 컴포넌트 간의 관계를 명확히 정의하기 때문에 유지보수성을 향상시킨다. 하지만 데이터를 전달하는 과정에서 거쳐야 하는 컴포넌트가 너무 많은 상황이라면 유지보수가 어려울 뿐만 아니라 성능이 저하될 우려가 존재한다. 이러한 과정을 prop drilling 이라 한다. 이렇듯 여러 페이지에 걸쳐 공통으로 사용하는 경우가 있기 때문에 상태 관리 라이브러리를 사용한다. 프로젝트를 진행하며 로그인한 사용자의 정보를 전역 상태로 관리하기 위해 상태 관리 라이브러리를 사용하고자 했다. 상태 관리 라이브러리는 Redux, R..
데이터 전처리데이터 분석을 위해 수집한 데이터를 분석에 적합한 형태로 가공하는 과정불필요한 데이터를 제거하고 결측치나 이상치를 처리하여 데이터의 질을 향상💡 정확한 결과를 위해 반드시 필요한 작업결측치 처리 : 빠진값이 있을경우 해당 값을 대체하거나 삭제하여 데이터 일관성 유지이상치 처리 : 데이터에서 비정상 값이 있을 경우 해당값을 대체하거나 삭제하여 분석결과 오류 방지데이터 정규화 : 데이터 값을 일정한 범위로 조정데이터 인코딩 : 텍스트 데이터를 컴퓨터가 이해할 수 있는 형태로 변환 (ex.원-핫 인코딩 등)원-핫 인코딩? 단어 집합의 크기만큼 벡터 차원을 가지고 해당 단어가 있으면 1 없으면 0으로 표현공공데이터를 원하는 형태로 전처리 하기공공데이터 중 '전국자동차검사소표준데이터' 를 다운로드 ..
1516번: 게임 개발첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. 건물의 번호는 1부www.acmicpc.net- 208ms- 위상정렬선행관계 + 사이클이 없는 방향그래프 ➜ 위상정렬 !!어떤 작업을 수행하기 전 반드시 선행되어야 하는 작업이 존재한다. 작업의 시간과 선행관계가 주어졌을 때, 모든 작업을 완료하기 위해 필요한 최소시간을 구하는 문제이다. ( 비슷한 문제 : BOJ 작업 ) 진입차수 즉, 선행관계가 없거나 모두 완료되어 시작해도 되는 작업들을 우선순위 큐에 넣는다. # 소스코드import java.util.*;import java.io.*;public..
2056번: 작업수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해www.acmicpc.net592ms위상정렬어떤 작업을 수행하기 전 반드시 선행되어야 하는 작업이 존재한다. 작업의 시간과 선행관계가 주어졌을 때, 모든 작업을 완료하기 위해 필요한 최소시간을 구하는 문제이다.선행관계 + 사이클이 없는 방향그래프 ➜ 위상정렬 !!큐를 이용한 위상 정렬 알고리즘진입차수가 0인 모든 노드를 큐에 넣는다.큐가 빌 때까지 다음의 과정 반복큐에서 원소를 꺼내 해당 노드에서 나가는 간선을 그래프에서 제거진입차수가 0이 된..
보안 쉘 SSH보안 쉘 SSH 이란 암호통신을 이용하여 네트워크상의 다른 컴퓨터에 접속하여 원격으로 명령을 실행하거나 파일을 조작하는 응용 프로그램 또는 프로토콜을 의미한다. 기존의 Telnet FTP rlogin rsh 등 평문 송수신 서비스의 취약점을 대체하기 위해 설계 되었으며 디폴트로 22/tcp 포트를 사용한다.암호화된 원격 터미널 서비스 제공 + 암호화된 파일 송수신 서비스 제공💡 평문 송수신 서비스는 스니핑 공격, 재전송 공격에 취약하다. 특히 r계열 서비스는 IP spoofing 에 취약 다수의 클라이언트가 원격접속 및 동시요청 ⇒ 다중 접속 서버fork() 기반의 multi-tasking 서버thread 기반의 multi-thread 서버select() poll() 기반의 multipl..
process 관련 식별 ID : PID, PPID, PGID, SIDprocess 자원접근 권한 판단하기 위한 ID : RUID(Real UID), RGID(Real GID), EUID(Effective UID), EGID(Effective GID)RUID : 프로세스를 실행시킨 사용자의 UIDRGID : 프로세스를 실행시킨 사용자의 GIDEUID : 프로세스가 실행중인 동안에만 부여되는 UID로 자원 접근권한 판단EGID : 프로세스가 실행중인 동안에만 부여되는 GID로 자원 접근권한 판단SUID와 SGID는 프로세스가 실행중인 동안에 해당 실행파일의 소유자, 소유그룹의 권한으로 자원에 접근할 수 있도록 하는 권한 설정이다. SUID와 SGID가 설정되지 않은 프로세스를 실행시키면 프로세스를 실행시킨..
패스워드 저장 정책에는 passwd 파일 내 계정 정보와 함께 저장하는 일반 패스워드 정책과 shadow 파일에 패스워드를 별도로 저장하는 shadow 패스워드 정책이 있다.shadow 파일패스워드 정보를 평문으로 저장할 경우 유출 피해가 발생할 수 있으므로 패스워드를 암호화하여 보호해야한다. shadow 패스워드를 사용하여 /etc/shadow 파일에 암호화된 패스워드가 저장되도록 하고 root 만이 읽을 수 있도록 제한한다. shadow 파일에는 계정별 암호화된 패스워드와 에이징(aging)정보가 저장되어 있다. 패스워드 에이징 정보는 시간의 흐름에 따른 패스워드 관리 정책이다.① 사용자 계정명② encrypted_password : 암호화된 패스워드 (3가지 필드 아래 글 참고)③ last_chan..
cron 서비스 cron 은 UNIX/LINUX 시스템의 정기적으로 등록된 작업을 실행시켜주는 서비스이다. cron 서비스를 이용하려면 다음 세 가지 구성요소가 필요하다crontab 파일 : 정기적 작업 등록 파일crontab 명령 : 작업 등록을 위해 사용하는 명령crond : cron 데몬 프로세스로 작업 등록 파일에 정의된 작업을 처리하는 데몬 프로세스/etc/crontab 파일 형식 ✨root가 설정하는 작업 등록 파일로 모든 사용자에 대한 작업을 등록할 수 있다 ➜ 640 권한 설정 권장분분은 0-59까지 숫자로 작성시시는 0-23까지 숫자로 작성일일은 1-31까지 숫자로 작성월월은 1-12까지 숫자로 작성요일요일은 0-6까지 숫자로 작성 ( 0:일요일, 1:월요일 ~ )계정명작업을 실행할 사용..
사용자 및 그룹 관리useradd : 사용자 추가-u UID , -g GID , -G 보조그룹 , -c comment, -d 홈 디렉터리 , -s 로그인 쉘-m -d : 계정과 함께 홈 디렉터리 생성-o 중복 UID를 허용하는 옵션Q. 공격자가 다음과 같은 명령어를 실행했다. 이 명령어의 의미는?-o 옵션은 중복 UID를 허용하는 옵션으로 공격자가 root 권한을 탈취하기 위해 -o 옵션을 사용하여 UID = 0 , GID = 0 인 일반 사용자 계정을 생성하는 명령어이다. usermod : 사용자 변경공격자가 root 권한을 탈취하기 위해 -o 옵션을 사용하여 일반 사용자 계정을 UID = 0 , GID = 0 로 수정하는 명령어이다. userdel : 사용자 계정 삭제-r : 홈 디렉터리와 메일함도 ..
1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 144ms 투포인터 단순히 이중 for문으로 풀었을 때, 시간초과가 발생했다. 두 수를 선택해서 푸는 문제이므로 투포인터가 떠올랐다. 1부터 n까지 좋은 수인지 투포인터를 통해 합이 되는 경우가 있는지 탐색한다. left = 0, right = n - 1 을 초기값으로 잡은 후, 1. left 가 arr[i] 이면 오른쪽으로 한 칸 이동 left++ 2. right 가 arr[i]이면 왼쪽으로 한 칸 이동 right-- 3. arr[left] + arr[right] == arr[i] 이면 ..
시간남으면 그림그려서 추가 ... + 강의자료프로그램 실행 과정프로세스 생성과 동시에 프로세스 그룹도 생성된다. 프로세스 그룹은 커널이 터미널 제어권을 관리하기 위한 목적으로 사용하는 프로세스들의 집합으로 쉘(shell)에서 실행된 프로세스와 자식 프로세스들이 하나의 프로세스 그룹으로 관리된다.터미널 제어권이란 터미널로부터 입력되는 데이터와 터미널로부터 발생하는 시그널에 대한 제어권으로 프로세스 그룹 단위로 제어권이 부여된다.커널이 프로세스 그룹을 식별하기 위한 식별자로 PGID를 부여하며, PGID는 해당 그룹의 리더 프로세스(쉘로부터 실행된 프로세스)의 PID를 PGID로 설정한다.Foreground mode : 터미널에 대한 제어권을 가지고 동작하는 모드Background mode : 터미널에 대한..