정신없이 보내다보니, 벌써 2023년 Q1이 지나갔다. 회사, 가정, 학업 모든 것에서 많은 일들이 속도감있게 지나가다보니, 글 하나 쓰기도 쉽지 않다. 그래서 간단히라도 로그를 남겨본다.Svelte 와 SvelteKit은 이제 나의 최우선 선택지가 되었다. React
최근에 SvelteKit으로 아주 작은 서비스를 하나 만들었다. 이에 간단한 소감을 남겨본다.일단 Svelte 에서 즐거웠던 점은 다음과 같다:React 에서의 여러 번잡스럽던 boilerplate 코드들이 한층 간결해졌다. 예를 들어, React에서 useState
Next.js 는 백엔드 API 쪽에 대한 지원이 참 빈약하다. Logger 도 기본 제공이 되지 않고, 라우팅도 HTTP Method 에 따라 분기해줄 수 있는 app.post 과 같은 함수도 없다. 2022년에 if 또는 switch 문을 써서 req.method
mux HTTP 기반으로 통신하는 RESTful API 서버를 만들기 위해 필요한 것이 무엇이 있을까? 일단 HTTP 요청에 대해 적절한 API 함수를 호출할 수 있어야 할 것이다. 입력으로 들어온 HTTP 요청을 "적절한 경로로 보낸다"라고 하여, 보통 라우터 또는
아주 간단한 $lookup 파이프 테스트이다. 실험 환경은 다음과 같다. users 와 posts, 2개의 콜렉션이 다음과 같이 존재한다. posts 의 creatorID는 users의 id 의 헥스 문자열, creatorObjID는 id를 의미한다. 여기서 우
Fiber는 Node.js의 Express에서 영감을 얻어 개발된 Go 언어 서버 프레임워크이다. Fiber는 Go 언어에서 가장 빠른 HTTP 엔진인 Fasthttp 기반으로 개발되어, 실제로 밴치마크 성능이 동일한 Go 언어 서버 프레임워크인 Gin, Echo 등과
Firebase Auth과 Next.js Firebase 는 사용자 인증 서비스인 Auth, 데이터베이스 서비스들인 Cloud Firestore, Realtime Database 등을 제공해주는 일종의 Backend as a Service 이다. Firebase 는 프
난 API 서버를 구현할 때, 보통 API Logger 를 가장 먼저 구현한다. 여기서 API Logger라 함은, API에 대한 Request, Response를 기록하는 기본적인 Logger를 의미한다. 예를 들어, express.js 의 morgan 미들웨어 같은
요즘 Next.js 가 엄청 재미있다. 그래서 작은 프로젝트 하나 한땀한땀 만들어가면서 반복적인 내용들을 잊어먹지 않도록 정리해보려고 한다. 대충 아래 내용들을 하나씩 해나가며 정리해보려 한다. 프로젝트 설정: TypeScript, ESLint, Prettier 설정
MongoDB는 대표적인 NoSQL, 또는 Document DB 이다. DB Engines라는 사이트에서 여러 메트릭들을 기반으로 DB 순위를 분석하는데, MongoDB는 NoSQL, Document DB 카테고리 1위일 뿐 아니라, 상위 5개 중 PostreSQL과
이번에 GoFiber 서버에 세션 기반 사용자 인증을 추가했던 내용을 정리해둔다.난 원래 JWT(JSON Web Token)기반 사용자 인증을 선호했었다. JWT를 쓰면서 클라이언트 측에 저장되는 토큰값이 항상 불안했기에 자주 "secure storage for JWT
나만의 React Native 앱을 개발하기 위한 프로젝트 셋팅 마지막 단계, 디자인 요소들을 추가해보자.React Native 로 모바일 앱을 개발한다 했을 때, UI 관련해서 "필요하다" 싶은 것들은 아래와 같다:Style 관련 라이브러리아이콘 세트폰트React N
모바일 앱도 데이터베이스가 필요하다. 언제나 서버와 연결되어있는 웹앱과 다르게(PWA 제외), 모바일 앱은 기본적으로 오프라인 상황에 대한 고려가 필요하다. 그리고 아무리 주요 데이터들을 서버에 의존하는 앱이라 하더라도, 기본적인 사용자 설정, 앱 상태 등에 대한 저장
앱의 척추는 내비게이션이다. API 서버를 구축할 때, 미들웨어 배치와 라우터(컨트롤러)에서 모델(데이터베이스)로 이어지는 구조가 가장 기본이자 코어에 해당하는 구조이듯, 앱에서는 내비게이션 구조가 가장 기본이자 코어에 해당하는 구조라고 할 수 있다.React Nati
모바일 앱을 개발할 때, 기본적으로 다음 사항들은 꼭 있어야 한다.내비게이션: 탭바, 스택 등을 통한 화면 이동임베디드 데이터베이스: 앱에서 사용하는 사용자 데이터를 저장아무리 API 서버 기반 앱이라고 해도, 기본적인 사용자 설정, 인증정보 등은 앱 내에 저장해야 한
Core Data를 View에서 사용하기 위해, managedObjectContext 라는 Environment를 지정해주자.... 뭐라고?정말 무슨 말인지 하나도 모르겠기 때문에, 하나하나 뜯어보자.우선 SwiftUI에서 Environment 라는 것은 Propert
위 코드에서 Closure 함수의 파라미터인 error 는 Error? 타입으로, Optional 타입이다. 그렇기에 error는 nil일 가능성이 있는데, 이를 체크하는 코드가 위와 같다.이때, let error 의 error 는 if 블록 안에서만 사용되는 로컬 변
SwiftUI에서 Core Data를 사용해보려고 아래 코드를 튜토리얼을 참고하여 작성했다.Swift 문법은 정말 신기한(?) 것들이 많은데, 한줄 한줄 살펴보기로 하자. 첫째로 이해가 안 간 라인은 아래 코드다.... 당췌 이게 무슨 코드란 말인가.정답은 Closur
docker compose 를 이용하고, 몽고DB 루트 관리자 정보는 .env.db 파일에 저장해서 사용한다. .env.db 파일은 git 저장소로 푸시하지 않도록 주의한다. docker-compose.yml 파일은 배포 구성 정보이므로 git 저장소로 푸시해준다.do
이 글에서는 도커로 실행 중인 몽고DB의 데이터를 파일로 백업하여, 이를 다시 복원하는 방법을 설명한다.(개인적으로 한 몽고DB 데이터를 통째로 다른 컨테이너의 몽고DB로 옮겨야 할 일이 생겨 수행하게 되었다.)Back Up and Restore with MongoDB