ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20220901 TIL 객지프 객지프 신나는노래~
    TIL 2022. 9. 1. 13:45

    이번 주는 객체지향프로그래밍을 본격적으로 배우고 있다.

    스윙이라는 자바를 이용해서 GUI를 만들 수 있는 도구도 배워서 UI와 비즈니스 로직의 분리를 열심히 해보고 있다.

    이번 주에 처음 스윙을 접했을 때는 css를 처음 배웠을 때처럼 레이아웃이 내 맘같지 않아서 시간을 많이 썼다.

    그리고 이제는 스윙에 어느정도 익숙해져서 객체지향프로그래밍을 열심히 이해해보고 적용해보려고 노력 중이다.

    옛날에 테트리스를 객체지향적으로 파이썬과 자바스크립트로 각각 짠 적이 있었기 때문에 객체지향이 별 것 아닐 거라 생각했지만

    웬 걸 내가 했던 건 객체지향이 아니었다.

    http://wgforum.kr/kancolle_freeboard/1884943

    객체들을 이용해서 프로그램을 만들었었으나, 일단 파일 분리가 안되어서 한 개의 파일에 거의 500줄이 넘는 코드가 들어 있었고,

    지금 보니 객체지향적으로 짰다고 말하기 부끄러울 수준이다.

    절차 지향도 아니고.. 그냥 내맘대로 코딩한 것이었다.

    그래서 결국 나는 지금 객체 지향을 처음 배우고 있는 것이나 다름이 없다.

    갓 태어난 사슴이 걷는 수준으로 도메인 모델을 짜고 있다.

    객체지향의 사실과 오해를 읽고 이 때까지 이해한 바로는, 뭔가 시키고 싶은 걸 찾고, 그 시키고 싶은 일을 할 객체를 찾아서 시키고 그 것들을 협력하는 방식으로 코드를 짜면 된다.

    이 말이 무슨 말인지 이해하기가 힘들 것이다.

    하지만 이것보다 쉬운 설명이 없으니 저자도 이렇게 설명을 하는 것일 것이다.

    내가 어저께 잘못했던 게 있었다. 뭔가 시키고 싶은 걸 찾았는데, 이미 내가 가지고 있는 객체 중에 시킬 객체가 없어서 난감했다.

    그래서 홀맨님께 여쭤봤고, 객체를 하나 만들면 된다는 해답을 얻었다.

    나는 왜 그 생각을 못했을까.

    시키고 싶은 일을 생각하고, 그 일을 할 객체가 내가 가지고 있는 객체 중에 없다면 새로운 객체를 만들면 된다.

    뭔가 잘 모르겠고 안되면 내가 빼먹은 게 없나 확인을 하자.

     

    그리고 변형된 게터(복사본을 받아오기)를 쓸 때는 'get'을 메소드 이름에 쓰지 말자.

    댓글

Designed by Tistory.