전체 글 63

TypeORM - 버전 0.3 && ORM이란?

지금까지 typeORM 0.2.45 버전을 사용 중이었다. 최근 0.3.4까지 업데이트가 되며 확인을 해보았더니 정말 많은 변화가 있었다. https://github.com/typeorm/typeorm/blob/master/CHANGELOG.md GitHub - typeorm/typeorm: ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, We..

Dev 2022.03.28

TypeORM - Custom repository(사용자 정의 레포지토리)

여기로! 현재 더 나은 방법을 포스팅해두었습니다. TypeORM-Custom-Repository-개선안 - hou27 TypeORM - Custom Repository 개선안 이전 내용 사실 이전에 TypeORM이 0.3.x 버전 이상으로 올라가면서 @EntityRepository(User) export class UserRepository extends Repository { async customMethod(userId: number): Promise { ... } } 위와 같이 @EntityRepository() 데코레 hou27.tistory.com ㄴ 이 글을 추천드립니다!! 들어가며 데이터 베이스 작업 로직을 작성하던 중 내가 작성한 함수를 typeORM에 정의된 메서드처럼 사용할 수 있는 방..

Backend/NestJS 2022.03.26

카카오로 로그인하기 (JWT 토큰 발급, OAuth)

진행하고 있는 프로젝트에 접근성이 중요해서 카카오톡으로 로그인할 수 있도록 구현했었는데, 내가 짠 구조가 맞는지 의문이 들어 찾아보다가 OAuth+Spring Boot+JWT [OAuth + Spring Boot + JWT] 1. OAuth란? 프론트엔드와 백엔드의 역할 OAuth(Open Authorization)란? OAuth는 인증을 위한 프로토콜이다. 다른 인터넷 서비스의 기능을 다른 어플리케이션에서도 사용할 수 있게 해준다. OAuth는 인증(Authentication)과 인가(Authorization)를 모두 포함 velog.io 위 글을 보게 되어 구조를 수정하였다. 수정 전의 카카오 로그인 흐름은 아래와 같았다. 근데 https://developers.kakao.com/ Kakao Deve..

개발 일지 2022.03.25

Netlify로 프론트엔드 배포하기

이제 백엔드를 올려두었으니 프론트도 배포하여 마무리 짓도록 하겠다. 프론트엔드는 Netlify를 이용하여 배포하도록 하겠다. 알아보니 상당히 간단했는데, 글을 끝까지 읽어보면 여러분도 그렇게 생각할 것이다. 우선 github에 올려둔 나의 frontend 레포지토리를 import 해준다. 그전에 tailwind를 사용하였기 때문에 build명령어 이전에 실행될 prebuild 스크립트를 위와 같이 추가하였다. 배포를 진행할 branch를 선택해주고, 기다리면, 위와 같이 배포가 완료된다. 정말 간단해서 놀랐지만 역시 처음 하는 거라 그런지 에러를 발견하였다. root 페이지가 아닌 다른 곳에서 새로고침 시 Page Not Found에러가 발생하였는데, 이는 프론트엔드 프로젝트가 React로 작성되어 요청..

개발 일지 2022.03.17

Heroku로 백엔드 배포하기

어느 정도 프로젝트를 진행하다가 우선 배포를 한번 진행하면서 에러를 체크하고 싶다는 생각이 들었다. 그래서 바로 실행에 옮겼다. NestJS Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac docs...

개발 일지 2022.03.17

WSL2 - 정적 ip 할당하기 && NIC Bridge mode

필자는 Ubuntu 20.04 를 사용하고 있다. 계속해서 프로젝트를 진행하던 중 서버와 클라이언트를 연결하는데 자꾸 wsl의 ip가 변경되다 보니 거슬렸다. 물론 다른 해결방법도 있었지만 wsl의 ip를 정적으로 고정하고자 한다. Ubuntu 18.04 이전 버전들은 /etc/network/interfaces 를 통해 ip를 설정하곤 했었다. 필자가 사용하는 20.04 버전을 포함한 18.04 부터의 버전들은 /etc/netplan 위의 경로에 *.yaml 파일을 통해 설정한다. 파일의 이름은 중요하지 않으며, yaml파일로 작성한다. 파일의 내용은 아래와 같다. 정적으로 설정할 때는 반드시 dhcp를 no로 해주어야 한다. eth0 위치에는 현재 자신이 사용 중인 인터페이스를 기입해준다. 그 후, s..

Dev 2022.03.08

Baekjoon[C언어] - 2751번 수 정렬하기 2(병합 정렬)

https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 5..

Problem Solving 2022.03.01

Baekjoon[C언어] - 1033번 칵테일

https://www.acmicpc.net/problem/1033 1033번: 칵테일 august14는 세상에서 가장 맛있는 칵테일이다. 이 칵테일을 만드는 정확한 방법은 아직 세상에 공개되지 않았지만, 들어가는 재료 N개는 공개되어 있다. 경근이는 인터넷 검색을 통해서 재료 쌍 N www.acmicpc.net 문제 august14는 세상에서 가장 맛있는 칵테일이다. 이 칵테일을 만드는 정확한 방법은 아직 세상에 공개되지 않았지만, 들어가는 재료 N개는 공개되어 있다. 경근이는 인터넷 검색을 통해서 재료 쌍 N-1개의 비율을 알아냈고, 이 비율을 이용해서 칵테일에 들어가는 전체 재료의 비율을 알아낼 수 있다. 총 재료 쌍 N-1개의 비율이 입력으로 주어진다. 이때, 칵테일을 만드는데 필요한 각 재료의 양..

Problem Solving 2022.02.24

Baekjoon[C언어] - 1013번 Contact

https://www.acmicpc.net/problem/1013 1013번: Contact 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤ www.acmicpc.net 문제 “무한히 넓은 저 우주에 인류만이 홀로 존재한다면, 그건 정말 슬픈 일이 아닐까요” 푸에르토리코 아레시보에 위치한 아레시보 전파망원경(Arecibo radio telescope)은 수십 년째 존재하지 않을 지도 모르는 외계 문명으로부터의 전파를 수신하기 위해 밤하늘을 바라보고 있다. 이 망원경이 수집한 전파 속에서 자연적으로 발생하기 힘든 패턴들을 찾아내어, 그것을 증거로 외계 문..

Problem Solving 2022.02.23

Baekjoon[C언어] - 23564번 재귀 문자열

https://www.acmicpc.net/problem/23564 23564번: 재귀 문자열 $(c, \{7\}), (cc, \{1,3\}), (ccc, \{1,1,1\})$ 등이 모두 정답이다. www.acmicpc.net 문제 S와 A를 이용하여 T를 만드는 것은 쉬우니, 반대로 T가 주어졌을 때 T를 만들어내는 S와 A를 찾아보자. 입력 문자열 T가 주어진다. 출력 첫 번째 줄에 S를 출력한다. 두 번째 줄에 A를 공백으로 구분하여 출력한다. 정답이 여러 개인 경우 아무 거나 한 가지만 출력한다. 제한 T의 길이는 1 이상 1048576(2의 20승) 미만이고, 알파벳 소문자로만 구성되어 있다. 조건을 만족하는 S와 A가 존재하는 입력만이 주어진다. 예제 입력 1 ababacababa 예제 출력 ..

Problem Solving 2022.02.20