2026/02 12

Actonix : 흩어진 정보를실행 가능한 행동으로 #2 - 아키텍쳐/로직

들어가며이 글은 Actonix의 기능을 소개하는 글이 아니다. 해당 내용은 https://blog.aidengoldkr.dev/13 여기서 다룬다.Actonix를 왜 이렇게 설계했는가를 설명하는 글이다.1. 전체 시스템 아키텍처High-Level 구조Client (Next.js) ↓Signed Upload API — 파일은 서버를 통하지 않는다 ↓Supabase Storage — parse-temp 버킷 임시 보관 ↓OCR Layer — Vision API / pdf-parse ↓Semantic Parsing Layer — GPT-4o-mini, 텍스트만 전달 ↓Schema Validation Layer — v..

SaaS/Insight Paser 2026.02.23

Actonix : 흩어진 정보를실행 가능한 행동으로 #1 - 아이디어와 설계 철학

1. 도입 — 정보는 넘치는데, 실행은 왜 여전히 우리 몫인가우리는 매일 엄청난 양의 정보를 소비한다. 학교 공지, 과제 안내문, 이벤트 포스터, 회의 자료, PDF 문서. 스마트폰을 켜면 쏟아지는 정보들을 캡처하고, 저장하고, 때로는 다시 꺼내 읽는다. 그런데 여기서 하나의 근본적인 문제가 있다.정보를 이해하는 것과, 정보를 실행하는 것은 전혀 다른 일이다.OCR은 이미지에서 텍스트를 뽑아낸다. 요약기는 긴 글을 짧게 만든다. 생산성 앱은 할 일 목록을 관리한다. 그런데 이 세 가지 도구를 다 사용해도, 결국 "이 문서에서 내가 뭘 해야 하는가"를 판단하는 건 여전히 인간이다.정보 이해와 실행 사이에는 여전히 인간의 해석이라는 마찰이 존재한다.Actonix는 이 마찰을 제거하기 위해 만들어졌다.2. 문..

SaaS/Insight Paser 2026.02.23

Python - set 자료형 / BOJ 25192

백준 25192 번 문제는 간단히, input을 확인하여, ENTER 이후 새로 들어온사람은 res 값을 +1 해주면 되는 중복 검사 문제이다. 아래 코드는 백준 25192번을 풀이하면서 처음 작성한 코드이다. n = int(input())res = 0user = []flag = Falsefor i in range(n): inpp = input() if inpp == "ENTER": flag = True user = [] elif flag and inpp not in user: res += 1 user.append(inpp) print(res)방문한 사람의 정보를 user 라는 리스트 자료형에 저장후 not in 구문을 이용하..

자료구조 - 큐 (Queue) 란? /BOJ 10845, 18258

지난 포스트 Stack에 이은 큐 (Queue) 자료구조에 대해 알아보자, 큐는 스택과 반대로, FIFO(First-In-First-Out), 후입 선출 LILO(Last-In-Last-Out) 규칙을 따른다. 예를 들어, 웨이팅 줄이 대표적이다. 큐를 이용하는 명령어는 크게 6가지가 있는데push X: 정수 X를 큐에 넣는다.size: 큐에 들어있는 값 개수를 출력한다.front: 큐의 가장 앞에 있는 값을 출력한다. back: 큐의 가장 뒤에 있는 값을 출력한다. empty: 큐가 비어있는지 판단한다.pop: 큐에서 가장 앞에 있는 값을 빼고, 그 값을 출력한다. C 기준으로 큐도 구현하는 방법이 크게 두가지 있는데,#include #include #include using namespace std;..

[백준] 12789번 도키도키 간식드리미

도키도키 간식드리미 - 실버 3문제인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두근 설레서 시험 공부에 집중을 못 한다. 이번 중간고사에서도 역시 승환이는 설레는 가슴을 안고 간식을 받기 위해 미리 공지된 장소에 시간 맞춰 도착했다. 그런데 이게 무슨 날벼락인가! 그 곳에는 이미 모든 학생들이 모여있었고, 승환이는 마지막 번호표를 받게 되었다. 설상가상으로 몇몇 양심에 털이 난 학생들이 새치기를 거듭한 끝에 대기열의 순서마저 엉망이 되고 말았다. 간식을 나눠주고 있던 인규는 학우들의 터져 나오는 불만에 번호표 순서로만 간식을 줄 수 있다고 말했다.그제야 학생들이 순서대로..

알고리즘/BOJ 2026.02.08

자료구조 - 스택 (Stack) 이란? /BOJ 10828, 28278

자료구조를 배우게 되면 가장 먼저 배우는 스택, 우리가 일상 속 많이 들어보는 용어이기도 하다. 흔히 스택을 쌓는다 라고 표현을 하는데, 쌓는다 라는 동사는 스택의 성질에서 유래되었다. 스택은 선입후출 FILO(First-In-Last-Out), 후입 선출 LIFO(Last-In-First-Out) 규칙을 따른다. 쉽게 설명하면, 마지막에 들어간 것이 처음으로 나오는 것으로, 젠가통에 젠가를 하나씩 꺼낼때 가장 마지막(위)에 있는 젠가 먼저 꺼내는 것과 같은 로직이다. 스택을 사용하는 명령어는 크게 5가지가 있다push(n) : stack의 최상단 (마지막)에 값을 넣는다.pop() : stack의 최상단 값을 꺼내고 반환한다.peek(), top() : stack 최상단 값을 반환한다. (pop에서 꺼..

[백준] 18870번 좌표 압축

좌표압축 - 실버 2문제수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.입력첫째 줄에 N이 주어진다.둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.출력첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다.제한1 ≤ N ≤ 1,000,000-109 ≤ Xi ≤ 109예제 입력 152 4 -10 4 -9예제 출력 12 3 0 3 1예제 입력 261000 999 1000 999 1000 999예제..

알고리즘/BOJ 2026.02.05

PATCH는 됐는데 GET이 안 바뀐다 : Next.js App Router 자동 정적 최적화 (Implicit Static Optimization)

이번 포스트는 Next.js 서버의 자동 정적 최적화 (Implicit Static Optimization) 에 관한 것이다. 최근 진행한 웹 프로젝트인 ESSENTIA Science 홈페이지 (essentia-sci.org). 게시판 기능부터, 특정 사용자(임원진)에게는 PATCH 권한을 부여하여, 회원과 조직도를 수정 할 수 있게 구현하였다. 구조는 다음과 같다. 일반적인 공개 페이지인 Member Page와, 조직도는 어떠한 인증 없이 단순 GET 요청으로 DB에서 데이터를 받아올 수 있다.다만 PATCH가 포함된 Admin Page는 GET, PATCH 등 모든 요청이 로그인 여부와 관리자 권한 여부를 OAuth를 통해 받아와 인증해야 요청을 할 수 있는 구조이다. 이슈이러한 구조에서 다음과 같은..

Web/Next.js 2026.02.05

암호화 기법, AES, RSA, 해시함수

1. 시저 암호알파벳을 왼쪽으로 3칸 씩 밀어서 구현한 암호법2. 스키테일 암호굵기와 길이가 같은 원통 모양의 막대기에 긴 양피지 리본을 위에서 아래로 나선형으로 감으면 암호문이 나온다암호화의 5가지 요소1. 평문대칭 암호화 알고리즘의 입력값으로, 수신자가 전달호자하는 메세지 원문2. 암호화 알고리즘입력값 평문에 대한 치환, 변환, 대치등 암호문을 생성하는 방법3. 키암호화 알고리즘에서 특정 형태로 치환하기 위해 사용되는 값4. 암호문암호화 알고리즘을 통해 생성된 숨겨진 데이터5. 복호화 알고리즘암호화 알고리즘의 역과정으로 송신자 측에서 암호문을 입력값으로 본래의 평문으로 출력대칭암호화 기법 : 암호문을 받은 송신자가 동일한 키를 활용한 복호화 알고리즘으로 평문을 생성해낼 경우블록암호 : 평문의 블록에 ..

컴퓨터 보안 2026.02.05