일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 구글 비공개 테스트 20명
- git
- 객체지향
- 커밋 메시지
- 운영체제 #CS지식
- 클린코드
- 플레이스토어 비공개 테스트
- 우테코
- 기능명세서
- 프리코스
- 객체지향설계
- 플레이 스토어 20명
- 구글 플레이 스토어 배포 방법
- 구글 플레이 비공개 테스트
- 설계
목록전체 글 (48)
GYUD-TECH

오브젝트 스터디의 마지막 장이다. 마지막 장의 핵심은 설계와 코드와의 관계라고 정리할 수 있다. 설계가 코드를 반영하고, 코드가 설계를 반영해야한다. 동적인 협력, 정적인 코드 모든 프로그램은 텍스트로 작성된 코드로 동작한다. 그래서 개발자는 정적인 텍스트를 활용해서 동적인 객체들의 협력을 구현해야한다. 정적인 텍스트로 짜여진 코드를 동적인 객체들의 협력으로 바꾸기 위해서는 동적 모델을 기반으로 정적 모델(코드)를 작성해야한다. 보통 일반적으로 객체지향 프로그래밍을 설계할때 도메인 모델을 기반으로 설계를 시작한다. 도메인 모델을 바탕으로 설계를 하는 과정을 보면서 어떻게 프로그램을 동적으로 만드는지 알아보자. Monster가 공격하는 게임을 만든다고 가정하자. 현재까지 확정된 Monster의 종류에는 D..

앞서 서브클래싱과 서브타이핑에 대해 공부하면서 타입에 대해서 공부했다. 앞에서는 타입계층을 구현하는 방식으로 상속을 소개하고, 상속의 목적은 코드의 중복제거가 아닌 타입계층의 구현이 되어야 한다고 강조했다. 이번 장에서는 상속을 포함한 타입 계층을 구현하기 위한 다양한 방법들을 알아본다. 다양한 방법을 공부하면서 결국 타입은 객체의 행동에 의해서 결정된다는 것을 느낄 수 있었다. 타입계층의 구현 클래스를 이용한 타입계층 구현 타입은 객체가 반응할 수 있는 오퍼레이션의 집합인 인터페이스만을 정의하는 것이다. 따라서 타입이 같더라도 구현은 다를 수 있다. 하지만 클래스를 이용하면 구현을 하는 것이기 때문에 타입 뿐만 아니라 세부 구현까지 구현하는 것이다. 객체지향은 객체들의 협력을 중요시하는 패러다임이다. ..

메시지의 의도가 잘 드러나게 하기 위해서 메시지 명을 짓고, 인터페이스를 다듬고, 명령과 쿼리를 분리하였다. 하지만 이렇게 하더라도 시그니처만으로 부수효과를 명확하게 드러내는 것에는 한계가 존재한다. 이번 장에서는 부수 효과를 명확하게 표현하는 계약에 의한 설계에 대해서 공부한다. 자바에서 계약 조건을 명시하는 기능을 제공하지는 않지만, 이 개념을 이해하고 조건을 명시할 때 고려해야할 점에 초점을 맞추어서 이번 장을 공부하면, 객체지향에 대한 이해가 더욱 높아질 것이다. 계약에 의한 설계 일상생활에서의 계약 일상 생활에서 계약을 하는 상황을 떠올려보자. 인턴 계약을 한다고 하면 인턴 입장에서는 돈을 지급 받으면서, 그에 대한 대가로 회사에게 일을 해준다. 반대로, 회사는 일을 진행 하면서 그에 대한 대가..

객체지향을 공부하면서 디자인패턴에 대해서 정말 많이 들었다. 디자인 패턴을 공부하면서 왜 패턴이 필요한지 잘 이해가 안 되었는데, 오브젝트 책을 읽으며 객체지향을 공부하니 디자인 패턴이 왜 필요하고, 패턴을 사용하면 조금 더 쉽게 좋은 설계를 할 수 있겠다는 생각을 하였다. 이번 장에서는 책에서 지금까지 사용했던 설계들을 디자인 패턴으로 소개해준다. 이 외에도 다양한 디자인 패턴이 있기 때문에 앞으로 객체지향을 공부하며 디자인 패턴도 계속 공부할 계획이다. 패턴 패턴이란 한 컨텍스트에서 유용한 규칙이나 형식을 다른 컨텍스트에서도 유용하게 적용되는 것을 뜻한다. 최소 세가지의 다른 시스템에 특별한 문제 없이 적용되며, 유용한 경우에만 패턴으로 인정될 수 있다. 패턴의 분류 소프트웨어에서의 패턴은 적용 범위..

객체지향의 가장 중요한 특징은 다형성이라고 생각한다. 상속, 합성 등 다형성을 구현하기 위한 방법에는 다양한 것들이 있다. 이번 장에서는 상속에서 다형성이 어떻게 동작하는지에 대해 공부한다. 기존에 당연하게 사용했던 개념을 깊이 공부하고, 스스로를 반성을 하는 계기도 되었던 챕터이다. 다형성 다형성은 하나의 추상 인터페이스에 대한 코드를 작성하고, 추상 인터페이스에 대해 서로 다른 구현을 연결할 수 있는 능력이다. 추상화에 의존하기 때문에 런타임에 동적으로 구현을 바꿀 수 있어 변경에 대처하기 쉽다는게 가장 큰 특징이다. 이러한 다형성은 4가지 종류로 분류할 수 있다. 오버로딩 다형성 하나의 클래스 안에 이름은 같고, 시그니처는 다른 메서드가 존재하는 것을 메서드 오버로딩이라고 한다. public cla..

이번 장에서는 컴퓨터를 구성하는 다양한 장치들에 대해 공부한다. 컴퓨터 구조 수업에서 들었던 내용이 꽤 많이 있었기 때문에 익숙한 내용이 많았다. 책에서 소개된 내용 중에서 생소하거나 중요하다고 생각되는 내용만 기록하여 정리하였다. 전체 내용을 공부하고 싶으면 글 하단 참고자료에 있는 책을 읽거나, 강의를 들으면 좋을 것 같다. 컴퓨터 시스템의 구조 컴퓨터 시스템은 아래와 같이 내부장치인 CPU, 메모리와 외부장치인 디스크, 키보드, 마우스, 모니터, 네트워크 장치 등으로 구성된다. 컴퓨터는 이렇게 다양한 장치들이 결합하여 외부 장치로부터 데이터를 읽어서 어떤 계산을 하여 외부장치로 결과를 출력하는 연산을 수행하는 기계이다. Device Controller 외부장치에 접근하기 위해서 각 외부장치마다 컨트..