데브코스 (91) 썸네일형 리스트형 🖥️ 통합 웹 서비스 구축 핵심 설계 원칙모듈화캡슐화재사용성확장성응집도와 결합도단순성 소프트웨어 아키텍처 MVC 패턴: Model, View, Controller 로 구분해서 개발하는 방법 모놀리식 아키텍처: 애플리케이션의 모든 구성요소가 하나의 큰 단위로 개발되고 배포되는 구성 방식 : 모든 기능이 같은 기술 스택으로 개발됨 장점간단한 개발 및 배포손 쉬운 디버깅용이한 테스트 단점개발 속도 저하배포의 어려움확장성 제한신뢰성기술 채택의 장벽 마이크로서비스 아키텍처 : 애플리케이션을 작고 독립적인 서비스의 집합으로 구성하는 접근 방식: 각각 독립적으로 배포 운영될 수 있음 장점높은 안정성유연한 확장배포 용이성기술적 용이성 단점복잡성 증가네트워크 오버헤드디버깅과 모니터링의 어려움배포 복잡성 CI-CD 파이프라인 설계 CI-CD 파이프라인 설계Code checkout > Unit test > Code coverageProduction build > Packaging > Image pushStaging > Acceptance testRelease > Smoke testCI 파이프라인 설계 SCM CheckoutJenkins 에서 git clone 할 수 있도록 github credentials 준비 필요코드는 각자의 private repo 에 빌드 및 테스트 가능한 상태로 준비 Unit TestNode v.18 이 설치되어 있는 Jenkins agent(builder) 에서 npm testCoverage report 를 발행하기 위한 부가의 설정을 할 예정 Build단위 테스트 실행과 동일한 agent(builder) .. AWS(Amazon Web Services) 여러 가지 응용의 실현에 필요한 infrastructure 를 on-demand 로 서비스웹/ 모바일 서비스 응용빅데이터/ 인공지능 응용 클라우드 인프라의 이용 장점유연한 이용, 안정적 서비스, 다중화와 스케일링 Pay-as-you-go, TCO(total cost of ownership) 절감다양한 도구 제공, 풍부한 문서 및 참고 자료단점생각보다 비용이 만만하지 않을 수 있음제대로 사용하지 못해도 리소스가 이용되고 있으면 과금활용법을 익혀야 함익숙해지지 않으면 다소 복잡하고 생소하게 느껴질 수 있음 EC2 (Elastic Compute Cloud)AWS 에 의하여 운용되고 있는 네트워크 상에 존재하는 가상의 서버여러 가지의 운영체제로 이루어진 소프트웨어 실행 환경을 선택하여 설치, 운영 가능서버를 구.. Selenium과 E2E 테스트 Selenium 이란?웹 브라우저를 자동으로 제어하고 테스트할 수 있는 오픈소스 자동화 도구 기본 기능실제 브라우저를 열어서 사람처럼 웹 사이트를 조작할 수 있음자바스크립트로 동적으로 생성되는 콘텐츠도 처리 가능로그인, 클릭, 스크롤 등 다양한 브라우저 동작 자동화구성 요소 Selenium Web Driver브라우저 자동화 드라이버시중에서 많이 이용되는 여러 가지 브라우저들에 대한 라이브러리 제공 Selenium IDE웹 - 사용자 상호작용을 기록(녹화) 하고 재생하여 테스트 자동화에 활용Chrome 및 Firefox 의 extension 으로 설치 및 이용 Selenium Grid분산 환경을 구성하여 hub 가 요청을 수신, node 들에 테스트 수행을 분배하고 결과 수집WebDriver 스크립트를 .. 단위 테스트 단위 테스트란? 소프트웨어의 가장 작은 기능적 단위를 독립적으로 검증하는 테스트 방법 1. 독립성: 다른 테스트나 외부 시스템에 의존하지 않고 독립적으로 실행: 각 테스트는 서로 영향을 주지 않아야 함 2. 범위와 속도: 하나의 함수, 메서드, 클래스 등 작은 단위에 집중: 빠른 실행과 즉각적인 피드백 제공: 자동화된 방식으로 반복 실행 가능 ➡️ 단위 테스트는 소프트웨어의 지속 가능한 성장을 가능하게 하는 핵심 도구이며, 장기적인 개발 생산성을 유지하는데 필수적이다. BE 단위 테스트 : 독립적으로 테스트할 수 있는 함수/ 메서드들은 모두 테스트: 몇 개의 모듈이 조합하여 결과를 만들어야 하는 경우가 많음발생할 수 있는 요청 각각에 대한 테스트 케이스들을 마련하는 것이 합리적대부분의 요청에 대해서는.. 개발 환경 셋업 Backend구조 설계서 소프트웨어 구조 설계를 기술하고 정의하는 문서소프트웨어 개발 과정에 있어 가장 중요한 기준프로젝트 초기 단계에서 필수적으로 산출해야 하는 문서 우리 프로젝트에서는 => 이미 지정된 소프트웨어 아키텍처가 기술되어 있음 사용자 인증 및 정보의 보호 사용자 인증인증 정보를 제출하도록 하여 유효한 사용자인지를 확인하는 절차가입시 사용한 이메일 주소와 결부된 "암호화된 비밀번호" 를 비교 사용자 인가특정 자원(노트) 에 접근하고자 하는 사용자가 이 자원에 대한 권한을 가지고 있는지를 확인하는 절차현재 로그인하고 있는 사용자의 id 를 노트의 소유자 id 와 비교CORS 정책정해진 URL 로부터 서비스된 FE 코드(를 브라우저가 실행하여) 에 의한 요청만을 허용하는 정책을 구현 Fronte.. 응용 구조 설계 프론트엔드React 응용으로 만들어져 UI 에 해당하는 부분을 서비스백엔드로 향하는 API 호출은 브라우저의 js 실행에 의해서 이루어짐 백엔드 Express 응용으로 만들어져 데이터베이스를 이용한 데이터 모델을 서비스JWT(JSON Web Token) 를 이용한 사용자 인증을 통해 데이터 접근을 보호CORS(Cross-Origin Resource Sharing) 정책을 통해 악의적인 접근을 방지 데이터베이스"prgms_notes" 라는 이름의 데이터베이스에 두 개의 테이블을 포함 개발 환경의 운용개발 단계에서 빠르게 코드의 동작을 확인할 수 있는 것이 중요TDD 를 적용함으로써 효율을 상당히 높일 수 있음따라서, 코드의 동작을 눈으로 확인할 수 있는 환경을 구축하는 것이 필요 테스트 계획단위 테스트.. 웹 기반 문서 편집기 제작 프로젝트 소프트웨어 요구사항 명세서프로젝트에 있어서 가장 중요한 것개발자의 임무: 요구사항을 만족하는 소프트웨어를 개발하는 것 => 경험 많은 개발자라도 요구사항을 충실히 따라가는 일을 잊는 경우가 자주 있음 주의할 점요구사항은 여러 가지 이유로 프로젝트 수행 도중 변경될 수 있음테스트케이스의 작성은 요구사항을 반영해야 하며, (이론적으로는) 명세된 요구사항을 빠짐없이 반영해야 함고객(또는 시장) 요구에 따라 소프트웨어 요구사항을 도출하는 것이 프로젝트의 시작 Software Requirement Specification (SRS)- 소프트웨어 구현물의 기능적, 비기능적 요구사항을 기술한 문서기능적 요구사항: 소프트웨어가 갖추어야 하는 기능비기능적 요구사항: 성능, 자원 사용량 등에 존재하는 여러 측면의 제.. 이전 1 2 3 4 ··· 12 다음