/users
/posts
/slides
/apps
/books
mysetting
/users
/posts
/slides
/apps
/books
안휘
개발자@빅픽처랩(주)
Sejong, Republic of Korea
Joined on 2021년 05월 12일
Profile
Post
Like
3:26 5/23
velog.io
3:26
velog.io
byron1st.log
https://velog.io/@byron1st
Hyperledger Fabric, React/React Native, Software Architecture
저작도구: velog
최종 피드 수집: 2024-11-12 06:47
전체 (39)
1y
2023 Q2/Q3 개발 후기
이러다 개발 후기만 적는 블로그가 되지 않을까 하는 걱정이 든다.
2023 Q2/Q3에는 오랜 시간 개발해왔던 회사 자체 서비스가 사실상 중단이 되었기 때문에, 용역 업무들이 중심이 된 시간이었다. 용역 업무는 모두 백앤드 개발이
0
0
0
읽기모드
1y
2023 Q1 개발 후기
정신없이 보내다보니, 벌써 2023년 Q1이 지나갔다. 회사, 가정, 학업 모든 것에서 많은 일들이 속도감있게 지나가다보니, 글 하나 쓰기도 쉽지 않다. 그래서 간단히라도 로그를 남겨본다.
Svelte 와 SvelteKit은 이제
0
0
0
읽기모드
1y
React 개발자의 Svelte 간단 소감
최근에 SvelteKit으로 아주 작은 서비스를 하나 만들었다. 이에 간단한 소감을 남겨본다.
일단 Svelte 에서 즐거웠던 점은 다음과 같다:
React 에서의 여러 번잡스럽던 boilerplate 코드들이 한층 간결해졌다.
0
0
1
읽기모드
1y
Next.js 에서 Request Body 를 검사하기
Next.js 는 백엔드 API 쪽에 대한 지원이 참 빈약하다. Logger 도 기본 제공이 되지 않고, 라우팅도 HTTP Method 에 따라 분기해줄 수 있는 app.post 과 같은 함수도 없다. 2022년에 if 또는 sw
0
0
0
읽기모드
2y
Go 언어로 HTTP API 서버 만들기
mux
HTTP 기반으로 통신하는 RESTful API 서버를 만들기 위해 필요한 것이 무엇이 있을까? 일단 HTTP 요청에 대해 적절한 API 함수를 호출할 수 있어야 할 것이다. 입력으로 들어온 HTTP 요청을 "적절한 경로로
0
0
3
읽기모드
2y
간단한 MongoDB $lookup 속도 측정
아주 간단한 $lookup 파이프 테스트이다.
실험 환경은 다음과 같다.
users 와 posts, 2개의 콜렉션이 다음과 같이 존재한다.
type User struct {
ID primitive.ObjectID `bs
0
0
5
읽기모드
2y
GoFiber 기반의 테스트 가능한 API 서버 만들기
Fiber는 Node.js의 Express에서 영감을 얻어 개발된 Go 언어 서버 프레임워크이다. Fiber는 Go 언어에서 가장 빠른 HTTP 엔진인 Fasthttp 기반으로 개발되어, 실제로 밴치마크 성능이 동일한 Go 언어
0
0
13
읽기모드
2y
Next.js 에 Firebase Auth 추가하기
Firebase Auth과 Next.js
Firebase 는 사용자 인증 서비스인 Auth, 데이터베이스 서비스들인 Cloud Firestore, Realtime Database 등을 제공해주는 일종의 Backend as a Se
0
0
0
읽기모드
2y
Next.js API Routes에 API Logger 추가하기
API Logger
난 API 서버를 구현할 때, 보통 API Logger 를 가장 먼저 구현한다. 여기서 API Logger라 함은, API에 대한 Request, Response를 기록하는 기본적인 Logger를 의미한다. 예
0
0
0
읽기모드
2y
Next.js 프로젝트 설정
요즘 Next.js 가 엄청 재미있다. 그래서 작은 프로젝트 하나 한땀한땀 만들어가면서 반복적인 내용들을 잊어먹지 않도록 정리해보려고 한다. 대충 아래 내용들을 하나씩 해나가며 정리해보려 한다.
프로젝트 설정: TypeScript
0
0
3
읽기모드
3y
MongoDB 쿼리에서 Join 하기
MongoDB는 대표적인 NoSQL, 또는 Document DB 이다. DB Engines라는 사이트에서 여러 메트릭들을 기반으로 DB 순위를 분석하는데, MongoDB는 NoSQL, Document DB 카테고리 1위일 뿐 아니
0
0
2
읽기모드
3y
GoFiber 에 세션 기반 인증 추가하기
이번에 GoFiber 서버에 세션 기반 사용자 인증을 추가했던 내용을 정리해둔다.
세션 기반 사용자 인증
난 원래 JWT(JSON Web Token)기반 사용자 인증을 선호했었다. JWT를 쓰면서 클라이언트 측에 저장되는 토큰값이
0
0
2
읽기모드
3y
4편. 디자인 요소들 추가
나만의 React Native 앱을 개발하기 위한 프로젝트 셋팅 마지막 단계, 디자인 요소들을 추가해보자.
React Native 로 모바일 앱을 개발한다 했을 때, UI 관련해서 "필요하다" 싶은 것들은 아래와 같다:
Style
0
0
0
읽기모드
3y
3편. 임베디드 데이터베이스 설치
모바일 앱도 데이터베이스가 필요하다. 언제나 서버와 연결되어있는 웹앱과 다르게(PWA 제외), 모바일 앱은 기본적으로 오프라인 상황에 대한 고려가 필요하다. 그리고 아무리 주요 데이터들을 서버에 의존하는 앱이라 하더라도, 기본적인
0
0
4
읽기모드
3y
2편. React Navigation 설치
앱의 척추는 내비게이션이다. API 서버를 구축할 때, 미들웨어 배치와 라우터(컨트롤러)에서 모델(데이터베이스)로 이어지는 구조가 가장 기본이자 코어에 해당하는 구조이듯, 앱에서는 내비게이션 구조가 가장 기본이자 코어에 해당하는
0
0
0
읽기모드
3y
1편. React Native 설치하기
모바일 앱을 개발할 때, 기본적으로 다음 사항들은 꼭 있어야 한다.
내비게이션: 탭바, 스택 등을 통한 화면 이동
임베디드 데이터베이스: 앱에서 사용하는 사용자 데이터를 저장
아무리 API 서버 기반 앱이라고 해도, 기본적인 사용
0
0
0
읽기모드
3y
SwiftUI의 Environment
Core Data를 View에서 사용하기 위해, managedObjectContext 라는 Environment를 지정해주자.
... 뭐라고?
정말 무슨 말인지 하나도 모르겠기 때문에, 하나하나 뜯어보자.
Environment
우
0
0
0
읽기모드
3y
Swift 에서 Optional 변수의 nil 체크
container.loadPersistentStores { description, error in
if let error = error {
fatalError("Failed to load per
0
0
0
읽기모드
3y
Swift Closure 문법
SwiftUI에서 Core Data를 사용해보려고 아래 코드를 튜토리얼을 참고하여 작성했다.
import SwiftUI
import CoreData
@main
struct DoneListApp: App {
lazy var
0
0
0
읽기모드
3y
몽고DB 도커컨테이너로 루트 관리자 정보와 함께 시작하기
docker compose 를 이용하고, 몽고DB 루트 관리자 정보는 .env.db 파일에 저장해서 사용한다. .env.db 파일은 git 저장소로 푸시하지 않도록 주의한다. docker-compose.yml 파일은 배포 구성 정
0
0
0
읽기모드
3y
도커로 실행 중인 몽고DB 데이터 옮기기 (백업/복원)
이 글에서는 도커로 실행 중인 몽고DB의 데이터를 파일로 백업하여, 이를 다시 복원하는 방법을 설명한다.
(개인적으로 한 몽고DB 데이터를 통째로 다른 컨테이너의 몽고DB로 옮겨야 할 일이 생겨 수행하게 되었다.)
몽고DB 백업하
0
0
13
읽기모드
3y
Fastify JWT 사용
Fastify 에 JWT 를 추가하는 것은 아주 쉽다. 개인적으로 지금까지 써본 서버 프레임워크들(express, koa, fastify, gin-gonic 등) 중에서 가장 쉬운 것 같다.
Fastify JWT
비교적 최근에 만
0
0
12
읽기모드
3y
Fastify 서버 API 정의
Route의 정의는 웹서버 개발에서 가장 중심이 된다고 할 수 있다. 해당 웹서버가 제공하는 API가 무엇인지를 정의하고, 구현하는 일이기 때문이다. 웹서버의 모든 것은 사실 이 API를 제공하기 위해 존재한다고 할 수 있다. J
0
0
0
읽기모드
3y
Fastify 서버 생성
Fastify 장점
Fastify 는 이름에서 알 수 있듯이, 빠른 속도를 내세우는 node.js 웹서버 프레임워크이다. 속도는 본인들의 벤치마크에 따르면, express 대비 약 4배, koa 대비 약 1.6배 빠르다.
빠른 속
0
0
11
읽기모드
3y
도커 컨테이너로 빌드, 실행된 서버가 호스트에서 호출 실패할 때
현상
제목이 간단하게 작성되지 못하는데는 이유가 있다. 현상이 매우 독특했기 때문이다. 우선 서버 코드부터 살펴보자.
import fastify from "fastify";
const server = fastify();
serve
0
0
3
읽기모드
3y
Hyperledger Fabric 인증서 갱신하기
Hyperledger Fabric을 구성하는 Orderer와 Peer는 msp와 tls 키를 갖고 있다. 이 키들은 cryptogen을 이용하여 키를 생성하거나, Fabric CA 서버에 enroll 하여 얻을 수 있다. cryp
0
0
5
읽기모드
3y
4월 개발 회고
매년 아주 바쁜 시기가 꼭 한번은 있다. 올해는 바로 4월이 그러했다. 2021년을 맞이하여 '아, 이제 시작인데?' 싶었던, 바로 그 한달이었다. 주말이면 아무것도 손에 잡고 싶지 않아, 벨로그에 글도 작성하지 못했다. 하지만
0
0
0
읽기모드
3y
React Native에서 이미지에 그라데이션 넣기
문제 배경
이건 사실 버그(?)에 대한 이야기다. 배경은 이렇다.
위 그림과 같이 이미지 상단에 그라데이션을 넣고자 했다. 이를 위해, react-native-linear-gradient 라이브러리를 설치하고 아래와 같이 코드를
0
0
0
읽기모드
3y
React Native에서 SwiftUI의 navigation title 흉내내기
SwiftUI에는 navigationTitle 이라는 것이 있다. 위 그림의 "요약"처럼 처음에는 큼지막하게 보이지만, 사용자가 스크롤 다운하면 보통의 네비게이션 헤더처럼 상단에 작게 표시되는 컴포넌트다. SwiftUI에서는 Na
0
0
2
읽기모드
3y
MongoDB의 Index 개선
trust-chain-services 백엔드의 오랜 기술 부채는 바로 DB 인덱스였다. 개발 일정은 타이트한데, 아직 쓰는 사람이 많지는 않으니 자연스레 최적화를 등한시(?)하게 되고, 그 결과가 널부러진(?) DB 인덱스가 되었
0
0
0
읽기모드
3y
서버 업데이트 절차
2020년 개발 회고 글에서 말했듯, 우리 회사는 trust-chain-services 라는 Go 언어로 짜여진 백엔드 서버가 존재한다. 지난 2주 정도 동안 이 백엔드 서버에 대해 몇가지 업그레이드를 수행하고 버전을 1.5.3.
0
0
5
읽기모드
3y
React Native 개발자의 SwiftUI 사용기
최근에 개인 프로젝트를 해볼까하여, React Native를 대신해서 앱을 개발할 도구들을 탐색해보고 있었다. React Native는 회사에서 너무 많이 쓰고 있으니, 신선한 자극도 느껴보고 새로운 도구도 배워보고 할 심산이었다
0
0
19
읽기모드
3y
2020년 개발 회고
2021년이 되고도 제법 지난 시점이지만, 그래도 더 늦기 전에 작년의 개발 내용들을 회고해본다.
trust-chain-services 프로젝트
2020년 개발의 진정한 시작은 3월에 시작되었다. 나는 3월에 trust-chain
0
0
0
읽기모드
3y
x.509 certificate signed by unknown authority
배경
우리 회사의 모바일 앱은 Expo기반의 React Native 로 개발된다. 최근에 알림 기능을 개발하면서 Expo Push Notification 을 사용했다. 테스트 서버에서도 잘 동작하기에 별 걱정 없이 프로덕션 단계로
0
0
0
읽기모드
3y
http: Accept error: ... : too many open files
배경
얼마 전에 겪었던 일이다. 상황은 이렇다. 우리 회사의 백엔드 시스템은 게이트웨이 서버를 포함, 5개의 마이크로서비스 서버들로 구성되어 있다. 이들은 오고가는 HTTP Request/Response를 로그로 기록하는데, 이를
0
0
1
읽기모드
3y
Go 언어 Slice의 특징
array는 고정된 크기를 갖는다. 반면 slice는 내부적으로 len, cap, 그리고 array에 대한 포인터로 구성된 구조체로, 편리한 사용을 위한 array 래퍼 구조체로 보면 좋다. Java의 Vector와 매우 유사하다
0
0
0
읽기모드
3y
Hyperledger Fabric의 체인코드 Version과 Sequence의 차이
Hyperledger Fabric v2.1에서는 체인코드를 Id, Version과 Sequence로 구분한다. 기존 v1.x 에서는 Id와 Version 만으로 구분했었는데, Sequence 라는 것이 추가되었다. “Id와 Ver
0
0
5
읽기모드
3y
Hyperledger Fabric에서의 MVCC Read Conflict
MVCC: Multi-Version Concurrency Control
MVCC는 DBMS에서 동시성 문제를 해결하기 위해 나온 기법으로, Hyperledger Fabric에 국한된 용어는 아니다. 일반적으로 동시성 문제는 읽기,
0
0
0
읽기모드
3y
React의 Custom Hook 리팩토링
React Hook 이란
객체지향언어(Object-Oriented Programming, OOP)에서 클래스(Class)는 데이터의 정의와 그 데이터를 대상으로 동작하는 함수(Method, 이하 메소드)들의 정의로 구성된다. 그리
0
0
0
읽기모드
About
Badge
Contact
Activity
Terms of service
Privacy Policy