티스토리 뷰

1 과목 : 소프트웨어 설계

XP(eXtreme Programming)의 기본원리

XP(eXtreme Programming)이란?

- 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해
고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법

 

XP의 5가지 핵심가치

  • 의사소통(Communication)
  • 단순성(Simplicity)
  • 용기(Courage)
  • 존중(Respect)
  • 피드백(Feedback)

XP의 기본 원리

  • Pair Programming
    - 모든 프로그래밍은 하나의 컴퓨터에 2명의 프로그래머가 같이 공동 작업 진행
  • Collective Ownership
    - 소스코드에 대한 팀의 공통책임이 있으므로 코드는 누구든 수정 가능
  • Continuous
    - 컴포넌트 또는 모듈 단위로 나누어서 개발된 소스코드들은 하나의 작업이 끝날 때 마다 지속적으로 통합되고 동시에 테스트

 

캡슐화 설명

캡슐화(Encapsulation)란?

- 필요한 속성와 행위를 하나로 묶고 그 중 일부를 외부에서 사용하지 못하도록 은닉하는 것을 의미

 

캡슐화 특징

  • 서로 관련성이 많은 데이터와 이와 관련도니 함수들을 한 묶음으로 처리하는 기법
  • 결합도가 낮아지고 재사용이 용이
  • 인터페이스가 단순화 된다
  • 정보은닉과 관계가 깊음
  • 변경 발생 시 오류의 파급효과가 적음

 

객체지향 설계 원칙(SOLID)

※ 영어도 외워둘 것 

  • 단일 책임 원칙(SRP, Single Responsibility Principle)
    - 모든 클래스는 하나의 책임만 가지며, 클래스는 영향을 받아선 안 된다
  • 개방 폐쇠의 원칙(OCP, Open-Close Principle)
    - 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀야한다
  • 리스코프 치환 원칙(LSP, Liskov Substiution Principle)
    - 해당 객체를 사용하는 클라이언트는 상위 타입이 하위 타입으로 변경되어도, 차이점을 인식하지 못한 채 상위 타입을 통해 서브 클래스를 사용할 수 있어야 한다
  • 인터페이스 분리 원칙(ISP, Interface Segregaion Principle)
    - 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 하는 원칙
  • 의존성 역전 원칙(DIP, Dependency Inversion Principle)
    - 의존 관계를 맺을 때 변화하기 쉬운 것 보다 변화하기 어려운 것에 의존하라는 원칙

디자인 패턴

디자인 패턴이란?

- 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴

 

특징(재,가,유,확,안)

  • 재사용성
    - 재사용하여 유사한 상황에서 코드를 더 쉽게 작성
  • 가독성
    - 구조를 명확하게 작성하여 개발자가 코드를 이해하고 유지보수하기 쉽게 만듬
  • 유지보수성
    - 코드를 쉽게 모듈화 할 수 있으며, 변경이 필요한 경우 해당 모듈만 수정하여 유지보수가 쉬움
  • 확장성
    - 새로운 기능을 추가하거나 변경할 때 기존 코드를 변경하지 않고도 새로운 기능을 통합할 수 있음
  • 안정성과 신뢰성
    - 수많은 사람들이 인정한 모범 사례로 검증된 솔루션을 제공

소프트웨어 상위 설계, 하위설계

상위설계

  • 아키텍처 설계
  • 데이터 설계
  • 시스템 분할
  • 인터페이스 정의
  • 사용자 인터페이스 정의

하위설계

  • 모듈 설계
  • 인터페이스 작성

2 과목 : 소프트웨어 개발

EAI(Enterprise Architecture Integration)

EAI(Enterprise Architecture Integration)란?

- 기업 내 필요한 여러 어플리케이션이 있을텐데, 이런 각종 애플리케이션 간에 상호 연동이 가능하도록 통합하는 솔루션

 

Hybrid 방식

참고자료 : https://leesteady.tistory.com/24

- 그룹 내에서는 hup&spoke 방식을, 사용하고 그룹 간에는 messageBus 방식을 사용

- Hybrid는 중간에 미들웨어를 둔다

 

Postfix 연산식

postfix 연산식 예제

 

표기식 방식

 

전위표기식(Prefix)

- root > left > right

중위표기식(Infix)

- left > root > right

후위표기식(Postfix)

- left > right > root

 

테스트 용어

  • 테스트 케이스
    - 설계된 입력 값, 실행조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서
  • 테스트 시나리오
    - 테스트 케이스를 적용하는 순서에 다라 여러 개의 테스트 케이스들을 묶은 집합
  • 테스트 오라클
    - 결과가 참인지 거짓인지를 판단하기 위해서 정의된 참값을 입력하여 비교하는 기법

빌드 자동화 도구

빌드 자동화도구란?

- 빌드를 포함하여 테스트 및 배포를 자동화하는 도구

 

빌드 자동화 도구 종류

  • Ant
  • Make
  • Maven
  • Grandle
    - Groovy 기반으로 한 오픈 소스 형태
    - 안드로이드 앱 개발 환경에서 사용
    - 행할 처리 명령들을 모아 태스크(Task)로 만든 후 태스크 단위로 실행
  • Jenkins
    - Java 기반의 오픈 소스 형태
    - 서블릿 컨테이너에서 실행되는 서버 기반 도구
    - 친숙한 Web GUI 제공
    - 분산 빌드나 테스트 가능

3 과목 : 데이터베이스 구축

트랜잭션

 

트랜잭션이란?

- 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위

 

특징

※ 영어와 뜻 무조건 알고 있기

  • 원자성(Atomicity)
    - 트랜잭션이 데이터베이스에 모두 반영이 되던가, 아님 전혀 반영되지 않아야 한다는 것
  • 일관성(Consistency)
    - 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 하는 것
  • 독립성(Isolation)
    - 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다는 것
  • 지속성(Durability)
    - 트랜잭션이 성공적으로 완료 되었을 경우, 결과는 영구적으로 반영되어야 하는 것

 

키의 종류

※ 각 키들의 특징을 외울 것

  • 후보키(Candidate Key)
    - 유일하게 식별할 수 있는 속성들의 부분집합을 의미
    - 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야함
    - 유일성과 최소송을 만족
  • 기본키(Primary Key)
    - 특정 튜플을 유일하게 구별할 수 있는 속성
    - Null 값을 가질 수 없다
    - 동일한 값이 중복되어 저장될 수 없다
  • 대체키(Alternate Key)
    - 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들
  • 슈퍼키(Super Key)
    - 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
    - 유일성은 만족하지만, 최소성은 만족시키지 못함

 

관계대수

관계대수란?

- 기존 릴레이션(테이블)들로부터 새로운 릴레이션을 생성하는 절차적 언어 문법

 

  • 주어진 릴레이션 조작을 위한 연산의 집합
  • 일반 집합 연산과 순수 관계 연산으로 구분된다
  • 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다

DB 용어

- 스키마 : 속성(attribute)의 집합, 열

- 인스턴스 : 튜플의 집합(행, 레코드)

- 속성의 개수 : 차수

- 튜플의 개수 : 카디날리

참고자료 : https://velog.io/@suker80/day8.-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EC%B0%A8%EC%88%98%EC%99%80-%EC%B9%B4%EB%94%94%EB%84%90%EB%A6%AC%ED%8B%B0

 

4 과목 : 프로그래밍 언어 활용

Java 코드

예제 코드

- 자바에서 while 문은 조건 식의 결과 값이 Boolean 이어야 한다

- y--는 int이므로 Unresolved compilation problen 오류발생이 생긴다

 

접근제어자

  • public
    - 모든 접근을 허용
  • protected
    - 같은 패키지(폴더)에 있는 객체와 상속관계의 객체들만 허용
  • default
    - 같은 패키지(폴더)에 있는 객체들만 허용
  • private
    - 현재 객체 내에서만 허용

5 과목 : 정보시스템 구축 관리

CMM(Capability Maturity Model) 모델

 

CMM(Capability Maturity Model) 모델이란?

- 소프트웨어 개발 능력 측정 기준과 소프트웨어 프로세스 평가 기준을 제공함으로써 정보 및 전산 조직의 성숙수준을 평할 수 있는 모델

 

CMM모델의 레벨

  • 레벨 1 : 초기단계
  • 레벨 2 : 관리단계
  • 레벨 3 : 정의단계
  • 레벨 4 : 정량적 관리 단계
  • 레벨 5 : 최적화 단계

폭포수 모형

폭포수 모형이란?

- 가장 오랜된 모형으로 많은 적용 사례가 있지만 요구사항의 변경이 어려우며, 선형 순차적 모형으로 고전적 생명 주기 모형이라고 한다

폭포수 모델 7단계

 

SOA(Service Oriented Architecture, 서비스 지향 아키텍처) 설명

SOA(Service Oriented Architecture, 서비스 지향 아키텍처)이란?

- 네트워크에서 공통의 통신 언어를 사용하는 서비스 인터페이스를 활용하여 소프트웨어 구성 요소를 다시 사용할 수 있게 만드는 소프트웨어 설계 유형

 

계층

  • 표현 계층(Presentation Layer)
  • 프로세스 계층(Process Layer)
  • 서비스 계층(Service Layer)
  • 비즈니스 계층(Business Layer)
  • 영속 계층(Persistency Layer)

자동화 도구

  • SREM(Software Requirements Enginering Methdology)
    - TRW사가 개발
    - RSL과 REVS를 사용하는 자동화 도구
  • PSL/PSA
    - 미시간 대학에서 개발
    - PSL과 PSA를 사용하는 자동화 도구
  • HIPO(Hieracgy Input Process Output)
    - 하향식 소프트웨어 개발을 위한 문서화 도구
  • SADT(Structure Analysis and Design Technique)
    - SoftTech사에서 개발
    - 구조적 요구 분석을 위해 블록 다이어그램을 채택한 자동화 도구

다중화 기술

  • TDM(Time Division Multiplexing)
    - 시분할(시간) 다중화기
    - 통신 회선의 대역폭을 일정한 시간 폭(Time slot)으로 나누어 여러 대의 단말 장치가 동시에 사용
    - 디지털 회선 주로 이용
  • FDM(Frequency Division Multiplexing)
    - 주파수 분할 다중화기
    - 통신 회선의 주파수를 여러 개로 분할하여 여러 대의 단말장치가 동시에 사용
    - 저속의 비동기식전송, 멀티 포인트 방식, 아날로그 신호 전송 적합
  • CDM(Code Division Multiplexing)
    - 코드 분할 다중화 방식
    - 무선 통신에서 가장 널리 사용, 도청과 간섭 방지가 가능하지만 잡음을 분리해야하는 오버헤드 발생
  • WDM(Wavelength Division Multiplexing)
    - 파장 분할 다중화
    - 빛의 파장을 제외하고 FDM방식과 동일
    - 초고속 대용량 전송가능, 시스템 확장, 유연성 우수
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함