본문 바로가기
[Effective Java] 추상 클래스보다는 인터페이스를 사용하자. [Effective Java] 추상 클래스보다는 인터페이스를 사용하자. - 인터페이스(interface)와 추상클래스(abstract class)는 비슷하지만 다르다. 추상 클래스는 구현된 메소드를 포함할 수 있는 반면 인터페이스는 그렇지 못하다. 추상 클래스로 정의된 타입을 구현하는 클래스는 반드시 추상 클래스의 서브 클래스가 되어야 한다. 인터페이스를 구현하는 클래스의 경우 인터페이스에 정의된 모든 메소드를 구현하기만 하면 된다. 자바는 단일 상속만을 허용하므로 추상 클래스로 타입을 정의할 때 심한 제약이 따른다. - 인터페이스는 추상 클래스에 비해 변경과 적용이 쉽다. - 인터페이스는 믹스인(mixin)을 정의하는 데 이상적이다. 믹스인은 클래스가 자신의 본래 타입에 추가하여 구현할 수 있는 타입으.. 2016. 11. 7.
[Effective Java] 클래스와 그 멤버의 접근성을 최소화하자. [Effective Java] 클래스와 그 멤버의 접근성을 최소화하자. - 잘 설계된 모듈과 그렇지 않은 것을 구분 짓는 가장 중요한 잣대는, 모듈 자신의 내부 데이터 및 그 외의 상세한 구현 부분을 다른 모듈로부터 어느 정도로 숨기느냐에 달려 있다. - 모듈은 자신의 API 를 통해서만 다른 모듈과 상호작용한다. 정보 은닉(information hiding) 또는 캡슐화(encapsulation)이 그것이다. - 정보 은닉은 시스템을 구성하는 모듈들 간의 결합도를 낮추어(decoupling) 모듈 별로 개발, 테스트, 최적화, 사용 및 수정이 가능하도록 한다. 또한 이렇게 하면 병행 개발 ( parallel development ) 를 할 수 있어 시스템 개발이 빨라진다. 모듈을 더 빨리 파악할 수 있.. 2016. 10. 17.
이모네 이모네 주말이면 & 어머니께서 이모네 집에 올라오시면 힐링겸 자주 찾게 되는 우리 화가 작은 이모네. 이번에도 방문했드랬죠. 제가 야채 좋아한다며 월남쌈을 준비해놓으셨습니다. 본래 택시같은건 사치라고 생각하고 절대 타지 않는 성격인데 (대체 대중교통이 있다면), 작은 이모부가 택시타고 오라고 말씀하시는 바람에 거금 6,500원정도를 투자해 오산역에서부터 택시를 타고 이동했습니다. 사실 저의 베스트 메뉴는 청국장이 아닌데, 메뉴가 생각이 안 나서 청국장을 열심히 말하는 것이기도 한데, 어머니는 제가 가장 좋아하는 집밥을 청국장으로 알고 계셔서 이모네 가면 항상 국은 청국장입니다. 아 물론 제가 청국장을 좋아하긴 합니다만, 맨날 먹을정도는 아니죠 ㅋㅋ 저렇게 한상 차리고, 고기는 대패삼겹살을 구워서 먹었습니.. 2016. 9. 25.
메르스와 함께한 롯데월드~ 메르스가 한창 창궐하고 이제는 조금 잦아들 때쯤.. 회사에서 조금 일찍 나갈 수 있는 기회가 있어 김스타와 만나 놀기로 했다. 이전에 김스타가 놀이동산 좋아한다고 했던 말이 기억나서 롯데월드 티켓을 구매하여 간다. 메르스 때문에 + 평일이기 때문에 기다리지 않고 엄청 많이 탈 수 있을 거란 기대감에.. 우리가 구매한 것은 4시부터 이용가능한 반나절 티켓같은 것이었는데, 가격은 소셜을 이용해서 약 15,000원 / 인 으로 구매한 것으로 기억한다. 아쉽게도 우리는 약 6시쯤 도착한 것 같다. 확실히 평소에 비하면 롯데월드는 꽤나 한산했다. 이렇게 사람이 없는 롯데월드는 처음 와 본 것 같다. 메르스가 무섭긴 무섭나보다. 내가 가장 좋아하는 회전목마도 ( Merry go round~ ) 한장 찍어주고!! 우.. 2015. 6. 26.
[Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. - static 팩토리 메소드와 생성자는 공통적 제약이 있다. 선택가능한 매개변수가 많아질 경우 신축성 있게 처리하지 못한다. - 텔레스코핑 생성자(telescoping constructor) 패턴이 대안이 될 수 있으나, 마찬가지로 매개변수 수가 증가하면 무척 번거로워 진다. 가독성도 떨어지고, 유지보수도 어려워진다. ( 갯수를 세고 의미를 파악하는데만도 한세월~ ) - 자바빈즈(Java Beans) 패턴이 두번째 대안이 될 수 있으나, 이 패턴은 심각한 단점을 가지고 있다. 여러 번의 메소드 호출로 나누어져 인스턴스가 완성되기 때문에 객체가 일관된 상태를 유지하지 못할 수 있다. ( multi thread 환경 ) 또한 자바빈즈는 불변 .. 2015. 2. 8.
[Spring] Spring Framework 의 개요 #1 Spring Framework 개요 #1 스프링이란? Spring = Spring Container + 공통 프로그래밍 모델 + 기술 API SpringContainerApplication Context 라고도 불리는 스프링 런타임 엔진 공통프로그래밍 모델설계 원칙 및 design pattern. IoC / DI오브젝트 생명주기 및 의존관계를 관리서비스 추상화Tech IndependentAOP모듈화 스프링의 성공 원인 1. 단순함 ( Simplicity )EJB의 복잡성을 비판하며 등장.객체지향 개발모델.POJO를 강력 추천 2. 유연성 ( Flexibility )다른 framework와 결합하기 쉽다.항상 framework 기반의 접근과 spring을 확장해서 사용하는 것을 추천한다. 스프링의 효과적 .. 2013. 6. 23.
집에서 근육을 키우자! 원리, 운동방법, 음식. 손가락 꾸욱~♥ 응원해주세요!! * 근육의 성장 및 증가의 원리 * 다양한 중량을 이용하여 근육에 자극을 주게 되면 근육통이 생긴다. 소위 알배긴다고 표현하는데, 이는 근력운동이 제대로 되었다는 의미이다. 근육통은 웨이트 트레이닝으로 인해 근육세포가 찢어지기 때문인데, 찢어진 근육세포는 단백질 구성으로 다시 조직이 된다. 즉 근력운동으로 근육세포를 찢고, 찢어진 부위를 단백질로 메꾸어 근육이 성장하게 되는 것. 단백질은 보충제, 닭가슴살 같은 육류, 생선류, 계란 등이 있다. 참고로 두부를 비롯한 식물 단백질의 경우 불완전 아미노산 형태이기 때문에 근육성장에 큰 도움을 주지 못한다. 반대로 동물성 단백질은 근육이 필요로 하는 필수 아미노산이 들어있어 근육 성장에 좋다. 체력 기르기는 근력, 근지구력, 심.. 2013. 2. 13.
반응형