WSL2에서 ifconfig, netstat : command not found 해결

개발/DevOps 2021. 9. 15. 08:20

WSL2환경에서 세팅하면서 netstat 또는 ifconfig를 해야되는 일이 있는데 명령어를 입력하면 zsh : command not found: netstat 다음과 같이 출력되는 경우가 있다. WSL2가 공식적으로 netstat, ifconfig가 포함되어있는 net-tools를 지원하지 않는 것이 원인이다. 해결법은 다음과 같다. $ apt install net-tools net-tools 설치하면 두 명령어 모두 위와 같이 잘 작동한다.

Article Thumbnail
3. Docker 세팅 with WSL2(Ubuntu 20.04)

개발/DevOps 2021. 9. 14. 08:20

Docker란? - Docker란, 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 기술이다. Docker 설치 기본 레포 세팅 $ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release​ 도커 공식 GPG 키 추가 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg​ 도커 엔진 설치 $ sudo apt-get update $ sudo apt-get..

Article Thumbnail
WSL2 에서 systemd & systemcl 사용

개발/DevOps 2021. 9. 13. 08:20

2022.09.22 >> WSL에서도 systemd를 공식 지원할 예정이라고 합니다. 관련 링크) https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl WSL2를 사용하다보면 systemcl, 또는 systemd를 사용하여 현재 프로세스 status를 확인하려할 때가 있는데, WSL2에서는 아직 systemcl, systemd를 공식적으로 지원하고 있지않다. 하지만 구글링을 조금만 해보면 가이드가 하나 나오는데 이를 따라하면 WSL2환경에서도 systemcl & systemd를 사용할 수 있다. WSL 2 - Enabling systemd WSL 2 - Enabling systemd. GitHub Gist: i..

Article Thumbnail
2. Nginx 세팅 with WSL2(Ubuntu 20.04)

개발/DevOps 2021. 9. 11. 08:20

Nginx란? - Nginx란, 동시접속처리에 특화된 웹서버이다. Apache보다 동작이 단순하고, 전달자 역할만 한다. Nginx 설치 $ sudo apt-get install nginx Nginx 설치 확인 $ nginx -v Nginx 명령어 // Start $ sudo service nginx start $ sudo systemctl start nginx $ sudo /etc/init.d/nginx start // Restart $ sudo service nginx restart $ sudo systemctl restart nginx $ sudo /etc/init.d/nginx restart // Stop $ sudo service nginx stop $ sudo systemctl stop ngi..

Article Thumbnail
ElasticSearch 사용하지 않고 Search API 작성

개발/NestJS 2021. 9. 10. 08:20

ElasticSearch를 사용하지 않고, 단어 기반의 통합 검색 기능을 추가해야하는 일이 생겼다. 통합검색 API를 구축할 때, 맨처음에는 다음과 같이 @Body 를 사용하여 body안에 {word: 단어}를 포함시켜 API를 호출하는 방식으로 설계하였다. // @Body를 사용하였을 때 @Get('') search(@Body(){word: string}){ return this.service.search(word); } 위의 코드처럼 작성하고 테스트 했을 때, word를 undefined로 호출시 백엔드로 전달이 되지않는 이슈가 있었다. 구글은 어떤 방식으로 하는지 궁금해서 구글에 검색을 해보고 url을 중점적으로 확인하였다. 구글의 검색 URL을 보고 @Query를 사용하여 API의 url뒤에 ?를..

Article Thumbnail
1. Dev 서버 기본 세팅 with WSL2(Ubuntu 20.04)

개발/DevOps 2021. 9. 9. 08:20

기존에 사용하던 시놀로지사의 NAS가 고장이나서 새로운 NAS를 찾아봐야했는데 '저 가격이면 차라리 개발 서버 겸 FTP서버를 구성해서 사용하는 것이 가성비아닐까?' 라는 생각이 들어서 홈서버를 구성하게되었다. 삽질의 시작...... 개발 서버 겸 FTP 서버로 활용을 하기위해서 필요했던 사항은 다음과 같다. 개발 서버로 사용하면서 프로젝트들을 도커 컨테이너 단위로 배포하고 사용하는데 쓰이는 웹서버(Nginx) FTP 서버로 사용하려면 필요한 파일질라(FileZila) 혹은 리눅스FTP(vsftpd) 공인인증서 호환성을 위한 OS(윈도우) 3 번째 사항으로 인해 운영체제는 윈도우10을 반강제적으로 쓰게되었는데 " 'WSL2'라는 리눅스용 윈도우 하위 시스템을 통해 개발 서버, FTP 서버, 그리고 윈도우..

Article Thumbnail
2. mask-on 프로젝트 구조

프로젝트 회고/mask-on 2021. 9. 8. 08:20

5주 동안 팀원들과 개발한 Mask_On 프로젝트 아키텍쳐는 사진 촬영과 ML 러닝을 담당한 Pi Camera, Raspberry Pi 4, 도커 환경으로 구성한 Python 기반 백엔드 프레임워크인 Django 와 프론트엔드 프레임워크인 React로 구성되어있다. 내가 담당한 부분은 백엔드 , 데브옵스 부분이다. 백엔드는 Django, MySQL를 Docker-compose를 통해 Docker 이미지 단위의 컨테이너로 관리하는 방식으로 개발 환경을 구성하였다. 5주라는 어떻게 보면 짧은 기간 안에 PoC(Proof of Concept)와 본 프로젝트를 진행해야하는 사항 때문에 데이터 베이스는 Django ORM을 활용하여 구현하였다. 프론트엔드와 RESTful api로 통신하기 위해 Django Res..

Article Thumbnail
[TypeORM] @Many-to-One & @One-to-Many를 활용하여 @Many-to-Many Relations 구현

개발/TypeORM 2021. 9. 7. 08:20

TypeORM을 통해 Table간 Relation을 구성하다보면 N : N의 관계로 구성을 해야될 때가 있다. TypeORM의 공식 문서를 확인해보면 N : N을 구성하는 법은 다음과 같다. // category.entity.ts import {Entity, PrimaryGeneratedColumn, Column} from "typeorm"; @Entity() export class Category { @PrimaryGeneratedColumn() id: number; @Column() name: string; } // question.enetity.ts import {Entity, PrimaryGeneratedColumn, Column, ManyToMany, JoinTable} from "typeorm..

[OOP] 오버로딩과 오버라이딩의 차이점

개발/Java 2021. 9. 6. 08:20

오버로딩(Overloading)은 메소드의 이름은 같지만, 메소드 파라미터의 타입, 개수, 그리고 리턴되는 타입이 다르게 정의하는 것(확장)이다. 오버라이딩(Overriding)은 한국어로 상속이라 불리며, 상속받은 메소드와 파라미터 타입과 개수, 리턴되는 타입이 동일해야하고, 상속받은 메소드의 내용만을 변경하는 것(재정의)이다. 오버로딩(Overloading) 오버라이딩(Overriding) 메소드 이름 같음 같음 파라미터 타입 다름 같음 파라미터 개수 다름 같음

Faker.js를 통한 Seed API 작성

개발/NestJS 2021. 9. 4. 08:20

백엔드를 개발하다보면 REST API의 GET 메소드에서 DB에서 데이터를 제대로 불러오는지 확인해야하는데 이럴 때 Seed API를 통해 테스트 용도의 fake DB를 구성하는 것이 매번 데이터를 직접 입력해넣는 시간을 절약할 수 있으므로 좋다고 생각했다. TypeScript기반의 NestJS로 백엔드를 구성하다보니 Faker.Js 패키지를 활용하여 Seed API를 작성하였다. Faker.JS의 패키지 설치 방법은 매우 간단하다. npm i faker Faker.JS는 Typescript가 아닌 순수 JavaScript로 작성되어 사용하는 방법에는 두 가지가 있다. //@ts-ignore import faker from 'faker'; const faker = require('faker'); 위와 같..