Loading...

[CS]14. 디자인 패턴 & UML 다이어그램

디자인 패턴(Design Pattern)은 소프트웨어 디자인에서 문제 해결을 위해 반복적으로 사용되는 설계 기법이며, 설계 방법이다. 디자인 패턴을 사용하면 단지 코드만 재사용하는 것이 아니라, 소프트웨어 디자인의 일관성, 호환성, 재사용성을 높여 유지 보수성을 높게 유지할 수 있다.(프로그램의 복잡성이 증가할 때 매우 유용하다.) 디자인 패턴을 프로젝트에 상시 적용하여야 하는 것은 아니지만, 추후 재사용과 호환, 유지 보수시 발생하는 문제 패턴을 예방하기 위하여 패턴을 만들어 둔 것이다. 클래스 간의 관계를 설명하는 것이 디자인 패턴. 객체 지향적으로 프로그래밍을 하기 때문에 현실 세계에 있는 것을 컴퓨터로 가지고 와야 함... +Design Smells 더보기 design smell이란 나쁜 디자인을..

[CS] 13. Agile 방법론

초기 소프트웨어 개발 방법은 계획 중심의 프로세스였다.(폭포수 모델) 90년대 이후, 소프트웨어 분야가 넓어지면서 소프트웨어 사용자들이 '일반 대중들'로 바뀌지 시작했다. 이제 모든 사람들이 소프트웨어 사용자들의 대상으로 되면서 트렌드가 급격하게 빨리 변화하는 시대가 도달했다. 이 때문에 제품 수명이 짧아졌고, SW 개발의 불확실성이 높아지게 되었다. 개발의 불확실성이 높아지며 전통적 개발 방법 적용이 어려워졌고 새로운 SW 개발 방법을 구축하게 되었다. 그 방법 중 하나가 규칙을 적게 만들고 가볍게 대응을 잘하는 방법을 적용하는 것이다. Agile 방법은 협력과 피드백을 중시하고 신속한 방법 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 SW 개발 방식을 의미한다. 앞서 ..

[CS] 12. 객체지향, 절차지향, 함수형 프로그래밍

순차적, 비구조적 프로그래밍 단어 그대로 순차적으로 프로그래밍을 하는 것을 순차적 프로그래밍이라고 한다. 필요한 게 있으면 계속 순서대로 추가해가며 구현하는 방식이다. 이러한 비구조적 프로그래밍에서는 goto문을 이용한다. 이러한 방식은 직관적이긴 하지만 코드 규모가 커질수록 유지보수가 매우 힘들다는 단점이 존재한다. 절차적, 구조적 프로그래밍 반복될 가능성이 있는 것들을 재사용할 수 있도록 함수(프로시저)로 만들어 사용하는 프로그래밍 방식을 의미한다. 절차 지향 프로그래밍에서는 코드를 함수(function) 또는 서브루틴(subroutine)으로 나누어 작성한다. 이 함수와 서브루틴은 각각 명령문을 수행하는 블록으로, 순차적으로 실행된다. 또한, 변수(variable)를 사용하여 데이터를 저장하고 처리..

[CS] 11. 선형 자료 구조

자료 구조란 컴퓨터 과학에서 효율적인 접근과 수정을 하도록 하는 자료의 조직, 관리, 저장을 의미한다. 더 정확하게, 자료 구조는 데이터 값의 모임, 데이터 간 관계, 데이터에 적용할 수 있는 함수나 명령을 의미한다. 보통 추상 자료형의 선택으로 시작하는 자료구조는 잘 선택하면 효율적인 알고리즘이 가능하다. 효과적으로 설계된 자료구조는 실행 시간, 메모리 용량과 같은 자원을 최소로 사용하며 연산을 수행한다. 자료의 특성, 크기, 사용법, 연산의 종류와 기억 공간의 크기에 따라 자료구조를 선택할 수 있으며, 자료구조의 종류는 자료형에 따라 분류하는 단순 구조, 자료 구조와 자료 간 관계가 1:1인 선형 구조, 1:N 또는 N:N 구조인 비선형 구조, 파일 구조로 나뉜다. 배열 가장 일반적인 구조 메모리 상..

[CS] 10. DB 정규화

정규화 한 릴레이션에 여러 엔티티의 속성들이 존재하면 정보가 중복 저장되게 된다. 데이터가 중복 저장되면 저장 공간이 낭비되는 것은 물론, 갱신 이상도 발생하게 된다. 갱신 이상은 크게 삽입 이상, 삭제 이상, 수정 이상으로 나뉘는데, 삽입 이상은 불필요한 정보를 함께 저장하지 않고는 어떠한 정보를 저장하는 것이 불가능하다는 것이며, 삭제 이상은 유용한 정보를 삭제하지 않고는 정보를 삭제하는 것이 불가능하다는 것이다. 마지막으로 수정 이상은 반복된 데이터 중 일부만 수정하면 데이터 불일치가 발생한다는 것이다. 이러한 문제를 해결하기 위해 RDB를 설계할 때 중복과 갱신 이상을 최소화하고 데이터의 일관성을 유지하기 위해 테이블을 분해하고, 데이터를 구조화하는 작업을 한다. 이를 정규화라고 한다. 정규화 장..

[CS] 9. 트랜잭션, 쿼리문 정리

트랜잭션 : DB 상태를 변화시키기 위해 수행하는 작업 단위. 여기서 상태를 변화시킨다는 것은 SQL 질의어(SELECT, INSERT, DELETE, UPDATE)를 통해 DB에 접근하는 것 만일 송금을 하려고 한다면, 출금 UPDATE와 입금 UPDATE가 되어야 한다. 출금 UPDATE와 입금 UPDATE를 통틀어 하나의 트랜잭션이라고 하며, 두 쿼리문이 모두 성공적으로 이루어져야 하나의 작업(트랜잭션)이 완료되는 것이다. 만일 하나라도 실패를 하게 된다면 모든 쿼리문을 취소하고 원래의 상태로 돌아가야만 한다. 트랜잭션 특징(ACID 성질) -원자성(Atomicity) : 트랜잭션이 모두 DB에 반영되거나, 모두 반영되지 않거나 둘 중 하나의 상태를 취해야 한다.(부분적 반영이 되면 안 된다) -일..