일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- spring boot
- 트리
- 스프링 시큐리티
- 백트래킹
- Zuul
- Logback
- 도커
- Spring Cloud Config
- Java
- 구현
- 완전 탐색
- 이분 탐색
- 메모이제이션
- spring cloud
- 달팽이
- BFS
- 유레카
- 주울
- 다익스트라
- 서비스 디스커버리
- dp
- ZuulFilter
- 이분 매칭
- 게이트웨이
- 플로이드 와샬
- 구간 트리
- 스택
- docker-compose
- 비트마스킹
- Gradle
- Today
- Total
Hello, Freakin world!
안드로이드와 스프링의 의존성 주입에 관해서 본문
채팅앱의 UI 관련 코딩을 하다보니 자연스레 UI의 관련 기능들을 담을 하나의 컨테이너가 필요해졌습니다.
그리고 그 컨테이너가 안드로이드에서 제공하는 Activity라는 개념은 아닐까? 라는 생각이 들더군요.
UI 코딩 이전에는 채팅방 정보를 제공하는 서버를 프레임워크화 하는 과정에서 모든 의존성을 담당하는 하나의 클래스를 두었었습니다. 이 역시 스프링의 ioc 개념에서 들고 왔습니다.
다시 말해, 하나의 클래스에 모든 의존성 정보를 몰빵하고, 그 클래스에서 모든 의존성을 setXXX와 같은 메서드를 통해 주입합니다.
이 방법은 애너테이션을 이용한 스프링의 방식처럼 세련되진 않지만, 그래도 클래스마다 필요로 하는 컴포넌트 객체들의 생존주기를 관리하는 코드를 넣지 않아 편리했습니다.
Activity라는 개념을 도입해 UI 코드들을 정리해나가는 클라이언트 앱에서도 이 방식을 유지하려 했으나,
ioc 방식이 여기에는 맞지 않을 수도 있단 생각이 들었습니다.
웹 서버같은 경우엔 약간 정적인 느낌이 있습니다. 그래서 초기에 의존성 관리를 담당하는 클래스를 이용해 초기화가 가능했습니다. 하지만 그에 비해 Activity가 동적으로 변해야하고, 다른 Activity로 넘어갈 때 전해지는 정보도 때에 따라 달라질 수 있기 때문에 초기에 모든 Activity를 생성해 주입하는 방식이 비효율적이겠다 라고 결론을 내렸습니다.
물론 이벤트 방식으로 구현한다면 가능할 것도 같습니다.
이는 안드로이드에서 인텐트를 액티비티 레벨에 적용하는 것과 비슷해보입니다.
직접 구현하기엔 프로젝트의 복잡도가 올라갈거 같아, 이는 다음으로 미루려고 합니다.
'코딩 일기' 카테고리의 다른 글
10월 프로그래머스 코드 챌린지 후기 (0) | 2020.10.08 |
---|---|
VI가 편한가...? (0) | 2020.05.27 |
앱의 규모가 점점 커지면서 느끼는 점 (0) | 2020.04.22 |
우아한 기술 블로그의 글들을 읽고... (0) | 2020.04.17 |
경 축! 카테고리 신설~ (0) | 2020.04.16 |