정상에서 IT를 외치다

[두두] Do what you want you Do 본문

컨퍼런스

[두두] Do what you want you Do

Black-Jin 2019. 6. 1. 21:59
반응형

안녕하세요. 블랙진입니다.


이번에 두두라는 10시간동안 하는 해커톤에 다녀왔습니다. 

해커톤이라고 하지만 개발자와 디자이너가 해야지 해야지 하면서 미뤄두었던 프로젝트를 하면 됩니다.



출처 - We Are DODO






장소는 서울숲역 근처에 있는 카우앤독에서 진행되었습니다. 




완전 코딩 하기 기분 좋은 분위기 입니다. 

8시에 도착했지만 9시부터 키노트를 시작한다고 해서 

자리를 잡고 불코(붙타는 코딩) 할 준비를 했습니다.




2층은 회의 할 수 있는 공간으로 되어 있었어요. 

물론 이용하기 위해서는 돈을 지불해야 됩니다 :)




카페는 9시면 문을 닫는다고 해서 키노트 시작전 밤을 새기 위한 

아이스아메리카노 한 잔 주문했습니다. 


그리고 저녁을 안드신 분을 위한 참치 김밥과 음료수를 두두에서 제공해 줬습니다.

키노트 시작전 열심히 먹고 코딩할 준비를 단단히 했습니다.




9시가 되자 2층 회의실에서 키노트를 진행했습니다. 두두가 12회를 맞이하며 1살이 될 때 제가 신청을 했네요:)

12시에 1살 기념 파티를 한다고 했습니다~!


두두에 대한 설명을 듣고 각자 자기소개와 무엇을 할지 간단히 발표했습니다.

스터디 발표자료 준비에서 부터 사이드 프로젝트 제작, 포트폴리오 작성, 

서버 이전 작업, 브랜드 기획, 독서 등 각자 해야 될 것들에 대해 발표했습니다.




키노트가 끝나고 12시 까지 개인 프로젝트를 진행했습니다. 

2층에서 1층의 전체 모습을 찍은 사진입니다. 뭔가 개발 개발 하고 두근 두근한 모습!! 

그리고 반대편에 또한 소파와 4인 테이블이 많이 구비되어 있습니다. 

(소파에서 잠시 눈 붙이시는 분도 계셨습니다.)




12시 간식시간이 되서 모두 2층으로 다시 모였습니다.

행사 시작전 이름표를 나눠 졌는데 같은 색의 이름표를 가진 사람이 같은 조가 되어 치킨과 피자를 먹었습니다.

그리고 1주년 기념 케익을 같이 먹었습니다.



결과 공유



오전 5시 ~ 6시 까지는 결과 공유 시간을 가졌습니다.

같은 색상의 이름표를 가진 팀들끼리 먼저 프로젝트를 공유하고 이야기를 나눴습니다. 

그리고 5시 40분 쯤 팀들 중 1~2명은 위와 같이 전체 사람들와 프로젝트를 공유했습니다.




10시간 해커톤 필자는 무엇을 했는가?


저는 이번 해커톤 동안 드로이드 나이츠의 TDD, Clean Architecture 관련된 유튜브 영상을 정리하고 Testable Architecture에 대해  고민하고 이를 적용한 토이 프로젝트를 제작했습니다. 


토이프로젝트 MyTodoList


드로이드 나이츠 내용 정리


<Advanced MVP>


View


유저의 인풋을 전달 할려는 1가지 역활만을 함으로서 passive 하게 작성

- 로직 분리

- pressenter 구조를 몰라야 한다.

- Interface 뒤에 숨기지 말자


Presenter


- UI 로직

- View와 Interact

- Model과 Interact


Model


Presenter에 있던 비즈니스,도메인 로직을 위임 받는다.


Repository


데이터를 가져오거나 수정하는 Repository


UseCase


Repository의 결과를 가공해 비즈니스 로직을 구현하는 UseCase



<Clean Architecture of Uncle Bob>


Entities


메소드를 가지고 있는 오프젝트이며 데이터 구조와 함수의 집합이어야 합니다. 

많은 앱에 사용되어 지는데 문제 없어야 합니다. 엔티티는 다른 어떠한 행동에 영향을 받지 않아야 합니다. 즉 아무하고도 의존하지 않는 레이어 입니다.


UseCases


앱의 특정 비즈니스 로직을 가지고 있는 레이어입니다. 데이터의 흐름과 엔티티로부터 화합을 이룹니다.  이 레이어가 외부(데이터 베이스, UI, 프레임 워크와 같은)에 의해서 변화되어지길 바라지 않습니다. 이 레이어는 이러한 개념으로 부터 고립되어 있습니다.


Architecture is about Intent, not framework - Uncle Bob


소프트웨어의 어키텍쳐는 UseCase를 중심으로 구성되어야 합니다. UseCase 에서는 어떤 input과 output에 대한 정보가 없고 프레임워크도 플랫폼도 데이터베이스도 없습니다. 오직 의도만을 가지고 있어야 합니다.


UseCase


소프트웨어가 수행해야할 핵심적인 기능을 정의하고 이를 구현한 것

- UseCase의 구현은 주로 Entity 라는 개념을 통해서 이뤄진다.


Entity


DDD의 개념이 아닌 Business Rule을 구현한 Business Object를 말합니다.

- Anroid의 경우에는 서버나 내부 DB로 부터 데이터를 받고 최종적으로는 UI로 보여줍니다.


UserCase가 Entities를 이용하고 Entities가 Business Rule을 표현하는 거라면 이 Business Rule을 표현하기 위해서는 외부 세계와 많은 접촉을 해야합니다. 결국 우리가 원하는 UseCase가 외부 세계와 의존하게 됩니다. 이에 Clean Architecture은 외부 세계와 접촉해야하는 문제에 대해 interface adapter을 제안한 것입니다. 즉 Clean Architecture는 UserCase를 중심으로 외부세계와 분리하는것이 중요합니다.


The Dependency Rule


- 우리는 안쪽 원에서 바깥쪽 원을 직접적으로 호출할 수 없습니다. 반드시 인터페이스를 통해서 의존성을 주입받아야합니다.



소감


저는 정말 좋았습니다. 두두의 슬로건 처럼 평소에 미루고 미루고 미루던 프로젝트를 이렇게 시간을 내서 작업하니 훨씬 좋았고 뿌듯했습니다. 또한 10시간 동안 뭔가를 준비하는 다른 사람들을 보면서 많은 에너지를 얻어 갈 수 있었습니다.



반응형
Comments