본문 바로가기

아카이브

(74)
PWA 프로그레시브 웹 앱 프로그레시브 웹 앱(PWA) 모바일 앱과 유사한 환경을 제공하는 웹용으로 개발된 앱 Google I/O 2016에서 처음 소개되었다. 특징 : 오프라인에서 작동하며, 알림을 보낼 수 있음 * PWA는 오프라인에서 작동하도록 설계되었지만 일부 기능은 인터넷 연결 없이는 정상적으로 작동하지 않을 수도 있다. 웹앱과 PWA를 구분할 수 있는 PWA 원칙 1. 발견 가능 : 컨텐츠를 검색 엔진을 통해 찾을 수 있습니다. 2. 설치 가능 : 기기의 홈 화면에서 사용할 수 있습니다. 3. 연결 가능 : 간단하게 URL을 전송해 공유할 수 있습니다. 4. 네트워크 독립적 : 오프라인이나 불안한 네트워크 연결에서 동작합니다. 5. 점진적 : 최신 브라운저의 모든 기능은 사용할 수 없지만 이전 브라우전의 기본 기능은 여..
미륵관심법 devices PATCH API async update(updateDeviceDto: UpdateDeviceDto) { try { const result = await this.deviceRepository.update( { uuid: updateDeviceDto.uuid }, { fcmToken: updateDeviceDto.fcmToken } ); if (result) return `기기가 재연결 되었습니다.`; else `기기 재연결에 실패하였습니다.`; } catch (error) { return "일시적인 오류가 발생하였습니다."; } } 응답하라 추억시대의 최종 발표가 끝나 드디어 미륵관심법을 위한 시간이 생겼다. 기본 기능은 구현하였지만 나아가 내가 더 개발해야 하는 부분이 있는지 검토하고 클린코드나 예외처리를 신경써야겠다.
미륵관심법 devices DELETE GET POST 예외처리 오늘은 가볍게 예외처리를 진행하였다. import { Injectable } from "@nestjs/common"; import { InjectRepository } from "@nestjs/typeorm"; import { CreateDeviceDto } from "./dto/create-device.dto"; import { DeleteDeviceDto } from "./dto/delete-device.dto"; import { Repository } from "typeorm"; import { DeviceEntity } from "./entities/device.entity"; import { UserEntity } from "../users/entities/user.entity"; @Inject..
미륵 관심법 기기 관리 API 구조 잡기 회원가입 / 로그인 파트가 진행중이라 userID를 제외한 API를 만들었다. 처음에 endpoint를 /devices/alert 로 잡았었는데 PR 코멘트를 받고 수정하게 되었다. 코멘트를 이용해서 처음 협업을 해 봐서 신기했다. import { Injectable } from "@nestjs/common"; import { InjectRepository } from "@nestjs/typeorm"; import { CreateDeviceDto } from "./dto/create-device.dto"; import { DeleteDeviceDto } from "./dto/delete-device.dto"; import { Repository } from "typeorm"; import { Device..
기기의 고유 ID 생성 방법 문제 기기의 고유 ID가 있어야 기기를 등록하거나 없앨 수 있는데 device ID를 받아오기 어렵다. 시도 UUID를 생성하고 crypto bcrypt 등으로 암호화 한뒤 그것을 고유 id로 하여 localStorage에 저장한다. 해결 localStorage는 사용자가 임의로 수정이 가능하다. 사용자가 검사 탭에서 수정이 불가능한 IndexedDB를 사용한다. UUID를 생성하고 Indexed DB에 저장한다. 암호화 과정은 초기에는 생략하되 필요하면 추가한다. 알게 된 점 IndexedDB는 사용자가 검사 탭에서 정보 수정이 불가능하다. LocalStorage보다 많은 정보를 담을 수 있다. 참고 자료 : https://developer.chrome.com/docs/devtools/storage/i..
노드 독서회 1회 노드 독서회 : 매주 수요일 9시 30분 ~ 10시 30분 코딩 관련 서적 읽고 유용한 지식 공유 또는 도서 추천 나의 독서 범위 자바스크립트 입문 공유하고 싶은 내용 0. JS의 역사 1995년 자바스크립트 탄생 2005년 AJAX 등장 2008년 V8 엔진 출시 2009년 Node.js 등장, 서버 개발 활성화 2015년 ECMAScript6(ES6) 출시 1. JS언어의 특징 1) 객체 지향 프로그래밍 지원 : 데이터와 함수를 객체라는 그룹으로 묶어서 처리 가능 객체 = { 이름 : 값, 이름 : 메소드} * 객체 내부의 함수 : 메소드, (속성의 값으로 추가 가능) 2) 동적 타이핑 지원 : 변수를 선언할 때 타입 지정 X, 런타임 시점에 변수에 할당되는 값에 따라 자동으로 데이터 타입 결정 O ..
후발대 일지 20230710 Layered Architecture Pattern 도메인 = 분야 Layered Architecture Pattern Controller > Service > Repository (역방향은 사용하지 마세요) Authmiddleware가 권한 체크하는 비즈니스 로직이라 서비스가 될 수 있나요? 아니면 자주 쓰이기 때문에 이전처럼 따로 미들웨어로 빼야 하나요? > 미들웨어로 빼는 것이 좋습니다. API가 실행되기 전에 진행되는 부분이기 때문에 암호화를 진행하는 bcrypt는 데이터를 가공하는 과정이라 서비스인가요? Bcrypt 가공해서 DB로 넘기기 때문에 서비스의 역할이 맞습니다
sansam day 1 팀 산삼의 페어 프로그래밍 프로젝트이다. 천천히 하루에 1-2개 기능씩 진행하며 모두와 속도를 맞춰 나간다. 아래는 조장님의 정리 노션이다. Notion: https://pinto-dosa-f96.notion.site/team-03293de9500e47b8b6c97dfc9f34ddd2 Github : https://github.com/verdantjuly/sansam