| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- Upstage
- CodeEngn
- 백준
- Reflected
- wireshark
- System
- Dreamhack
- bWAPP
- Reversing
- htmlinjection
- beebox
- Linux
- MABC2026
- S3
- python
- AI에이전트
- 업스테이지
- backjoon
- AWS
- 유석종교수님
- pwnable
- SISS
- Systemhacking
- 자료구조
- EC2
- acc
- AI
- 타임리
- datastructure
- 와이어샤크
- Today
- Total
목록전체 글 (182)
Ctrl + Shift + ESC
서론“이 보고서를 읽기는 했는데, 정말 이해한 것일까요?”AI가 문서를 작성하는 속도가 빨라지면서 이런 고민을 자주 했습니다.사람이 AI가 만든 문서를 모두 한 줄씩 읽어야 할까요? 모든 내용을 직접 설명할 수 있을 정도로 이해해야 할까요? 처음에는 이 문제를 코드 변경에 한정해서 생각했습니다. AI가 만든 diff를 설명하고, 퀴즈를 통해 이해도를 확인하는 스킬을 구상했습니다.그런데 팀에서 일하다 보니 비슷한 문제가 코드 밖에서도 반복되고 있었습니다.장애 보고서, 기술 검토서, 프로젝트 회고, 운영 결과 보고서가 공유되면 우리는 문서를 읽고 “확인했습니다”라고 답합니다.하지만 회의에서 왜 그런 결론이 나왔는지, 어떤 근거가 있었는지, 다음에 무엇을 해야 하는지 물으면 다시 보고서를 펼쳐야 하는 경우가 ..
서론오늘 점심은 무엇을 먹을지, 새로운 일을 시작해도 될지, 괜히 마음이 복잡한 날에는 어떻게 하면 좋을지 고민할 때가 있습니다.정답을 얻으려는 것은 아니지만, 익숙한 생각에서 잠시 벗어나 다른 관점으로 질문을 바라보고 싶을 때가 있죠. 한국에서는 사주나 타로, 오늘의 운세처럼 일상에서 가볍게 즐길 수 있는 점 문화가 익숙합니다. 이를 진지하게 믿는 사람도 있고, 소소한 재미로만 받아들이는 사람도 있습니다.이런 친숙함을 활용하면 타로를 거창한 예언 도구가 아니라, 점심 메뉴를 추천받거나 사소한 고민을 새로운 관점에서 바라보는 재미있는 일상용 스킬로 만들 수 있겠다고 생각했습니다.이번 주에는 업스테이지가 주관하는 Making AI Beneficial 챌린지(MABC 2026)에 참여하며 타임리 AI에서 t..
회의가 끝났다고 일이 끝난 것은 아닙니다.회의 중 급하게 적은 메모를 다시 읽고, 결정된 내용과 아직 논의 중인 내용을 구분하고, 담당자별 할 일을 정리해야 합니다. 마감일이 빠진 항목은 다시 확인해야 하고, 마지막에는 팀원들에게 공유할 메시지까지 작성해야 합니다.저 역시 이 과정을 반복하면서 이런 생각을 했습니다.“회의 메모를 넣으면 바로 실행 가능한 할 일 목록으로 바꿔주는 AI가 있으면 어떨까?” 그래서 업스테이지가 주최하는 Making AI Beneficial 챌린지(MABC 2026) 서포터즈 1주차 활동으로, 타임리에서 ‘회의 메모 액션플랜 변환기’ 스킬을 만들었습니다. 스킬 생성 계기일반적인 회의록 요약은 회의에서 어떤 이야기가 나왔는지 이해하는 데는 도움이 됩니다. 하지만 실제 업무를 시작..
서론요즘은 모니터링을 도입할 때 Prometheus를 거의 기본 선택지처럼 고려하는 경우가 많다. 다만 Prometheus는 생각보다 설정과 운영이 복잡한 편이고, AWS CloudWatch 같은 AWS 네이티브 서비스와의 장단점을 함께 비교해보는 과정이 필요하다고 느꼈다.이 지점에서 금방 분명해진 점이 하나 있었다. 메트릭 수집과 로그 수집은 비슷해 보이지만, 실제 운영 방식은 꽤 다르다는 것이다. 정확히 말하면 Prometheus는 메트릭 수집에 강점이 있는 도구이고, 애플리케이션 로그를 다루려면 별도의 로그 수집기와 저장소가 함께 필요하다. 결국 로그까지 직접 운영하려면 Prometheus만으로는 부족했고, Promtail이나 Grafana Loki 같은 컴포넌트를 추가로 구성해 로그를 수집하고 저..
작업 동기배포는 자주 일어나지만, 배포 직후 “정말 서비스가 정상 동작하는지”를 확인하는 과정은 생각보다 자주 수동에 의존하게 된다.특히 현재 프로젝트에서는 DEV 환경에서는 배포가 끝난 뒤 주요 기능을 직접 눌러보거나, 문제가 생기면 로그를 보면서 롤백 여부를 판단하는 식으로 운영되는 경우가 많았다. 얼마 전에도 Prod에 배포했는데, 테스트를 진행하지 않고 배포하다 보니 주요 기능에 문제가 발생한 경험이 있었다.이번 작업에서는 이 과정을 조금 더 자동화했다. 목표는 다음과 같다.DEV 배포 직후 핵심 기능이 정상인지 자동으로 확인할 것실패 시 어떤 기능이 깨졌는지 구조화해서 수집할 것원인 후보와 추천 조치를 LLM이 요약할 것 (접근성)운영자는 Discord에서 결과를 보고 다음 액션을 결정할 수 있..
문제 정의현재 저희 시스템의 로그 수집 구조는 다음과 같습니다.EC2 로그→ Promtail→ Loki (로그 저장)→ Grafana (조회, 알림, 시각화) Promtail은 로그 파일이 존재하는 서버에 설치되어 로그를 수집하고, 이를 Loki로 전송합니다.Loki는 Promtail로부터 전달받은 로그를 저장하고, Grafana로부터 들어오는 로그 쿼리 요청에 대해 결과를 반환합니다.개발자는 Grafana를 통해 로그를 조회하거나, 특정 조건에 대한 알림을 설정할 수 있습니다. 문제는 로그의 양입니다.실제 운영 환경에서는 Loki뿐 아니라 CloudWatch Agent 등 다양한 방식으로 로그를 수집하고 있습니다. 하지만 이렇게 수집된 로그들은 분석되지 않으면 그저 쌓이기만 하는 데이터에 불과합니다...
Amazon CloudFront 기초Amazon CloudFront는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전 세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(CDN) 서비스이다. 웹페이지, 이미지, 동영상 등의 컨텐츠를 본래 서버에서 받아와 캐싱한 후 해당 컨텐츠에 대한 요청이 들어오면 캐싱해둔 컨텐츠를 제공한다.컨텐츠를 제공하는 서버와 실제 요청 지점간의 지리적 거리가 매우 먼 경우, 요청 지점 근처의 CDN을 통해 빠르게 컨텐츠를 제공할 수 있다.엣지 로케이션에서 데이터를 캐싱하기 때문에 원본이 변해도 캐싱이 만료되지 않는다면 유저가 보는 내용은 변하지 않는다. 정적 컨텐츠(이미지, 글 등 서버에 저장된 파일이 모든 사용자에..
* 해당 포스트는 실무 초밀착 리눅스: 클라우드 환경 운영부터 성능분석까지 강의를 듣고 정리한 것입니다. Linux에서 OverlayFS 살펴보기# 오버레이 파일시스템 실습에 사용할 디렉토리 생성 mkdir /tmp/{lower1,lower2,upper,merged,work} 실습에 사용할 디렉토리를 생성한다.lower1, lower2: 읽기 전용, 마운트할 레이어를 위해 사용할 디렉토리upper: writable한 레이어merged: lower 레이어들과 upper 레이어가 겹쳐져서 실습에서 실제로 사용할 디렉토리work: file sywtem에서 관리 목적으로 사용하는 디렉토리# 실습에 사용할 파일 생성echo "lower1 a" > /tmp/lower1/a.txtecho "lower1 b" > /t..
* 해당 포스트는 실무 초밀착 리눅스: 클라우드 환경 운영부터 성능분석까지 강의를 듣고 정리한 것입니다.Mount Namespace 격리하기해당 실습은 리눅스의 Namespace(특히 Mount Namespace) 기능을 직접 체험해보는 실습이다.실습을 통해 프로세스마다 독립적인 파일시스템 뷰를 갖게 할 수 있다는 것을 확인할 수 있다. echo $$unshare -m /bin/bashecho $$ echo $$ 명령어를 입력하면 Shell의 PID를 확인할 수 있다.unshare -m /bin/bash 명령어에서 -m은 mount namespace를 분리한다는 뜻이다. 이렇게 네임스페이스가 분리되었기 때문에, 이 안에서 발생하는 마운트/언마운트는 호스트에는 보이지 않는다. 따라서 unshare 명령어 ..
* 해당 포스트는 실무 초밀착 리눅스: 클라우드 환경 운영부터 성능분석까지 강의를 듣고 정리한 것입니다.리눅스 배포판리눅스 커널은 운영체제의 핵심이지만, 커널만으로는 사용자가 컴퓨터를 쉽게 조작하기 어렵다.리눅스 배포판이란 리눅스 커널에 컴파일러, 셸, 윈도우 시스템, 그리고 각종 유틸리티와 응용 프로그램들을 포함하여 사용자가 바로 설치해서 사용할 수 있도록 패키징한 운영체제를 말한다. 주요 리눅스 계열을 비교하면 다음과 같은 표로 정리할 수 있다.계열특징 및 목표패키지 관리 도구대표 배포판Debian 계열• 오픈소스이며 안정성에 초점을 둔다 .• Ubuntu의 경우 사용 편의성과 LTS(Long Term Support, 5년) 지원을 목표로 한다 .• 서버와 데스크톱 환경 모두에서 널리 사용된다.• D..
* 해당 포스트는 실무 초밀착 리눅스: 클라우드 환경 운영부터 성능분석까지 강의를 듣고 정리한 것입니다.실습 개요 여러 CLI와 GUI를 겪어본 결과, 터미널 환경에서 명령어로 모든 것을 연결하는 환경은 생각보다 어렵다.VSCode나 IntelliJ 같은 텍스트 에디터 환경에서는 편리한 확장 프로그램도 많고, 무엇보다 디버깅이 편리해진다.Linux 환경에서 gdb로 디버깅한 경험과, VSCode에서 디버깅을 해본 경험이 있는 사람이라면 공감할 수 있을 것이다.EC2에서도 편리한 작업을 위해 VSCode에서 SSH(22)로 연결하는 방법을 알아보자. 클라우드 환경 구성VPC 생성 다음과 같은 옵션으로 VPC를 생성한다. 주요 옵션은 다음과 같다.Number of AZ : 사용 가능한 가용 영역 개수이다. ..
* 해당 포스트는 실무 초밀착 리눅스: 클라우드 환경 운영부터 성능분석까지 강의를 듣고 정리한 것입니다. n-티어 아키텍처란? n-티어 아키텍처란 애플리케이션을 n개의 레이어으로 나눈 아키텍처를 말한다.레이어은 물리적으로 구분되고, 별도의 컴퓨터에서 실행된다. 이를 통해 책임을 분리하고 종속성을 관리한다.레이어은 다른 레이어를 직접 호출하거나 메시지 큐를 통해 비동기 메시징 패턴을 사용할 수 있다.또한 상위 레이어은 하위 레이어의 서비스를 사용할 수 있지만, 하위 레이어는 상위 레이어의 서비스를 사용할 수 없다. n-티어 애플리케이션에는 폐쇄형 레이어 아키텍처 또는 개방형 레이어 아키텍처가 있다.폐쇄형 레이어 아키텍처: 자기 다음의 레이어로만 접근이 가능한 통신 모델개방형 레이어 아키텍처: 자기의 하위 ..