본문 바로가기

전체 글14

isPublic vs isPrivate boolean 필드 네이밍 이번 글에서는 파일 공유 시스템을 개발하는 과정에서 발생한 boolean 필드 네이밍에 대한 문제를 고민한 과정을 다룹니다.해당 사례는 NestJS 기반 백엔드 개발중 발생한 과정을 포함합니다.NestJS v9.0TypeORM v0.3isPrivate과 isPublic파일 공유 시스템을 개발하던 중, 파일의 공개/비공개 여부를 나타내는 boolean 필드를 고민하며,다음과 같은 두 가지 선택지가 있었습니다.isPrivate: booleanisPublic: booleanisPrivate으로 작성한 코드처음에는 다음과 같이 필드명을 isPrivate으로 Entity를 작성했습니다. // file.entity.ts 일부@Entity()export class File { @PrimaryGeneratedColu.. 2024. 10. 27.
디자인 패턴 - typescript로 작성하는 싱글톤 패턴 싱글톤 패턴싱글톤 패턴은 클래스의 인스턴스를 하나의 객체로 제한하는 디자인 패턴으로해당 객체가 프로그램 전체에서 사용할 수 있도록 구성하여, 코드의 재사용성을 높이고 메모리의 사용량을 최소화합니다. 싱글톤 패턴은 전역 상태를 관리하거나 공유 리소스에 대한 접근을 제어할 때 주로 사용합니다.일반적인 클래스우선 일반적인 클래스를 구현하는 방식은 다음과 같습니다.import { Repository } from "typeorm"import { Post } from "../entity/Post"import { AppDataSource } from "../data-source"export class NonSingletonPostService { private postRepository: Repository .. 2024. 10. 5.
[AWS Lambda] Serverless Frameworks로 간단한 node API 배포 Serverless FrameworksAws, GCP, Azure 등 여러 클라우드 업체를 지원하는 서버리스 프레임워크로, serverless.yml을 통해서 각 클라우드에 배포를 돕습니다.AWS의 경우, CloudFormation 선언을 생성하고 해당 생성된 파일로 severless stack을 생성 및 갱신합니다.그 과정에서 코드의 용량에 따라서 크면 S3에, 작으면 즉시 Lambda로 업로드 해, 해당 코드를 Lambda에서 사용합니다. 즉, 서버리스의 코드, 인프라 등 모두 serverless.yml파일 하나로 쉽게 관리가 가능한 프레임워크입니다.serverless.yml 예시service: node-serverlessprovider: name: aws runtime: nodejs20.x r.. 2024. 9. 22.
Github SSH Key 설정 github을 사용해서 push나 pull을 할 때마다, 로그인을 하거나 패스워드를 입력하는 과정은 매우 귀찮습니다.SSH key를 맥에 설정하고 해당 과정을 줄여 귀찮음을 덜어내는 방법이 있습니다.해당 글은 github 계정이 존재한다고 가정하고 작성합니다.SSH(Secure Shell Protocol), SSH Key란?SSH(Secure Shell Protocol)공개적인 통신을 할 때 보안을 위해 사용하는 암호화된 프로토콜입니다.이 방식을 통해서 Github의 Repository에 접근 및 데이터를 사용할 수 있습니다.SSH를 통해서 연결 시 컴퓨터에 있는 어떤 Key를 사용해서 인증하는데, 이 키를 생성해 Github를 사용하면 됩니다.SSH Key 생성터미널에서 아래의 명령어를 통해 Key를 .. 2024. 9. 21.
React-Native M1 Mac 세팅 애플 실리콘 맥을 새로 장만하면서 RN을 세팅하는 방법 정리이 글은 node, Homebrew는 설치되었다고 가정하고 작성합니다.RN을 위한 도구, 라이브러리 설치X-code 설치React-Native를 위한 X-code를 애플 앱스토어에서 검색 후 설치하면 됩니다.watchman 설치다음 명령어를 통해서 watchman을 설치합니다.> brew install watchmancocoapod 설치다음 명령을 사용해 iOS 개발을 위한 CocoaPods를 설치합니다.> sudo gem install cocoapods저의 경우 위 명령어를 사용한 뒤 Ruby 버전으로 인한 아래와 같은 에러가 나왔습니다.ERROR: Error installing cocoapods: The last version of d.. 2024. 9. 20.
javascript의 시간 설정 - "setHours", "setUTCHours" 시간 데이터를 다루는 것은 서버 개발의 중요한 부분 중 하나입니다.특히, 사용자들이 서로 다른 시간대에 접속하는 글로벌 서비스를 운영할 때, 시간 데이터를 일관되게 관리하는 것이 중요합니다. 웹에서의 시간 데이터는 사용자의 로그나 예약시스템, 일정 관리와 같은 부분에서 사용하며,이러한 데이터를 올바르게 관리하지 않으면, 데이터의 불일치로 인한 문제가 발생할 수 있어 시간 데이터를 일관적으로 관리해야합니다.javascript로 시간 설정하기JavaScript에서 Date객체를 사용해서 시간을 설정할 때, setHours와 setUTCHours 메서드를 통해서 시간을 설정할 수 있습니다. 두 메서드는 모두 같은 파라미터를 구성하며, 자세한 메서드의 사용법은 setHours를 통해서 알아보겠습니다.setHou.. 2024. 6. 16.