본문 바로가기

전체 글

(67)
그런 REST API로 괜찮은가? 개발 취준 톡방에서 ajax api가 REST API인지? 에 관한 질문에 어떤 분이 REST API의 정의를 다시 한 번 생각해보라면서, 아래의 동영상을 남겨주셨다. https://www.youtube.com/watch?v=RP_f5dMoHFc 이에, 위 동영상 내용을 정리하면서 REST API란 무엇이고, RESTful하다고 불리기 위해서는 어떻게 설계를 해야하는지 알아보자. 1. 서두 개발자라면 REST라는 이름은 한번쯤은 들어보았을 것이다. 특히 웹 개발라면 100프로다. 한번쯤은 과연 우리들이 작성한 api는 RESTful한 api인가?라는 이야기를 한다. 문제는 정확하게 REST가 뭔지 딱 확실히 말할 수 있지 못한다는 것이다. 머리로는 이해를 하고 있지만, 뭔가 잘 설명이 되지 않아 REST..
3. 애플리케이션 설계 1) 공통 모듈 설계 (1) 공통 모듈 *** 1. 공통 모듈의 개념 모듈의 개념 독립된 하나의 소프트웨어/하드웨어 단위를 지칭 모듈화를 통해 분리된 시스템의 기능들로 서브 프로그램, 서브 루틴, SW 내 단위프로그램, 작업 단위 등과 같은 의미로 사용 모듈의 특징 각 모듈은 상대적으로 독립성을 가짐 모듈 내부에는 그 모듈을 하나로 통합하는 수많은 조합이 존재할 수 있음 단독으로 컴파일 및 재사용 가능 독립성 높다 → 다른 모듈에 영향 미치지 않고 수정 가능 ⇒ 결합도와 응집도에 의해 측정 → 결합도는 약하게, 응집도는 강하게, 모듈 크기는 작게! 공통 모듈의 개념 전체 프로그램의 기능 중 특정 기능을 처리할 수 있는 실행 코드 자체적 컴파일 및 재사용 가능 여러 프로그램에서 공통으로 사용할 수 있는 모듈 ex) 날짜 처리 ..
2. 화면 설계 - 2) UI 설계 (1) UI 흐름 설계 및 상세 설계 1. UI 설계 프로세스 문제 정의 사용자 모델 정의 : 사용자의 특성 파악하여 사용자 모델 정의 작업 분석 컴퓨터 오브젝트 및 기능 정의 사용자 인터페이스 정의 디자인 평가 2. UI 흐름 설계 화면에 표현되어야 할 기능 작성 기능적 요구사항 : 입출력 데이터 파악, 저장 데이터 분석, 수행 연산 분석 비기능적 요구사항 : 처리 속도, 보안성 등 시스템 성능 화면 입력 요소 확인 UI 요구사항 기반으로 유스케이스 설계 기능 및 양식 확인 3. UI 상세 설계 UI 요구사항 기반으로 메뉴 구조 설계 내외부 화면과 폼 설계 UI 검토 및 보완 (2) 감성 공학 1. 감성공학 개념 인간의 감성을 정성적, 정량적으로 측정 및 분석 → 구체적인 제품 설계로 실현 2. 감성공..
2. 화면 설계 - 1) UI 요구사항 확인 (1) UI 개요 1. UI(User Interface) 개념 넓은 의미 : 사용자와 시스템 사이에서 의사소통 할 수 있도록 고안된 물리적, 가상의 매개체 좁은 의미 : 소프트웨어 등에서 사람이 접하는 화면 2. UI 유형 CLI(Command Line Interface) : 정적 텍스트 기반 → 명령어를 텍스트로 입력 GUI(Graphic User Interface) : 그래픽 반응 기반 → 마우스나 전자 펜 이용 NUI(Natural User Interface) : 직관적 사용자 반응 기반 → 신체 부위 이용 OUI(Organic User Interface) : 유기적 상호작용 기반 → 입력 장치가 곧 출력 장치, 모든 사물이 입출력 장치로 변화할 수 있음 3. UI 분야 물리적 제어 분야 : 정보 ..
1. 요구사항 확인 3) 분석 모델 확인 (1) 모델링 기법 1. 모델링의 개념 실세계의 물리 현상을 특정한 목적에 대응하여 이용하기 쉬운 형식으로 표현 2. 모델링의 역할 소프트웨어 요구사항 분석의 핵심 문제가 발생하는 상황에 대한 이해 증진, 해결책 설명 문제 도메인의 엔터티들과 관계 및 종속성 반영 3. 모델링 절차 요구사항 분석 개념 모델링 : 엔터티 추출, 속성 및 관계 정의, ERD 작성 논리 모델링 : 식별자 확정, 정규화 물리 모델링 : 칼럼 데이터 타입, 제약조건, 인덱스 정의 (2) 분석 자동화 도구 1. 분석 자동화 도구의 개념 요구사항을 자동으로 분석 및 요구사항 분석 명세서를 기술하도록 개발된 자동화 도구(CASE) CASE : 생명주기의 전체 단계를 연결해주고 자동화해주는 통합된 도구 → 하드웨어, 소프트웨어, 데이터베..
1. 요구사항 확인 - 2) 요구사항 분석 (1) 요구분석 기법 1. 요구 분석 개념 도출된 요구사항 간 상충 해결, 소프트웨어 범위 파악, 외부 환경과의 상호작용 분석 개발 대상에 대한 요구사항 중 명확하지 않거나 이해되지 않는 부분을 발견 및 걸러내는 과정 2. 요구 분석의 특징 분석 결과의 문서화 → 유지 보수에 유용하게 활용 보다 구체적인 명세를 위해 소단위 명세서 활용 가능 소단위 명세서 : 데이터 흐름도에 나타나있는 처리 목을 1~2 페이지 정도의 소규모 분량으로 요약 작성하는 논리적 명세서 개발 비용이 가장 많이 소요 X → 유지 보수 단계가 가장 많이 소요 3. 요구 분석 기법 → 요구 사항 확인(Validation), 구현 검증(Verification), 비용 추적 가능하도록 요구사항 분류 기능/비기능 분류 요구사항이 소프트웨어에..
1. 요구사항 확인 - 1) 현행 시스템 분석 (1) 플랫폼 기능 분석 1. 플랫폼의 개념 앱을 구동시키는데 필요한 소프트웨어 환경 동일한 플랫폼 내에서는 상호 호환이 가능하도록 만들어진 결합체 공급/수요자 등 복수 그룹이 참여하여 각 그룹이 얻고자하는 가치를 공정한 거래를 통해 교환할 수 있도록 구축된 환경 2. 플랫폼의 유형 싱글 사이드 플랫폼 : 제휴 관계를 통해 소비자와 공급자를 연결 ex) 아이튠즈, 안드로이드 마켓 투 사이드 플랫폼 : 두 그룹을 중개하고 모두에게 개방하는 형태 ex) 소개팅 앱 멀티 사이드 플랫폼 : 다양한 이해 관계 그룹을 연결하여 중개 ex) 페이스북, 인스타그램 3. 플랫폼의 기능 소프트웨어 개발과 운영비용 감소, 생산성 향상 동일 플랫폼의 커뮤니티 형성 → 네트워크 효과 유발 네트워크 효과 : 어떤 상품에 대한 수..
03. Divide & Conquer 분할정복 분할 정복 어떤 문제를 나눌 수 없을 때까지 나누어서 각각을 풀고, 다시 합병하여 문제의 답을 얻는 알고리즘 크기가 작아질 뿐 문제 자체는 변하지 않기 때문에, 분할은 재귀적 분할 재귀적으로 나타낼 수 있기에 수행시간 $T(n)$은 점화식으로 표현될 수 있음 Selection에서 배운 quick_select, MoM 알고리즘 모두 분할 정복 알고리즘 $a^n$ 계산하기 선형 재귀 호출 def power1(a, n): if n == 1: return a return a * power1(a, n - 1) 수행시간 2. 이진 재귀 호출 def power2(a, n): if n == 1: return a if n == 0: return 1 if n % 2 == 0: return power2(a, n // 2) ..