샵바이 프리미엄 오로라스킨으로 시작하는 전문 쇼핑몰 구축 가이드
December 15, 2025온라인 쇼핑몰을 만들고 싶지만 기술적 지식이 없어 막막한가? 샵바이 프리미엄의 오로라스킨을 활용하면 누구나 전문적인 쇼핑몰을 쉽게 구축할 수 있다. 평생 무료 서비스부터 단계별 구축 가이드까지, 쇼핑몰 도입을 고려하는 모든 분을 위한 완벽한 가이드다.
Written by Jeon Byung Hun 개발을 즐기는 bottlehs - Engineer, MS, AI, FE, BE, OS, IOT, Blockchain, 설계, 테스트
온라인 쇼핑몰을 만들고 싶지만 기술적 지식이 없어 막막한가? 샵바이 프리미엄의 오로라스킨을 활용하면 누구나 전문적인 쇼핑몰을 쉽게 구축할 수 있다. 평생 무료 서비스부터 단계별 구축 가이드까지, 쇼핑몰 도입을 고려하는 모든 분을 위한 완벽한 가이드다.
이모작의 역사적 배경, 작동 원리, 장단점을 분석하고 현대 농업에서의 중요성과 지속가능한 농업 실현 방법을 탐구합니다.
프로젝트 조건만 입력하면 견적 가이드와 예상 기간이 자동으로 제안된다. 블루버튼의 AI 견적서 추천이 어떻게 작동하는지, 프로젝트 비용 산정을 어떻게 혁신하는지 일반인도 이해할 수 있도록 설명합니다.
프로젝트에 맞는 최적의 메이커를 찾는 것은 어렵다. 블루버튼의 메이커 매칭 분석이 수백 명의 메이커 데이터를 기반으로 어떻게 최적의 파트너를 찾는지 일반인도 이해할 수 있도록 설명합니다.
아이디어만 입력하면 기능 명세서가 자동으로 작성된다. 블루버튼의 AI 명세서 생성기가 어떻게 작동하는지, 프로젝트 기획을 어떻게 혁신하는지 일반인도 이해할 수 있도록 설명합니다.
gRPC 기초부터 고급 활용까지. Protocol Buffers, 스트리밍, 인터셉터, 에러 처리, Spring Boot 통합, 성능 최적화까지 실무에서 바로 사용할 수 있는 완벽한 가이드를 제공합니다.
WebAssembly 기초부터 고급 활용까지. WASM 모듈 작성, JavaScript와의 상호작용, 성능 최적화, Rust/Go로 WASM 빌드, Node.js 서버 사이드 활용, 실전 프로젝트 예제까지 완벽하게 다룹니다.
Event Sourcing과 CQRS 패턴의 기초부터 실전 구현까지. 이벤트 스토어 설계, 이벤트 리플레이, 스냅샷, 읽기 모델 동기화, Spring Boot 구현, 실전 예제까지 완벽하게 다룹니다.
웹 게임 개발의 모든 것을 다룹니다. Phaser, Three.js, Babylon.js, Unity WebGL 등 주요 게임 엔진부터 그래픽스, 오디오, 네트워킹, 성능 최적화, 배포 전략까지 실무에서 바로 사용할 수 있는 완벽한 가이드를 제공합니다.
텍스트만으로 3D 모델을 만드는 AI가 등장했다. 게임, 영화, 제품 디자인 등 다양한 분야에서 활용되는 AI 3D 생성 기술을 일반인도 이해할 수 있도록 설명합니다.
AI 시스템을 실제 서비스에 배포한 후 어떻게 관리해야 할까? AI 모니터링과 관찰 가능성의 중요성, 실전 관리 방법을 일반인도 이해할 수 있도록 설명합니다.
AI가 교육을 어떻게 바꾸고 있는지, 개인화 학습과 AI 튜터가 학생들에게 어떤 새로운 가능성을 제공하는지 일반인도 이해할 수 있도록 설명합니다.
AI가 사람의 감정을 읽고 이해하는 시대가 왔다. 감정 인식 AI가 어떻게 작동하는지, 어떤 분야에 활용되는지, 그리고 윤리적 고려사항은 무엇인지 일반인도 이해할 수 있도록 설명합니다.
텍스트만으로 음악을 만드는 시대가 왔다. Suno와 Udio 같은 AI 음악 생성 도구가 어떻게 음악 제작을 혁신하는지, 일반인도 쉽게 이해할 수 있도록 설명합니다.
텍스트로 이미지를 만드는 AI 도구들이 쏟아지고 있다. Midjourney, DALL-E 3, Stable Diffusion의 특징을 비교하고, 어떤 상황에서 어떤 도구를 선택해야 하는지 실전 가이드를 제공합니다.
스마트폰에 NPU가 탑재되고, AI 전용 칩이 등장하면서 AI가 클라우드에서 디바이스로 이동하고 있다. AI 하드웨어가 어떻게 작동하는지, 어떤 변화를 가져오는지 일반인도 이해할 수 있도록 설명합니다.
AI가 만든 이미지, 음악, 텍스트의 저작권은 누구에게 있을까? AI 학습에 사용된 원작자의 권리는? AI 시대의 저작권 문제를 일반인도 이해할 수 있도록 설명합니다.
거대한 GPT-4의 시대가 지나고, 작고 효율적인 소규모 LLM의 시대가 왔다. Llama 3.1, Phi-3, Gemma 같은 경량 모델이 어떻게 AI의 접근성을 높이고 새로운 가능성을 만드는지 설명합니다.
AI Agent가 일상화되는 시대가 왔다. 기술적 설명을 넘어서, Agent 시대가 우리 삶과 사회에 미칠 변화에 대한 개인적인 생각을 정리합니다.
구글 검색의 시대가 끝나고 AI 검색의 시대가 시작되었다. Perplexity 같은 AI 검색 엔진이 어떻게 정보 검색을 혁신하는지, 일반인도 쉽게 이해할 수 있도록 설명합니다.
AI가 텍스트만으로 비디오를 생성하는 시대가 왔다. OpenAI Sora와 Runway Gen-3가 어떻게 콘텐츠 제작을 혁신하는지, 일반인도 쉽게 이해할 수 있도록 설명합니다.
AI가 코드를 작성하는 시대가 왔다. Cursor와 GitHub Copilot 같은 AI 코딩 어시스턴트가 개발자의 생산성을 어떻게 높이는지, 실전 활용법을 일반인도 이해할 수 있도록 설명합니다.
LLM 추론 성능을 최적화하는 핵심 기술들을 실전 예제와 함께 정리합니다. KV Cache, Quantization, Speculative Decoding, 배치 처리, 모델 병렬화 등 모든 최적화 기법을 다룹니다.
Docker 컨테이너화부터 Kubernetes 클러스터 배포까지 실전 예제와 함께 완벽하게 정리합니다. Dockerfile 작성, Docker Compose, Kubernetes 리소스 정의, 배포 전략까지 모든 것을 다룹니다.
PostgreSQL의 고급 기능들을 실전 예제와 함께 정리합니다. JSON/JSONB 데이터 타입, Full-Text Search, 테이블 파티셔닝, 인덱싱 전략, 성능 최적화까지 모든 것을 다룹니다.
OAuth 2.0과 JWT를 활용한 현대적인 인증/인가 시스템을 실전 예제와 함께 완벽하게 정리합니다. Authorization Code Flow, Implicit Flow, Client Credentials, JWT 생성/검증, 보안 모범 사례까지 모든 것을 다룹니다.
TypeScript의 타입 시스템부터 고급 패턴까지 실전 예제와 함께 완벽하게 정리합니다. 제네릭, 유틸리티 타입, 조건부 타입, 타입 가드, 모듈 시스템 등 TypeScript의 모든 것을 다룹니다.
뇌 구조를 매핑한 후, 이를 컴퓨터에서 시뮬레이션하는 기술을 설명합니다. 뉴런 모델링, 시냅스 시뮬레이션, 전체 뇌 시뮬레이션 프로젝트, 계산 자원과 성능 최적화를 다룹니다. 이는 마인드업로드 시리즈의 세 번째 글입니다.
뇌의 모든 연결을 매핑하는 Connectome 프로젝트와 관련 기술을 설명합니다. 전자 현미경, 초고해상도 이미징, 자동화된 뉴런 추적, 그리고 대규모 뇌 매핑 프로젝트들을 다룹니다. 이는 마인드업로드 시리즈의 두 번째 글입니다.
혼합현실(MR)의 개념과 기술을 설명합니다. VR, AR과의 차이, 공간 컴퓨팅, 홀로그램, 공간 앵커링, 그리고 산업별 응용 사례와 미래 전망을 다룹니다.
ES2020부터 ES2024까지 추가된 최신 JavaScript 기능을 실전 예제와 함께 설명합니다. Optional Chaining, Nullish Coalescing, Top-level await, Private fields, Pattern Matching, Records & Tuples 등 모던 JavaScript의 모든 것을 다룹니다.
가상세계의 개념과 기술적 구현 방법을 설명합니다. 메타버스와의 차이, 완전 몰입형 경험을 위한 기술(VR, AR, 뇌-컴퓨터 인터페이스), 사회적 영향, 그리고 미래 전망까지 다룹니다.
마인드업로드 연구의 목표와 방향성을 제시합니다. 의식의 본질, 뇌-컴퓨터 인터페이스, 신경 매핑, 의식 전송의 기술적 도전 과제, 그리고 연구 로드맵을 다룹니다. 이는 마인드업로드 시리즈의 첫 번째 글입니다.
MLOps의 개념부터 실전 구현까지. 모델 버전 관리(MLflow), A/B 테스트, 모델 서빙(KServe, Seldon), 성능 모니터링, 데이터 드리프트 감지까지 프로덕션 환경에서 AI 모델을 운영하는 모든 것을 다룹니다.
AI 인시던트 대응 Runbook, 커뮤니케이션 체계, 감사·보고 프로세스를 정리합니다. 거버넌스 리뷰 보드 운영과 외부 감사·버그 바운티 연계 전략까지 포함합니다.
React Hooks 심화, Server Components, Next.js 14 App Router, React Query, 상태 관리 라이브러리 비교, 성능 최적화까지 현대적 React/Next.js 개발의 모든 것을 실전 예제와 함께 정리합니다.
코딩 테스트와 실무에서 자주 사용되는 고급 알고리즘을 완벽 정리. 세그먼트 트리, 펜윅 트리, 유니온 파인드, 최소 공통 조상(LCA), 강한 연결 요소(SCC), 위상 정렬, 최소 신장 트리(MST), 최대 유량 등 실전 문제 해결에 필요한 모든 알고리즘을 JavaScript로 구현합니다.
FastAPI 기초부터 고급 활용까지. 비동기 프로그래밍, 의존성 주입, Pydantic 검증, WebSocket, 백그라운드 작업, 데이터베이스 연동, 인증/인가, 테스트까지 실무에서 바로 사용할 수 있는 완벽한 가이드를 제공합니다.
마이크로서비스 아키텍처의 설계 원칙부터 실전 구현까지. Service Mesh(Istio), API Gateway(Kong), 분산 트레이싱(Jaeger), 서비스 디스커버리, 이벤트 기반 아키텍처, 데이터 일관성, 모니터링까지 엔터프라이즈급 마이크로서비스 시스템 구축의 모든 것을 다룹니다.
AI 위험 신호 정의, 모니터링 스택 설계, 자동화된 알림과 대응 파이프라인을 구축하는 방법을 정리합니다. 데이터·모델·운영 지표와 레드팀 자동화를 포함합니다.
글로벌 AI 규제 동향을 맵핑하고 조직의 정책 프레임워크를 설계하는 방법을 정리합니다. 규제 분류, 위험 기반 의사결정, SOP 템플릿 구성까지 단계별로 안내합니다.
책임 있는 AI 운영을 위한 거버넌스 조직 구조, 역할·책임(RACI), 정책 수명주기, 핵심 운영 지표와 도입 로드맵을 정리합니다.
실물자산(RWA) 토큰화 이후 오프체인 결제, 커스터디, 감사 체계를 어떻게 연동할지 아키텍처 구성요소와 운영 전략을 분석합니다.
Spring Observability, Micrometer, OpenTelemetry를 활용해 LLM·AI 마이크로서비스의 SLO를 설계하고 운영 지표를 수집·자동화하는 방법을 다룹니다.
생성형 AI 서비스에 대한 레드팀 프로세스 설계, 공격 시나리오, 자동화 도구와 평가 지표를 정리하고 조직이 구축해야 할 안전성 테스트 전략을 소개합니다.
DePIN(Decentralized Physical Infrastructure Network)의 개념과 시장 동향을 정리하고, 대표 프로젝트 사례, 토큰 이코노미, 비즈니스 모델, 규제 이슈를 분석합니다.
Spring Cloud Function과 Serverless 플랫폼을 결합하여 LLM 기반 이벤트 마이크로서비스를 설계하는 방법을 아키텍처, 구현, 운영 관점에서 정리합니다.
온디바이스 생성형 AI의 개념과 아키텍처, 경량화 기법, 프라이버시 중심 설계 전략을 정리하고 실무 적용 가이드와 모니터링 팁을 제공한다.
Node.js 20 이후의 AsyncLocalStorage로 비동기 컨텍스트를 안정적으로 추적하는 방법과 Express, Fastify 실무 적용 전략을 정리한다.
고도화된 LLM과 멀티모달 모델이 늘어나면서 등장한 보안 위협과 모델 공급망 리스크를 분석하고, 대응 전략과 거버넌스 수립 방법을 정리합니다.
모듈형 블록체인과 소버린 롤업의 개념을 정리하고, 데이터·실행·합의 계층의 분리 전략, 프로젝트 사례, 설계 시 고려사항을 소개합니다.
Spring AI 프로젝트와 엣지 추론 인프라를 결합하여 LLM 서비스를 설계하는 방법을 아키텍처, 구현 패턴, 운영 전략 관점에서 정리합니다.
퀵 정렬은 분할 정복 알고리즘으로 평균적으로 매우 빠른 정렬 알고리즘이다. 피벗을 선택해 기준으로 삼고, 작은 값과 큰 값을 분할해 재귀적으로 정렬한다.
LangChain 프레임워크의 개념과 활용 방법을 설명합니다. Chain, Agent, Memory의 개념과 실무 예시까지 알아봅니다.
가상화폐의 개념과 특징을 설명합니다. 암호화폐와의 차이, 주요 가상화폐 종류, 실무 활용 사례, 그리고 투자 시 주의사항까지 알아봅니다.
블록체인의 개념과 작동 원리를 설명합니다. 분산 원장 기술, 합의 알고리즘, 스마트 컨트랙트, 그리고 실무 활용 사례까지 알아봅니다.
한비자의 '부협상위즉책망 자위즉사행'을 현대적 관점에서 해석합니다. 상호 의존적 관계의 문제점과 자기 주도적 업무 수행의 중요성, 실무 적용 방법을 알아봅니다.
다산 정약용의 학습 철학을 현대적 관점에서 해석합니다. 모방에서 독창으로 나아가는 학습 과정, 실무 적용 방법, 그리고 효과적인 학습 전략을 알아봅니다.
수오재기의 '나'에 대한 철학적 통찰을 현대적 관점에서 해석합니다. 자아 정체성의 불안정성과 자기 인식의 중요성, 그리고 실무에서의 적용 방법을 알아봅니다.
파이썬의 개념과 특징을 설명합니다. 설치 방법, 기본 문법, 주요 라이브러리, 그리고 데이터 과학과 머신러닝 분야에서의 실무 활용까지 알아봅니다.
AI 모델 양자화의 개념과 작동 원리를 설명합니다. QAT, PTQ, GPTQ, AWQ 비교와 실무 적용, 성능 분석까지 알아봅니다.
Fine-tuning과 LoRA의 개념과 작동 원리를 설명합니다. Full Fine-tuning vs LoRA 비교, 실무 적용 방법, 비용과 성능 분석까지 알아봅니다.
멀티모달 AI의 개념과 작동 원리를 설명합니다. GPT-4V, Claude 3, Gemini의 멀티모달 능력 비교와 실무 활용 사례까지 알아봅니다.
벡터 데이터베이스의 개념과 RAG 시스템에서의 역할을 설명합니다. 임베딩, 유사도 검색, 주요 벡터 DB 종류와 실무 활용까지 알아봅니다.
프롬프트 엔지니어링의 핵심 기법과 실무 활용 가이드를 설명합니다. Zero-shot, Few-shot, Chain of Thought부터 실전 예시까지 알아봅니다.
MOC/MOO imbalance 데이터 분석 방법론과 실무 활용 가이드. 클래스 불균형 문제 해결 기법부터 실전 인사이트까지.
AI Agent의 정의와 작동 원리를 비유로 설명합니다. 단순 LLM과 Agent의 차이, Agent가 어떻게 목표를 달성하는지 알아봅니다.
RAG(검색 기반 생성)가 LLM의 한계를 어떻게 극복하는지 설명합니다. 검색과 생성의 결합, 실무 적용 예시까지 알아봅니다.
채팅GPT의 핵심 기술인 LLM이 어떻게 우리와 대화하는지 쉽게 설명합니다. 트랜스포머 아키텍처부터 다음 단어 예측까지, AI의 언어 이해 원리를 알아봅니다.
문자열 검색을 효율적으로 수행하는 알고리즘. 실패 함수(Failure Function)를 이용해 불필요한 비교를 건너뛰며, 시간복잡도는 O(N+M)이다.
음수 가중치가 있는 그래프에서 최단 경로를 구할 수 있는 알고리즘. 음수 사이클 감지도 가능하며, 시간복잡도는 O(VE)이다.
분할 정복(Divide and Conquer) 기법을 사용하는 안정 정렬 알고리즘. 시간복잡도는 O(N log N)이며, 추가 공간이 필요하다.
두 문자열의 공통 부분수열 중 가장 긴 것을 찾는 동적 계획법 문제. 문자열 유사도 측정과 차이점 분석에 활용된다.
이진 트리에서 노드를 방문하는 순서를 다르게 하는 세 가지 순회 방법. 전위, 중위, 후위 순회로 나뉘며 재귀 또는 스택으로 구현 가능하다.
그래프에서 시작 정점으로부터 가까운 정점부터 차례대로 탐색하는 알고리즘. 최단 간선 수 경로 탐색에 유용하며 큐(Queue)를 사용한다.
가중치가 모두 비음수인 그래프에서 한 시작 정점으로부터의 최단 경로를 구하는 알고리즘. 우선순위 큐(최소 힙)를 사용하면 효율적이다.
정렬된 배열에서 중간값을 기준으로 탐색 범위를 절반으로 줄여가며 값을 찾는 알고리즘. 시간복잡도는 O(log N)이다.
동적 계획법(DP)을 사용하여 특정 금액을 만들기 위한 최소 동전 개수를 구한다. 그리디가 항상 최적을 보장하지 않는 경우에도 최적해를 보장하는 방법이다.
그래프에서 한 경로를 가능한 깊게 따라간 뒤, 더 갈 곳이 없으면 되돌아오는 탐색 방법. 재귀 또는 스택을 사용하며, 연결 요소 탐색과 위상 정렬 등에 활용된다.
Function Calling과 Tool Use를 통해 LLM이 API 호출, 데이터베이스 조회, 코드 실행 등 실제 도구를 사용하는 방법을 설명합니다. OpenAI, Anthropic, Google의 구현 방식과 실전 활용 예시를 알아봅니다.
AI Agent를 구축하기 위한 주요 프레임워크인 AutoGPT, CrewAI, LangGraph를 비교 분석합니다. 각 프레임워크의 특징, 장단점, 실전 활용 방법을 알아봅니다.
반응형 웹 디자인(responsive web design, RWD)이란 하나의 웹사이트에서 PC, 스마트폰, 태블릿 PC 등 접속하는 디스플레이의 종류에 따라 화면의 크기가 자동으로 변하도록 만든 웹페이지 접근 기법을 말한다. 웹사이트를 PC용과 모바일용으로 각각 별개로 제작하지 않고, 하나의 공용 웹사이트를 만들어 다양한 디바이스에 대응할 수 있다.
플러터(Flutter)는 구글이 개발한 오픈 소스 모바일 애플리케이션 개발 프레임워크이다. 안드로이드, iOS용 애플리케이션 개발을 위해, 또 구글 퓨시아용 애플리케이션 개발의 주된 방식으로 사용된다. 리액트 네이티브(React Native)는 페이스북이 개발한 오픈 소스 모바일 애플리케이션 프레임워크이다.안드로이드, iOS, 웹, UWP용 애플리케이션을 개발하기 위해 사용되며, 개발자들이 네이티브 플랫폼 기능과 더불어 리액트를 사용할 수 있게 한다.
IME란 한국어, 중국어, 일본어, 한자처럼 컴퓨너 자판에 있는 글자보다 더 많은 수의 문자를 계산서나 조합하여 입력해 주는 시스템 소프트웨어이다. 이러한 조합이 필요한 언어들은 v-model 디렉티브를 활용할 때 제대로 동작 안되는 문제가 있어, @input 이벤트를 활용하여 v-model 디렉티브 기능을 대신 구현해야 정확한 데이터 바인딩을 할 수 있다.
Vue Js 서버 사이드 렌더링 서버 사이드 렌더링이란 서버에서 페이지를 렌더링후 클라이언트(브라우저)로 보내 화면에 표시하는 기법을 의미한다. 뷰 싱글 페이지 애플리케이션을 서버 사이드 렌더링의 반대인 클라이언트 사이드 렌더링 방식이다. CSR…
라우트에 연결하거나 탐색을 수행 할 때 이름이 있는 라우트를 사용할수 있다. 사용 법은 routes 에 name 옵션을 지정 하면 된다. 라우트 관리가 편리 하다 라는 장점이 있다.
Android ROOM 개요 Room은 SQLite에 대한 추상화 레이어를 제공하여 원활한 데이터베이스 액세스를 지원하는 동시에 SQLite…
라우트에 연결하거나 탐색을 수행 할 때 이름이 있는 라우트를 사용할수 있다. 사용 법은 routes 에 name 옵션을 지정 하면 된다. 라우트 관리가 편리 하다 라는 장점이 있다.
라우트에 연결하거나 탐색을 수행 할 때 이름이 있는 라우트를 사용할수 있다. 사용 법은 routes 에 name 옵션을 지정 하면 된다. 라우트 관리가 편리 하다 라는 장점이 있다.
서비스 개발시 Form 유효성 검사는 필수이다. 보통 정규표현식을 사용하여 간단하게 구현할수 있지만, Vue 에서는 VeeValidate 를 활용하여 일관성 있는 Form 유효성 검사 기능을 구현 할수 있다.
2021년 Front End Road Map HTTP/S, HTML, CSS, JavaScript, NPM, BEM, Styled Component, CSS Module, Prettier, Jest, Cypress, Electron 등..
아산나눔재단에서 주최하는 글로벌 팀창업 프로그램 아산상회 Unboxing Day 회사별 특징 정리
애자일의 스크럼(Scrum)은 특정 개발 언어나 방법론에 의존적이지 않으며, 제품 개발 뿐만 아니라 일반적인 프로젝트 관리에도 사용 가능한 프로세스 프레임워크입니다. 스크럼(Scrum)은 작은 주기(Sprint)로 개발 및 검토를 하며 효율적인 협업 방법을 제공한다.
Jamstack은 Javascript, API 및 Markup의 약자이며 2015 년 Netlify의 CEO 인 Mathias Biilmann이 처음 만들어졌습니다. 서버 없이 배포 운영되는 모던 웹 개발 구조 이며, 장점으로는 높은 안정성, 빠른 성능, 확장성 및 낮은 비용, 쉬운 자동화 등이 있습니다.
킥오프 미팅을 앞두고 있다면, 우선 회의에서 이야기할 주제를 결정해야 한다. 그다음 안건과 프로젝트의 내용, 목적, 현황 분석이 담긴 자료를 배포하여, 팀웜들이 프로젝트 내용에 대해 사전에 숙지할 수 있도록 한다. 누구를 미팅에 초대해야 할지가 정해졌다는 가정하에 성공적인 킥오프 미팅을 위해서는 미팅 아젠다를 전략적으로 잘 계획하는 것은 매우 중요하다. 미팅 아젠다는 참석자들에게 지침서 역할과 함께 회의를 준비하고 집중할 수 있도록 하며 진행자에게는 회의 운영의 뼈대를 제공하고 회의가 산으로 가는 것을 막을 수 있게 하는 도구가 되기도 한다.
NPM의 신규 or 업데이트된 JavaScript 라이브러는 최신 안정화 Node.js 버전이 필요하다. 따라서 Node.js 를 주기적으로 업데이트를 해줘야 한다. Mac 기준 Node.js 를 가장 쉽게 업데이트 할수 있는 방법을 소개 하고자 한다.
Axios는 브라우저, Node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리이다. 비동기 방식은 웹페이지를 리로드하지 않고 데이터를 불러오는 방식이며,Ajax를 통해서 서버에 요청을 한 후 멈추어 있는 것이 아니라 그 프로그램은 계속 돌아간다는 의미를 내포하고 있다.
중간 크기 이상의 복잡한 앱을 제작할 때 getters & mutations & actions 의 이름을 유일하게 정하지 않으면 namespace 충돌이 난다. 따라서, 네임스페이스를 구분하기 위해 types.js 로 각 속성의 이름들을 빼고 store.js 와 각 컴포넌트에 import 하여 사용하는 방법이 있다. 혹은 modules 라는 폴더로 만들어 각 단위별로 파일을 분리해서 관리하는 방법도 있다.
Vuex State 는 데이터 상태를 관리 하며, Getters 를 사용하여 동일한 로직을 중앙에서 관리 하도록한다. Mutations 에는 순차적인 로직들만 선언하고 Actions 에는 비 순차적 또는 비동기 처리 로직들을 선언한다. 그리고 mapGetters, mapMutations, mapActions 등 헬퍼 함수가 있다.
Vuex는 npm install vuex 로 설치 할수 있다.
유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. JUnit 은 Java에서 독립된 단위테스트(Unit Test)를 지원해주는 프레임워크이다.
스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한,인가 등)을 담당하는 스프링 하위 프레임워크이다. 주로 서블릿 필터와 이들로 구성된 필터체인으로의 위임모델을 사용한다. 그리고 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안관련 로직을 작성하지 않아도 된다.
ApplicationContext는 다양한 기능을 상속하고 있다, 그중 MessageSource는 다국어 처리를 할 때 사용되는 객체이다. 스프링 부트를 사용한다면 별다른 설정 필요없이 messages.properties 로 정의하면 된다.
오류 처리는 프로그램을 개발하는데 있어서 매우 큰 부분을 차지한다. 오류를 예측해서 비정상적인 상황이 발생하지 않게 하는 것은 중요하다. 과하다할 만큼 상세하고 다양하게 예외를 잡아 처리해준다면, 클라이언트도 그렇고 서버도 그렇고 더 안정적인 프로그램이 될 수 있게 도와준다. 예외 처리에 집중 하다 보면, 비즈니스 로직에 집중하기 어렵고, 비즈니스 로직과 관련된 코드보다 예외 처리를 위한 코드가 더 많아지는 경우도 생기게 된다. 이런 문제를 조금이라도 개선하기 위해 @ExceptionHandler와 @ControllerAdvice를 사용한다.
Http 프로토콜은 여러 가지 사용목적에 따라 GET, POST, PUT, DELETE, FETCH.. 등 HttpMethod를 제공하고 있다. 주소 체계는 정형화된 구조로 구성하고 HttpMethod를 통해 리소스의 사용목적을 판단되도록 해야 한다.
Vuex는 Vue.js 애플리케이션에 대한 상태 관리 패턴 + 라이브러리 이다. 애플리케이션의 모든 컴포넌트에 대한 중앙 집중식 저장소 역할을 하며 예측 가능한 방식으로 상태를 변경할 수 있다.
리디렉션은 routes 에서 설정 할 수 있습니다. 별칭은 /user의 별칭은 /post는 사용자가 /post를 방문했을 때 URL은 /post을 유지하지만 사용자가 /user를 방문한 것처럼 매칭하는것 이다. 아래 처럼 위 라우터를 구현 할수 있다.
라우트에 연결하거나 탐색을 수행 할 때 이름이 있는 라우트를 사용할수 있다. 사용 법은 routes 에 name 옵션을 지정 하면 된다. 라우트 관리가 편리 하다 라는 장점이 있다.
vue-router의 기본 모드는 hash mode 입니다. URL 해시를 사용하여 전체 URL을 시뮬레이트하므로 URL이 변경될 때 페이지가 다시 로드 되지 않는다. 해시를 제거하기 위해 라우터의 history 모드 를 사용할 수 있다. history.pushState API를 활용하여 페이지를 다시 로드하지 않고도 URL 탐색을 할 수 있다.
주어진 패턴을 가진 라우트를 동일한 컴포넌트에 매핑해야하는 경우가 있다. 예를 들어 게시물 상세보기에 대해 동일한 레이아웃을 가지지만 하지만 다른 게시물 ID로 렌더링되어야하는 Post 컴포넌트가 있을 수 있다. vue-router에서 경로에서 동적 세그먼트를 사용하여 아래와 같이 할 수 동적으로 라우트를 매칭하여 세그먼트를 같은 레이아웃에 다른 게시물을 보여줄수 있다.
그리디 알고리즘, 탐욕 알고리즘 이라고도 부른다. 그리드 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각 되는것을 선택해 나가는 방식이다.
라우터 컴포넌트 안에 하위에 라우터 컴포넌트를 중첩하여 구성하는 방식이 중첩 라우트 이다.
웹에서의 라우팅은 웹 페이지 간의 이동 방법을 뜻 한다. 예를 들면 아래와 같다. Vue.js의 공식 라우트 이고, Vue.js 코어와 긴밀하게 연결되어 SPA를 쉽게 구축 할 수 있다. 그리고 화면 간의 이동 시, 깜빡거림 없이 매끄럽게 전환 할수 있다. (HTML History API)
Swagger는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 대부분의 사용자들은 스웨거 UI 도구를 통해 스웨거를 식별하며 스웨거 툴셋에는 자동화된 문서화, 코드 생성, 테스트 케이스 생성 지원이 포함되며, 간단한 설정으로 프로젝트에서 지정한 URL들을 HTML화면으로 확인할 수 있게 해준다.
JDBC는 자바 프로그램이 DBMS에 일관된 방식으로 접근할 수 있도록 API를 제공하는 자바 클래스들의 모임이다. MariaDB 특징은 기존에 MySQL 엔터프라이즈에서 플러그인으로 제공한 쓰레드풀 기능이 내장됐으며, 스토리지 엔진을 활용한 샤딩 기술을 제공한다. 즉, MySQL의 오픈소스 버전을 넘어 모든 버전을 대체할 수 있는 특징들을 갖추고 있다. JPA는 여러 ORM 전문가가 참여한 EJB 3.0 스펙 작업에서 기존 EJB ORM이던 Entity Bean을 JPA라고 바꾸고 JavaSE, JavaEE를 위한 영속성(persistence) 관리와 ORM을 위한 표준 기술이다. JPA는 ORM 표준 기술로 Hibernate, OpenJPA, EclipseLink, TopLink Essentials과 같은 구현체가 있고 이에 표준 인터페이스가 바로 JPA이다.
Vue 인스턴스는 생성될 때 일련의 초기화 단계를 거친다. 데이터가 변경되어 DOM을 업데이트하는 경우가 있다고 가정 하면, 그 과정에서 사용자 정의 로직을 실행할 수있는 라이프사이클의 훅 도 호출 된다. 컴포넌트는 하나의 블록을 의미한다. 레고처럼 여러 블럭을 쌓아서 하나의 집을 모양을 만들 듯이, 컴포넌트를 활용하여 화면을 만들면 보다 빠르게 구조화하여 일괄적인 패턴으로 개발할 수 있다. 이렇게 화면의 영역을 컴포넌트로 쪼개서 재활용할 수 있는 형태로 관리하면 나중에 코드를 재사용 할수 있다. 또한 모든 사람들이 레고의 사용설명서처럼 정해진 방식대로 컴포넌트를 등록하거나 사용하게 되므로 남이 작성한 코드를 직관적으로 이해할 수 있다.
뷰(Vue.js)는 점진적으로 채택 가능한 구조를 갖추고 있다. 코어 라이브러리는 선언형 렌더링과 컴포넌트 구성에 초점을 두며 기존 페이지에 임베드가 가능하다. 라우팅, 상태 관리, 빌드 도구화와 같이 복잡한 애플리케이션에 필요한 고급 기능들은 공식적으로 유지 보수되는 지원 라이브러리와 패키지를 통해 제공된다.
스프링부트는 최소한의 설정으로 스프링 플랫폼과 서드파티 라이브러리들을 사용 할 수 있도록 고안된 프레임워크 이다. 즉 스프링 부트는 환경 설정을 최소화하고 개발자가 비즈니스 로직에 집중할 수 있게하여 생산성을 크게 향상시켜준다.
Maven, Gradle은 라이브러리 관리, 프로젝트 관리, 단위 테스트 시 의존성 관리를 한다. Maven은 pom.xml을 이용한 정형화된 빌드 시스템, Gradle은 build.gradle을 이용한 정형화된 빌드 시스템 이다. Gradle은 Multi Project 를 구성 하여 공통된 부분을 효율적으로 활용 할수 있다.
자바스크립트에는 적연 변수와 지역 변수가 있고 연산자는 산술, 증감, 비트, 시프트, 대입, 비교, 논리, 조건 등이 있다. 마지막으로 조건문는 if - else, switch 등이 있다. 자바스크립트 연산자는 산술, 증감, 비트, 시프트, 대입, 비교, 논리, 조건 등이 있다.
JavaScript는 웹 브라우저 기반의 객체 위에서 동작합니다. 그래서 DOM 과 BOM에 대해 자세히 알 필요가 있다. DOM 은 Document Object Model 이다. BOM 은 Browser Object Model 이다.
MVC 모델이 가지고 있는 정보를 따로 저장해서는 안된다. 모델이나 컨트롤러와 같이 다른 구성 요소를 몰라야한다. 변경이 일어나면 변경 통지에 대한 처리 방법을 구현해야한다. 뷰는 사용자에게 데이타를 출력하고 표현하는 영역이다. 즉, 사용자가 눈으로 확인할 수 있는 UI 화면이다. 컨트롤러는 컨트롤러는 모델과 뷰의 중개자로써 사용자의 입력을 받고 처리하는 부분이다.
사용자는 애플리케이션과 상호작용한다. 컨트롤러의 이벤트 헨들러가 작동된다. 컨트롤러는 모델로부터 데이터를 요구하고, 그 결과를 뷰로 전달한다. 뷰는 데이터를 사용자에게 보여준다.
HTTP1.1은 1999년 출시 이후 지금까지 가장 많이 사용되고 있다. HTTP는 웹상에서 클라이언트와 웹서버간 통신을 위한 프로토콜 중 하나다. HTTP1.1은 기본적으로 연결당 하나의 요청과 응답을 처리하기 때문에 동시전송 문제와 다수의 리소스를 처리하기에 속도와 성능 이슈를 가지고 있다. HTTP2는 성능 뿐만 아니라 속도면에서도 월등하다. Multiplexed Streams(한 커넥션에 여러개의 메세지를 동시에 주고 받을 수 있다), Stream Prioritization(요청 리소스간 의존관계를 설정), Server Push(HTML문서상에 필요한 리소스를 클라이언트 요청없이 보내줄 수 있다), Header Compression(Header 정보를 HPACK압충방식을 이용하여 압축전송)을 사용하여 성능을 획기적으로 향상 시켰다.
스프링 부트를 활용하여 REST API를 개발하고 Swagger UI 로 API 문서화 자동화에 대해 학습 하고, Spring Boot & MariaDB, & JPA 를 활용해 REST API 를 개발 합니다.
Vue 와 ECMAScript6 을 활용하여 웹페이지 개발 방법에 대해 학습하고, JamStack 기반 블로그를 개발 합니다.
프로그램에 관한 데이터를 제공하거나 코드에 정보를 추가할 때 사용하는 것을 어노테이션이라고 한다. 대표적인 어노테이션으로는 @Controller, @SpringBootApplication등이 있다. 하지만 위 예시 어노테이션들은 이미 만들어진 어노테이션들이고, 직접 커스텀해서 어노테이션을 만들 수 있는데, 이것을 커스텀 어노테이션이라고 한다.
스프링부트는 최소한의 설정으로 스프링 플랫폼과 서드파티 라이브러리들을 사용 할 수 있도록 고안된 프레임워크 이다. 즉 스프링 부트는 환경 설정을 최소화하고 개발자가 비즈니스 로직에 집중할 수 있게하여 생산성을 크게 향상시켜준다.
MySQL 상태확인, 시작, 중지 및 데이터베이스 조회, 생성, 삭제
블록체인은 정보를 공유하고 다수가 합의에 의한 방 식으로 운영하게 하는 시스템이다. 이에 블록체인은 공유형 원장과 함께 합의 알고리즘이 사용되는데, 합의 알고리즘은 데이 터를 공유하는 방식에서 합의에 이르기까지 기능을 담당한다. 그래서 합의 알고리즘은 블록체인 주요 3요소라고 볼 수 있는 “보안성”, “탈중앙성” 그리고 “확장성”에 영향을 많이 미친다.
클라우드 함수는 Node.js 환경에서 실행되는 자바스크립트 함수이다. 이 함수는 특정한 이벤트가 발생할 때만 실행된다. 가령, 실시간 데이터베이스의 데이터 변경 인증을 통한 신규 사용자 가입, Analytics의 전환 이벤트에 대해 트리거되는 함수를 만들 수 있다.
파이어베이스 호스팅을 사용하면 단일 페이지 웹앱 또는 프로그레시브 웹앱을 간편하게 배포할 수 있다. 이는 배포된 각 사이트에 대하여 SSL 인증서를 자동으로 준비하여 구성한다. 도메인도 손쉽게 연결할 수 있다.
클라우드 스토라지는 사진,동영상등의 파일을 빠르고 손쉽게 저장하고 이를 제공할 수 있다.
실시간으로 데이터를 저장하고 동기화할 수 있는 클라우드 호스팅 NoSQL 데이터베이스이다. 파이어페이스 클라우드 함수를 사용하여 데이터베이스가 트리거하는 이벤트에 응답하는 백엔드 코드를 만들 수도 있다. 선언적인 규칙을 설정한 보안 모델을 사용하여 사용자 ID 또는 데이터 패턴 일치를 기준으로 액세스를 허용할 수 있다.
파이어베이스 인증의 목표는 인증 시스템을 손쉽게 구축하도록 지원한다. 이메일/비밀번호 계정, 전화 인증, Google, Twitter, Facebook, Github 로그인 등을 지원하는 종합적인 ID 솔루션을 제공한다.
파이어베이스(https://firebase.google.com)는 웹 모바일 개발에 필요한 통합 앱 플랫폼을 제공하는 BaaS(Backend as a Service) 이다. 초기에는 백엔드 데이터베이스를 구축할 필요 없이 API 형태로 데이터를 저장하고 자겨올 수 있는 기능에 국한되어 있었으나, 현재는 인증 및 실시간 데이터베이스, 클라우드 저장소, 호스팅, 애널리틱스 등 다양한 기능들이 통합되었다.
Map과 Set은 Java와 같은 다른 프로그래밍 언어에서도 자주 사용하는 데이터 구조이다. Map은 키와 값으로 이루어진 데이터 구조이고, Set은 중복 없는 키-값으로 이루어진다. 기존 자바스크립트에서는 배열과 객체로 해당 기능을 구현할 수 있었지만, 입력값의 목록이나 특정값 찾기를 수행하기 위해서는 별도의 과정이 필요하다.
ES6에서는 더욱 동적이고 간단하게 객체를 생성하고 할당하는 표현식을 제공한다. 만약, 객체의 속성을 변수명과 같은 속성명으로 설정하려면 이를 간단하게 표현할 수 있다.
모듈 프로그래밍은 각 프로그램 파일을 모듈 단위로 분리하여, 이를 구조화할 수 있는 장점이 있다. ES5 이전의 자바스크립트는 모듈을 지원하지 않았기에 다양한 방식을 사용해 이를 구현해왔다. ES6부터 import, export 구문을 활용하면, 한 모듈이 특정 변수를 익스포트(export)하고 다른 모듈이 이를 임포트(import)하여 계층 관계를 만들 수 있다.
프라미스(Promise)는 비동기 호출이 일어났을 때 또는 해당 테스크가 완료했을 때, 이를 처리할 함수나 에러를 처리할 함수를 설정하는 모듈이다. 특히, 비동기 처리가 많이 일어나는 XMLHttpRequest 처리에 주로 사용되며, 반환값이 연계적으로 처리가 가능하기에 순차적인 호출을 보장한다.
기존 자바스크립트에서는 for, for..in 루프만 사용할 수 있었는데, for..of는 iterator 형태로 순환할 수 있는 기능을 제공한다. iterator는 어떤 데이터 집합을 순서대로 접근할 때 사용된다. for..of 는 Symbol.iterator를 호출 하는데 배열과 문자열은 이 속성을 제공하고 있다. 즉, 배열을 순서대로 순회하며, 문자열은 문자를 하나씩 접근하게 된다. 또한, 사용자 정의 iterator을 커스텀 객체에 만들 수도 있다.
ES6부터 가변 인자를 표현할 '...' 키워드가 추가 되었다. 기존에는 배열 값을 함수 임자로 넘기려면 apply() 내장 메서드나 argments 를 통해 변수를 받아서, 이를 Array.prorotype.slice() 함수로 잘라내야 했지만 '...' 키워드를 이용하면 여러 개의 인자를 넘길 수 있다. 이는 Spread 연산자라고 한다.
디스트럭처링(Destructuring)은 Object 객체를 개별 변수에 할당하는 것을 말한다. 이를 이용하면, JSON 형태의 객체를 쉽게 매핑하여 변수에 할당할 수 있고, 반환값도 여러 개를 설정할 수 있다.
템플릿 문자열(Template String)은 문자열을 생성하는 새롭게 도입된 리터럴이다. 문자열을 설정하기 위해 따옴표(`)를 이용한다. 기존에는 변수를 문자열 안에 삽입하기 위해 따옴표 사이에 그 변수를 넣어 합치는 작업이 필요했는데, 템플릿문자열을 이용하면 이를 간단하게 만들 수 있다.
기존에는 객체지향을 구현하려고 할 때 function을 사용하여 구현 했다. ES6에서는 class 키워드를 사용하여 객체지향을 구현 할수 있다. ES6 클래스는 생성자와 상속을 더욱 간단하고 명확한 구문으로 다룰 수 있게 한다. 클래스 자신도 함수이며, 생성자를 가지고 함수를 생성하는 새로운 구문이다.
ES6에서는 익명함수를 표현하기 위해 화살표 함수 (Arrow function) 표현식을 지원한다.
OSX, Windows Chrome cross origin
RTOS(←Real Time Operating System)는 실시간 응용 프로그램을 위해 개발된 운영 체제이다. Pebble OS 는 RTOS 에 기반하여 개발되었다.
폴리머는 웹 컴포넌트 기반 애플리케이션을 쉽고 빠르게 만들어주는 라이브러리이다. 폴리머 3.0은 ES6을 이용하여 개발이 가능하며, 프로그레시브 웹앱을 적극 지원한다.
let, const 는 ES6 에 추가 되었다. let,const는 변수(let)와 상수(const)를 구분 하여 정의할때 사용 된다.
기존 자바스크립트의 여러 문제점을 해결하고 개선한 ES6 (ECMA6) 에 대해 알아 본다