Visual Studio에서 제공하는 React 프로젝트 템플릿은 ASP.NET Core와 React, create-react-app(CRA) 컨벤션을 사용하는 Client-Side UI 개발을 지원합니다. 이 프로젝트는 ASP.NET Core를 Backend로 사용하며, create-react-app을 통해 생성된 React를 UI로 사용합니다. ASP.NET Core와 React가 하나의 프로젝트로 구성되어 있어 한번에 빌드하고 한번에 배포 할 수 있는 편리함을 제공합니다. 이 React 프로젝트 템플릿은 Server-side rendering(SSR)을 지원하지 않습니다. 이 프로젝트 템플릿은 create-react-app 을 기반으로 구성되어 있습니다. 따라서 create-react-app에서 지..
OAuth 제작한 서비스를 다른 사람도 이용할 수 있게 권한을 인가(Authorization)하려면 어떻게 해야할까요? 다양한 방법들이 떠오를 것입니다. 실제로 많은 회사들이 서로 다른 인가(Authorization) 방법들을 제공했었고, 개발자들은 서로 다른 방법들을 연동하느라 많은 시간을 사용해야 했습니다. 그러던 중 2006년 블레인쿡, 크리스 메시, 래리 하프 등의 개발자들은 인가(Authorization)에 대한 개방형 표준의 필요성을 느꼈고 OAuth 표준을 개발하여 발표하게 되었습니다. OAuth는 등장 이후로 많은 관심을 받았으며, 2012년에는 IETF OAuth 워킹그룹을 주축으로 더욱 개선된 OAuth 2.0 표준이 만들어졌습니다. 이후로 수많은 기업들이 OAuth 2.0을 채택하여 ..
ASP.NET 웹개발에서는 기본적으로 Cookie를 통해 사용자를 인증합니다. 하지만 최근에는 SPA와 모바일앱 등 크로스플렛폼 개발이 늘어나면서 Token 기반 인증이 폭넓게 사용되고 있습니다. ASP.NET에서는 Cookie 기반 인증도 제공하지만, Token 기반 사용자 인증도 추가로 제공합니다. 사용자 인증에 사용되는 Cookie와 Token의 특징을 정리하면 다음과 같습니다. ASP.NET 인증 Cookie Token 플렛폼 웹(HTTP 프로토콜) 제약 없음(크로스플렛폼에 적합) 전송시점 모든 요청에는 Cookie가 포함되어 전송됨 (심지어 단순 이미지 다운로드도 Cookie가 전송됨) 개발자가 직접 전송시점, 방법을 통제함 (필요한 요청에만 Token 포함 가능) 보안 역사가 긴만큼 수많은 공..
서버는 일반 데스크톱과 달리 성능보다는 안정성을 위한 부품들로 구성합니다. (2021년 7월 기준으로 작성) CPU Xeon CPU를 사용하며 E3, E5, E7 라인업으로 나누어집니다. E3 라인업: 현재는 E3가 아니라 E2000 라인업으로 불리며, Entry Range 서버용 라인업입니다. 대략 동접자가 100명(작업에 따라 달라지겠지만) 이하인 소규모 서비스, 스타트업 서비스, 기업내부망 서버용으로 사용됩니다. ECC 메모리를 지원하지만 ECC/REG 메모리는 지원하지 않습니다. E5 라인업: Middle Range 서버용으로 주로 중대형 DB서버나 서비스에 적합합니다. 최소 수백만원에서 수천만원에 달하는 고가의 서버 제품군에서 사용되며 CPU 2~4개, 메모리 8~24개를 하나의 메인보드에 장착..
Package.json NPM에서 패키지를 관리하기 위한 파일 dependencies : 프로젝트에서 항상 사용되는 모듈 devDependencies : 개발환경에서만 사용되는 모듈 scripts : NPM에 내장된 다양한 script를 언제 어떻게 실행할 것인지 설정 browserlist : 지원 브라우저와 Node.js 버전 설정. 이 값은 프로젝트 내에서 공유되며 바벨에서 생성하는 스크립트에 영향을 미침 //package.json { "browserslist": [ "ie 11", //IE11 지원 ">0.2%", //브라우저 점유율 0.2% 이상 지원 "not dead", //지원이 중단된 브라우저 제외 "not ie
증상 npm install로 패키지 설치 시 아래 경고가 출력되는 경우가 있습니다. PM> npm install typesafe-actions npm : npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.1 (node_modules\chokidar\node_modules\fsevents): At line:1 char:1 + npm install typesafe-actions + CategoryInfo : NotSpecified: (npm WARN option...ules\fsevents)::String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError npm WARN notsup..
Redux는 자바스크립트 앱의 State 관리 프레임워크입니다. 리덕스를 사용함으로서 리액트에서 State 변이와 State 전달에 있어 복잡성을 낮추어 주며, 리액트에서 데이터 로직과 비지니스 로직을 손쉽게 분리할 수 있는 방법이기도 합니다. 또한 지루하고 반복적이고 복잡한 앱의 테스트와 디버깅을 쉽게 만들어주며 테스트 코드를 통해 테스트를 자동화할 수 있게 도와줍니다. 리덕스 사용 시 준수해야 할 3원칙 전체 State를 하나의 객체로 관리 State를 하나의 객체로 관리함으로써 State 변화를 쉽게 추적하고 관리 할 수 있게 만들어줍니다. 리액트 프로그램을 특정 State로 손쉽게 재현할 수 있게 되며 테스트나 디버깅에 용이함을 제공합니다. 프로그램의 State 변화를 히스토리 처럼 관리할 수 있..
클래스형 컴포넌트는 함수형 컴포넌트와 Hook이 등장하기 이전에 사용하던 컴포넌트 형태로 ES6(ECMA Script 2015)부터 추가된 JavaScript Class를 바탕으로 컴포넌트를 작성합니다. 함수형 컴포넌트 성능이나 메모리 사용에 있어 약간의 이점이 있음 Hook을 통해 state, lifeCycle을 구현함 클래스형 컴포넌트에 비해 표현이 간결함 클래스형 컴포넌트 ES6(ECMA Script 2015)부터 추가된 Class를 통해 컴포넌트 선언 함수형 컴포넌트와 Hook이 등장하기 전에 폭넓게 사용되었기 때문에, 레거시 코드에서 자주 발견할 수 있는 형태 표현방법이 좀 더 명시적이고, 함수형 컴포넌트 보다 약간 기능이 더 많음 클래스형 컴포넌트 생명주기 - 암기할 필요는 없지만 각 단계를 ..
이 글은 A Simple Explanation of React.useEffect()를 바탕으로 번역된 내용입니다. 잘못된 해석이 있을 수 있으며, 모든 권리는 원저자에게 있으며 원저자의 요청에 따라 언제든지 수정/삭제될 수 있습니다. React hook의 풍부한 표현식은 상당히 인상적입니다. hook을 사용하면 적은 코드를 작성하면서 더 많은 작업을 할 수 있습니다. 하지만 hook의 간결함에는 대가가 있습니다. 상대적으로 사용하기 어렵죠. 함수형 컴포넌트에서 side-effect를 관리하기 위한 useEffect() hook이 특히 사용하기 어렵습니다. 이 포스트에서는 useEffect() hook은 언제 어떻게 사용해야하는지 안내해드립니다. 1. useEffect()는 Side-effect를 위한 함..
useEffect()? React에서 제공하는 useEffect()는 Side-Effect를 처리하기 위해 사용한다고 합니다. 그렇다면 Side-Effect는 무엇일까요? 의료계에서 말하는 부작용의 의미는 아니고, 컴퓨터 공학에서 사용하는 다른 의미가 존재합니다. Side-Effect? 함수가 실행되면서 함수 외부에 존재하는 값이나 상태를 변경시키는 등의 행위를 말합니다. 예를들어 함수에서 전역변수의 값을 변경하거나 혹은 함수 외부에 존재하는 버튼의 텍스트를 변경하거나, 파일을 쓰거나, 쿠키 저장, 네트워크를 통해 데이터를 송신하는 것 등이 있습니다. Side-Effect는 절차형 프로그래밍에서 흔히 존재하는 작업이었고 무조건 나쁜 패턴이라고는 볼 수 없습니다. 하지만 Side-Effect는 프로그램을 ..
- windows
- Android
- Xamarin.Forms
- Xamarin.iOS
- ASP.NET Core
- linux
- TypeScript
- Xamarin.Forms eBook
- Xamarin.Forms 요약
- .NET Standard
- VisualStudio
- WPF
- npm
- flutter
- ios
- material-ui
- Xamarin
- React
- MS SQL
- Vue
- Total
- Today
- Yesterday