일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mongoose
- postman
- node.js
- wireshark
- Express
- MongoDB
- Kotlin
- macos
- Network
- Crawling
- S3
- docker
- AWS
- python
- OS
- mysql
- React
- TypeScript
- algorithm
- typeorm
- ubuntu
- HTML
- sequelize
- Util
- OOAD
- DATABASE
- linux
- Android
- css
- Scheduling
- Today
- Total
목록
반응형
전체 글 (146)
SW

서론 이전 포스팅 글에서는 index.ts 파일에서 User 테이블에 CRUD를 하는 미들웨어를 모두 구현했었다. 그러나 실제 프로젝트를 진행하는 경우 테이블의 개수가 더욱 많아지고 프로젝트 구조는 더욱 복잡해진다. 따라서 우리는 프로젝트를 진행할 때 테이블(혹은 기능)별로 파일을 분리하는 습관을 가져야 한다. 그래서 이번 포스팅 글에서는 자바스크립트와 달리 타입스크립트 환경에서는 어떻게 라우팅을 하는지 간단하게 알아보고자 한다. 시리즈 1,2 내용에서 다룬 내용을 기반으로 진행하는 내용이므로 개발환경 설정이 되지 않은 분들은 시리즈1, 시리즈2를 참고하면 좋을 것 같다. 또한 타입스크립트 기반이 아닌 Javascript + Express 기반 라우팅 사용법을 알아보고자 하는 분들은 여기를 참고하면 좋을..

서론 이전 시간에는 Express 개발 환경에서 TypeORM을 구성하는 방법을 알아보았다. 이번 글에서는 스키마에 생성되어 있는 테이블에 데이터를 삽입, 삭제, 수정, 조회 하는 방법을 예시를 통해서 알아보고자 한다. TypeORM 개발 환경을 세팅하지 않은 분들은 여기를 참조하면 좋을 것 같다. 먼저 이전 포스팅 글에서 구현했던 index.ts 파일의 코드를 다음과 같이 수정했다. app.listen() 함수 수정하기 app.listen(3000, () => { console.log('Starting Server with 3000 port'); createConnection().then(async connection => { console.log("디비 연결 성공"); }).catch(error =>..

서론 이번 포스팅 글에서는 Express 환경에서 타입스크립트를 이용하여 서버를 구축하고, 타입스크립트에서 사용할 수 있는 ORM인 TypeORM을 이용하여 관계형 데이터베이스를 구축하는 예제를 살펴보고자 한다. 개발환경 구성하기 npm install typeorm -g 명령어를 통해 typeorm을 설치한다. 다음으로 typeorm init --name typeorm-example --database mysql 명령어로 typeorm을 기반으로 하는 환경을 초기화한다.위와 같이 입력하면 typeorm-exmaple 이름의 디렉토리가 생성되며 데이터베이스 종류는 Mysql로 지정한다는 의미이다. 디렉토리 구조는 다음과 같다. typeorm-example ├── src │ ├── entity │ │ └──..

Homebrew는 무엇일까? MacOS 전용 패키지 관리 도구로 터미널을 통해서 명령어를 실행하며, 패키지 설치 및 제거를 쉽고 간단하게 할 수 있도록 도와준다. Homebrew 이외에도 터미널 명령어를 이용해서 사용할 수 있는 패키지 관리 툴이 많지만 해당 관리 도구가 거의 표준으로 인식되며 여러 개발자가 해당 툴을 사용하고 있다. 따라서 MacOS 기반으로 개발을 하는 사람들은 대부분 사용하게 되는 관리 도구라고 할 수 있다. Homebrew는 터미널에서 명령어로 간단하게 사용할 수 있다는 장점이 있는 반면에, 커뮤니티 기반으로 운영되고 있기 때문에 패키지의 안정성을 보장할 수 없다는 단점도 존재한다. 설치 방법 Intel 칩 사용자 (구 Mac) /usr/bin/ruby -e "$(curl -fsS..

Next.js란 무엇일까? Next.js는 별다른 설정 없이도 SSR(Server side rendering)과 검색 엔진 최적화라고 불리는 SEO를 제공하는 리액트 프레임워크이다. Next.js를 쓰는 가장 큰 이유는 SSR 방식을 사용하기 때문이다. 서버 사이드 렌더링 방식을 사용함으로써 얻을 수 있는 이점은 다음과 같다. SEO (Search Engine Optimization)을 하는 것이 수월하다. CSR(Client side rendering)에 비해 페이지 로딩 속도가 빠르다. 다시 말해서 사용자가 페이지를 보는 데 걸리는 시간이 짧다. 물론 CSR에 비하면 서버 부하가 심하고, 페이지 이동 시 화면 깜빡거림 등의 단점도 존재하지만 장점이 매우 강력하기 때문에 최근에 많이 쓰이고 있는 프레임..

서론 Tree 명령어는 디렉토리 구조를 한 눈에 알아보기 쉽게 트리 형태로 나타내는 명령어이다. 리드미를 작성하거나 혹은 문서에 프로젝트의 폴더 구조를 명시해야 하는 일이 있는 경우 트리 명령어를 이용하면 쉽게 구조를 나타낼 수 있다. 설치하기 맥에서 트리 명령어를 사용하기 위해서는 Homebrew를 이용한다. brew install tree 명령어를 통해 설치할 수 있다. 홈브루가 설치되지 않았다면 여기를 참고하여 설치를 진행하면 된다. 사용하기 폴더 구조 출력 tree 깊이 지정 출력 tree -L NUM (NUM에는 어느 레벨까지 표현할 지 값을 입력한다.) 전체 파일 출력 tree -a 디렉토리만 출력하기 tree -d 각 노드에 크기 포함하여 전체 구조 출력 tree -s -h 결과 확인하기 2..

서론 최근에 파이썬으로 멀티쓰레딩을 구현하는 방법을 공부한 적이 있었는데 스레드의 개념이 머릿속에 확실히 정립되지 않았다. 작년에 운영체제 수업을 들으며 분명히 배운 기억은 나는데 시간이 지나면서 많이 까먹은 것 같다. 그래서 이번 글에서는 스레드, 멀티 스레드의 개념을 살펴보고 스레드가 가지는 특징들은 무엇이 있는지 알아보고자 한다. 스레드란 무엇일까? 스레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체로 모든 프로세스는 한 개 이상의 스레드를 가지고 있다. 프로세스 내에서 2개 이상의 스레드를 가지고 있는 경우 해당 프로세스는 멀티 스레드를 포함하고 있다고 볼 수 있다. 스레드의 정의를 조금 더 쉽게 설명하자면, 스레드는 프로세스가 CPU로부터 할당받은 자원을 이용하는..

서론 이번 글에서는 포스트맨을 이용하여 API 명세서 작성을 하는 법을 다뤄보고자 한다. API 명세서는 호출할 API 이름, 데이터 전달 형식, 파라미터, 반환 값 등의 정보들을 정확하게 기술하여 API의 결과를 명확히 해석하기 위해서 API 설계 시 반드시 필요하다. 예전에는 문서 형식으로 API를 명세화하여 필요한 사람들에게 제공하곤 했지만 요즘에는 YAML, XML 등과 같이 컴퓨터가 해석하기에도 용이한 형식으로 많이 발전되었다. 뿐만 아니라 이번 글에서 다룰 포스트맨과 같이 여러 툴을 이용해서도 API 명세서를 쉽게 작성할 수 있다. 포스트맨을 처음 사용하는 분들은 여기를 참고하면 좋을 것 같다. 해당 글에서는 포스트맨 설치 방법과 node.js를 이용하여 포스트맨을 사용해보는 예제를 다루고 있..

[Python] 리스트, 튜플, 셋, 딕셔너리 정리하기 Python Collections 리스트, 튜플, 셋, 딕셔너리 4가지가 존재 List : 원소들이 순서가 있는 상태로 나열되어 있는 것 Set : 원소들이 순서가 없는 상태로 나열되어 있는 것 인덱스 접근이 불가능하다. Tuple : 리스트와 비하지만 원소들의 값을 바꿀 수 없다는 특징이 있음 Dictionary : key - value 쌍으로 이루어져 있고, 순서가 없다. key 값을 기준으로 인덱싱을 하기 때문이다. List Constructor 을 통해서 생성할 수 있다. 서로 다른 타입의 데이터를 담을 수 있다. 가변적이고 순차적인 특징을 가지고 있다. # list 라는 메소드를 통해서 만든 예시 thislist = list(("apple"..

서론 개발을 하다보면 화면을 분할해서 봐야하는 경우가 종종 존재한다. 필자는 Mac App Store에서 유료료 제공하는 Magnet을 사용하려고 했지만 가격적인 부담도 있고 해서 매일 마우스로 창 크기를 변경해가며 작업을 했다. 그러다 인터넷을 둘러보는 도중 Rectangle 이라는 키보드 단축키를 이용해서 쉽게 화면을 이동하고 크기를 조절할 수 있는 프로그램을 찾았다. 더 큰 장점은 오픈소스로 공개된 무료 프로그램 이라는 것이다. Rectangle을 알게 된 이후로 현재까지도 유용하게 사용하고 있으며 마그넷과 거의 유사한 기능을 지원하고 무료임에도 불구하고 광고도 없어서 매우 만족중이다. Rectangle 설치하기 홈페이지에 접속하여 Rectangle을 설치한다. https://rectangleapp..