본문 바로가기

요구사항 정의 요구사항의 개념 및 특징 요구사항은 소프트웨어가 어떤 문제를 해결하기 위해 전공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건 등을 나타낸다. 1. 요구사항의 유형 일반적으로 기능적, 비기능적 요구사항으로 구분하며, 기술 관점과 대상 범위에 따라 시스템 요구사항, 사용자 요구사항으로 나뉜다. 1) 기능적 요구사항 시스템이 무엇을 하는지, 어떤 기능을 하는지에 대한 사항이며 시스템이 반드시 수행해야 하는 기능이다. ex) 사용자는 회원ID와 비밀번호를 입력하여 로그인할 수 있다. 2) 비기능적 요구사항 성능, 인터페이스, 장비 구성 등 대부분 품질이나 제약사항과 관련이 있는 요구사항들이다. ex) 시스템은 1년 365일, 하루 24시간 운용이 가능해야 한다. 3) 사용자 요구사항 사용자 관..
소프트웨어 생명 주기 소프트웨어 생명 주기 소프트웨어 개발 방법론의 바탕이 되는 것으로, 소프트웨어를 개발하기 위해 정의하고 운용, 유지보수 등의 과정을 각 단계별로 나눈 것이다. 대표적인 소프트웨어 생명 주기 모형에는 폭포수 모형, 프로토타입 모형, 나선형 모형, 애자일 모형 등이 있다. 1. 폭포수 모형(Waterfall Model) 폭포수 모형은 이름 그대로 폭포에서 한번 떨어진 물은 거슬러 올라갈 수 없듯이 SW 개발도 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히 매듭짓고 다음 단계로 나아가는 모형이다.(실제로 피드백 통해 이전 단계를 수정하긴 하지만 프로세스 자체가 유연함이 부족하여 되돌리기 늦는 경우가 많다.) 가장 오래되고 폭넓게 사용된 고전적 생명 주기 모형이다. 두 개 이상의 과정이 병행하여 수행..
[Docker] Docker 개요 1. Docker란? 도커(Docker)는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다. -위키백과 쉽게 말해서 컨테이너 작업 환경을 제공해주는 오픈 소스 프로젝트다. Go 언어로 작성되었으며 2013년에 공개되고 지금까지도 핫한 기술이다. 컨테이너는 호스트OS 위에서 가상화된 공간이다. 하지만 기존의 가상화 기술들은 이미 존재했다. 하이퍼바이저를 이용해 호스트OS 위에 여러 개의 운영체제(가상머신)를 돌리며 완전한 독립성과 시스템 자원을 할당 받는 방법이다. 그렇다면 컨테이너는 기존의 방식과 무엇이 다를까? 가상머신과 컨테이너의 구조 비교 VM은 확실한 격리 수준을 보장하며 각각의 머신마다 완벽한 운영체제를 생성할 수 있다는 장점을 가졌다. 하지..
[프로그래머스] 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예제 phone_bookreturn [119, 9767..
[Elasticsearch] 데이터 입력, 조회, 삭제(GET, POST, PUT, DELETE) 윈도우 환경으로 실습을 진행한다. 다행히 윈도우 10에서는 curl 기능을 기본으로 제공한다. 엘라스틱 서치 공식 홈페이지에서 설치 후 bin 폴더의 elasticsearch.bat 파일을 실행시켜서 시작할 수 있다. 실행 시 JDK 버전을 비롯해 뭔가들이 촤라락 올라간다. 이제 다른 cmd창으로 elasticsearch를 사용할 수 있다. elasticsearch의 기본 포트는 9200. curl -XGET localhost:9200 를 쳐서 제대로 동작하고 있는지 확인해 보자. 아래와 같이 나오면 잘 동작하고 있다는 뜻이다. 1. GET RDB에서의 select와 같은 포지션이다. 아래는 classes라는 인덱스(RDB의 데이터베이스)를 찾는 명령어이다. curl -XGET http://localho..
[ELK Stack] ELK Stack 오프닝 0. 개요 ELK Stack = Elasticsearch + Logstash(+beats) + Kibana(+ X-Pack) APM처럼 여러 기술들을 연계하여 사용하는 것을 줄임말로 예쁘게 표현한 것이다. 그래서 저 기술들을 이용해서 뭐에 쓰느냐하면 Log 및 데이터 분석에 사용. 접근성이 좋고 쉬워서 최근에 많이 떠오르는 도구라고 한다. 그럼 각 기술들을 하나씩 살펴 보자. 1. ElasticSearch Java 기반의 오픈소스 분산 검색엔진. 방대한 양의 데이터를 신속하게, 거의 실시간(Near Real Time)으로 저장, 검색, 분석이 가능하다. 위의 그림처럼 기존의 데이터들을 키워드 중심으로 다시 Indexing하여 검색에 최적화 시킨다. 기존의 RDB와 비교했을 때 속도의 차이가 어마어마하다...
Data storage category[OLTP/OLAP] 1. Online Transaction Processing(OLTP) 온라인 트랜잭션 처리(Online transaction processing, OLTP)는 트랜잭션 지향 애플리케이션을 손쉽게 관리할 수 있도록 도와주는 정보 시스템의 한 계열로서, 일반적으로 데이터 기입 및 트랜잭션 처리를 위해 존재한다. - 출처: 위키피디아 괜히 어렵게 보일 수 있는데 우리가 흔히 사용하는 관계형 데이터베이스들이 여기에 속한다. 사용자의 ID나 비밀번호를 저장하고 카트에 물건 담고 등등. 아래는 OLTP의 특징들이다. 1) OLTP의 특성 - Records를 사용자가 입력한 키를 기반으로 삽입, 읽기, 또는 업데이트를 한다. - 일반 사용자와 상호작용을 위해 주로 사용한다. (ex. e-commerce site) -..
[프로그래머스] 큰 수 만들기 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 number k return "1924" 2 "94" ..