[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타 189

Nest.js - unit testing, e2e testing (feat. jest)

UNIT TESTING vs E2E TESTING UNIT TESTING : 프로젝트에서 각각의 function을 따로 테스트하는 것이다. 각각의 function이 제대로 기능을 수행하는지 확인하기 위한 테스트이다. (ex. 영화목록을 모두 보여주는 함수, 하나 보여주는 함수, 영화목록 중 일부를 삭제하는 함수 등이 각각 잘 수행되는지) E2E TESTING : 이름 그대로(End-to-End testing) 모든 시스템을 테스팅하는 것이다. 사용자의 입장에서 페이지 간의 연결성 등을 테스트할 때 사용한다. (ex. 사용자가 특정 링크를 클릭했을 때 연결된 페이지를 정상적으로 볼 수 있어야 함) 해당 게시글에서는 Nest.js 프로젝트에서 jest를 이용해 unit testing을 진행하는 방법을 알아보..

🛠 기타/WEB 2021.01.08

Nest.js - DTO(Data Transfer Object)

DTO(Data Transfer Object, 데이터 전송 객체) 네트워크를 통해 데이터가 어떻게 전송될지 정의하는 객체 DTO 스키마를 클래스를 통해 쉽게 정의할 수 있다. create-movie.dto.ts export class CreateMovieDto { readonly title: string; readonly year: number; readonly genres: string[]; } class-validator와 class-transformer를 설치하고 이를 기반으로 파이프를 만들어 이를 통해 객체의 유효성을 체크할 수 있다. (파이프는 일종의 미들웨어라고 생각하자.) npm i class-validator class-transformer 위 명령어로 class-validator와 cla..

🛠 기타/WEB 2021.01.06

Nest.js 기초 - Service 생성

Service nest.js는 controller와 비즈니스 로직을 분리한다. 따라서 실제적인 기능인 비즈니스 로직은 모두 Service에서 정의하게 된다. controller와 마찬가지로 app.service.ts만으로는 모든 기능을 구성하기 어렵다. 따라서 새로운 service를 생성해야 할 경우가 많다. nest g s 위 명령어로 새로운 service를 만들 수 있다. @Injectable() export class MoviesService { getAll(): Movie[] { return this.movies; } getOne(id: number): Movie { const movie = this.movies.find(movie => movie.id === id); if (!movie) { t..

🛠 기타/WEB 2021.01.06

GraphQL - 서버 시작하기 (by. GraphQL-yoga)

REST API의 단점과 GraphQL REST API는 URL을 계속해서 입력해야한다는 단점이 있다. 여러 엔드포인트에 대해 여러 형태의 쿼리로 데이터를 얻어와야한다. URL이 세밀하게 짜여있지 않은 이상 자신이 원하는 데이터 이상의 데이터를 불러와야할 수도 있고, 여러번의 URL에 여러번의 요청을 보내야 할 수도있다. (Over-fetching, Under-fetching) 하지만 GraphQL은 이러한 단점을 극복해 단일 엔드 포인트에 단일 쿼리로 모든 데이터를 원하는 만큼 불러올 수 있다. movies query 로 여러 영화의 정보를 받아올 수 있다고 하자. 이 때 우리는 영화들의 제목만 필요할 뿐, 다른 것은 필요하지 않다. 이 때 REST API는 어쩔 수없이 모든 정보를 불러오고 이를 수정..

🛠 기타/WEB 2021.01.06

SPA(Single Page Application)? (Angular, React, Vue)

SPA(Single Page Application) 다양한 MVC 프레임워크로 편리한 개발이 가능해졌지만, 특정 페이지를 업데이트할 때 페이지를 리다이렉션하는 불편함이 있었다. 예를 들어 좋아요를 누르는 등의 간단한 작업을 하더라도 새로고침을 해야하는 것이다. 그런 불편함을 해소하기 위해 등장한 것이 Angular나 React, Vue같은 Single Page Application이다. 이러한 Single Page Application의 서버는 단순히 html,css,javascript 정보를 브라우저에 전송한다. 이 때 포함된 javascript 코드가 웹서버처럼 html 페이지를 랜더링해주는 역할을 한다. 그리고 필요한 데이터(EX. 좋아요 갯수, 좋아요 여부 등)가 저장되는 백엔드 서버는 따로 구성..

Nest.js 기초 - 시작하기

Nest.js Node.js의 express를 기반으로 처리되는 백엔드 구성 프레임워크 typescript를 기본적으로 지원한다. (javascript로도 작성은 가능) node.js 특유의 구조와 순서, 룰을 잘 이용하면 엔터프라이즈 규모의 백엔드를 쉽게 제작할 수 있다. npm i -g @nestjs/cli 위 커맨드로 설치한다. (node.js는 기본적으로 설치되어있어야 한다.) nest new project 위 커맨드로 nest 프로젝트를 시작할 수 있다. 기본적으로 필요한 각종 패키지들이 설치되어 있다. (타입스크립트 등) Nest.js 파일구조 살펴보기 프로젝트를 생성하고 나면 위와같은 구조의 파일들이 생성된다. 핵심이 되는 파일들만 간단하게 살펴보자. src폴더의 main.ts에서 기본적인 ..

🛠 기타/WEB 2021.01.04

React 기초 - Hooks API 사용하기 (useState, useEffect)

React Hooks API Class Component를 사용하지 않고도 state를 사용할 수 있도록 해준다. 즉, functional component에서 state를 가질 수 있도록 한다. 이런 기능이 유용한 이유는, class를 사용하지 않고 functional programming style 적용이 가능하도록 해주기 때문이다. hook의 종류에는 useState, useEffect이 있고 이들을 활용해 다양한 hook을 만들어 활용할 수 있다. 리액트 hooks 공식 페이지 (https://ko.reactjs.org/docs/hooks-intro.html) 사용예시 : useState import React, { useState } from "react"; const App = () => { ..

🛠 기타/WEB 2021.01.04

Github를 이용해 페이지 배포하기 (gh-pages)

Github Pages 깃허브를 이용해 웹 사이트를 무료로 호스팅할 수 있는 서비스 사용자가 깃허브 레포에 자신의 웹 프로젝트 빌드 결과물을 업로드하면 깃허브가 그를 호스팅한다. 일반 사용자는 public 레포에 대해서만 무료 호스팅이 가능하고, private 레포를 호스팅하기 위해선 깃허브 프로 계정이 필요하다. 설치 아래 커맨드를 입력해 본인의 node.js 프로젝트에 gh-pages 패키지를 설치한다. npm i gh-pages 프로젝트의 package.json에 homepage 항목을 추가한다. { "homepage" : "https://(GitHub ID).github.io/(Repository name)/" } 프로젝트 package.json의 script에 predeploy와 deploy를 ..

React 기초 - Class Component (feat. State)

Class Component 지금까지는 componet를 function으로 정의했지만, class를 활용해 정의할 수도 있다. class App extends React.Component { render() { return ( Hello ); } } React.Component를 상속받아 새로운 Componet를 정의한다. React.Component는 render() 메소드를 가지고 있기 때문에 이를 활용하여 function component와 유사하게 return할 수 있다. react는 모든 class component의 render() 메소드를 자동적으로 실행하여 function component와 동일하게 결과가 나오도록 처리한다. State State는 class component에서 동적으..

🛠 기타/WEB 2020.12.28

React 기초 - prop의 형태 체크하기 (by. Proptypes)

father componet로부터 전달받은 props가 올바른 형태의 props가 아닐 수 있다. 유효하지 않은 props를 받고 처리하면 정상적 동작이 어렵다. 따라서 이를 확인할 수 있는 툴이 필요하다. Proptypes Proptypes은 component에서 필요로 하는 props가 무엇인지, 전달받은 props는 무엇인지 체크해준다. npm i prop-types 위 명령어로 프로젝트에 Proptypes를 설치한다. import React from "react"; import PropTypes from "prop-types"; function Food({ name, url, rating }) { return ( I love {name} {rating}/5.0 ); } Food.propTypes ..

🛠 기타/WEB 2020.12.28