해시 라우터를 사용할 때는 발생하지 않는 문제지만 브라우저 라우터를 사용하면 발생하는 문제입니다. 연관글 영역 1. 문제의 발견 SPA(Single Page Application)에서 라우팅을 할 때 1) 새로고침을 하거나 2) SPA의 'APP'가 있는 URL에 진입하지 않고 다른 주소부터 진입하려고 하면 404 에러가 나게 됩니다. 해시(#) 라우팅을 쓸 때야 결국 지정된 파일을 읽은 후 해시 라우터를 사용하므로 문제가 되지 않지만 브라우저 라우터를 쓸 때는 진입 파일이 없으니 어쩔 수가 없죠. 2. 해결 방법 이 문제를 해결하려면 해석할 수 없는 주소가 왔을 때 폴백(Fallback)하도록 구성해야 합니다. (참고 : Rick Strahl's Weblog - Handling SPA Fallback ..
전편에서 했던 "API 결과 리턴 공통화"는 좀 급하게 만들다 보니 빠진 것이 있는데......가장 중요하다고 할 수 있는 '결과 처리 클래스'가 공통화가 덜돼서 최종 결과를 출력하는 'ApiResultReady.ToResult()'를 호출할 때 출력할 객체를 따로 지정해야 했습니다. 이번엔 이 불편함을 고쳐봅시다. 1. 'ApiResultBaseModel' 수정'ApiResultReady'에서 하던 성공 실패 여부를 처리하기 위한 기능을'ApiResultBaseModel'으로 옮여야 합니다. 성공 문자를 저장해두고 이것과 비교하는 함수를 추가합니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474..
API의 결과를 줄 때 성공하면 약속된 모델을 전달하고 실패하면 실패에 약속된 모델을 전달하는 것이 일반적인 방법입니다.이 방법의 문제는 성공했을 때와 실패했을 때 구분이 매번 똑같을 수 없으니 프론트엔드(Front-end)에서는 이것을 구분하기 위한 작업을 그때그때 해야 합니다. 그래서 API결과를 알리기 위해 고정된 값을 하나 전달해주는 것이 좋습니다.API 결과용 베이스를 만들어 API를 리턴할때는 이 베이스를 상속받은 모델을 리턴하는 것이죠. 1. 필요한 정보API결과는 다음과 같은 경우가 있습니다. 성공 : 의도대로 API가 성공한 경우실패 : 서버에서 실패로 판단하는 경우. 백엔드(Back-end)와 협의된 정보를 전달한다.캐치 가능한 오류 : 서버에서 캐치한 오류(try~catch)알 수 없..
드디어 EF(Entity Framework)를 연결합니다.이 프로젝트는 코드 퍼스트(Code First)라 해당 코드가 들어 있지만다른 방식을 사용한다면 코드 퍼스트 부분은 필요 없습니다. [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(2) - Ajax공통 기능, 데이터 바인드 처리[ASP.NET Core] .NET Core로 구현한 SPA(Single P..
WebAPI를 쓴다면 스웨거를 빼놓을 수 없습니다.스웨거는 WebAPI 문서를 자동화 해주는 해주는 라이브러리입니다.( 참고 : 위키백과 - 스웨거 (소프트웨어) ) 문서화뿐만 아니라 바로 테스트도 할 수 있으므로 프론트엔드 개발자와 소통이 편해지죠. [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(2) - Ajax공통 기능, 데이터 바인드 처리[ASP.NE..
요즘 웹 애플리케이션의 인증은 예전과 다르게 신경 써야 하는 것이..... 1) 모바일 환경으로 인해 아이피가 빈번하게 변경된다. 2) 업데이트나 서버 재시작을 하더라도 인증정보를 유지해 사용자 경험을 해치지 말 것. 외부 API를 지원하려면 OAuth를 구성하는 것이 좋습니다. 참고 : Naver Hello world - OAuth와 춤을 [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기 [ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초 [ASP.NET Core] .NET Core로 구현한 SPA(Single..
WebAPI의 리턴용 모델을 공통화하여 결과를 출력하기 위한 모델을 관리하겠습니다. 이미 기존 예제에도 포함되어 있는 내용입니다.순서를 좀 더 앞에서 다뤘어야 한다는 생각이 심각하게 드네요 ㅎㅎㅎㅎ [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(2) - Ajax공통 기능, 데이터 바인드 처리[ASP.NET Core] .NET Core로 구현한 SPA(Sin..
SPA를 만들 때 안 써도 상관없지만 쓰면 좋은 2가지가 Ajax 캡슐화와 데이터 바인드입니다. [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(2) - Ajax공통 기능, 데이터 바인드 처리[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(3) - API 결과 공통 처리[ASP.NET Core] .N..
SPA(Sigle Page Applications)를 구현하는 것은 기획한 사람 마음입니다.이 포스팅을 읽기 전에 참고할만한 내용이 있습니다.참고 : Michael S. Mikowski - Do you really want an SPA framework? 이 포스팅은 제가 SPA를 어떻게 구성했는지를 설명하고 공유하기 위한 것입니다. [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초[ASP.NET Core] .NET Core로 구현한 SPA(Single Page ..
싱글 페이지 애플리케이션(SPA, Sigle Page Applications)을 만들 때 필수로 필요한 것이 자바스크립트로 구현된 라우터(router)입니다. 자바스크립트로 한 개의 웹페이지를 화면 바인딩을 제어하여 마치 웹페이지가 한 개의 응용프로그램처럼 동작하게 하려면 페이지를 이동시키지 않고 주소를 갱신하여야 합니다. 이런 기능을 구현하는 것이 라우터입니다. 라우터는 크게 해시(#) 라우터와 브라우저 라우터로 구분할 수 있습니다. 자바스크립트로 구현된 라우터는 많습니다. 저는 그중 해시 라우터인 'Sammy.js'를 사용하여 간단하게 SPA를 구현해 보겠습니다. 1. 프로젝트 준비 'index.html'파일의 내용을 아래와 같이 작성합니다. 홈 'Sammy.js'는 홈페이지에서 받을 수 있습니다. ..