개발이야기 118

로드밸런서란? OSI 계층별 로드밸런서

오늘은 로드밸런서와 로드밸런서 종류에 대해서도 아래와 같이 알아보도록 하겠습니다. 로드밸런싱 로드밸런싱은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 서버로 분산하는것을 뜻합니다. 쉽게 말해 n개의 서버를 특정 기준으로 분산시켜 처리하는 것이라 볼 수 있습니다. 로드밸런싱을 실제로 수행하는 주체가 로드밸런서(Load Balanceer) 입니다. 로드 밸런싱은 다양한 알고리즘으로 수행합니다. 로드밸런싱 알고리즘 - 라운드 로빈 : 분배의 가장 기본적인 방식. 각 서버별로 돌아가면서 할당 - 가중 라운드 로빈 : 각 서버별로 돌아가면서 할당하지만 일부 서버는 큰 트래픽을 몰아받는 방식 - 랜덤 : 랜덤하게 분배되는 방식 - URL 해쉬 : 접속하는 IP 주소와 동일한 서버주소에 매칭 - 기타 등등.. ..

개발이야기 2020.03.19
개발자 유튜버, 구독자 1000명 달성까지의 여정. 그리고 수익창출

2020년 3월 11일 이날은 제가 운영하고 있는 개발 유튜브(데브원영 DevWonYoung)의 구독자 1000명🎉을 달성한 날입니다. 개발관련 영상을 본격적으로 올린지 214일만인데요. 오늘 포스팅에서는 개발 유튜브를 하면서 느낀점에 대해서 이야기해보려고 합니다. 사실, 18년 여름에 Grafana를 소개하는 영상을 올린적이 있었지만 그 당시에는 편집도 서툴렀고, 어떻게 사람들에게 내용을 잘 전달할 수 있을지 크게 고민을 하지 않았습니다. 이후에 어떤 방향으로 유튜브영상을 올릴지 고민을 거듭한 끝에 2019년 8월 11일에 hombrew를 소개하는 영상을 시작으로 본격적으로 업로드를 시작하였습니다. 구독자 100명이 되기전까지 초반에는 유튜브 채널의 방향성에 대해서 많은 고민을 하였습니다. 영상이 몇개..

개발이야기 2020.03.12
NAT IP란?

NAT는 Network Address Translation의 줄임말 입니다. NAT는 사설 네트워크에 속한 여러 개의 호스트가하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위해 사용합니다. 쉽게말해서 외부망과 내부망을 나눠주는 기능을 하게 되는 것입니다. NAT 특징 - 내부에서 외부로 통신 가능 - 외부에서 내부로 통신 불가 NAT 장점 - 여러 사설 네트워크를 사용함으로서 인터넷 공인 IP 주소를 절약 가능. - 사내망 IP주소를 외부로 알리지 않음으로서 외부로 부터의 침입/공격 차단 NAT 단점 - 네트워크 복잡성 증가 - 네트워크 지연 영향 NAT 종류 - Static NAT : 사설IP와 공인 IP를 1:1 매핑 - Dynamic NAT : 다수 공인 IP와 다수 사설 IP 매핑 - PAT..

개발이야기 2020.03.08
system call이란?

OS는 크게 커널모드와 사용자모드로 나뉘어 집니다. - 커널모드 : 모든 시스템 메모리 접근 가능. 모든 CPU명령 실행 가능 - 사용자모드 : 사용자 애플리케이션 실행. 하드웨어 직접 접근 불가. System call 호출시 일시적으로 커널모드로 전환. 커널영역의 기능을 사용자모드가 접근하게 도와주는 기능을 System call이라고 부릅니다.. System call을 사용하는 이유? 가장 큰 이유는 유저 애플리케이션(ex. 우리가 흔히 개발하여 실행하는 자바 애플리케이션)이 운영체제의 치명적인 데이터를 수정/삭제하는 권한을 막기 위해서 입니다. 직접적인 하드웨어 요청이나 기타 시스템요청은 OS가 제공하는 System call을 통해 호출하도록 제공해줍니다. 만약 유저 애플리케이션이 System cal..

개발이야기 2020.03.08
공개 키 암호방식이란?

공개키 암호화 방식은 암호방식중 한종류로 사전에 비밀키를 나눠가지지 않은 사용자들이 안전하게 통신할 수 있도록 설계된 것입니다. 공개키 알고리즘은 비대칭 암호라고 부르기도 합니다. 왜냐면 공개키 암호화 방식은 암/복호화에 다른 암호키를 사용하기 때문입니다. 통신을 위해 필요한 키 종류는 2가지입니다. 1) 공개 키 : 누구나 알 수 있음 2) 비밀(개인) 키 : 소유자만 알 수 있음 공개키 암호 방식은 2가지로 나뉩니다. 1) 공개 키 암호 : 비밀키를 가지고 있는 사람만 내용을 확인 가능 2) 공개 키 서명 : 특정한 비밀키로 만들었다는 것을 누구나 확인 가능 공개 키 암호방식 통신 예제 A사용자에게서 B사용자에게로 데이터를 전달하고 싶을 때, Destination인 B사용자 이외 사람은 해독이 불가능..

개발이야기 2020.03.07
Docker application이 host machine의 application(localhost)에 접근하도록 하는 방법

Docker로 감싼 application이 host machine에 떠 있는 web application에 접근하려고 하면 어떤 현상이 일어날까요? 호출하기 위해 시도한 방법은 아래와 같습니다. 시도방법 : Docker application(alpine linux)에서 http://localhost:3000 호출 결과 : connection refuse 발생 사유 : Docker application이 자기자신의 docker container내부에 떠 있는 localhost를 호출함(not host machine) 당연히 Docker container내부의 localhost를 호출하다보니 timeout으로 인해 connection refuse가 일어날 수 밖에 없습니다. 이를 해결하기 위한 방법은 Doc..

AWS MSK(Kafka) 실습 및 예제 코드(Java), 장단점, 가격

Amazon MSK(Managed Streaming for Apache Kafka)는 AWS에서 제공하는 완전 관리형 apache kafka 서비스입니다. 기존에 on-promise에서 사용하던 혹은 EC2로 관리하던 Apache kafka를 SaaS형태로 사용할 수 있습니다. Apache kafka의 특정 버젼을 그대로 사용할 수 있기 때문에 vanila apache kafka의 버젼별 api spec을 따라서 사용할 수 있습니다. 그럼 이번 포스트에서는 AWS MSK cluster를 직접 구성해보고, producer/consumer을 만들어 테스트해보겠습니다. MSK Cluster 생성 Cluster을 생성하기 위해서 AWS CLI를 사용하거나 혹은 AWS console을 사용할 수도 있습니다.이번 ..

개발이야기/AWS 2019.12.26
티스토리 블로그에 눈⛄내리게 하기! 간단한 Javascript, html 편집

티스토리블로그는 js, css, html 등 다양한 확장기능을 가지고 있습니다. 이러한 기능을 토대로 블로그를 더욱 멋지게 꾸밀 수 있는데요. 이번 포스팅에서는 블로그에 눈이 내리게 하는 효과를 적용하는 예제를 설명드리도록 하겠습니다. 준비물 준비물은 아래와 같습니다. 약간의 웹개발 지식과 시간을 약간 가미하여 눈내리는 블로그를 만들어 봅시다. - 티스토리 블로그 - 간단한 js, html 지식 - 5분 적용방법 1) snow.js 다운로드 적용할 javascript는 zmfe유저의 snow.js 입니다. fure javascript와 canvas로 구현한 오픈소스입니다. - url : https://github.com/zmfe/snow.js 위 url에서 source를 다운로드 할 수 있습니다. 그러나..

개발이야기 2019.12.24
AWS kinesis Data stream 실습 및 예제 코드(Java), 장단점, 가격

실시간으로 비디오 및 데이터 스트림을 손쉽게 수집, 처리 및 분석 솔루션 Amazon Kinesis를 사용하면 실시간 스트리밍 데이터를 손쉽게 수집, 처리 및 분석할 수 있으므로 적시에 통찰력을 확보하고 새로운 정보에 신속하게 대응할 수 있습니다. Amazon Kinesis 기능 - Kinesis Video streams : 비디오 스트림을 캡처 처리 및 저장 - Kinesis Data streams : 데이터 스트림을 캡쳐, 처리 및 저장 - Kinesis Data firehose : 데이터스트림을 AWS데이터 스토어로 로드 - Kinesis Data analytics : SQL 또는 Java를 통해 스트림 데이터를 분석 이번 포스팅에서 주요하게 볼 서비스는 Data streams 입니다. Data s..

개발이야기/AWS 2019.12.23
AWS kinesis Firehose 실습 및 예제 코드(Java), 장단점, 가격

실시간으로 비디오 및 데이터 스트림을 손쉽게 수집, 처리 및 분석 솔루션 Amazon Kinesis를 사용하면 실시간 스트리밍 데이터를 손쉽게 수집, 처리 및 분석할 수 있으므로 적시에 통찰력을 확보하고 새로운 정보에 신속하게 대응할 수 있습니다. Amazon Kinesis 기능 - Kinesis Video streams : 비디오 스트림을 캡처 처리 및 저장 - Kinesis Data streams : 데이터 스트림을 캡쳐, 처리 및 저장 - Kinesis Data firehose : 데이터스트림을 AWS데이터 스토어로 로드 - Kinesis Data analytics : SQL 또는 Java를 통해 스트림 데이터를 분석 이번 포스팅에서 주요하게 볼 서비스는 Data firehose 입니다. Data ..

개발이야기/AWS 2019.12.20
Udacity 데이터 스트리밍 강의정리 - Faust python module 소개

# Python Streams ٩(◕‿◕)۶ # Forever scalable event processing & in-memory durable K/V store; # w/ asyncio & static typing. import faust Faust는 python의 stream processing library이다. kafka stream의 python버젼이라고 볼수 있습니다. Faust는 stream processing과 event processing 둘다 지원합니다. DSL언어를 사용하지 않고 pytthon library로서 동작합니다. 그렇기 때문에 Flask, NumPy, PyTorch 등과 함께 사용 할 수 있습니다. - Faust url : https://faust.readthedocs.io..

개발이야기 2019.11.21
Udacity 데이터 스트리밍 강의정리 - 데이터 스트리밍 기초

데이터 스트리밍 이론 목차 - Strategies for Application Design - Combining Streams - Filtering Streams - Remapping Streams - Aggregating Streams - Handling Time and Windowing - Streams vs Tables 들어가기 전에 -Join (Streams) 1개 이상의 output stream의 조합. 보통 연관된 key로 조합하는 것 -Filtering (Streams) 데이터 스트림에서 일정 조건에 따라 데이터를 제거하는것 -Aggregating (Streams) 데이터 스트림에서 더하거나 빼거나 key를 기반으로 group을 만드는 것 -Remapping (Streams) 데이터 스트림에..

개발이야기 2019.11.20
Udacity 데이터 스트리밍 강의 후기- Apache Kafka

Udacity의 Data streaming Nanodegree program을 듣고 난 후기를 공유하고자 합니다. Nanodegree program은 udacity의 certification program입니다.다. 강의를 모두 수강하고 난 뒤에는 Nanodegree(나노디그리) 라고 하는 학위는 아니고 증명서를 발급받을 수 있습니다. 이번에 들은 강의는 Udacity의 데이터스트리밍 강의입니다. 기본적으로 2달의 수강기간을 예상치로 잡고 있으며 Python, SQL, ETL에 대한 기본적인 개념을 가지고 있어야만 수강하는데 문제가 없다고합니다. 가격은 1달에 한화 약 47만원입니다.(2달에 약 80만원) 데이터 스트리밍은 현대의 빅데이터 비즈니스모델을 실시간으로 분석하고 처리하기 위해 사용됩니다. 이 ..

개발이야기 2019.11.18
TED 자막으로 영어 공부 - 웨일확장앱

TED는 세상을 좀 더 나은 곳으로 만들기 위해 고민하는 사람들의 학술장의 중 하나입니다. TED는 여러 좋은 강의들이 많습니다. 대부분 영상이 영어자막을 지원하며 유튜브, 네이버TV 기타 여러 스트리밍에서도 무료로 볼 수 있습니다. 대부분 매우 좋은 퀄리티의 강의로서 짧으면서도 명료하기 때문에 영어공부를 겸하기에 아주 좋습니다. TED를 통해 영어자막으로 공부하려고 하다보니 반복재생이나 이미 지나간 자막에 대해서 한번더 볼려고 하면 다시 영상을 되돌려야 하기도 합니다. 웨일 브라우저에서 TED를 공부하기에 좋은 앱이 있어서 소개하고자 합니다. 안봐도 비디오 안봐도 비디오는 웨일브라우저의 확장앱입니다. 동영상기반 일부 웹페이지와 연동되어 사용가능하며 반복재생 등과 같은 기능을 통해 학습이 가능합니다. 다..

개발이야기 2019.11.15
[Python서버] Django vs Flask

Django, Flask모두 python에서 사용가능한 웹 프레임워크이다. Django는 MVC모델로 만들 수 있고 Flask는 micro-framework라는 특성을 가진다. Flask는 ORM을 지원하지 않지만 간단하게 서버를 만들 수 있다는 점에서 강점을 가진다. Django Django가 추구하는바는 복잡한 database기반의 서버를 간단하게 만드는 것이다. component들을 재사용하고 code를 줄이고 coupling을 줄이면서도 빠르게 개발할 수 있도록 만들어져 있다. 웹 애플리케이션이 제공되어야하는 사용자 인증, 관리 등을 기본적으로 기능이 구현되어 있다. 인스타그램, 핀터레스트같이 성공적인 도입사례도 있다. HelloWorld Django Django의 가장 기본적인 directory..

개발이야기 2019.10.10
shell script - apache access log에서 접근 url top 10 추출하기

아래와 같은 apache access log가 존재한다고 가정하자 테스트 데이터 127.0.0.1 - - [10/Feb/2019:11:11:55 +0000] "GET / HTTP/1.1" 10.10.30.3 - - [10/Oct/2018:13:55:36 -0700] "GET /apache_pb.gif" 10.10.30.2 - - [10/Oct/2019:13:55:36 -0100] "GET /two.html" ... ... 상기 apache access log 중 log 앞에 있는 access ip를 뽑아서 top 10을 script로 뽑으려면 어떻게 해야할까? 1. cat과 awk로 ip만 추출 명령어 $ cat test_apache_log.txt|awk '{print $1}' cat과 awk를 통해 아..

개발이야기 2019.08.30
Intellij에서 줄바꿈 간격 화면에 맞게 custom 조정하기 꿀팁

Intellij를 사용하여 개발을 하다보면 code가 너무 길어서 가로스크롤(horizontal scroll)을 해야할 때가 있는데 이때 스트레스가 이만저만이 아니다. 이때 줄바꿈 간격을 화면에 맞게 줄인다면 한눈에(혹은 한 스크린에) 코드를 볼 수있고 줄간격도 조절된다. 문제점 아래는 github에 올라가 있는 kafka source 중 ConsumerConfig.java file의 code인데 너무 길어서 가로 스크롤이 생긴 것이 보인다. 해결방법 Intellij → cmd + , → search 'hard wrap' → change value hard wrap 셋팅이 완료되면 cmd + option + l (macOS 기준)을 눌러 자동 줄바꿈을 실행한다.

개발이야기 2019.08.08
Vue.js에서 환경별(dev, alp, prd)옵션을 통해 분기처리하기(NODE_ENV 사용)

개요 vue js(intellij환경)에서 npm run dev를 통해 항상 테스트를 했다. local환경과 production은 환경이 다르기에, 환경별 분기문이 필요할 때가 있다. 이때는 아래와 같이 수행하면 된다. package.json 파일 수정 script의 dev앞부분에 NODE_ENV로 시작하는 key에 value(development)를 넣는 구문을 추가한다. { "name": "MyApplication", ... "scripts": { "dev": "NODE_ENV=development webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "build": "node..

결혼식 청첩장 Github blog로 세련되게 만들기. 후기!

2019년 5월 18일. 이날은 여자친구와 4년 그리고 1일 되는날, 그리고 결혼식이 열렸던 날이다. 결혼식을 준비하면서 만든 github.io blog기반 모바일 청첩장을 만들게 된 이유와 만들기까지의 과정에 대해 이야기 하고자 한다. 결혼식을 위해 뼈발자(뼈속까지 개발자)인 나는 어떻게 결혼식을 준비하는데 있어 실력을 발휘할까 고민하던 도중 모바일 청첩장을 직접! 만들어보면 어떨까 아이디어를 생각하였다. 모바일 청첩장을 직접 만들고자 한 이유는 아래와 같았다. 첫째. 바른x, 더카x 등 종이 청첩장을 만들어주는 사이트의 디자인이 마음에 안든다. 둘째. 무료로 청첩장을 만들어 주는 사이트는 시간이 지나면 만료되어 더이상 조회가 불가능하다. 셋째. 선물 예약 기능. 친구들에게 필요한 선물을 알려주고 예약..

개발이야기 2019.06.04
Android Q 부터 비 SDK 인터페이스 제한 하는 이유와 비 SDK 인터페이스 제한 확인하는 방법

android Q targetSdkVerison부터 공개된 SDK API만 사용가능하다. 이에 따라 android Q를 targetSdkVersion으로 하는 application은 공식 SDK인터페이스가 아닌 기능에는 접근하지 못하도록 제한한다.(공식홈페이지 참고) 왜 비 SDK를 제한하게 되었나? 안드로이드에서 @hide annotation으로 선언한 여러 sdk(android.xxx.xxx 같은 package)의 method들이 존재한다. @hide 구문을 사용하면 android내부에서만 접근 가능하고, 외부(application)은 접근하지 못하며 공식 패키지 색인에도 노출되지 않는다. 즉, 공식적으로 application단에서 사용이 불가하도록 선언해 놓은것이다. 그러나, 많은 전세계의 개발자들..

Pixel에 Android 이미지 설치할때 오류 fastboot too old; please download the latest version 해결하기

안드로이드 application개발에 대응하다 보면 android version upgrade에 민감하게 된다. 여러 api들이 생기고 사라지기 때문에 미리 android os를 접하고 무슨 에러가 나는지, 어떤 기능을 새로 사용가능한지 확인해야 한다. 이를 위해서 대부분의 android application 개발자들은 구글 공식 테스트용 단말로 사용가능한 pixel을 가지고 테스트하는데 미리 android 공홈에서 preview os image를 다운받아서 os를 단말기에 올릴 수 있다. Pixel용 Android Q 베타 시스템 이미지 다운로드 공식 홈페이지 Pixel용 다운로드 | Android Developers Instructions for downloading and installing pre..

Java에서 method작성시 파라미터 개수를 5개미만으로 해야하는 이유??

17년 Google 개발자들이 참여한 논문인 Detecting Argument Selection Defects에 따르면, 5개 이상 인자(argument)을 받을때 개발시 생기는 오류가 급속도로 늘어남을 확인했다고 한다. By analyzing the defects found, we are able to quantify best practice advice for API design and show that the probability of an argument selection defect increases markedly when methods have more than five arguments. 5개 이상 인자가 아닐때도 개발 중 오류를 낼 수 있음을 google내부 프로젝트들에 대해 분석하면서 ..

개발이야기 2019.05.03
Pull request를 효과적으로 사용하는 방법

최근 github에서 Pull request(이하 pr)에 대해 작성하고 답변하던 도중(kubernetes git-sync pr 주고받은 내용 바로가기) 어떻게 pr을 적는것이 효과적일까에 대해 고민이 많아졌다. 고민과 동시에 구글링을 해봣는데 2015년 github blog에 올라온 좋은 글이 있어 해당 내용을 정리하고자 하여 posting을 하게 되었다. 원글 : How to write the perfect pull request 원글에서는 3가지의 상황에 따라 pr을 작성하는 방법에 대해 소개하였다. Pull request를 시작하는 방법 - pr을 날리는 목적에 대한 내용을 포함하라. ex. ...기능을 화면에 간편하게 표시하기 위함. ex. ...을 작동시키게 하기 위함. - 왜 이 pr을 생성..

[ES5]여러개의 promise를 Synchronous하게 받는 promise 구현하기

promise문법은 기본적으로 비동기로 구현되고 실행된다. 여러개의 promise가 끝나는 것을 확인하여 synchronise하게 처리하고 싶다면 어떻게 해야할까? 1) promise를 중첩되게 구현한다. -> Callback Hell 2) 여러 promise를 동시에 진행하고 완료됨을 확인하는 promise로 감싼다. -> 선택! 2번구현이 동작하는 방식은 아래와 같은 도식으로 표현할 수 있다. 최종 구현 code는 아래와 같다. var items = new Map; var showProgressCircle = true;// job을 가져오고 있을 때는 progress circle이 보이도록 function getJobInformation(host, resolve) { $axios.get(host+'/..

특정 문자가 들어간 line만 뽑아내는 정규식

특정 문자가 들어간 들어간 line만 뽑아내려면 아래와 같이 사용하면 된다. .*name.*\n Example 아래 json에서 이름만 뽑아내고 싶을때 상기 regex를 사용하면됨. { "squadName": "Super hero squad", "homeTown": "Metro City", "formed": 2016, "secretBase": "Super tower", "active": true, "members": [ { "name": "Molecule Man", "age": 29, "secretIdentity": "Dan Jukes", "powers": [ "Radiation resistance", "Turning tiny", "Radiation blast" ] }, { "name": "Madame ..

개발이야기 2019.04.01
[linux] netstat 명령어 설명 및 예제

netstat 소개netstat(network statistics)는 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스(네트워크 인터페이스 컨트롤러 또는 소프트웨어 정의 네트워크 인터페이스), 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령 줄 도구이다. OS X, 리눅스, 솔라리스, BSD를 포함한 유닉스 계열 운영 체제와 윈도우 XP, 윈도우 비스타, 윈도우 7, 윈도우 8, 윈도우 10을 포함한 윈도우 NT 기반 운영 체제에서 이용이 가능하다. 네트워크의 문제를 찾아내고 성능 측정으로서 네트워크 상의 트래픽의 양을 결정하기 위해 사용된다.리눅스에서 net-tools의 일부인 netstat은 시대에 뒤쳐진 것으로 간주되며, iproute2의 일부인 ss를 대신 사용하여야 한..

Back-end 개발자라면 답변가능한 Questions

OS, Linux, Network# 프로세스와 쓰레드 차이프로세스 - 실행되고 있는 프로그램의 개체. CPU 시간이나 메모리 등 시스템 장원이 할당되는 독립적인 개체. 다른 프로세스와 상관 없이 독립적으로 자원을 할당 받음. 프로세스 간의 통신을 위해선 파이프, 파일, 소켓 등을 사용하여 통신하여야 함 쓰레드 - 프로세스 안에 존재하여, 프로세스의 자원을 공유하는 개체 흔히 경량 프로세스라고 부름 각 쓰레드는 별도의 레지스터와 스택을 갖고, 힙 영역은 공유. # System call이란? # Shared memory? # 해쉬알고리즘의 종류 및 특징?MD5 SHA-1 # Swap memory는 무엇이고 언제발생하는가? # Java에서 Memory mapped file은 언제 사용하는가? # OSI 7 l..

개발이야기 2019.02.11
매초마다 반복되는 shell script 한줄 구문

Getting started보통 tail을 통해 file 내부의 변화를 확인하고 log를 확인하곤 한다.가끔 linux file system을 통한 개발을 하다보면 반복적으로 command를 실행시키고 싶을때는 어떻게 하면 될까? $ while true; do 명령문 sleep 시간; done 상기와 같이 수행하면 된다. 시간(seconds)마다 명령문을 입력한다. Example5초 마다 ls 명령어 호출 $ while true; do ls /app/home/; sleep 5; done 1초 마다 echo $ while true; do echo hi; sleep 1; done 10초 마다 hdfs 를 통해 ls 명령어 호출 $ while true; do ./hdfs dfs -ls /2018/11/12/;..

안드로이드에서 외부 jar file import하는 방법

이번포스팅에서는 Android studio에서 jar file을 import하는 방법에 대해 알아보겠습니다. #1 Android studio open #2 Android studio 우측에 있는 structure에서 Project 클릭 #3 libs folder 안에 추가하고자 하는 jar file copy&paste #4 붙여넣은 jar file을 우클릭하여 아래쪽에 있는 Add As Library 클릭 #5 library로 추가하고자 하는 module 선택 및 OK #6 cmd+; 단축키를 눌러 Project Structure을 확인하면 Library import 완료된 것을 확인 할 수 있다.

Custom listview의 각 item에 animation 적용하기

개요안드로이드 custom listview를 사용하면서 parent item view에 각종 animation effect를 주고 싶을때 사용 제공 애니메이션# Alpha with translate animation : 좌측으로 이동 + 투명도가 변하면서 스르륵 나타나는 애니메이션# Alpha animation : 투명도가 변하면서 스르륵 나타나는 애니메이션# Scale animation : 점점 커지는 애니메이션 주요 코드ListViewAdapter.javacustom list view를 사용하기 위해 BaseAdapter를 상속받은 ListViewAdapter에서 parent view에 animation을 적용하면 각 item에 animation이 적용된다. @Override public View g..