전체 글 244

Virtual DOM 은 뭘까?

이번 글은 Virtual DOM 에 대해서 기록해보려고 한다. React 나 Vue.js 에서도 쓰이고 있는 Virtual DOM 이라는 단어자체는 많이 들어봤는데 어렴풋이 기억에만 있는 개념을 정리해보고자 한다. 먼저 이것을 알기에 앞서 DOM 이 뭔지부터 되짚어 볼 필요가 있다. 구글에 DOM 을 검색 했을때 가장 먼저 나오는게 뭔지 보자. "DOM 은 동일한 문서를 표현하고, 저장하고, 조작하는 방법을 제공한다. DOM 은 웹 페이지의 객체 지향 표현이며, 자바스크립트와 같은 스크립팅 언어를 이용해 DOM 을 수정할 수 있다" 출처 : developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/%EC%86%8C%EA%B0%9C DOM 소개 - Web ..

React 2021.01.19

5. MVP 패턴 - 2

한동안 운영하고 있는 어플리케이션 때문에 바빠서 포스팅을 하지 못했다. 그때 적었던 기억을 떠올리며 이어서 작성해보려고한다. 이전 포스팅에서 MVP 패턴에 대해 개요를 적었는데 오늘은 MVP 에 대해 조금 더 알아보자. 이전에 있던 포스팅에서는 자바 코드로 설명했지만 해당 코드의 MVP 패턴에 마음에 안드는 부분들이있어서 그 뒤에 코틀린으로 제작한 프로젝트로 예시를 들겠다. 언어만 다를뿐 패턴자체는 차이가 없으니 MVP 패턴에 대해 읽어보기에는 전혀 문제가 없을 것이다. 아래에 설명될 코드는 회원가입에 대한 코드다. 먼저 로그인하는 화면이 있다고 하자. class LoginActivity : AppCompatActivity(), MemberContract.View { var nickname : Strin..

카테고리 없음 2021.01.14

리액트 네이티브 - 커스텀 버튼 만들기

루트 폴더에 CustomButton.js 을 만들어준다. 기본적으로는 TouchableOpacity 를 뼈대로 만든다. 그냥 리액트의 button 은 아이폰과 안드로이드에서 보이는게 다를때가 많아서 TouchableOpacity 로 만들면 통일감 있게 커스텀 버튼을 만들 수 있다고 한다. 버튼마다 크기나 색 , 타이틀이 달라야하니 Props 로 각 버튼의 스타일 정의를 넘겨받는다. // CustomButton.js import React, { Component } from 'react'; import { TouchableOpacity, Text, StyleSheet, } from 'react-native'; export default class CustomButton extends Component{ s..

React 2020.12.16

4. 안드로이드 MVP 패턴

MVP 패턴은 앞에서 설명했던 MVC 패턴과 유사하다. MVC 패턴을 경험했다면 대략적이 감을 잡는데 크게 어렵지 않을것이다. MVP는 Model + View + Presenter를 말합니다. 출처: https://beomy.tistory.com/43 [beomy] 가장 큰 차이점이라고 하면 presenter 라는게 중간에서 view와 model 사이에서 데이터를 받고 넘겨주고하는 우편배달부 같은 역할을 한다. 그로인해 MVC 패턴에서 있었던 view와 model 사이의 의존성이 해결된다. 물론 좋은점이 있으면 나쁜점이 있는것처럼 view 와 presenter 의 의존성은 어플리케이션이 복잡해질수록 늘어난다는 단점이 있다. 그래서 추가로 등장한 mvvm 패턴 등이 생겨났지만 이들도 각자 장단점이 있으므로..

3. Java Spring 과 안드로이드 통신 , DB로 데이터 전달까지

스프링에 대한 이야기를 다 적고 안드로이드로 넘어가려고 했으나 그렇게 되면 중복되는 이야기가 많을 것 같아서 안드로이드와 함께 이야기를 하려고한다. 그게 다시 읽게 되어도 이해하기 수월하고 시간의 흐름도 맞을거 같다. 나는 서버와 안드로이드가 통신할때 Retrofit 이라는 라이브러리를 사용했다. Restful api 통신을 하기에 아주 적합한 라이브러리고 1. 속도가 기존의 Okhttp 에 비해서 속도가 빠르다는 장점이 있다. 2. 구현 또한 HttpUrlConection의 사용보다 훨씬 간단하여 몇줄만으로도 완벽하게 작동하는것을 볼 수 있다. 3. 그리고 개인적으로 생각하기에 가장 큰 장점은 동기/비동기를 구현하기가 매우 편리하다는 점이다. 먼저 retrofit 을 사용하려면 retrofit 객체를 ..

2. Java Spring 서버(1)

나는 Spring 서버를 많이 쓰이는 MVC 패턴으로 개발했다. 먼저 MVC 패턴에 대해서 정리를 하자면 아래 그림과 같은데 일단 MVC 가 어떤 약자들인지부터 설명하는것이 맞겠다. M : Model 을 의미한다. 모델은 쉽게 말하면 Controller에서 받은 데이터를 저장하는 역할을 한다. V : VIew 를 의미한다. Controller로 부터 받은 Model 데이터를 바탕으로 사용자가 보고 있는 화면에 표현한다. 웹의 경우에는 HTML , JSP 등이 있겠다. C : Controller를 의미한다. 사용자가 요청한 URL 에 따라서 그 URL 를 받는 컨트롤러에서 Method를 호출하여 Service를 통해 비즈니스 로직을 처리한다 최종적으로 나온 결과를 Model 에 저장하고 그 결과를 View..

1. 전체적인 프로젝트 개요

개발환경 : Windows 10 , Java Spring , Mysql , Android Studio Java Spring : 어플리케이션의 api 서버로 사용하기 위해서 채택. Mysql : 실제 서비스를 하기위해서 적당한 DB를 고르다보니 Mysql 을 지원하는곳이 많았고 비용면에서도 합리적이라고 생각하여 채택. 대충 흐름도를 그려보자면 간략하게는 아래 그림과 같다. 일단은 Spring 의 구조에 대해서 다음 글에 포스팅하겠다.

몽냥몽냥 앱을 출시하다.

한동안 글을 작성하지 않았던거 같다. 꾸준히 작성하기로 맘먹어놓고는 귀찮아서 안했다.. 사실 몇달간 만들어보고 싶은 서비스가 있어서 안드로이드 어플 개발에 몰두했었다. 아무것도 없는 상태에서 팀원 2명과 함께 아이디어 고민도하고 안드로이드 UI 부터 서버 , DB, 홍보에 마케팅까지 중간에는 창업 대회같은거에도 서류를 내보곤 했다. 떨어지긴 했지만 좋은 경험이였다.. 반려동물과 관련된 서비슨데 기존에도 물론 그런 서비스는 많지만 나름 영상에 차별화를 두고 반려동물을 키우는 사람이나 강아지 고양이가 있지만 키우지 못하는 사람들도 함께 즐기고 소통할 수 있는 서비스를 만들었다. 이렇게 출시해보는건 처음이라 잘됐으면 하는 마음도 크지만 결과는 상관없이 정말 많은걸 얻게됐고 즐거웠다. 뭐 끝난것처럼 이야기하지만..

잡담 2020.12.07

코틀린 retrofit2 공부

Retrofit2 https://square.github.io/retrofit/ 스퀘어 사의 오픈소스 라이브러리 A type-safe HTTP client for Android and Java type-safe = "타입에 안정적이다/컴파일 시 타입체크를 할 수 있어 런타임 전에 타입에 대한 문제를 미리 잡는다/네트워크로 오가는 데이터의 타입을 필요한 형태로 주고받을 수 있도록 보장한다. " 사용계기 HttpURLConnection이 싫은데 이제 더이상 피할 수 없어서 서버 DB를 구축했는데 모처럼 클라이언트에서 써보고 싶어서 사실 안드로이드에서 서버DB에 접근할 방법이 없어,, 프로젝트에 적용 1. 목표 클라이언트(안드로이드)에서 서버로 검색어를 request로 주고, 원하는 객체로 response를 ..

Android 2020.11.16

안드로이드 - service 정리

이 글은 제가 작성한 글이 아닙니다. 좋은 글이 있어서 가져왔는데 출처를 잊었습니다. 죄송합니다 ㅠㅠ 오늘은 안드로이드 4대 컴포넌트 중 하나인 Service에 대한 포스팅입니다. 안드로이드 4대 컴포넌트가 뭐냐구요? 안드로이드 어플리케이션을 구성하는 메인 구성 요소라 할 수있는데, 우리가 가장 많이 사용하는 Activity가 그 중 하나입니다! 1. Android Components [그림 1] 안드로이드 4대 컴포넌트 2. 서비스(Service)란? 안드로이드에서 Activity는 Background에서 작업을 수행할 수 없다. 이를 위해 우리는 Service를 사용한다. 예를 들면 노래를 켜고 웹 서핑을 하는 상황이 있다. 우리가 음악을 듣는 어플을 사용할때 보통 어플에 들어가 노래를 켜고 다른 화..

Android 2020.11.14