StudyRepository
728x90
11. 프로젝트 관리
소프트웨어공학 2023. 4. 11. 18:33

1. 즉흥적인 개발 프로세스 즉흥적으로 프로그래밍해보고 사용자가 원하면 수정하는 식으로 작업하여 소프트웨어를 완성하는 방법. 즉 사용자가 만족할 때까지 소프트웨어를 고친다. 2. 폭포수 모델 폭포수 모델은 즉흥적인 개발 프로세스의 문제점을 개선한 것이다. 특히 요구와 설계, 품질 보증의 중요성을 반영한 소프트웨어 공학의 전통적인 개발 방법이다. 폭포수 모델은 각 단계가 끝나기 전, 다음 단계로 진입할 수 있는 기초가 마련되었는지 검토하고 확인하는 품질 보증을 실시한다. 만약 문제를 발견하면 전 단계로 되돌아가 수정한다. 3. 점증적 모델 점증적 모델은 폭포수 모델의 문제점을 보완한 방법이다. -시스템을 컴포넌트로 나누어 점증적으로 개발한다. 각 컴포넌트는 폭포수 모델을 따라 개발한 후 전체 시스템에 통합..

article thumbnail
4. 스레드와 멀티스레딩
운영체제 2023. 4. 10. 15:24

01 프로세스의 문제점 프로세스 생성 오버헤드 - 프로세스를 위한 메모리 할당, 부모프로세스로부터 복사 - PCB 생성, 매핑 테이블(페이지 테이블) 생성 등 프로세스 컨텍스트 스위칭 오버헤드 - CPU 레지스터들을 컨텍스트로 PCB에 저장, 새 프로세스 컨텍스트를 PCB에서 CPU로 옮기는 시간 - CPU가 참고할 매핑 테이블(페이지 테이블)의 교체 시간 - CPU 캐시에 새 프로세스의 코드와 데이터가 채워지는데 걸리는 시간 등 프로세스 사이 통신의 어려움 - 프로세스가 다른 프로세스의 메모리에 접근 불가 - 프로세스 사이의 통신을 위한 제 3의 방법 필요 - 커널 메모리나 커널에 의해 마련된 메모리 공간을 이용하여 데이터 송수신 신호, 소켓, 메시지 큐, 세마포, 공유메모리, 메모리맵 파일 등 - 코..

article thumbnail
3. 프로세스와 프로세스 관리 (2)
운영체제 2023. 4. 7. 17:00

부모 - 자식 프로세스 부모-자식 관계의 프로세스 - #0 프로세스는 시스템 부팅 시 실행되는 최초의 프로세스 - 부모 프로세스는 여러 개의 자식 프로세스를 가질 수 있음 - #0 프로세스를 제외한 나머지 프로세스는 모두 부모 프로세스를 가짐 자식 프로세스 생성 - 부모 프로세스에 의해 생성 - System Call을 통해 생성 > fork(), clone() 함수 리눅스에서의 프로세스 - #0 프로세스: swapper/idle 프로세스 (hand-crafted) - #1 프로세스: init 프로세스 (hand-crafted) > 부팅 후 생성되는 모든 사용자 프로세스의 조상 - #2 프로세스: kthreadd 프로세스 (hand-crafted) > 커널 모드에서 커널 코드로만 실행되는 모든 커널 프로세..

article thumbnail
4. 클래스 모델링
소프트웨어공학 2023. 4. 7. 15:34

01 클래스 다이어그램의 기초 • 클래스 다이어그램의 구성 요소 – 클래스: 자료 타입 그 자체를 나타냄 – 연관관계: 클래스 인스턴스 사이의 관계를 나타냄 – 속성: 클래스와 그 인스턴스 안에서 발견될 단순 자료 – 오퍼레이션: 클래스와 그 인스턴스에 의하여 수행될 함수를 나타냄 – 일반화: 클래스를 상속 구조로 그루핑 02 클래스와 가시성 2.1) 클래스 • 클래스는 박스로 표현하며 그 안에 이름을 적는다 – 다이어그램은 속성과 오퍼레이션을 나타낼 수 있다. – 오퍼레이션의 원형은 다음과 같이 표시한다. operationName(parameterName parameterType, …): returnType 2.2) 속 성 • 객체의 상태 또는 성질을 나타냄 – 객체에 대한 정보를 나타냄 – 속성은 변..

article thumbnail
3. 요구분석
소프트웨어공학 2023. 4. 6. 18:46

1. 도메인 분석 도메인 분석은 소프트웨어 엔지니어가 개발하려는 분야의 배경 지식을 알아가는 과정이다. • 소프트웨어 엔지니어가 문제를 더 잘 이해하기 위하여 도메인에 대하여 알아가는 과정 – 도메인이란 소프트웨어를 사용할 것으로 예상되는 고객이 일하는 분야의 비즈니스나 기술 – 도메인 전문가란 응용 분야에 깊이 있는 지식을 가진 사람 • 도메인 분석을 수행하는 이점 – 빠른 개발 – 더 좋은 시스템 – 확장을 예견 2. 문제정의와 범위설정 도메인에 대해 충분히 숙지했다면 드디어 요구를 결정할 수 있는데 이를 '요구 추출'이라고 한다. 이때 먼저 해결하려는 문제를 정의하고 프로젝트 범위를 결정한 후 여러 가지 방법을 활용하여 요구를 추출한다. • 문제란? – 고객이나 사용자가 직면한 어려움 – 생산성이나..

article thumbnail
2. 객체지향 개념
소프트웨어공학 2023. 4. 5. 21:07

• 절차적 패러다임 – 소프트웨어가 프로시저 단위로 구성됨 • 명령의 순차적 실행 – 프로시저 추상 • 단순한 데이터에는 적합하나 복잡한 데이터를 가진 응용문제에는 부적합 – 데이터 추상 • 특정한 의미를 이루는 데이터 조각들의 집합 • 시스템의 복잡도를 줄이는데 도움 – 예) 레코드나 구조체 – C, BASIC 01 객체지향 • 객체지향 패러다임 – 프로시저 추상을 데이터 추상 관점으로 구성 – 객체란 상태를 의미하는 기억 장소와 상태를 변경할 수 있는 연산의 집합 – 객체는 클래스로 그룹화 – 클래스의 인스턴스 • 선언된 객체의 실제 예 – C++, Java, C# 추상화 (abstraction) 의 개념 – 주어진 작업이나 객체를 속성들의 일부분을 가지고 필요한 만큼 묘사할 수 있는 방법을 지원하는..

article thumbnail
1. 소프트웨어란?
소프트웨어공학 2023. 4. 5. 15:12

1. 소프트웨어의 정의 소프트웨어랑 입력된 자료를 처리하여 결과를 출력하는 프로그램과 프로그램의 개발, 운용, 보수에 필요한 자료 일체를 말합니다. 2. 소프트웨어의 유형 2.1 공급 방식에 따른 유형 1) 주문형 소프트웨어 주문형 소프트에어는 특정 고객의 수요를 만족시키기 위해 개발된 소프트웨어이다. 따라서 다른 사용자나 기관에는 쓸모가 없거나 잘 맞지 않는다. 계약에 의해 개발된 주문형 소프트웨어에는 사용자가 한정되고 개발의 성패가 사용자의 결정과 필요에 절대적으로 좌우된다. 2) 패키지형 소프트웨어 패키지형 소프트웨어는 공개된 시장에 내놓고 판매하기 위한 것으로 범용 컴퓨터에서 실행되어 기능을 수행하기 때문에 범용 소프트웨어라고도 한다. 패키지형 소프트웨어는 주문형 소프트웨어보다 훨씬 저렴하고 신뢰..

article thumbnail
3. 프로세스와 프로세스 관리(1)
운영체제 2023. 4. 4. 23:53

1) 프로그램(Program) - 하드디스크 등의 저장매체에 저장된 실행 파일 상태 2) 프로세스(Process) - 프로그램이 메모리에 적재되어 실행중인 상태 3) 프로세스의 특징 - 운영체제는 프로세스에게 필요한 메모리를 할당하여 코드와 데이터등을 적재함 - 프로세스들은 서로 독립적인 메모리 공간을 가지며 다른 프로세스 영역에 접근할 수 없음 - 프로세스마다 고유한 번호(프로세스 ID)가 할당됨 - 프로세스에 대한 모든 정보는 운영체제 커널에 의해 관리됨 1) 커널에 의한 프로세스 관리 - 커널 영역에 프로세스 테이블을 생성함 - 테이블을 통해 프로세스 목록을 관리함 2) 프로세스 관리 내용 - 프로세스 생성, 실행, 일시중단, 재개, 중단 - 프로세스의 각종 정보 - 프로세스 통신 - 프로세스 동기..

article thumbnail
9. 스프링 빈과 의존관계 (Spring)
Spring 2023. 4. 4. 19:27

스프링 빈 등록하고, 의존관계 설정하기 저번시간엔 service를 통해 리포지토리에 회원을 저장해보았습니다. 이번시간에는 회원 컨트롤러가 회원 서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비해보겠습니다. MemberController가 MemberService를 통하여 회원을 저장할 수 있어야하고, 그 회원 데이터를 가져올 수 있어야 합니다. 그러기 위해선 컨트롤러와, 뷰 템플릿 필요합니다. 1. MemberController클래스 만들기 우선 MemberController클래스를 만들어줍니다. 2. 생성자 선언 @Controller public class MemberController { private final MemberService memberService; @Autowired publ..

article thumbnail
1.인공지능 소개(인공지능)
인공지능 2023. 4. 4. 10:52

1. 인공지능이란 2. 인공지능의 역사 3. 요소 연구 분야 3.1 요소 기술 분야 3.2 주요 응용 분야 4. 최근 동향 5. 인공지능의 영향       ❖ 지능(知能, intelligence)▪ 본능적이나 자동적으로 행동하는 대신에, 생각하고 이해하여 행동하는 능력        ❖ 인공지능(人工知能, Artificial Intelligence)▪ 인공적으로 만든 지능 ▪ 튜링 테스트(Turing test) • 지능의 조작적 정의 (operational definition) – 조작적 정의: 측정할 수 있는 조건으로 어떤 속성을 기술                ❖ 인공지능(Artificial Intelligence)▪ 다트머스 회의(Dartmouth Conference,1956) • 존 마카시(John..

8. 의존성 주입(dependency injection) (Spring)
Spring 2023. 4. 3. 15:40

Spring 프레임워크는 3가지 핵심 프로그래밍 모델을 지원하고 있는데, 그 중 하나가 의존성 주입(Dependency Injection, DI) 입니다.     DI 란 무엇인가 DI는 Dependency Injection의 줄임말로, 다양한 우리 말 번역이 있지만, 이 글에서는 의존성 주입이라고 하겠습니다. DI란 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해줍니다       Dependency, 의존관계란?  “A가 B를 의존한다.”는 표현은 어떤 의미일까요? 추상적인 표현이지만, 토비의 스프링에서는 다음과 같이 정의합니다.의존대상..

728x90