전체 글

0. 개발환경 @nestjs/typeorm : 10.0.0 nest : 10.1.18 mysql 8.0.xx typescript : 5.1.x 1. 문제의 발생 @Entity('user') export class UserEntity extends CoreEntity { ... @Column({ type: 'enum', enum: Role, array: true, default: [Role.User], }) @IsString() public roles!: Role[]; ... } user.entity를 설계하는 과정에서 Role을 Enum array로 관리하고자 하였고, 코드상으로는 syntax적 문제가 없었다. 그런데 막상 npm run start:dev를 실행하여 mysql 서버상에 table 생성을 ..
· IT/자격증
오늘은 SQLD 합격 기념으로 어떻게 공부했는지 공부 방법과 꿀팁을 공유해보려고 합니다! 공부기간 공부는 총 일주일 내외로 하루에 3, 4시간 정도 공부한 것 같습니다.(풀 집중한 시간은 2시간?) 필자는 DB 전공수업을 듣지는 않았지만, 프로젝트를 하면서 SQL을 접해본 경험은 있었다는 점을 고려해서, 생전 처음 SQL을 공부하시는분은 2, 3주 정도를 잡으면 넉넉하게 합격하실 수 있을 것 같습니다. 공부방법 필자도 공부하기 전에 여러 블로그를 해보고 직접 몸소 검증해봤기 때문에 아래 ★순서대로★ 4가지 방법으로 공부하시면 충분히 합격하실 수 있을거에요~! 1. ★ ★ 구글링해서 SQLD 요약본으로 이론공부하기(2일 컷) 사실 SQLD를 위한 이론서를 하나 살까도 고민해봤지만, 뒤에 소개할 '노랭이책'..
· 알고리즘
백준 2493번 탑 문제 풀이입니다. 2493번: 탑 (acmicpc.net) 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 2009 정올 초등부, 고등부 문제입니다. 직전에 포스팅했던 '옥상 정원 꾸미기'와 유사점이 많은 문제입니다. 문제 요약 및 분석 오른쪽에서 왼쪽으로 레이저를 발사하는데 탑의 기둥부분(벽면)에 맞으면 수신이 되는 방식입니다. 높이가 다른 각 탑에서 발사한 레이저 신호를 어느 탑에서 수신하는지가 문제입니다. 이때 N = 5 x 10^5 으로 O(n)이나 O(NlogN) 안에는 들어와야..
· 알고리즘
백준 6198번 옥상 정원 꾸미기 문제 풀이입니다. 6198번: 옥상 정원 꾸미기 (acmicpc.net) 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으 www.acmicpc.net 2006 USACO Silver 문제입니다. 개인적으로 문제 푸는데 이걸 스택으로 푼다는 걸 떠올리는데 오래걸렸던 것 같습니다. 문제 요약 및 분석 왼쪽에서 오른쪽으로 각 빌딩에 대해서 크거나 같지 않은 빌딩의 개수를 구하는 문제가 되겠습니다. 일단 입력을 보았을 때 N = 8 x 10^4 입니다. N^2으로 풀면 시간 초과가 날 것 같고 N이나 N..
· 알고리즘
백준 1406번 에디터 문제 풀이입니다. 1406번: 에디터 (acmicpc.net) 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 문제요약 키보드로 에디터에 텍스트를 입력하듯 명령을 했을 때 최종 글자를 출력하는 문제입니다. 단, 입력 할 수 있는 경우는 '커서 좌로 1칸이동', '커서 우로 1칸이동', '백스페이스', '알파벳 입력' 4가지 입니다. 문제 접근 아래의 그림까지만 떠올리면 쉽게 풀 수 있습니다. 커서를 움직인다는 접근보다, 커서는 가만히 가운데 있고 좌우로 글자가 스택에 쌓이는 그림을 떠올릴..
· 개발
최근에 새로운 사이드 프로젝트를 시작했습니다. 조금은 새로운 분야를 개발해보려고 하는데 CLI 프로그래밍입니다. CLI는 Command Line Interface로 '글자를 입력하여 컴퓨터에 명령을 내리는 방식'을 의미합니다. 데스크탑용 프로그램을 개발하려하는데, GUI를 만들기전에 API를 직접 CLI로 만들어서 사용성을 높이는 프로젝트를 해보려합니다.(물론 효용성이 더 떨어질 수도 있겠지만요.) I Programing 테스트해본 개발 환경은 ubuntu22.04, 20.04 클라우드 환경에서 테스트해보았습니다. 언어는 여러 선택지가 있었는데, 일단은 이식성이 좋은 cpp로 개발해보고, 너무 불편하다 싶으면 JS 라이브러리가 괜찮은게 있길래 써볼까도 고려중입니다. -> commander - npm (n..
· 알고리즘
백준 10799번 쇠막대기 문제 C++ 풀이입니다. 10799번: 쇠막대기 (acmicpc.net) 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 2015 초, 중등부 정올 지역본선 문제입니다. 문제 요약 레이저로 잘린 쇠막대기의 개수를 구하는 문제인데, 입력값이 괄호로 이뤄져 있습니다. 1. 모든 레이저는 "( )" 로만 표현됩니다. 2. 나머지 괄호는 막대기의 양 끝을 표현하게 됩니다. 이때 문제에 중요한 조건이 있습니다. '쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다' 항상 안쪽에 위치하는 괄호가 더 짧은..
· 알고리즘
백준 1956번 운동 문제 파이썬 풀이입니다. 1956번: 운동 (acmicpc.net)문제 자체는 짧고 간단합니다. '가중치가 있는 유향그래프에서 가장 작은 사이클을 찾아라' 로 요약할 수 있겠습니다. 처음에 다익스트라 문제로 착각하여 삽질을 좀 했는데, 아래와 같이 코드를 짰을 때 반례가 생겼다. 틀린코드 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 29 30 31 from collections import deque INF = float('inf') v, e = map(int, input().split()) graph = [[] for _ in range(v+1)] for _ in range(e): a, b, ..
[Terraform] github codespaces에서 Terraform 사용하기 1편 | Linux에 terraform 설치 (tistory.com) [Terraform] github codespaces에서 Terraform 사용하기 1편 | Linux에 terraform 설치 왜 Linux에서 돌리게 되었는가? AWS 요소 관리를 위해서 테라폼을 사용하려는데, 싸지방 컴에 직접 깔자니 껏다키면 리셋되는 문제가 있었다. 그래서 외부 서버를 사서 접속해서 code를 run 할까하다 pypystory.tistory.com 1편에서 볼 수 있었듯 github codespace 위에서 terraform을 실행할 수 있게 되었다. 근데 여기서 한가지 문제가 있다. 발생한 문제 바로 github codespac..
왜 Linux에서 돌리게 되었는가? AWS 요소 관리를 위해서 테라폼을 사용하려는데, 싸지방 컴에 직접 깔자니 껏다키면 리셋되는 문제가 있었다. 그래서 외부 서버를 사서 접속해서 code를 run 할까하다가 가격적인 문제도 있고 하니. .tfstate 파일은 S3로 클라우드 위에서 관리하고, 실질적인 code run은 쓸 때만 github codespaces에 접속해서 돌리는 방식으로 해보려고 한다. 현재 OS 확인 github codespace는 리눅스 서버 위에서 돌아가고 있는 것을 확인할 수 있었다. MS azure 위에서 돌고 있는 듯하다. Linux에 terraform 설치 방법 * OS별 다운로드 방법은 아래의 공식 사이트 링크에서 잘 알려주고 있다. Install | Terraform | H..
파이랜스
PyPyStory