본문 바로가기

전체 글

(404)
[기타] 아파치(WEB)와 톰캣(WAS) 차이점 WEB(웹서버; Web Server) : HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램 : 클라이언트가 브라우저 주소창에 url을 입력하여 페이지 요청이 있을 경우 해당 요청을 받아들여 HTML 문서와 같은 정적 콘텐츠를 사용자에게 전달해 주는 역할 : 요청에 대한 데이터를 수정없이 보내 HTTP에 맞춰 보내주면 되기 때문에 정적 이라고 하며, 단순 데이터 반환이기 때문에 처리 속도가 빠르고 트래픽 과부화를 잘 처리할 수 있음 WAS(Web Application Server) : 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크 : 동적 데이터베이터를 처리하며, 주로 데이터베이스 서버와 ..
[02장.1] 스프링과 스프링부트 1. 스프링의 등장 엔터프라이즈 애플리케이션 : 대규모의 복잡한 데이터를 관리하는 애플리케이션으로 사용자의 요청을 동시에 처리해야 하기에 서버 성능과 안정성, 보안이 매우 중요 스프링 프레임워크는 엔터프라이즈 애플리케이션에서 필요한 서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구 2. 스프링을 더 쉽게 만들어주는 스프링 부트 스프링은 장점이 많은 개발 도구이지만 설정이 매우 복잡하기에 스프링 부트를 출시 스프링 부트는 스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있도록 만들어주는 도구로, 빠르게 스프링 프로젝트를 설정할 수 있고 의존성 세트라고 불리는 스타터를 사용해 간편하게 의존성을 사용하거나 관리 가능 하여, 비즈니스 로직 개발에만 집중할 수 있도록 만들어주는 도구 스프링 부트 주요 ..
[1. 소프트웨어 개발] 요구사항 관리 도구 요구사항 관리 도구란? : 요구사항을 기반으로 프로젝트 관리, 설계, 개발. 테스트 등을 수행할 수 있는 역할을 지원하는 도구 요구사항 도구 관리 필요성 1) 비용 편익 : 요구사항 변경으로 인한 비용 편익 분석 2) 변경 추적 3) 영향 평가 요구사항 관리 도구 기능 1) 기본 기능 - 프로젝트 생성 - 요구사항 작성 - 요구사항 불러오기/내보내기 2) 핵심 기능 - 요구사항 이력 관리 - 요구사항 베이스라인 - 요구사항 추적성 3) 부가 기능 - 협업 환경 - 외부 인터페이스 - 확장성 요구사항 관리 도구 [상용 제품] 1) 헬릭스 RM(Helix RM) 2) 지라(Jira) : 생명주기 관리와 요구사항 관리에 사용 3) 오르카노스(Orcanos) 4) 리큐테스(ReQtest) [오픈소스] 1) 레드..
[1. 소프트웨어 설계] 분석 자동화 도구(CASE) 분석 자동화 도구란? : 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 요구사항 분석을 위한 자동화 도구(CASE) * CASE : 소프트웨어 생명주기의 전체 단계를 연결해 주고 자동화해주는 통합된 도구로써 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경을 조성 분석 자동화 도구 등장 배경 - 산업 측면 : 소프트웨어 위기의 극복 대응 방안으로 대두 - 관리 측면 : 요구사항과 실제 시스템 간의 차이 발생 극복과 시스템 재사용성, 생선성 및 유지보수의 어려움 극복 필요 분석 자동화 도구 특징 1) 표준화 적용과 문서화를 통한 보고를 통해 품질 개선 가능 2) 변경사항과 변경으로 인한 영향에 대한 추적이 쉬움 3) 명세에 대한 유지보수 비용의 ..
[1. 소프트웨어 개발] 모델링 기법 모델링(Modeling) 이란? : 실세계의 물리현상을 특정한 목적에 대응하여 이용하기 쉬운 형식으로 표현하는 기법 : 유지보수 단계 뿐 아니라 분석/설계/구현 등 전반에 걸쳐 활용 모델링 특징 1) 개발될 시스템에 대해 여러 분야의 엔지니어들이 공통된 개념을 공유하는데 도움 2) 개발팀이 응용문제를 이해하는 데 도움을 줄 수 있음 3) 절차적인 프로그램을 위한 자료 흐름도는 프로세스 위주의 모델링 방법 모델링 역할 1) 실세계 문제에 대한 모델링이 소프트웨어 요구사항 분석의 핵심 2) 모델은 문제가 발생한 상황에 대해 이해를 증진시키고 해결책을 설명 3) 개념 모델은 문제 도메인의 엔터티들과 관계 및 종속성을 반영
[1. 소프트웨어 개발] 린(Lean) 린(Lean)이란? : 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론 : JIT(Just In Time), 칸반(Kanban) 보드를 사용 : 7가지 원칙 존재 린의 7가지 원칙 1) 낭비 제거 : 불필요한 코드나 기능과 같이 상품 가치에 영향을 미치지 않는 모든 것을 제거 2) 품질 내재화 : TDD를 통해 코드의 실수를 방지 3) 지식 창출 : 개발 과정 진행 중 참여자(기획자, 개발자, 고객 등) 학습의 필요성 존재 4) 늦은 확정 : 중요한 문제에 대한 의사 결정을 최대한 미루고 요구사항 변경에 대응 5) 빠른 인도 : 결과물을 가능한 빨리 제공하여 사용자의 불확실성이 감소하고 개발자에게는 결함발견의 기회가 주어짐 6) 사람 존중 :..
[1. 소프트웨어 개발] 스크럼(SCRUM) 스크럼(SCRUM)이란? : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 개발론 스크럼 주요 용어 1) 백로그(Backlog) : 제품과 프로젝트에 대한 요구사항 2) 스프린트(Sprint) : 2~4주의 짧은 개발 기간으로 반복적 수행으로 개발품질 향상 3) 스크럼 미팅(Scrum Meeting), 데일리 미팅(Daily Meeting) : 매일 15분 정도 미팅으로 To-Do List 계획 수립 4) 스크럼 마스터(Scrum Master) : 프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람 5) 스프린트 회고(Sprint Retrospective) : 스프린트 주기를 되돌아보며 정해놓은 규칙 준수 여부, 개선점 등을 일정 주기로 확인 및 기록 6)..
[1. 소프트웨어 개발] XP(eXtreme Programming) XP(eXtreme Programming)이란? : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론 : 기존의 방법론에 비해 실용성을 강조 : 1~3주의 반복 개발 주기를 가지며, 5가지 가치와 12개의 실천 항목 존재 XP의 5가지 가치 1) 용기(Courage) : 용기를 가지고 자신감 있게 개발 (코드를 작성하기 전에 테스트, 빠르게 피드백, 테스트에 부합하지 못하는 코드를 리팩토리 할 수 있는 용기) 2) 단순성(Simplicity) : 필요한 것만 하고 그 이상의 것들은 하지 않음 3) 의사소통(Communication) : 개발자, 관리자, 고객 간의 원활한 소통 4) 피드백(Feedback) : 의사소통에 대한 빠른 피드백 5) 존중(Respect) : 팀원 간의 상호..