전체 글 194

confd

confdconfiguration management toolguidedocs & sample backendconfiguration 데이터를 가지고 오는 backendetcdconsulvaultenvironment variablesfilerediszookeeperdynamodbrancherssm create the confdirconfd를 사용하기 위한 폴더를 생성sudo mkdir -p /etc/confd/{conf.d,templates} create a template resource configtemplate의 설정 파일파일의 template 설정과 저장될 데이터의 위치를 정할수 있다./etc/confd/conf.d/myconfig.toml[template]src = "myconfig.conf.tm..

인프라 2018.11.19

React Native #2 - Hello World

React Native #2 - Hello WorldReact의 기본 개념 JSX, Props, State에 대한 예제이다. 기본 View와 Text를 이용한 예제import React, { Component } from 'react';import { Text, View } from 'react-native'; export default class HelloWorldApp extends Component { render() { return ( Hello world! ); }} PropsCompoent의 Input 해당하는 Props를 이용한 예제import React, { Component } from 'react';import { AppRegistry, Text, View } from 'react-na..

React Native #1 - 개발 환경 셋팅

React Native #1. 개발 환경 셋팅 Install (Windows)1. Install NVMhttps://github.com/coreybutler/nvm-windows nvm listnvm install 11nvm use 11 2. install react native pacakgenpm install -g react-native-cli 3. install android studiohttps://developer.android.com/studio/ 4. Install android sdk (api 27) (2018. 11. 17 기준) android api 27 버전을 React Native는 지원을 한다. 5. Setting virtual deviceAndroid Studio에 포함된 And..

SOLID 개발 원칙

SOLID 개발 원칙 SRP (단일 책임의 원칙)클래스가 제공하는 기능은 하나의 책임을 수행하는 집중되어야 된다.코드의 가독성 항샹, 유지보수 용이책임 영역이 확실해지 때문에 한 책임의 변경에서 다른 책임의 변경으로 연쇄 작용을 용이해진다. OCP (개방 폐쇄의 원칙 : Open Close Principle)소프트웨어 구성요소 (컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려 있고, 변경에는 닫혀 있어야 된다는 원리요구사항 변경이나 추가사항이 발생하더라도, 기존 구성요소는 수정이 일어나지 않아야 되고, 쉽게 확장하여 재사용할수 있어야 된다.변경(확장)될 것과 변하지 않을 것을 엄격하게 구별을 하고 이 모듈이 만나는 지점을 인터페이스를 정의한다.구현에 의존하기 보다는 정의한 인터페이스에 의존하도록 코드를..

Programing 2018.11.16

MySQL Partition Table

MySQL Partition Table테이블에 들어오는 데이터를 별도를 테이블로 저장하는 기능, 하나의 테이블로 읽기와 쓰기가 가능하다.파티션 방법해시리스트키레인지 파티션을 사용하는 이유테이블의 너무 커서 인덱스의 크기가 물리적인 메모리가 훨씬 큰 경우데이터 특성상 주기적인 삭제 작업이 필요한 경우 (이력 데이터)단일 INSERT와 단일 또는 범위 SELECT의 빠른 처리인덱스가 커질수록 SELECT, INSERT, UPDATE, DELETE 작업이 느려지게 된다. 데이터가 10기가이고 인덱스가 3G 일때 대부분 데이터가 조회되는 것이 아니라 보통 데이터의 20~30%수준만 조회가 된다. 이럴때 자주 사용하는 데이터를 분리를 한다면 성능적으로 효과를 볼수가 있다. Create Table ExampleCR..

Database/MySQL 2018.11.05

Spring Retry

Spring RetryUse case내부서비스가 아닌 외부서비스와 연동메시지를 동시에 처리를 하면서 update시 생기는 낙관적인 락을 인한 로직의 실패메시지를 동시에 처리를 하면서 Insert시에 생기는 Duplicate 에러로 인한 로직의 실패Gradlecompile "org.springframework.retry:spring-retry:1.1.5.RELEASE" Enable Config@Configuration@EnableRetrypublic class AppConfig { ... } Retryable@Servicepublic interface MyService { @Retryable( value = { SQLException.class }, maxAttempts = 2, backoff = @Bac..

MySQL Unique Key

MySQL Unique Key데이터를 저장을 하거나 처리를 할때 중복으로 저장이 되는 경우가 있을 수가 있다이때 Unique Key를 설정을 통해 처리를 할수가 있다 Create Table QueryCREATE TABLE table( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(10) NOT NULL, PRIMARY KEY (id), UNIQUE INDEX `table_uk_01` (name)); ALTER QueryALTER TABLE table ADD UNIQUE INDEX` table_uk_01` (name) Tip 아닌 Tip데이터가 동시에 insert가 되는 경우에는 Duplicate 메시지가 발생이 된다.여러개의 동시에 들어가는 경우(Thread, 멀티 서버..

Database/MySQL 2018.10.29

RESTful API

RESTful APIREST(Representational State Transfer) Http MethodCRUD(Create, Read, Update, Delete)에 해당되는 MethodGET : ReadPOST : CreatePUT : Update DELETE : Delete REST의 특징Uniform InterfaceHTTP 표준만 만족시기면 어떠한 기술을 사용하던 가능한 인터페이스 스타일Stateless상태를 유지 않는 특성들어오는 요청만 메시지를 처리하면 되기 때문에 구현이 단순해 진다.Cacheable웹 표준을 그대로 사용하기 때문에 캐시를 사용할수 있다.Self-descriptivenessAPI 메시지 자체만 보고 API가 이해가 쉽다.Client-Server 구조 리소스의 표현 방법G..

Programing 2018.10.28