IT 18

RDBMS 와 NoSQL

1. RDBMS Relational DataBase Management System 관계형 데이터베이스 시스템 트랜잭션 처리 가능 MySQL, Oracle, MS-SQL 2. NoSQL 대용량의 데이터를 분산 처리하는 데이터베이스 시스템 오토 샤딩 (Auto Sharding) 기능으로 분산처리가 가능 Mongo DB, AWS DynamoDB, Firebase Firestore 3. RDB 와 NoSQL의 차이점 RDB는 스키마를 미리 정의 해야 한다(테이블 생성문을 사용하여 스키마를 정의) NoSQL은 스키마 프리(free) 이므로 미리 테이블 생성 할 필요가 없다. 또한 오토 샤딩(Auto Sharding) 기능이 있어서, 대용량의 데이터를 자동으로 분산 처리한다 RDB는 비슷한 기능으로 클러스터링이 ..

IT 2020.10.05

On-Premise / Cloud Services

1. 온 프레미스(On Premise) 란? 기업이 자체적으로 보유한 전산실 서버에 직접 설치해서 운영하는 방식 클라우드 컴퓨팅 기술이 나오기 전 까지 기업 인프라 구축의 일반적인 방식이었다 정보의 보안성이 높다는 장점이 있고, 시스템을 증설하거나 구축하는데에 시간과 비용이 많이 든다는 단점이 있다 2. 가장 기본적인 서버의 구조 API 서버와 데이터베이스로 구축한다 API 서버에는 웹 프레임워크를 설치한다 데이터베이스에는 RDBMS를 설치한다 (필자는 Node.js/MySQL, API명세서는 GitBook을 사용) 3. 스토리지 서버(Storage Server)가 필요한 이유? 스토리지 서버는 파일을 처리하는데 사용 데이터베이스에는 파일을 저장하지 않고, 파일의 경로(주소, 이름, URI, Path)를..

IT 2020.09.29

자바의 클래스와 객체 Class/Object / Instance

1. 클래스 란? 사물의 특성을 소프트웨어적으로 추상화하여 모델링 한 것으로서 멤버변수와 메서드의 집합 2. 객체(Object / Instance) 란? 객체란 오브젝트 또는 인스턴스라고도 한다 객체는 클래스를 힙(heap) 메모리 영역에 할당한 것 자바에서는 new 키워드를 사용한다 3. 자바의 클래스가 메모리에 올라가는 실제 코드 예시 4. 위의 코드를 실행했으 시, 메모리의 상태 5. OOP 란? Object-Oriented Programming 의 약자 자바에서는 클래스가 OOP의 단위 사물의 특성을 소프트웨어적으로 추상화하여 모델링 한 것 장점은 클래스는 재사용이 가능하여 협업하기 쉽고, 클래스의 내부 구조를 알 필요없이 사용만 하면 쉽게 소프트웨어를 개발 할 수 있다. 이것이 캡슐화, 추상화 ..

IT 2020.09.29

Data Structure(JAVA Collections) Stack, Queue ...

1. Data Structure 란? 데이터는 2개 이상을 의미하고, 2개 이상의 데이터를 저장하는 구조를 Data Structure라고 한다 데이터를 입력, 수정, 삭제, 억세스 할 수 있어야 한다(CRUD) 2. Queue 란? 먼저 입력된 데이터를 먼저 처리하는 자료구조(Data Structure)이다 오래된 데이터를 먼저 사용한다(FIFO : First In First Out) 3. Stack 이란? 나중에 입력된 데이터가 먼저 사용된다(LIFO : Last In First Out) 안드로이드의 화면처리에 사용된다 4. JAVA에서의 자료구조 - Collections JAVA에서는 크게 List / Set / Map 으로 구성된다 List는 순서가 있다(주로 Stack이나 ArrayList를 사용..

IT 2020.09.25

REST API

1. REST 란? 서비스에 존재하는 모든 자원(Resource : 이미지, 유저정보, 포스팅정보, 동영상 등)에 대해 고유의 URI를 부여하여 활용하는 것 2. API 란? 운영체제(Windows, Linux, Mac)에서 돌아가는 프로그램을 만들기 위해 함수가 필요하고, 이 함수는 운영체제가 제공해준다. 즉, 이렇게 운영체제가 제공해주는 함수를 API라고 한다 현재는 서비스에서 다른 프로그램이나 서비스로 기능을 제공해주는 인터페이스를 API라고 한다 3. REST 의 구성 자원(Resource) : http://service.com/api/v1/users 라는 URI의 형태로 표시 행동(Method) : 행동에 따라 GET / POST / DELETE / PUT 4가지를 주로 사용 데이터(Messag..

IT 2020.09.25

프로세스, 쓰레드, 쓰레드풀, 캐시 Proccess, Thread, Thread Pool, Cache

1. 프로그램(Program)이 실행되는 과정 프로그램은 하드디스크(PC) 또는 플래시메모리(폰)에 저장되어 있다 PC의 경우 더블클릭하고, 폰의 경우 탭 하면 저장되어있는 프로그램이 메모리로 올라온다(로딩된다) 이것을 프로세스(Process)라고 하며, CPU가 메모리에 올라온 프로세스를 실행시킨다 2. 쓰레드(Thread) 란? 하나의 프로세스는 기본적으로 한개의 쓰레드를 가진다 쓰레드는 동시에 작업할 수 있는 일의 단위이다 예를들어, 웹 브라우저 에지 프로그램을 실행시키면 1개의 쓰레드가 생성되고, 이미지를 가져오는 작업, 유튜브 음악을 듣는 작업 등의 여러 작업은 해당되는 쓰레드가 생성되어 실행된다 3. 쓰레드 풀(Thread Pool) 이란? 네트워크로 이미지를 가져온다고 해보자. 이미지를 가져..

IT 2020.09.24

안드로이드 프래그먼트 Android Fragment

1. 액티비티와 프래그먼트는 무엇인가? 액티비티는 하나의 화면에 매칭되는 하나의 클래스이다 액티비티는 안드로이드에서 관리하는 최소한의 단위이다 프래그먼트는 액티비티 안에서 동작한다 하나의 액티비티는 여러 프래그먼트 가질 수 있다 2. 프래그먼트는 왜 생겼을까? 한번의 개발로, 여러 해상도의 기기에 맞게 화면 구성을 조합할 수 있도록 하기 위해서이다 3. 액티비티와 프래그먼트의 라이프 사이클 액티비티는 onCreate() 메소드에서 setContentView 메소드로 화면을 생성한다 프래그먼트는 onCreateView() 메소드에서 화면을 생성한다 프래그먼트는 액티비티 안에 들어가는 것이므로 액티비티가 생성되고 나서 프래그먼트를 만들어 화면에 표시한다 4. 만약, A프래그먼트가 화면에 보인 상태에서 다른 ..

IT 2020.09.23

Firebase FireStore

1. 파이어 스토어를 사용하는 이유? 안드로이드 개발자가 AWS, GCP 를 이용한 서버 개발없이 안드로이드 소스코드 내에서 바로 데이터를 데이터베이스에 저장할 수 있기 때문에 사용한다(서버 개발자 불필요) 2. 파이어 스토어란? 파이어스토어는 NOSQL이다! 테이블에 해당되는 Collection이 있다! Collection에는 데이터를 저장하는데, 그것을 Document라고 한다! Document는 Key, Value로 구성되어있다! 3. 안드로이드에서 파이어베이스 연동 방법 안드로이드 스튜디오에서 빈 액티비티 생성 후 상단의 Tools에서 파이어베이스 선택 build.gradle에 파일의 dependencies에 라이브러리가 추가된다 4. Java에서 Map을 사용하는 이유? Java에서 Key, V..

IT 2020.09.22