일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- BFS
- HTTP 완벽 가이드
- 가천대
- TCP
- 타입스크립트
- ip
- Nestjs
- socket
- 문자열
- 레벨 1
- HTTP
- 쉬운 문제
- Node.js
- 알고리즘
- type challenge
- dfs
- 백준
- typescript
- 수학
- 그래프
- dp
- 프로그래머스 레벨 2
- 타입 챌린지
- 자바스크립트
- 크롤링
- 프로그래머스
- javascript
- Algorithm
- Crawling
- 소켓
- Today
- Total
목록프로그래밍 (478)
kakasoo
특별한 Column Decorator import { ApiProperty } from '@nestjs/swagger'; import { DeleteDateColumn, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'; import { CreateAtEntity } from './create-at.entity'; export class CommonEntity extends CreateAtEntity { @PrimaryGeneratedColumn() id: number; @UpdateDateColumn() updatedAt: Date; @DeleteDateColumn({ nullable: true }) deletedAt: Date; } TypeORM에..
AWS-CLI 설치 https://awscli.amazonaws.com/AWSCLIV2.pkg mac OS의 경우 위 경로에서 설치하면 된다. 현재는 version 2를 사용한다. Terraform 설치 brew tap hashicorp/tap brew install hashicorp/tap/terraform 테라폼 설치는 이렇게 한다. AWS Configure 설정 AWS는 CLI, SDK, CDK 등 다양한 방식으로 API를 제공한다. 테라폼 역시 SDK를 쓴다고 할 수 있는데, 이는 테라폼이 내부적으로 요청하기 때문이다. AWS는 누구나 사용할 수 있는 클라우드 서비스 제공자기 때문에 AWS 입장에서 사용자를 구분할 필요가 있다. 이 때 사용하는 것이 바로 AWS_ACCESS_KEY_ID, SECR..
brew install zsh mac 환경에서는 brew를 이용해서 간편하게 설치 가능하다. EC2 Password 설정 ssh -i my-private-key.pem ec2-user@my-ec2-ip-address ex) ssh -i private-key.pem ec2-user@13.125.215.78 AWS EC2의 기본 유저 계정은 ec2-user 라는 이름으로 되어 있다. ssh로 AWS EC2에 들어오면 초기에는 비밀번호 설정이 되어 있지 않다. 비밀번호 설정 명령어는 passwd username이고, sudo로 실행해야 한다. sudo passwd ec2-user zsh 설치 sudo yum install zsh sudo yum install uitl-linux-user.x86_64 # 기본 ..
generate_series SELECT * FROM generate_series('2022-12-01'::date, '2022-12-31'::date, '1 day'::interval) AS "day" generate_series 는 연속적인 값들을 나타낼 때 사용하는 함수다. generate_series의 arguments는 start, stop, step으로 시작 값, 끝 값, 그리고 간격이다. SELECT * FROM generate_series(1, 10); -- 1,2,3,4,5,6,7,8,9,10 -- SELECT * FROM generate_series(1, 10, 2); -- 1,3,5,7,9 -- 여기서 시작 값과 끝 값을 넣어주고 간격을 입력하면 그 사이의 값들을 rows로 표현해준다..
구글에는 googleapis 라는 라이브러리 (* 아래 링크) 도 있지만 사용하지 않는 것이 좋다. googleapis 이 라이브러리의 경우 구글에서 제공하는 모든 API가 다 들어 있기 때문에 어플리케이션에서 쓰기엔 버겁다. 용량 자체가 120MB 정도가 되는데 서버 성능이 부족하면, 예를 들어 EC2가 t3.micro, small 급이라면, 그런 경우에는 서버를 빌드할 때 JavaScript의 Heap memory가 부족하다는 오류를 내뱉으며 멈추게 된다. 그렇기 때문에 만약, 스프레드시트를 생성한다. 데이터를 넣는다. 그 시트를 구글 드라이브를 이용해 다른 사람에게 공유한다. 와 같이, 스프레드시트 이후에 연계될 다음 동작들이 있지 않다면 npm에서 적절한 라이브러리를 찾는 게 낫다. 여기서 말하는..
@IsDate() specificDate: Date; 날짜를 검증하기 위해서는 IsDate 데코레이터를 이용할 수 있다. 이렇게 작성할 경우 단순 String으로 된 Date는 무시당할 수 있기 때문에 Type 데코레이터도 필요하다. 날짜가 필수적인지 아닌지에 따라 아래와 같이 작성할 수 있다. import { applyDecorators } from '@nestjs/common'; import { Type } from 'class-transformer'; import { IsDate, IsNotEmpty } from 'class-validator'; export function IsNotEmptyDate() { return applyDecorators( IsNotEmpty(), IsDate(), Typ..
[Postgresql] TO_CHAR로 날짜 다루기 this.repository .createQueryBuilder('qb') .where(`TO_CHAR(qb.createAt, 'yyyy-mm') = TO_CHAR(CURRENT_DATE, 'yyyy-mm')`) .getMany(); 특정 날짜의 데이터를 뽑기 위해서는 일반적으로 검색 기간의 시작 날짜와 끝 날짜를 이용해 조회한다. 그래서 where문에 MoreThan, MoreThanEqual, LessThan, LessThanEqual, Between 을 사용한다. 다만 이 방식으로는 DB에서 사용 중인 시간 대에 맞게, 클라이언트, 서버, DB 간 시간 대를 맞춰주어야 한다. 서버에서 DB 시간을 맞추든, 아니면 값을 일일히 변환해주든, 변환 과정..
TO_CHAR를 이용해 데이터를 원하는 문자열로 변경할 수 있지만, 이는 타입까지 바꿔버린다. 단순히 연도, 월, 날짜 등을 비교하기 위한 거라면 TO_CHAR는 너무 멀리 간 듯한 느낌이 있다. 이럴 때는 차라리 DATE_TRUNC 함수를 사용하는 것이 더 직관적이다. DATE_TRUNC 함수는 date나 timestamp 값을 특정한 단위까지 자르는 걸 도와주는 함수다. SELECT DATE_TRUNC('day', timestamp_column) as truncated_timestamp FROM table_name;
SELECT TO_CHAR(u. "createAt", 'yyyy-mm') FROM user_entity AS u; TO_CHAR를 이용할 경우 날짜를 원하는 형태로 변경할 수 있다. 필요에 따라 yyyy-mm-dd, yyyy-mm 등 여러 가지 형태로 변경할 수 있다. 데이터는 그 데이터 각각의 항들이 쌓인 시계열로 조회하거나 또는 그룹화하는 일들이 매우 빈번하기 때문에, TO_CHAR 와 같은 함수는 매우 유용하다. TO_CHAR에는 아래와 같은 옵션들을 지정할 수 있다. FM MM DD HH24 MI SS AM or PM 이것들을 어떻게 조합하는지에 따라, 원하는 형태로 timestamp 값을 변경할 수 있다. 즉슨 yyyymmdd 도 상관없고, 아예 기상천외하게 dd yyyy mm 와 같이 만들어버..
SQL을 작성하다보면 계속해서 반복되는 쿼리가 발생한다. sub query에서 outer query에 접근하지 못하거나, 그 외에도 많은 경우에 동일한 쿼리를 짜야할 때가 있다. 이런 동일 쿼리가 발생할 경우, 작성도 어렵거니와 쿼리를 수정할 때 반복된 모든 구간에서의 수정이 필요하다. 따라서 이런 쿼리를 더 쉽고 간편하게 작성하기 위해서, 변수와 같이 쿼리를 저장해둘 필요가 있다. 그럴 때 사용하는 것이 바로 WITH 문이다. WITH의 사용 예시 WITH cte AS ( SELECT column1, column2, column3 FROM table1 WHERE column1 = 'some value' ) SELECT * FROM cte WHERE column2 = 'another value'; 이런 ..
Postgresql에서 UNION ALL 문은 여러 개의 SELECT 쿼리를 하나의 결과 집합으로 바꾸는 역할을 한다. 만약 이게 불가능하다면 각각의 쿼리문을 작성한 다음, 매번 돌아가면서 호출을 해야 하는데, 이렇게 될 경우 데이터를 한 눈에 파악하기 어렵다. 따라서 아래와 같이 작성할 수 있다. SELECT column1, column2, ... FROM table1 WHERE condition UNION ALL SELECT column1, column2, ... FROM table2 WHERE condition 추가적으로 호출해서 데이터를 보고 싶은 게 있다면 UNION ALL 이후 SELECT 문을 작성하면 된다. 중복을 제거한 UNION SELECT column1, column2, ... FRO..
1. 탁월함이란. 책을 읽기 전, 내가 그간 들었던 토스에 대한 이야기는 딱 한 단어로 얘기하면 '빡세다' 였다. 매일 새벽까지도 일해야 하는 팀이라는 소문이 들렸고, 그 때는 1~2년 바짝 일해서 목돈 마련하고 나가는 게 목적인 팀이라는 말도 들었다. ( 딱히 그거에 대해서 나쁘게 생각하지는 않는다. 내부 구성원들이 그렇게 일하면서도 재미를 느낀다면, 그건 오히려 정말 좋은 조직이라는 생각을 한다. ) 하지만 내가 사회 생활을 하면서 들은 이야기 중에는 그 반대의 이야기도 많았다. 토스의 성공 신화를 찬양하는가 하면 더 나아가 이승건 대표는 거의 신격화된 인물이었다. 토스에 대한 이야기는 무엇이 옳은 것일까. 그들은 정말로 신화를 써내려갔는가. 성공할 수는 있다. 하지만 성공했다고 해서 모두 신화처럼 ..