분류 전체보기
-
[객체지향의 사실과 오해] 04장: 역할, 책임, 협력객체지향 2020. 5. 6. 09:54
엘리스의 이야기로 시작한다. 재판과정을 다루면서 각각의 역할, 책임, 협력에 대해 다루고 있다. 챕터의 앞부분을 읽으면서 들었던 생각은, '책임이라는 단어를 굳이 분리해놓은 이유는 무엇일까?' 이다. 객체에 어떤 역할을 부여한다면 그 자체로서 그에 대한 책임이 존재하는 것은 아닐까. 왜 굳이 책임이라는 단어로 같은 이야기를 반복하고 있을까 라는 생각을 했다. 챕터의 중반부를 지나면서, 그 오해가 어느정도는 풀렸다. 책임과 역할은 필요충분조건이 아닌 것으로 보고 있었다. 하나의 역할이 여러개의 책임을 가질 수 있고, 하나의 책임이 여러 개의 역할이 가지고 있을 수 있는 관계로 보았다. 또한, 어떤 책임을 가지고 있는지도 중요하지만 무엇보다 중요한 것은 객체의 행동에 초점을 맞추어야 하는 것으로 방향을 다르..
-
<Spring JPA> 1.17 일대다JPA 2020. 5. 6. 09:41
처음부터 이러한 매핑은 사용하면 안된다로 시작한다. 어색함의 연속이다. 매핑을 하는 과정에서부터, 일대다를 양방향매핑하는 과정도 어색하다. 심지어 양방향 매핑에서는 읽기전용 다에서 일로 가는 매핑은 아예 존재하지 않는 기능을 insert, update 를 불가하게 함으로 억지로 만들어 내었다. 궁금한 점은 한 가지이다. 이럴거면 왜 만들어놨을까? 테이블의 구조, 매핑의 편리함, 그 어떤 것을 따져보아도 일대다 매핑은 부자연스럽다. 그렇다면 왜 만든 것일까? 관련 문서를 찾아봐야 할 것 같다. 내 머리로는 이해가 되진 않는다. 그리고, 왜 만든 지 이해가 안되 추가적인 내용은 언급하지 않아도 될 것 같다. 방법은 같고, 불편하다.
-
[객체지향의 사실과 오해] 03장: 타입과 추상화객체지향 2020. 5. 3. 15:38
이번 챕터는 연휴의 시작과 함께 읽기 시작하여, 물리적인 날짜는 굉장히 길었던 챕터이다. 타입과 추상화는 제목하고 순서가 다르게 추상화부터 시작한다. 지하철 노선도의 추상화를 통해서 추상화라는 것에 대한 개념을 설명한다. 우리가 쓰고 있는 지하철 노선도는 실제 지형과 위치와는 다르다. 대신 우리가 편하게 환승할 수 있게 도식화하여 볼 수 있게 간편하게 표현하고 있다. 객체지향이라는 세계에서, 현실세계를 모방한 새로운 세계를 창조하는데 필요한 것은 추상화이다. 객체라는 것은 역할을 가지고 서로 협력하고, 상태와 행동, 식별자를 가지고 있다. 하지만 인간 세상의 모든 물건이나 개념을 상태와 행동, 식별자로 정의하는 것은 쉽지 않다. 사용자의 입맛에 맞게 추상화 과정을 통해 간소화하는 과정을 거쳐야만 한다. ..
-
[객체지향의 사실과 오해] 02장: 이상한 나라의 객체 <하>객체지향 2020. 4. 29. 10:13
오늘 읽은 내용은 결국 객체와 실세계는 같지 않다는 내용이었다. 비슷하다고 말하는 것도 살짝 부족하고, 책에서는 은유라는 표현을 쓴다. 은유... 라는 건 고등학교 국어시간에 배운 것 같지만 의미는 이해할 수 있을 것 같다. 객체라는 것은 식별자를 이용해 그것을 구별한다. 이것이 값이라는 value object와의 차이점이다. 오? 벨류 오브젝트도 오브젝트인데? 라고 할 수 있기에 책에서는 진정한 객체는 entity 라고 표현하고 벨류오브젝트는 값을 저장하는 정도의 것으로 구분한다. 또한 실세계와 다른 점은 객체가 스스로 움직일 수 있다는 것이다. 객체와의 메세지를 통해 스스로 움직인다. 그리고 그 움직임은 외부에서는 알 수 없다. 이것을 카세트 기계와 같은 기계로 묘사하였다. 이 기계들은 식별자라는 구..
-
<Spring JPA> 1.16 다대일JPA 2020. 4. 29. 09:38
다대일.... 앞이랑 중복되는 부분이 굉장히 많다. 아마 처음 시작하는 사람들을 위해서 복잡한 부분이라고 생각되어서 여러번 반복해주시는 것 같다. 덕분에 복습을 잘했다. 다대일. 예제로 회원과 팀으로 볼 수 있다. 단방향, 양방향 두가지로 나누어 다루었지만, 사실상 하나의 관계이다. 하나의 관계이고, 이를 객체간의 참조를 양방향에서 할 수 있다. 정도를 다루고 있다. 중요한 건 어느 곳을 연관관계의 주인으로 볼 것인가를 결정한다고 볼 수 있다. 다대다 연관관계는 명시적으로 존재하나, 이러한 연관관계를 설계하면 안된다라는 말씀도 하셨는데 구체적인건 다대다 수업 때 명시하실 듯 하다.
-
[객체지향의 사실과 오해] 02장: 이상한 나라의 객체 <상>객체지향 2020. 4. 28. 09:59
오늘은 객체 지향에 대해서 한걸음 더 나아간 느낌이었다. 어제 읽은 건 객체지향이란 객체라는 하나의 단위를 만들어 그 단위에 역할과 책임 을 부여하여 객체들간의 상호관계를 맺어 새로운 관점의 세계를 만든다는 내용이었다. 오늘은 이상한 나라의 엘리스를 보며, 객체 세계를 표현한다. 동화 속의 엘리스가 작은 문을 통과하기 위해 몸을 줄였다 늘렸다 하는 내용을 보며 객체라는 것을 표현하려 했다. 느낀 점은 객체라는건 실세계를 모방하고 있지만 전혀 다르다는 것이다. 전혀 라는 표현을 썼지만 전혀 다르진 않다. 뭔 소리인가 싶지만, 정말 비슷하지만, 차이점만 보면 정말 다르다. 객체라는 단위는 사물, 또는 어떠한 논리적 개념 덩어리 정도로 볼 수 있다. 하지만 실세계의 사물과 개념이 전부 객체가 될 순 없다. 객..
-
[객체지향의 사실과 오해] 01장: 협력하는 객체들의 공동체객체지향 2020. 4. 27. 11:54
객체지향의 사실과 오해라는 책을 시작했다. 이 책을 읽게 된 계기는 7년정도 자바를 다루는 일을 해오면서 신입 땐 객체라는 것이 무엇인지 잘 모른다고 생각하고, 오히려 4-5년차일 때는 객체지향을 설명할 수 있다고 여기다가, 요즘 들어서 내가 객체 지향을 제대로 이해하고 있는 것이 맞는 것인가? 라는 고민에 빠졌기 때문이다. 또한 JPA 공부를 해가면서 데이터베이스의 객체화 라는 말을 많이 쓰고 듣고 있는데, 과연 객체도 정확하게 이해하지 못한 내가 데이터베이스를 객체화 하는 것을 공부하는 것이 순서에 맞는가 라는 생각이 들어서이다. 일단 책을 회사 책방에서 빌려서 펼쳤다. 처음은 객체지향을 단순하게 정의한다. 그리고 그 정의가 충분하지 않았음을 말한다. 단순하게 정의하는 방법은 다음과 같다. 객체라는 ..
-
<Spring JPA> 1.15 양방향 연관관계와 연관관계의 주인 - 주의점JPA 2020. 4. 27. 09:46
주의할 점은 한가지이다. 주인이 아닌 곳에서의 수정은 반영되지 않는다. 이전에 양방향 연관관계에서 언급한 것처럼, mapped by 는 단방향 연관관계의 참조를 걸어놓은 것뿐이지 연관관계를 추가한 것이 아니다. 주인이 아닌 곳에서 수정을 했다고 해서 연관관계가 추가되어 주인쪽의 데이터까지 함께 수정되는 것을 기대하면 된다. 또한, 이를 예방하기 위해서는 수정 시에 양쪽 다 수정해주는 방법을 권장하고, 이도 문제가 생길 경우를 대비해 수정메소드에 양쪽을 전부 수정하는 방식으로 구현하는 것을 권하고 있다.