전체 글

전체 글

    [NestJS] NestJS 시작하기

    @nestjs/cli를 전역으로 설치를 하고 프로젝트를 생성합니다. nest new로 프로젝트를 생성하실 때는 원하는 경로로 이동후 실행하셔야합니다. $ npm i -g @nestjs/cli $ nest new [프로젝트명] 그럼 app.module.ts, app.controller.ts, app.service.ts 가 src/ 폴더 안에 생성되는데 하나씩 역할을 살펴보겠습니다. module module.ts는 하나의 기능을 하는 모듈을 말합니다. module안에는 contorller와 provider가 있을 겁니다. controller 컨트롤러는 기본적으로 url을 가져오고 함수를 실행합니다. express에서 라우트같은 존재라고 할 수 있습니다. 컨트롤러에는 데코레이터가 있습니다. 한 가지 주의할 점..

    [docker] m1 맥에서 docker mysql 에러해결

    express + mysql 을 docker-compose.yaml로 동시에 같은 네트워크에 2개의 컨테이너를 띄울 겁니다. docker.compose.yaml 파일에 각 컨테이너에 대한 정보를 입력해야하는데 다음과 같습니다. 하지만 저처럼 m1 맥에서 mysql 컨테이너를 띄울 경우 platform을 적어줘야합니다. mysql_node 컨테이너에 다음 코드를 추가해주시면 됩니다. platform: linux/x86_64 docker-compose.yaml 파일의 전체 코드는 이렇습니다. version: "3.8" services: node_app: build: context: . dockerfile: Dockerfile ports: - "8080:8080" volumes: - .:/app - '/app..

    [TDD] Test code를 작성하는 이유와 Unit test와 Integraion test의 차이

    Test code를 작성하는 이유 개발과정이 길어지게 되면 초반의 문제들을 모르고 지나가는 경우들이 많습니다. 그렇게 되면 나중에 작성된 코드들을 다시 수정해야 한다거나 무너지는 경우들이 있기에 테스트 코드들로 문제를 미리 발견하여 짚고 넘어 가야합니다. 여기서 "애자일한 방법"이라는 용어가 사용되는데 이게 뭔지 살펴보겠습니다. 애자일(Agile) 방법 간단하게 말하면 개발 방식을 유연하게 가져가겠다는 뜻입니다. 기획문서만 보고 개발하는 것이 아닌 디자이너, 기획자 등 참여하는 모든 사람들과 소통하며 피드백을 더해서 개발해 나간다는 의미 입니다. 애자일 프로세스는 민첩한 변화 대응을 중요시 합니다. 다시 본론으로 돌아와서 test code를 작성하는 이유를 애자일 방법론에 빗대어 설명하면 작은 단위의 프..

    [Docker] docker로 mysql 설치하고 접속하기

    docker hub에서 mysql image 다운받기 docker pull mysql // apple sillicon docker pull --platform linux/x86_64 mysql 애플 실리콘의 경우 아래 명령어로 받을 수 있습니다. 다음과 같이 입력하여 mysql image가 잘 받아졌는지 확인합니다. docker images 다음 명령어로 받아온 이미지로 container를 생성합니다. "password" 자리에는 설정하고자 하는 mysql 비밀번호를 넣으시면 됩니다. 이름은 "mysql_test" 라고 하겠습니다. 마지막에 latest를 붙인 이유는 위에서 pull할 때 mysql뒤에 아무 조건도 넣지 않았습니다. 따라서 기본값이 latest를 받아온 것 입니다. docker run -..

    [SQL] Subquery

    Subquery 하나의 SQL 쿼리 안에 또다른 SQL 쿼리가 있는 것 kakaopay로 결제한 유저들의 정보 보기 -- 1 -- select u.user_id , u.name , u.email from users u inner join orders o on u.user_id = o.user_id where o.payment_method = 'kakaopay' -- 2 -- select u.user_id , u.name , u.email from users u where u.user_id in ( select user_id from orders where payment_method = 'kakaopay' ) where 안에 들어가는 subquery select * from users u where u.u..