목록전체 글 (134)
PracticeEveryday

구조적 프로그래밍 1. 증명 - 데이크스트라가 초기 인식한 문제는 프로그래밍은 어렵고, 프로그래머는 프로그래밍을 잘하지 못한다는 것이었다. - 모든 프로그램은 단순해도 인간의 두뇌로 따라가긴 힘들었고 작은 세부 사항이라도 간과하면 프로그램이 잘 동작하는 것처럼 보여도 결국엔 예상 외의 방식으로 실패했다. - 데이크스트라는 증명 ( Proof )이라는 수학적 원리를 적용하여 이 문제를 해결하려 했다. - 이는 공리, 정리, 따름 정리, 보조정리로 구성되는 유클리드 계층 구조를 만드는 것이었다. 공리: 증명 없이 참으로 받아들이는 명제 Ex 두점이 주어졌을 때 두 점을 지나는 직선은 단 하나 존재한다. => 증명할 수 없기에 공리라 부른다. 정리: 증명이라는 과정을 통해 참이라는 것이 밝혀진 명제 보저정리:..

Architecture 1960년대나 1950년대와 마찬가지로 코드는 여전히 순차, 분기, 반복의 집합체일 뿐이다. 컴퓨터 프로그래밍을 하는 관행을 정말 유심히 관찰해 보면 지난 50년 동안 변한 게 거의 없다는 것을 알게 된다. 언어는 조금 발전했고 도구는 환상적으로 좋아졌다. 하지만 컴퓨터 프로그래밍을 이루는 기본적인 구성 요소는 조금도 바뀌지 않았다. 설계와 아키텍처의 차이 1. 둘 사이에는 차이가 없다. - 보통 '아키텍처'란 저수준의 세부하상과는 분리된 고수준의 무언가를 가리킬 때 사용된다. - 보통 '설계'란 저수준의 구조 또는 결정 사항 등을 의미할 때가 많다. => 하지만 아키텍트가 실제로 하는 일을 살펴보면 이런 구분은 무의미하다. Ex) 새로운 집을 설계하는 아키텍트 - 이 집의 아키텍..

- URI 값으로 넘겨주는 데 아무리 받아도 {uuid}가 찍힌다.. - docs를 찾아보니 #으로 엄청난 글자가 있었다. - name을 uuid로 바꿔주니 된다 ㅠㅠㅠ
보호되어 있는 글입니다.

의존성 - 의존성은 구성 요소들이 서로 의존하는 성질입니다. // 의존성은 구성 요소들이 서로 의존하는 성질입니다. // Programmer 클래스는 Laptop 클래스에 의존성을 띕니다. class Laptop { public turnOn() {} } class Macbook extends Laptop {} class Programmer { private laptop: Laptop; constructor() { this.laptop = new Laptop(); } public programming() { this.laptop.turnOn(); } } // programmer가 Mabook을 사용한다면 생성자 함수에 Macbook으로 변경해야 하는 이슈가 발생한다. class Programmer2 { p..

OneToOne - 유저, 프로필 테이블은 1:1 관계이다. - 유저에서는 타입을 프로필 테이블로, 프로필에서는 타입을 유저로 지정해줍니다. - 그리고 @JoinColumn()을 사용한 필드는 FK( 외래 키 )로 타겟 테이블( 유저 )에 등록되게 됩니다. @JoinColumn()은 반드시 한 쪽 테이블에서만 사용해야 합니다. import { Entity, Column, PrimaryGeneratedColumn, OneToOne } from "typeorm"; import { ProfileEntity } from "./profile.entity"; @Entity("user") export class UserEntity { @PrimaryGeneratedColumn("uuid") id: string; @C..

IAM ( Ientity And Access Manager ) - AWS의 리소스에 대한 개별적으로 접근제어와 권한을 가지도록 계정 또는 그룹을 생성, 관리하는 서비스입니다. - IAM을 통해 어떤 IAM은 EC2 서비스만 접근할 수 있도록 권한을 부여하고, 다른 IAM 계정은 S3 서비스만 접근할 수 있도록 권한을 나눌 수 있다. - 초기 AWS 계정 생성시 해당 계정의 모든 AWS 서비스 및 리소스에 완전한 엑세스 권한이 있는 하나의 ID, 즉 AWS 계정 루트 사용자로 시작하게 됩니다. - 일상적인 작업, 관리 작업조차도 이 루트 사용자 계정으로 사용하지 않는 것을 권장하고 있습니다. IAM 주요 기능 1. 계정에 대한 공유 액세스: 암호나 액세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하..

tsconfilg.json { "compilerOptions": { "emitDecoratorMetadata": true, "experimentalDecorators": true, // TSC가 코드 실행 환경에서 이용할 수 있다고 가정하는 API //Function.prototype.bind, ES2015의 Object.assign, DOM의 document.querySelector 등 "lib": ["ES2020"], // TSC가 코드를 컴파일할 대상 모듈 시스템 "module": "commonjs", // 생성된 자바 스크립트 코드를 출력할 디렉터리 "outDir": "dist", "sourceMap": true, // 유효하지 않는 코드를 확인할 때 가능한 한 엄격하게 검사 // 이 옵션을 이용..

Find Options 1. Basic Options - 모든 Repository와 Manager는 QueryBuilder를 사용하지 않고 find 메서드를 사용해서 필요한 데이터를 쿼리하는 데 사용할 수 있습니다. - Select : 선택해야 하는 기본 개체의 속성을 나타냅니다. userRepository.find({ select: { firstName: true, lastName: true, } }) SELECT "firstname", "lastName" FROM "user"; - Relations : 관계는 메인 엔티티와 함께 로드되어야 합니다. 하위 관계와도 로드 가능합니다. ( join은 leftJoinAndSelect의 약어입니다. ) userRepository.find({ relations:..