목록CS (6)
munjji 님의 블로그
구조적 방법정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론이다.복잡한 문제를 다루기 위해 분할과 정복 원리를 적용한다.정보공학 방법론정보 시스템의 개발을 위해 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료 중심의 방법론이다.데이터베이스 설계를 위한 데이터 모델링으로 개체 관계도(ERD)를 사용한다.컴포넌트 기반(CBD) 방법론기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론이다.분석 단계에서 사용자 요구사항 정의서가 산출된다.소프트웨어 재사용의 이점개발 시간과 비용 단축소프트웨어 품질 향상소프트웨어 개발의 생산성 향상시스템 명세, 설계, 코드 등 문서 공유소프트웨어 재사용 방법합성 중심 : 전자 칩과 같은..
개념적 설계(정보 모델링, 개념화)정보의 구조를 얻기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.개념 스키마 모델링과 트랜잭션 모델링을 병행 수행한다.논리적 설계(데이터 모델링)자료를 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정이다.트랜잭션의 인터페이스를 설계한다.개념 스키마를 평가 및 정제한다.물리적 설계논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정이다.데이터베이스 파일의 저장 구조 및 액세스 경로를 결정한다.저장 레코드의 형식, 순서, 접근 경로, 조회가 집중되는 레코드와 같은 정보를 사용한다.데이터 모델에 표시할 요소구조(Structure): 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현함연산(Operatio..
자료 구조의 분리선형 구조 : 배열, 선형 리스트, 스택, 큐, 데크비선형 구조 : 트리, 그래프스택(Stack)리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조이다.가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO) 방식으로 자료를 처리한다.스택의 응용 분야인터럽트의 처리수식 계산 및 수식 표기법서브루틴 호출 및 복귀 주소 저장스택의 삽입(Push)과 삭제(Pop)PUSH : 스택에 자료를 입력하는 명령POP : 스택에서 자료를 출력하는 명령방향/무방향 그래프의 최대 간선 수무방향 그래프의 최대 간선 수 : n(n-1)/2방향 그래프의 최대 간선 수 : n(n-1)트리(Tree)정점(Node, 노드)과 선분(Branch, 가지)을 이용해 사이클을 이루지 않도록 구성한..
소프트웨어 공학의 기본 원칙현대적인 프로그래밍 기술을 계속으로 적용해야 한다.개발된 소프트웨어의 품질이 유지되도록 지속적으로 검증해야 한다.소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야 한다.폭포수 모형(Waterfall)이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히 매듭짓고 다음 단계를 진행하는 개발 방법론이다.보헴이 제시한 고전적 생명 주기 모형이다.요구사항을 반영하기 어렵다.나선형 모형(Spiral)나선을 따라 돌듯이 점진적으로 완벽한 최종 소프트웨어를 개발하는 것이다.계획 수립 -> 위험 분석 -> 개발 및 검증 -> 고객 평가 과정이 반복적으로 수행된다.애자일 모형의 주요 방법론스크럼(Scrum)XP(eXtreme Programming)기능 중심 개발(FDD; Fe..
동기와 비동기 처리의 차이에 대해서 이전 포스트에 작성해두었지만, 간략하게 회원가입 예제로 정리해보고 시작해보자.동기public String signUpSync(String email, String name) { // 모든 작업이 순서대로 끝나야 다음으로 넘어감 User user = db.save(email, name); // 1단계: DB 저장 (300ms) emailService.sendWelcome(email); // 2단계: 이메일 발송 (3000ms) imageService.setDefaultProfile(user); // 3단계: 프로필 설정 (1000ms) crmService.register(user); // 4..
비동기를 이해하기 위해 가장 먼저 이해해야 할 건 동기(Synchronous)와 비동기(Asychronous)의 차이다.동기 vs 비동기 처리동기(Synchronous)란?코드가 위에서 아래로 순서대로 실행되고, 앞 작업이 완전히 끝나야 다음 작업이 시작된다.console.log("1. 커피 주문");sleep(3000); // 3초 대기 (커피 만드는 중)console.log("2. 커피 받음");console.log("3. 자리 착석");// 출력 순서: 1 → (3초 대기) → 2 → 3 직관적이고 코드 흐름을 따라가기 쉽다. 하지만 sleep(3000) 동안 프로그램 전체가 멈춰있다. 이 상태를 블로킹(Blocking) 이라고 한다.왜 블로킹이 문제인가?혼자 쓰는 프로그램이라면 사실 큰 문제가 없..