목록Backend (28)
개발일지
원티드 온보딩 인턴십 사전과제를 만들면서 express에서 prisma를 사용해보려고 한다. orm 언어 중에 typeorm을 사용해 봤다 다른 orm을 처음 써봐서 헷갈리는 부분과 express도 만들어 보는 것도 처음이라 정리해놓으려고 한다. 내가 이해할 수 있게 정리해 봐야겠다 설치 명령어 express와 prisma //express yarn init-y //프로젝트 처음 시작하다면 package.json 을 설치한다 yarn add express //node_mosules 안에 Express.js를 설치하고, package.json 파일에 Express.js를 종속성으로 추가합니다. Prisma CLI 설치 명령어: yarn add @prisma/cli --save-dev 설명: Prisma C..
Testing 테스트가 자동화되어있으면 차후에 유지관리 측면에서 혹은 문제가 발생하거나 했을 때의 개발차원의 자원이 과도하게 들어가는 것을 막을 수 있기때문에 필수적으로 취급된다. 자동화를 통해 개발중에 개별 유닛으로 테스트하거나 테스트 스위트를 쉽게 빠르고 반복할 수 있다. 이는 릴리즈의 품질과 성능 목표 충족도를 확인하는데 크게 도움이 된다. 자동화는 적용범위를 늘리고 개발자에게 더 빠른 피드백 루프를 제공한다. 자동화는 개별 개발자의 생산성도 높여주고, 소스 코드 제어 체크인, 기능 통합 및 버전 릴리즈와 같은 중요한 개발 수명주기 단계에서 테스트가 실행되도록 한다. 이러한 테스트는 단위 테스트, 종단간(e2e) 테스트, 통합 테스트등 다양한 유형에 걸쳐있는 경우가 많다. 단위 테스트의 경우 개별 ..
소셜 로그인 기능 client : 소셜로그인 기능을 사용하는 주체, 즉 서비스를 만드는 "나"이다. resource owner : 소셜로그인 기능을 제공하는 서비스를 사용하는 유저이다. 어떻게 보면 진짜 고객 인것! resource server : 소셜로그인 기능을 제공하는 곳, 그리고 그 기능을 제공하기 위한 데이터를 가지고 있는 진짜 서버이다. 일종의 우리가 만드는 서비스의 서버 기능을 하는 것. google, facebook, twitter 소셜 로그인 장점 로그인 간소화 : Facebook이나 Google 계정을 이용하면 버튼만 몇 번 클릭하여 타사 웹 페이지에 간편하게 로그인 할 수 있습니다. 비밀번호에 대한 의존도 감소 : 비밀번호 로그인의 근본적인 취약점 외에도 비밀번호를 하나 더 기억해야 ..

이름에서부터 알수 있듯이 작은 서비스 여러개가 모여서 하나의 시스템을 제공하는 아키텍처를 뜻합니다. 여러 모듈로 분리가 되어 있어서 팀별로 독립적으로 개발이 가능 서비스가 점점 커질경우 하나의 프로젝트로 함께 묶는것이 점점 버거워지고 복잡해지게 됩니다.이런걸 해결하기 위해서 나온 아키텍쳐 입니다 서비스 운영시 만나게 되는 장애로부터 조금은 자유로워 질 수 있습니다 기존 모놀리식 구조에서는 장애 발생시 서버가 죽게 되면 모든 API가 사용 불가능했지만, 마이크로서비스로 분리하게 되면 어떠한 기능에 장애가 생겨도 해당 API만 사용이 불가능하고, 다른 기능에는 문제없이 서비스를 운영할 수 있게 됩니다. 그럼 과연 모든 서비스에 적용하는 것이 좋을까요? 이러한 마이크로서비스 아키텍쳐를 적용했을 때에는 전체적인..
DNS 웹사이트에 접속 할 때 우리는 외우기 어려운 IP 주소 대신 도메인 이름을 사용한다. DNS(도메인 네임 시스템)이 사람이 읽을 수 있는 도메인 이름(www.naver.com)을 IP 주소로 변환하는 시스템 Load Balancer 이제 유저의 접속량이 늘어날수록 백엔드 서버 컴퓨터가 늘어날 것이기 때문에 백엔드 서버 컴퓨터를 하나로 묶어줄 인스턴스 그룹을 만들어 줄 것입니다. 이때 DNS를 통해 A레코드로 바뀐 채, 백엔드 서버 컴퓨터로 접속하게 되는데 백엔드 서버 컴퓨터 중 특정 컴퓨터에만 바뀐 A레코드가 적용될 수 있습니다. 그렇게 된다면 부하 관리를 위해 늘려준 백엔드 서버 컴퓨터를 추가로 만들어 준 의미가 없게 됩니다. 따라서, DNS와 백엔드 서버 컴퓨터 가운데 로드밸런서를 두고 DNS..

TDD란 Test Driven Development의 약자로 ‘테스트 주도 개발’이라고 합니다. 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현합니다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며, 애자일 방법론 중 하나인 eXtream Programming(XP)의 ‘Test-First’ 개념에 기반을 둔 단순한 설계를 중요시합니다. eXtream Programming(XP)란 미래에 대한 예측을 최대한 하지 않고 지속적으로 프로토타입을 완성하는 애자일 기방법론 중 하나입니다. 이 기법을 개발했거나 ‘재발견’한 것으로 인정되는 Kent Beck은 2003년 TDD가 단순한 설계를 장려하고 자신감을 불어넣어 준다고..