본문 바로가기

전체 글129

빙수 집 앞에 눈꽃빙수 파는 곳이 생겼다 +______+아이스크림은 나뚜루인 듯맛있고, 비싸고.. 비싸고... 맛있음 ㅎㅎ 2014. 8. 8.
객체지향 / 절차지향 / 정보은닉 / 캡슐화 / 모듈화 절차지향 : C언어 - 데이터와, 그들을 조작하는 절차가 구분됨. - 데이터를 중심으로, 각 함수들이 데이터를 조작하고 사용함 - 하나의 데이터 type에 변화가 생기면? 많은 함수를 수정해야 할 것임 객체지향 : C++, Java 등등 - 객체 : 명백한 한계와 의미를 가지는 사물/개념을 추상화 한 것. 애트리뷰트+메소드 - 객체(데이터, 기능을 모두 포함)들이 서로 메시지를 주고 받으며 협업함 - 하나의 데이터 type에 변화가 생기면? 해당 객체만 수정하면 될 것임, 다른 객체들에는 영향이 가지 않음 - 추상화, 캡슐화, 모듈화, 재사용성, 계층성, 상속성, 다형성(같은 메시지에 대해 다르게 반응하는 것) 정보은닉 / 캡슐화 - 객체간에 데이터를 주고받기 보다는, 기능을 실행해달라고 요청함 - 외부.. 2014. 8. 7.
그동안의 일상 결혼식 갔던 어느 날 잠실 폴바셋은 아이스크림을 안팔아서 ㅠ.ㅠ아이스크림 먹고자 멀리멀리까지 갔던......ㅋㅋㅋ 어느 날 왠지 기분이 죠아서 머리를 땋고 나간 어느 날좀 민망한 TOPSHOP 민소매원피스.. 이거 사놓고 3년? 4년? 만에 처음 입고 나감 ㅋㅋㅋㅋㅋㅋ헤헷 끝 2014. 7. 28.
Factory Method 패턴 Factory Method 패턴 템플릿메소드패턴을 인스턴스 생성에 적용한 전형적인 예. 팩토리(인스턴스를 생성하는 공장)를 템플릿메소드 패턴으로 구성한 것이 팩토리메소드 패턴이다. - 인스턴스를 만드는 방법을 상위클래스측에서 결정, 구체적인 이름까지는 결정하지 않음. - 구체적인 내용은 하위클래스측에서 구현함으로써 인스턴스 생성을 위한 골격과 실제 인스턴스 생성에 사용되는 클래스를 분리함. 구현 예시 package framework; public abstract class Product { public abstract void use(); } product(인스턴스)가 가져야 할 인터페이스(API)를 추상메소드 선언으로 규정하고, 구현은 하위클래스에게 위임함. package framework; publi.. 2014. 7. 7.
Template Method 패턴 Template Method 패턴 상위 클래스의 템플릿 메소드에서 처리의 흐름을 결정하고, 하위 클래스에서 그 구체적인 처리 방법을 결정하는 디자인패턴. 구현 예시 public abstract class AbstractDisplay { // 상위 클래스 public abstract void open(); // 하위 클래스에 구현을 맡기는 추상 메소드 (1) open public abstract void print(); // 하위 클래스에 구현을 맡기는 추상 메소드 (2) print public abstract void close(); // 하위 클래스에 구현을 맡기는 추상 메소드 (3) close public final void display() { // 템플릿 메소드 open(); for (int i .. 2014. 7. 7.
Adapter 패턴 (Wrapper 패턴) Adapter 패턴 (=Wrapper 패턴) 이미 제공되어 있는 것을 그대로 사용할 수 없을 때, '제공되어 있는 것'과 '필요한 것' 사이의 '차이'를 없애주는 디자인패턴. 기존에 있는 클래스(Adaptee)를 이용하여, 필요한 기능을 제공해주는 Adaptor 클래스를 만든다. 구현 예시 1. 클래스에 의한 Adapter 패턴 - class Adapter extends Adaptee implements Target 1) 새롭게 필요한 기능을 정의한 interface Target 을 만든다. 2) Target 인터페이스를 implements한 Adaptor 클래스를 만든다. 3) Adaptor 클래스는 기존에 제공되어 있는 Adaptee 클래스를 extends 한다. 4) Adaptor 클래스에 Targ.. 2014. 7. 7.
Iterator 패턴 Iterator 패턴 무엇인가 많이 모여있는 집합체의 요소들을 통일된 방법으로, 순서대로 접근하는 방법. 구현 예시 1. 집합체를 나타내는 인터페이스인 Aggregate를 생성하고, Iterator를 만들어서 반환해주는 메소드인 iterator()를 정의함 public interface Aggregate { public abstract Iterator iterator(); } 2. Aggregate 인터페이스를 구현한 콘크리트 클래스를 작성하고 iterator()를 오버라이드 함. public class BookShelf implements Aggregate { private Book[] books; private int last = 0; public BookShelf(int maxsize) { this.. 2014. 7. 7.
정준일 with 오케스트라 콘서트 으아ㅠㅠ 진짜 좋았다처음에 정준일 등장할 때 감정이 고조되어... 나 혼자 눈물흘림..ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ하.. 내가 이정도로 감성적인 사람이었나 깜짝 놀람 ㅎㅎ... 올해안에는 콘서트 또 없다고 했는데 ㅠ_ㅠ 메이트콘서트했으면 좋겠당..ㅎㅎ 2014. 6. 30.
정준일 with 오케스트라 콘서트 정준일 with 오케스트라 콘서트 이화여자대학교 삼성홀,요고 예매해놓고 6월 말이 되기만을 기다리고 있다! 태어나서 처음 가는 콘서트이다 그것도 나 혼자서 ㅎㅎㅎ 작년 겨울 소극장 콘서트에 못간게 한이 되서이번 콘서트 소식 들었을 때 반드시 가겠다고 다짐했당 : ) 원래 첫공/막공은 좋은 자리를 못구해서 다른날로 2회 예매했었는데,운좋게 막공 C열을 양도받았다 +___________________+ 약간 측면이긴 하지만...ㅎㅎㅎ그래서 첫째주 일요일하구 둘째주 일요일 이렇게 가려고 한다설레여~~~~ 빨리 가고 싶다! 2014. 6. 9.
정준일 - 안아줘 Live 목소리 진짜 잘 들리는 영상 2014. 6. 8.
수내동 남해소반 수내동 남해소반튀김같은 스끼다시는 없고 한정식처럼 해초무침, 나물반찬이 쫙 나오는데 전부 다 맛있땅 > 2014. 5. 23.
2014년 4월 27일의 일상 요즘엔 3주 x 8시간짜리 주말 교육을 듣고있다ㅠㅠ어쩔 수 없는 선택이었다교육의 퀄리티는 그닥이지만 그래두 뭐 공짜로 듣는거니.. 2014. 4. 28.
2014년 4월 26일의 일상 1 진짜 오랜만에 티스토리를 들어왔다 이전에 썼던 글들을 읽어보니 바쁜 와중에 일기를 남겨놓기를 참 잘한 것 같다. 예전 생각도 나고 재밌넹 ㅎㅎ :) 그래서 다시 일기를 쓰기로 마음먹었다..........! 이 다짐이 며칠이나 갈지 ㅋㅋㅋ 그리고 얼마나 자주 쓸지는 몰라두 가끔씩이라도 써야겠다. 2 난 무사히 취업을 하고, 직장인이 되었다. 운 좋게도 가고 싶었던 회사들 중 몇 군데에 합격하여, 평온한 겨울을 보냈다 :) 비록 요즘은 야근에 찌들어 살지만... 3 내일 일찍 일어나야 하는데 잠이 안온다 ^.ㅠ 2014. 4. 27.
쓰레드의 배타제어 (mutual exclusion) / 동기화 (synchronized) 쓰레드의 배타 제어 (mutual exclusion)음.. 이건 여기에 그렇게 간단하게 정리할 만한 단순한 개념은 아닌 것 같지만 ....ㅋㅋ concurrent 하게 수행되는 여러개의 쓰레드가 같은 변수/인스턴스에 접근하는 경우를 "경쟁(race)"이라고 한다. 이러한 경쟁으로 인하여 예기치 않게 발생하는 상황을 date race, 혹은 race condition 이라고 한다. race condition을 방지하기 위해서는, 일종의 교통 정리가 필요하다. - 대표적인 교통 정리의 방법으로 상호 배타(mutual exclusion)가 있음. 하나의 쓰레드가 어느 부분을 실행하고 있을 때에는 다른 쓰레드가 그 부분을 실행할 수 없게 만드는 방법. 자바에서는 쓰레드의 mutual exclusion을 실행할 .. 2014. 4. 17.
Java 이름 재사용 - 오버라이딩 / 하이딩 / 섀도윙 / 모호화 오버라이딩 (overriding) 자식 클래스에 있는 인스턴스 메서드가 부모 클래스의 접근 가능한 메서드와 동일한 이름과 매개변수를 가지는 것. 오버라이딩 되면 동적 바인딩이 가능해짐. 따라서 JVM은 실행중에 인스턴스의 자료형에 기반하여 호출알 메서드를 결정함. 하이딩 (hiding) class Parent { public static void f() { } } class Child extends Parent { public static void f() { } // Parent.f()를 하이딩함 } 부모클래스의 필드, static 메서드, 클래스, 인터페이스와 동일한 이름으로 자식 클래스에도 요소를 생성하면, 자식에서 만든 요소가 부모에 있는 요소를 하이딩한다. 이처럼 하이딩을 사용하면 부모 클래스의 .. 2014. 4. 5.