본문 바로가기

전체 글36

[프론트엔드 아키텍쳐] SARDIP WEB-GIS Monorepo 안녕하세요. 이번 글에서는 현재 회사에서 진행중인 프로젝트의 규모가 확장됨에 따라 기존 모놀리식 프로젝트를 확장해서 새로운 아키텍쳐를 도입한 내용을 공유하고자 합니다. MFA, FSD 등 프로젝트 확장에 적용할 수 있는 다양한 프론트엔드 아키텍쳐가 존재하지만, 그중에서도 저희는 Vercel에서 추천하는 모노레포 라이브러리인 turbo와 최근 모노레포 구성에서 각광받고 있으며 또한 Vercel에서 모노레포 구성 시 추천하는 pnpm을 사용했습니다. 간단한 사용법은 turbo 공식 홈페이지에 나와있어서 문서를 읽어보시면서 따라하시면 충분히 이해하실 수 있을 것입니다. 중요한 것은 사용한 게 아니라 왜 turbo + pnpm 구조인 모노레포를 사용하였는지 이므로, 본 글에서는 그에 대해 작성하겠습니다. MFA.. 2024. 6. 6.
[웹 프론트엔드 개발] 프론트엔드와 DTO - DTO는 일반적으로 백엔드에서 데이터를 전송하는 객체를 의미한다.- 서비스 로직에 DTO를 전송하여 비즈니스 로직을 처리하게 된다.- 만약 DTO 생성 시에 처리해야하는 로직이 있다면 이를 내부 메서드에서 구현하여 처리한다.- 하지만 좀 더 복잡한 로직이 수반된다면 이는 서비스 로직으로 옮겨간다. (DTO 예시)interface UserDTO { id: number; name: string; email: string;}class User { id: number; name: string; email: string; constructor(dto: UserDTO) { this.id = dto.id; this.name = dto.name; this.email = dto.email.. 2024. 6. 6.
[비트코인/블록체인] 비트코인 기본 개념 정리 용어이중지불 (Double-Spending)- 온라인 상에서는 이메일을 한 사람에게 여러번 보낼 수 있다. 일반적인 상황에서는 크게 문제가 없지만, 온라인 상에서 p2p 거래를 할 때 문제가 된다.- 내가 돈을 보냈다고 알려주어도, 이것이 실제로 돈을 보냈다는 것을 보증할 수 없다.- 현재 온라인 거래 시스템은 제3자가 보증해주는 에스크로 형태로 구현되어 있다. 즉, 은행과 같은 중앙집중화 된 데이터베이스에서 사용자들 간의 거래를 인증하는 식으로 온라인 거래를 구현하였다.- p2p(peer to peer)를 통해 탈중앙화된 거래 방식을 꿈꾸며 비트코인을 개발한 일군의 개발자들은, 이를 네트워크 상에 분산되어있는 노드들을 사용해서 거래를 증명하는 식으로 구현하였다.- 노드(node)들은 비트코인 거래 내역.. 2024. 5. 19.
[SQLD] 데이터 모델링의 이해 문제 (41-80) 41.아래를 참고할 때 시간대별사용량 테이블을 기반으로 고객별 사용금액을 출력하는 SQL로 가장 적절한 것은? ① (조인조건 "B.사용시간대 = C.종료시간대" 가 잘못되었음.) SELECT A.고객ID, A.고객명, SUM(B.사용량 * C.단가) AS 사용금액 FROM 고객 A INNER JOIN 시간대별사용량 B ON (A.고객ID = B.고객ID) INNER JOIN 시간대구간 C ON (B.사용시간대 = C.종료시간대) GROUP BY A.고객ID, A.고객명 ORDER BY A.고객ID, A.고객명; ② (조인 조건 "ON (A.고객ID = B.고객ID AND B.사용시간대 BETWEEN C.시작시간대 AND C.종료시간대)"를 사용하는데 조인 순서가 올바르지 않음. 두 개의 테이블 조인을 동.. 2024. 4. 23.