일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디자인 패턴
- 스레드
- 리액트
- 개발
- 앱 개발
- cs
- 운영체제
- 메모리
- Kotlin
- Operating System
- Database
- github
- React
- CS지식
- reactnative
- MVVM
- 디자인패턴
- db
- 리액트네이티브
- 프로세스
- 안드로이드 디자인 패턴
- Android
- 액티비티
- 앱개발
- 안드로이드
- 앱
- 데이터베이스
- OS
- 코틀린
- 안드로이드 개발
- Today
- Total
목록개발 (8)
Tech Log
이때까지 프로젝트를 하면서 코드가 복잡해지는 것에 대한 불편함을 느꼈다. 디자인 패턴을 적용하지 않고, UI 설정 코드와 데이터 받아오는 코드 등을 합쳐놓으니 굉장한 스파게티 코드가 된 것 같았다... 따라서 앞으로 하는 프로젝트는 모듈화와 디자인 패턴 적용에 집중해야 겠다고 생각했다. 여러 아키텍처 패턴 중 심플하다고 생각되는 MVC 패턴부터 알아보고자 한다. 해당 포스팅은 안드로이드 아키텍처 기준으로 작성되었습니다. 1. MVC 패턴이란? MVC 패턴은 애플리케이션(응용 프로그램)을 서로 다른 역할로 분리해놓은 패턴 중 하나이다. 관심사 분리(Separation of Concerns, SoC)로도 알려져 있다고 한다. 여기서 관심사 분리(separation of concerns, SoC)란? In c..
소프트웨어를 설계할 때 디자인 패턴이 중요하다는 얘기를 항상 들었지만, 왜 중요한 것이고 어떨 때 쓰이는 것인지 몰랐다. 그러다가 이번에 추천 시스템 어플리케이션을 만들면서, 디자인 패턴의 중요성을 크게 깨달았다. 프로젝트 내의 파일들이 많아지고, 한 클래스 내에서 너무 많은 기능들이 담겨있다보니 파일을 찾기 힘들고, 코드의 가독성이 좋지 않았다. 또한 클래스의 재사용성과 확장성이 좋지 않겠다는 생각이 들었다. 이래서 소프트웨어 설계를 철저히 하고 디자인 패턴을 적용시키는 것이구나하고 깨달았다... 이번에 제대로 디자인 패턴을 공부해서 적용시켜보려고 한다. 1. 디자인 패턴이란? 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다. 즉, 설계에서 ..
다들 처음 git commit을 하고, push를 해줄 때 git push -u origin branch-named에서 -u라는 옵션을 본 적이 있을 것이다. -u 옵션 뿐만 아니라, 다른 옵션도 있는데 이게 무슨 명령을 의미하는 것인지 궁금했다. 따라서 git push cli에 대해서 전체적으로 다뤄보기로 했다. 1. git push란? git commit 을 하고나서, 로컬 저장소에 변경 이력이 저장이 된다. 이후에 git push를 하게 되면 로컬 저장소에 있는 변경 이력이 원격 저장소에도 반영된다. 2. 사용 방법 git push (원격 저장소 명) (브랜치 명) 일반적으로 git push는 두 가지 인자를 받는다. 원격 저장소 명과 브랜치 명을 두 가지 인자로 받는다. git push origi..
클론 코딩을 하다가 Fragment를 그닥 깊게 생각하지 않고 써왔다. 그러다가 Fragment 용례가 기억이 안나서 다시 찾아보게 되었다. Fragment의 이론 내용을 공부하는 중, 몰랐던 내용이 많아 정리해보고자 한다. 1. 배경 태블릿과 같이 큰 화면이 나오면서, 안드로이드 UI에도 유연성이 요구되었다. 기존의 핸드폰과 같이 작은 화면만 다루었을 때는, Activity 단위로 UI를 구성해도 수월했다. 태블릿의 화면은 핸드폰의 화면보다 훨씬 크기 때문에, UI 구성 요소를 사용할 공간이 더 많다. 따라서 Activity의 레이아웃을 나누자는 아이디어가 나오게 되었다. 기존의 레이아웃들로 Activity를 구분지어도 되지만, Dynamic한 동작(디바이스에 따라 View 감추기, 보이기, 위치 이동..
네트워크 통신을 하면서 동기와 비동기에 대해서 알게 되었다. 비동기를 처리하는 기술 중 Coroutine이 잘 쓰이고 있다는 것을 알게되어, 프로젝트에 적용도 해보았다. 그리고 Coroutine에 대해서 자세히 알아보고 싶어 조사해보았다. 1. Coroutine의 정의 Coroutine 이라는 단어 자체를 보면 알수있듯이, Coroutine은 Co + routine의 합성어이다. 직역하면 '협동(같이하는) 루틴'이 된다. Android Developers에 따르면, 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴이라고 한다. 필자는 사실 이 설명을 보고 Coroutine이 무엇인지 이해할 수 없었다. Coroutine을 이해하려면, 먼저 동기와 비동기가..
평소에 그냥저냥 쓰고 있던 LG 그램이 갔다. 윈도우 11로 업데이트 하자마자 상태가 많이 안좋아졌다. 따라서 평소에 Mac OS를 쓰고 싶었기 때문에 그냥 맥북을 사기로 했다. 개발하는데 있어 Apple Silicon에 대한 두려움이 있었으나, 그렇다고 인텔 맥북을 살 수는 없었기에 M1 맥북을 샀다. 맥북을 샀으니 개발 환경도 새로 구축해줘야 했다. 만들어줘야 할 환경 중 하나가 리액트 네이티브였다. M1에서 리액트 네이티브를 하려면 제약이 많아, 개발 환경 만들기가 어렵다는 얘기를 많이 들었다. 비장한 각오를 다지며 개발환경 구축에 돌입했다. 단계가 많아 목차로 정리해보았다. Xcode 설치 iTerm2 설치 oh-my-zsh 설치 homebrew 설치 node 설치 cocoapods 설치 watc..
개요 : UMC Android 2기에 참여하면서 안드로이드와 관련한 여러 실습을 듣게 되었다. 해당 실습을 진행하면서, Binding이라는 것에 대해 알게되었다. 자주 쓰일 것 같아, 자세히 개념 정리를 하고 싶어서 글을 작성하게 되었다. 정의 및 역할 View binding을 Android Developer 에서 보면 한국어로는 뷰 결합이라고 나온다. bind는 사전적 의미로 '묶다'라는 의미이다. 여기서 결합(묶는) 것은 레이아웃 파일(.xml)과 액티비티(혹은 프래그먼트)이다. 이렇게 결합(Bind)해버리면, findViewById와 같은 특정 뷰를 받아오는 메소드를 사용하지 않아도 된다. 즉, findViewById를 사용해서 일일이 뷰와 변수를 연결해주지 않아도 Binding으로 한 번에 다 연..
개요 : 안드로이드 스튜디오에서 mySQL의 데이터를 받아올 때 Retrofit2 라이브러리를 사용하게 되었다. retrofit2에 대해서 복습해볼겸 포스팅을 작성해보았다. 외부 DB인 mySQL의 데이터를 가져오기 위해서 node.js를 사용해서 서버를 구축하고, 그 서버를 Retrofit 2로 안드로이드 스튜디오와 통신해주었다. Retrofit2이란? 네트워크로부터 전달된 데이터를 프로그램에서 필요한 형태의 객체로 받을 수 있게 하는 HttpClient 라이브러리이다. 이때 네트워크로부터 전달된 데이터를 프로그램에서 필요한 형태의 객체로 받을 수 있다는 말을 TypeSafe하다고 표현할 수 있다. Retrofit2를 쓰는 이유? Retrofit2는 Http 통신을 쉽게 하고 속도가 빠르다 또한 코드의..