목록분류 전체보기 (72)
LV 12
서론: 보안의 중요성비즈니스 웹사이트에서 관리자 인증은 매우 중요합니다. 고객들의 개인정보가 포함된 문의사항들을 관리하기 때문에, 인증 시스템의 보안성은 타협할 수 없는 부분이었습니다. 이번 편에서는 JWT 기반 인증 시스템 구축 과정과 패스워드 해싱 라이브러리 선택의 시행착오를 다뤄보겠습니다.인증 방식 선택: 세션 vs JWT세션 기반 인증의 한계// 전통적인 세션 방식 (고려했던 방법)app.use(session({ secret: 'session-secret', resave: false, saveUninitialized: false, cookie: { secure: false, maxAge: 24 * 60 * 60 * 1000 }}));문제점:서버 메모리 사용량 증가다중 서버 환경에서 세션 공..
배경: 스팸 문의의 급증웹사이트가 공개되고 며칠 지나지 않아 문제가 발생했습니다. 하루에 10-20건의 스팸 문의가 들어오기 시작한 것입니다. 대부분 광고성 내용ㅁ이거나 의미 없는 텍스트들이었죠. 비즈니스 웹사이트의 특성상 모든 문의를 신중하게 검토해야 하는데, 스팸 때문에 정작 중요한 고객 문의를 놓칠 수 있는 상황이었습니다.reCAPTCHA v2 vs v3: 왜 v3을 선택했을까?reCAPTCHA v2의 한계// v2는 사용자가 직접 체크박스를 클릭해야 함문제점:사용자 경험 저해 (클릭 필수)추가적인 이미지 선택 과제모바일에서의 불편함reCAPTCHA v3의 장점// v3는 백그라운드에서 자동 실행import { useGoogleReCaptcha } from 'react-google-recaptcha..
서론: 왜 네이버 지도였을까?비즈니스 웹사이트에서 '오시는 길' 페이지는 필수입니다. 고객들이 회사를 찾아오는 데 어려움이 없어야 하니까요. Google Maps API도 고려했지만, 한국 내 상세한 지도 정보와 대중교통 연계 정보에서는 네이버 지도가 압도적으로 우수했습니다.NCP(NAVER Cloud Platform) 설정API 키 발급 과정NCP 콘솔 접속 → AI·Application Service → MapsWeb Dynamic Map API 활성화도메인 등록: mycompany.com, www.mycompany.com// 환경별 API 키 관리const NAVER_MAP_CLIENT_ID = process.env.NODE_ENV === 'production' ? 'prod_client_id' ..
비즈니스 웹사이트 개발기 - React 19와 풀스택 환경 구축하기프롤로그: 9일간의 개발 여정 시작회사의 공식 웹사이트를 개발하게 된 계기는 간단했습니다. 기존의 정적인 웹사이트로는 고객들과의 소통이 제한적이었고, 회사 정보와 서비스를 체계적으로 제공할 수 있는 플랫폼이 필요했습니다. 그렇게 2025년 6월 26일, 첫 번째 커밋과 함께 9일간의 개발 여정이 시작되었습니다.기술 스택 선택: 왜 이 조합이었을까?Frontend: React 19 + Vite + Tailwind CSSReact 19를 선택한 이유:최신 Concurrent Features와 React Server Components 지원향상된 성능과 개발자 경험비즈니스 웹사이트에 필요한 복잡한 상태 관리에 적합{ "dependencies"..
서론전 세계 48개국 이상에서 기본소득(Universal Basic Income) 실험이 진행되면서, 이 정책이 단순한 이론적 구상에서 실질적인 사회정책 대안으로 부상하고 있습니다.핀란드, 케냐, 미국 스톡턴 등에서 진행된 대규모 연구들은 기본소득이 고용을 감소시키지 않으면서 정신건강과 경제적 안정성을 크게 향상시킨다는 일관된 결과를 보여주고 있습니다.특히 케냐의 12년 장기 실험에서는 GDP 성장과 창업 증가라는 놀라운 경제적 파급효과가 관찰되었으며, 핀란드 실험에서는 수급자들의 삶의 만족도가 6.8점에서 7.3점으로 상승했습니다.이러한 실증적 증거들은 기본소득이 단순한 복지확대가 아닌, 사회 전체의 웰빙과 경제성장을 동시에 달성할 수 있는 혁신적 정책임을 시사합니다.기본소득의 개념과 역사적 배경기본소..
Huggingface CLI 설치 및 사용 방법Hugging Face Hub는 머신러닝 모델과 데이터셋을 공유하고 다운로드할 수 있는 플랫폼입니다. huggingface-cli는 이 플랫폼의 모델과 데이터셋을 명령줄에서 쉽게 관리할 수 있게 해주는 도구입니다.기본 설치아래 명령어를 실행해서 기본적으로 필요한 패키지들을 설치해 줍니다. 설치 과정에 몇 분 정도 소요될 수 있습니다.pkg install python clang make pkg-config rust build-essential -ypip 명령어를 이용해서 huggingface-cli 자동 설치 파일을 다운받아 실행시켜줍니다. Huggingface에서 제공해준 문서의 명령어를 실행하면 pip의 컴파일 오류로 인해 진행이 안 되기 때문에 아래 명령..
들어가며제1형 기면병(Narcolepsy Type 1)은 과도한 주간 졸림과 함께 갑작스러운 근력 상실인 탈력발작(cataplexy)을 특징으로 하는 만성 신경계 질환입니다. 이 질환은 뇌의 시상하부에서 생성되는 하이포크레틴(hypocretin, 오렉신이라고도 함) 신경전달물질의 심각한 결핍으로 인해 발생합니다.하이포크레틴의 생산과 분포하이포크레틴의 생성 위치와 방식하이포크레틴은 인간의 뇌에서 약 50,000-80,000개의 신경세포에 의해 생성되며, 이들 신경세포는 주로 외측 시상하부와 뇌궁주위 영역에 위치합니다. 하이포크레틴 A(하이포크레틴-1)와 하이포크레틴 B(하이포크레틴-2)라는 두 가지 형태가 있으며, 이들은 130개 아미노산으로 구성된 전구체 단백질인 prepro-orexin에서 단백질 분해..
영한 번역 키워드영어한국어Sample Space표본공간Event사건Axioms of Probability확률의 공리Probability Measure확률 측도Equally Likely Outcomes동일한 가능성의 결과Set Function집합 함수Belief신념1. Sample Space and Events (표본공간과 사건)Sample space S: 실험의 가능한 모든 결과의 집합.Event A⊆S: 관심 있는 결과들의 부분집합.예시:동전을 한 번 던지면 S=H,TA=H는 앞면이 나오는 사건2. Axioms of Probability (확률의 공리)Kolmogorov의 공리 체계에 따라 확률은 다음과 같은 성질을 만족해야 함:비음수성 (Non-nega..
영한 번역 키워드Counting: 계수Permutation: 순열Combination: 조합Multinomial Coefficient: 다항 계수Integer Solution: 정수 해Distinct: 서로 다른Indistinguishable: 구별할 수 없는Repetition: 중복1. The Basic Principle of Counting (기본 계수 원리)기본 원리: 어떤 일이 일어나기 위한 전체 경우의 수는 각 단계의 선택 경우의 수를 곱하여 계산한다.곱의 법칙 (Multiplication Rule): 하나의 작업이 n 가지 방법으로, 다음 작업이 m 가지 방법으로 이루어진다면, 전체 작업은 n×m 가지 방법이 있다.합의 법칙 (Addition Rule): 두 사건이 동시..
기본 패키지 설치아래 명령어를 실행해서 기본적으로 필요한 패키지들을 설치해 줍니다. 설치 과정에 몇 분 정도 소요될 수 있습니다.pkg install python git cmake ccache pkg-config -ygit 명령어를 이용해서 최신 버전의 llama.cpp를 다운받아 주고 다운받은 폴더 안으로 진입합니다.git clone https://github.com/ggml-org/llama.cppcd llama.cppCMAKE로 빌드하기공식 문서에 따르면 컴파일 방법에는 여러 가속화 옵션들이 존재하나, 제가 다양한 방법을 시도해 본 결과 아래 두 가지 방법이 가장 수월하게 사용 가능합니다.CPU만 이용하는 경우랑 BLAS 가속화를 적용한 경우랑은 체감이 될 정도의 엄청난 성능차가 존재하는 것은 아니..