분류 전체보기

웹 애플리케이션에서 라우팅이라는 개념은 사용자가 요청한 URL에 따라 알맞은 페이지를 보여주는 것을 의미한다. 글쓰기 페이지: 새로운 포스트를 작성하는 페이지이다. 포스트 목록 페이지: 블로그에 작성된 여러 포스트의 목록을 보여주는 페이지이다. 포스트 읽기 페이지: 하나의 포스트를 보여주는 페이지이다. 이렇게 여러 페이지로 구성된 웹 애플리케이션을 만들 때 페이지 별로 컴포넌트들을 분리해가면서 프로젝트를 관리하기 위해 필요한 것이 바로 라우팅 시스템이다. 리액트 라우터: 이 라이브러리는 리액트의 라우팅 관련 라이브러리들 중에서 가장 오래됐고, 가장 많이 사용되고 있다. Next.js: 리액트 프로젝트의 프레임워크이다. 앞에서 사용한 Create React App처럼 리액트 프로젝트 설정을 하는 기능, 라..
리액프 프로젝트를 생성하는 사전 준비 작업을 수행하고 나서 첫 리액트 프로젝트를 만들어 볼 것이다. 1-1. Node.js와 npm 리액트 프로젝트를 만들 때는 Node.js를 반드시 먼저 설치해야 한다. https://hyunho1lee.tistory.com/30 Node JS 설치하기 2009년 5월 27일 처음 공개된 Node.js는 오픈 소스 JavaScript 엔진인 크롬 V8에 비동기 이벤트 처리 라이브러리인 libuv를 결합한 플랫폼이다. 다시 말해, JavaScript로 브라우저 밖에서 서버를 구축하는 등 hyunho1lee.tistory.com Node.js를 설치하면 Node.js 패키지 매니저 도구인 npm이 설치된다. npm으로 수많은 개발자가 만든 패키지를 설치하고 설치한 패키지의..
자바스크립트로 크로스 플랫폼 애플리케이션을 개발할 수 있는 여러 프레임워크를 사용하여 수많은 공룡급 애플리케이션과 중 소규모 애플리케이션을 개발했다. 이 프레임워크들은 주로 MVC, MVVM 아키텍처를 사용한다. AngulorJS의 경우는 MVW 아키텍처로 애플리케이션을 구조화한다. 공통점: 모델과 뷰가 있다는 것이다. 모델은 애플리케이션에서 사용하는 데이터를 관리하는 영역이고, 뷰는 사용자에게 보이는 부분이다. 프로그램이 사용자에게서 어떤 작업을 받으면 컨트롤러는 모델 데이터를 조회하거나 수정하고, 변경된 사항을 뷰에 반영한다. 페이스북 개발 팀은 이를 해결하려고 하나의 아이디어를 고안해 냈는데, 어떤 데이터가 변할 때마다 어떤 변화를 줄지 고민하는 것이 아니라 기존 뷰를 날려 버리고 처음부터 새로 렌..
· 서버/AWS
외부에서 본인이 만든 서비스에 접근하려면 24시간 작동하는 서버가 필수이다. 집에 PC를 24시간 구동시킨다. 호스팅 서비스을 이용한다. 클라우드 서비스(AWS, AZURE, GCP 등)을 이용한다. 클라우드 서비스는 쉽게 말해 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워크, 소프트웨어, 모니터링 등의 컴퓨팅 서비스를 제공하는 것이다. 클라우드에는 몇 가지 형태가 있다. (1) Infrastructure as a Service (laaS, 아이아스, 이에스) 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스이다. 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해 주는 서비스라고 보면 된다. AWS의 EC2, S3 등 (2) Platform as a Service (PaaS..
스프링 시큐리티는 막강한 인증과 인가 기능을 가진 프레임워크이다. 사실상 스프링 기반의 애플리케이션에서는 보안을 위한 표준이라고 보면 된다. 인터셉터, 필터 기반의 보안 기능을 구현하는 것보다 스프링 시큐리티를 통해 구현하는 것을 적극적으로 권장한다. 스프링의 대부분 프로젝트들처럼 확장성을 고려한 프레임워크다 보니 다양한 요구사항을 손쉽게 추가하고 변경할 수 있다. 스프링 시큐리티와 스프링 시큐리티 Oauth2 클라이언트 spring-security-oauth2-autoconfigure 라이브러리를 사용할 경우 스프링 부트 2에서도 1.5에서 쓰던 설정을 그대로 사용할 수 있다. 스프링 부트 1.5 방식에서는 url 주소를 모두 명시해야 하지만, 2.0 방식에서는 client 인증 정보만 입력하면 된다...
NoSQL DBMS의 한 종류. MongoDB는 NoSQL로 분류되는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다. MySQL 처럼 전통적인 테이블-관계 기반의 RDBMS가 아니며 SQL을 사용하지 않는다. MySQL의 테이블과 같은 스키마가 고정된 구조 대신 JSON 형태의 동적 스키마형 문서를 사용한다. MongoDB는 가장 기본적인 데이터를 Document라고 부른다. Document의 집합을 Collection이라고 하는데, RDBMS에서는 테이블에 해당된다. Collection의 집합은 DB이고, 이는 RDBMS에서도 동일하다. 데이터 일관성이 거의 필요없고 조인 연산을 Embed로 대체할 수 있는 경우에는 MongoDB가 확실한 대안이다. 반대로 저장하는 데이터가 은행 데이터 값이 일관..