일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
- lower_bound
- 안드로이드 스튜디오
- BFS
- 영어회화 100일의 기적
- 성화봉송
- 평창동계올림픽
- 삼성 코딩테스트
- 캘리그라피
- 비트마스크
- 외판원 순회
- 성화봉송주자
- multiset
- 다음 지도 api
- upper_bound
- BOJ 2098
- Segment Tree
- MST
- 위상정렬
- 다음 API
- 인간이 그리는 무늬
- 언어의 온도
- 그리디 알고리즘
- DP
- 다이나믹 프로그래밍
- 이분탐색
- boj
- 생활코딩
- yolo
- 백트레킹
- 창훈쓰다
- Today
- Total
목록2018/12 (22)
Hoon222y
UML(Unified Modeling Languege)- 객체 지향 스타일의 SW 개발을 지원하기 위해 단일 메타 모델 기반 그래픽 표기법의 집합 - SW 시스템 분석/ 설계를 가시화/ 문서화하기 위해 제공하는 범용 모델링 언어 Unified - 통합된 기존의 객체 지향 방법론의 통합 Modeling - 모델의 가시성을 제공 Languege - 모델 명세를 위한 문법 제공 UML 용도 - 시스템 발견 및 개발을 위한 도구- 시각적 개발 언어를 위한 도구- 잘 정의돈 가이드라인 오해- 프로그래밍 언어 또는 환경이 아님- 데이터베이스 명세 도구도 아님- 개발 프로세스 자체도 아님- 품질 보증하는 도구도 아님
[접은 부분 추가하기 ]+) 블랙박스 기법과 화이트박스 기법 차이 추가10p부터 중간부터 필기 시작하고 있음. 프로그램실행 여부 동적 테스트(Dynamic Test) 프로그램을 실행하며 소프트웨어 시스템의 기능, 자원 사용 및 성능 확인 등 비기는 테스트. 모든 레벨에서 테스트 가능 . 블랙박스 또는 화이트박스 테스트로 수행 정적 테스트(Static Test) 코드를 실행하지 않고 테스트 하는 기법으로 검토같은 수동적 기법과 정적 분석 같은 자동화 된 기법이 있음. 정적 테스트는 개발 프로세스 초기에 개발 산출물들에 대해 결함을 발견함으로써 개발 비용을 낮추는데 도움이 됨. 코드의 일부를 가지고도 툴, 혹은 코드리뷰를 통해서 테스트가 가능하다. - 즉 , 동적 테스트와 정적 테스트의 차이는 동작 시키느냐..
EXP00. 메서드가 반환하는 값을 무시하지 마라EXP01. 널 포인터를 역참조 하지 않도록 하라EXP02. 배열 내용을 비교하려면 Arrays.equals 메서드를 사용해라 EXP03. 박싱된 기본형을 비교할 때, 동등 비교 연산자를 사용하지 마라EXP04. 오토 박싱된 기본 타입이 의도한 타입인지를 확인하라EXP05. assert 안에서 부작용이 있는 표현식은 사용하지 말자 NUM00. 정수 오버플로가 발생하지 않도록 하라 NUM01. 오차 없는 정확한 계산을 할 때는 부동 소수점 타입을 사용하지 말자 //문자나 바이트를 읽는 메소드의 반환값을 저장할 때는 int 타입을 사용하라 1의 보수의 개념 -> 현대의 모든 cpu는 2의 보수1 + ㅌ = 1 -> 1에 대한 1의 보수 X = 00 + X = ..
전략(Strategy) 패턴 : 특정한 계열의 알고리즘들을 정의하고, 각 알고리즘을 캡슐화하며, 이 알고리즘들을 해당 계열 안에서 상호 교환 가능하게 만듬. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package Strategy; import java.io.IOException;// 현재 코드는 템플릿 메서드 패턴을 사용하는데 이는 상속을 사용하므로 // 런타임에 정책을 변경할 수 없으며 데이터 공유도 안된다는 단점이 있음// 이를 해결하기 위해 정책을 런타임에 변경할 수 있도록 인터페이스를 활용한 포함 관계로 구현.public class Test { public static void mai..
추상 팩토리 패턴 : 클래스를 인터페이스 기반으로 구현하여 결합 응집도를 낮춘 패턴1234567891011121314151617181920212223242526272829303132333435package AbstractFactory; public class Test1 { public static void main(String[] args) { //a.exe -os=win ... String os = "Win"; // =args[1] // 이제 각 운영체제 별로 정보창을 출력합니다. if (os == "Win") { WinTextBox textbox = new WinTextBox(); WinButton button = new WinButton(); textbox.draw(); button.draw(); ..
컴포지트 패턴(Composite pattern) : 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114package Composite;import java.io.IOException;import java.u..
디자인 패턴 : 반복적으로 발생하는 문제들을 설명하고, 이에 대한 해결방안을 설명하는 학문리팩토링 : 프로그램이 동작을 변경하지 않고, 내부 구조를 변경하는 유지보수의 개념 -> 디자인 패턴은 궁극적인 목표이고, 리팩토링은 이에 대한 방법론이라고 볼 수 있다. 예제를 통해서 진행하자123456789101112131415161718192021222324252627package refactoring; public class test1 { public static void main(String[] args) { new Server().run(); }} // 어떤 기능을 제공하는 서버가 있다고 합니다.class Server{ // 서버를 구동하려면 아래의 메서드를 호출하면 됩니다. public void run(..
옵저버 패턴 : 객체의 상태 변화를 관찰하고 이를 처리하기 위한 디자인 패턴이다. 이벤트가 발생될 객체에 옵저버 객체들을 등록하고, 상태변화가 있을때마다 메서드 등을 통해 객체가 등록된 옵저버들의 메서드를 호출하여 옵저버에게 알려준다 . 옵저버 패턴 : 객체의 상태 변화를 관찰하려는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버들에게 통지하도록 하는 디자인 패턴 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package Observer; import java.util.ArrayList; public class main { pu..
어댑터 패턴 : 클래스와 인터페이스를 사용자가 기대하는 다른 인터페이스로 전환하는 기법 객체지향 프로그래밍에서 어댑터 패턴을 구현하는 방법1. 상속(비추) - 기존 객체의 멤버들도 외부에 노출되므로 객체의 상태가 불안해진다.2. 포함 - 기존 객체의 멤버들이 외부로 노출되지 않으므로 상속보다 상대적으로 안전하다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667import java.util.ArrayList; //extends ArrayList를 쓰기위함import java.util.Stack; public class main { ..
123456789101112131415161718192021222324public class inheritanceTest { public static void main(String[] args) { Medic medic = new Medic(); Marine marine = new Marine(); // marine = medic //는 에러, 서로다른 타입이기 때문에 Human h1 = medic; //부모타입 = 자식 객체, 업케스팅(upcasting) Human h2 = marine; // 관련이 없는 타입은 처리할 수 없으므로 타입안정성이 높아지게 된다. // Human h3 = new Hydra(); // 상속을 사용하는 이유 // 기능적 : 코드의 재사용성 // 디자인 : 서로 다른 타입을 동..