본문 바로가기

Development Note

(69)
Data Structure - Array-based List ① 인터페이스를 만드는거 까지는 좋은데... -_-;; 어디다 자료를 담는다는 말입니까...;;; 그래서 생각해 보니까.. 아!! 그게 있었군요 :) 바로.. 배열입니다. (Array) 배열은 한 객체 안에 여러개의 객체들을 담을 수 있었잖아요? 그럼 그렇게 배열을 이용하여 코딩을 하면 되겠군요... 'ㅡ' ㅋㅋㅋ 생각보다 단순하네요... 헉.. 그런데 생각해보니까.. 배열이라는 녀석은 하나 생각할게 있었습니다. 이 배열의 크기인데요.. 배열의 크기가.. -_-;; 일정하기 때문에 입력될 자료에 따라서 크기를 잘 지정을 해줘야 겠군요.. 고로 확장성에 제약이 좀 있었습니다. 여튼간에.. 이 배열을 사용해서 만들어 보도록 하겠습니다 :) 열심히 뻘짓한 결과입니다 -_- 가여히 봐주세효.. 무려 3시간이 걸렸습..
Data Structure - List Interface 이전에 작성했던 리스트에 반영되어야할 요소들을 고려하여 만든 리스트 인터페이스가 작성되었습니다. 이해를 돕기 위해서 'ㅡ'... 주석처리도 깔끔하게 해봤습니다 ^ㅡ');; 맘에 드실지는 모르겠지만요 ㅠㅠ package List.ListInterface; public interface ListInterface { /** * 새로운 요소를 추가 시킵니다. * * @param newEntry * 새로 추가 시키게 될 요소 */ public void add(T newEntry); /** * 새로운 요소를 특정 위치에 추가 시킵니다. * * @param position * 리스트의 특정 위치 인덱스 * @param newEntry * 새로 추가 시키게 될 요소 */ public void add(int positi..
Data Structure - Lists 자료구조를 시작하면서 가장 먼저 등장하게 되는건.. List 라는 자료구조입니다. 말처럼 쉽게 생각하시면 됩니다. List는 그냥 목록.. 정도로 생각하시면 되겠네요.. 보통 우리가 방학계획이나.. 일과 계획표를 세울때 번호를 매기면서 순서대로 해야할 일들에 대해서 열거를 하고는 합니다. 이런 방학 계획표가 있다고 생각을 해봅시다 'ㅅ';;; 방학때 해야할 공부 목록 1. 자바 공부 2. 모자란 수면 욕구 해소 3. 아르바이트 하기.. ㅠㅠ 4. 소설책 하나 읽기 5. C 프로그래밍 공부하기 6. 영어 공부 7. 한자 공부 8. 취업 준비 9. 배낭 여행 가기 .. 이런식으로 만들어 놨다고 가정을 합시다... 물론 이런 일들을 적는 방법에 대해서 생각해 봐야 합니다. 순서대로 적어 나가야 되고.. 지울것..
Data Structure - Java Essential 처음.. 이 책을 슥 펴면 나오는 내용이 -ㅅ-.. 아참.. 책 이름부터 설명을 해드리자면요.. Pearson International Edition (Pearson 출판에서 만든 국제 버젼이라는 얘기 -ㅅ-;;) Data Structures and Abstractions with Java SE (2판입니다 -_-) 일단 자료구조로 배우는 자바입니다.. 그래서.. -ㅅ-// 자바 기초를 배우는 부분이 서두부분에 나오는데요.. 자바책 하나 분량이 이 책에서는 약 3 챕터에서 마무리가 되고 있습니다. 간단하게 살펴보도록 합시다 -ㅅ-/ Chapter 1. Java Classes Objects and Classes -> 객체가 뭐고 클래스가 뭐고 하는거죠? 붕어빵과 붕어빵 틀!! Using the Method..
RTP Session 1. Replace Constructors with Creation Methods Replace Constructors with Creation Methods 하지만, 컴퓨터 생성자를 사용하면 둘중 하나만 구입하는 경우는 만들수가 없습니다. 왜냐면 사운드 카드를 추가하는 경우와 그래픽 카드를 추가하는 경우에 생성자 오버로딩의 원칙(타입과 갯수가 다른 경우)에 위배되기 때문입니다. 따라서 컴파일 에러가 발생합니다. 그럼 이런 경우에는 어떻게 해야될까요?? 참으로 난감한 일이 아닐 수 없습니다!! 책에 이런 내용이 있습니다. 이게 키워드가 될 수 있을까요? 어 떤 클래스의 인스턴스를 생성할 때 그것이 제공하는 여러 생성자 중 어떤 것을 호출해야 할지 결정하기가 어렵다면, 인스턴스를 생성해 리턴하는 생성 메서드(Creation Method)로 각 생성자를 대체하여 그 용도가 명확히 드러나도..
RTP Session 1. Chain Constructors RTP 4, 5장에서는 어떤 방식으로 세션을 나누어 놓았고, 어떤 방식으로 패턴을 활용한 리팩토링에 접근하는지 전반적인 책을 보는 방법에 대해서 정리를 해 놓았고, 그래서 4장, 5장에 대한 정리는 하지 않았습니다. 먼저 세션은 총 21개로 되어있습니다. 그중에 첫 세션은 Replace Constructors with Creation Methods (생성 메소드로 생성자를 대체하기), Chain Constructors (연쇄 생성자) 입니다. 공부를 하던 도중에 순서가 연쇄 생성자 부터 하는 것이 좋겠다고 생각이 되어서 먼저 연쇄 생성자를 다루도록 하겠습니다. Chain Constructors public class Computer { private int cost; private String mainB..
RTP : 3장. 패턴 3장에서는 주로 패턴이 무엇을 의미하는지, 또 패턴 중독의 경우와 한 패턴이 여러 형태로 존재할 수 있는지를 설명한다. 패턴이란? 일단 패턴이라는것은 건축에서 부터 비롯된 말이다. 패턴은 세상에 발생하는 사물인 동시에, 그것을 어떻게 창조할 수 있는지, 그리고 언제 창조해야 하는지를 알려주는 규칙이다. 패턴은 과정인 동시에 대상이다. 살아있는 대상에 대한 기술이기도하고, 만들어내는 과정에 대한 묘사이기도 하다. 패턴 중독 http://developers.slashdot.org/comments.pl?sid=33602&cid=3636102 에 가면 패턴 중독을 풍자해 놓은 글이 있다. 패턴의 진정한 성과는 패턴을 현명하게 사용할때 난다. 리팩터링을 통해 점진적으로 패턴을 도입하면, 패턴으로 인한 과도한 설계..
RTP : 2장. 리팩터링 2장에서는 리팩터링에 대한 개념과 리팩터링을 위해 필요한 것들에 대해서 알려주고 있다. 리팩터링이란? 리팩터링을 마틴 파울러가 정의하기를 '겉으로 보이는 동작을 바꾸지 않고, 이해하거나 수정하기 쉽게 소프트웨어의 내부 구조를 바꾸는 것' 이라고 되어있다. 모든 리팩터링은 작은것에 부터 시작하고, 작은 것들이 모여서 대규모의 리팩터링이 된다. 리팩터링을 띄엄띄엄 하기보다는 지속적으로 할때 최상의 효과를 얻을수 있다. 리팩터링을 하는 이유 새로운 코드를 더 쉽게 추가할 수 있도록 하기 위해 기존 코드의 설계를 개선하기 위해 기존 코드를 더 잘 이해하기 위해 덜 짜증나는 코드로 만들기 위해 궁극적으로는 사람이 읽기 쉬운 코드를 만들기 위해 많은 눈 최상의 리팩터링 결과를 얻으려면 많은 눈(사람)의 도움을 받는..