기본 콘텐츠로 건너뛰기

RECOMMEND

REST, REST API, RESTFUL API

최근 글

MSA (Micro Service Architecture) 기본구성, 구조설계

MSA (Micro Service Architecture) 기본구성, 구조설계 출처 : Medium  https://medium.com/@yesesyo [요약]     - 독립적 배포 가능한      - 스스로 돌아 갈 수 있는 작은 서비스     - 물리적으로 분리된 서비스이지만, 논리적으로는 하나의 어플리케이션처럼 동작     - 서비스끼리 분리되어 있기 때문에 성능, 트랜젝션 관리, DB무결성 이슈는 가장 주의해야할 요소 [장점]     개별 배포 및 무중단 배포 가능 (독립성)     개별 배포가 가능하다는것은 요구사항을 신속하게 반영하여 빠르게 배포할수있다는 효과를 가져옴     특정 서비스에 대한 확장성이 용이함     장애가 전체 서비스로 확장될 가능성이 적음     부분적 장애에 대한 격리가 수월함     신기술의 적용 유연     서비스를 여러가지 언어로 개발/운영 가능 [단점]     전체 서비스가 커짐에 따라 그 복잡도가 기하급수적으로 늘어날 수 있음     서비스 간 호출 시 API를 사용하기 때문에, 통신 비용이나, Latency가 그만큼 늘어남     서비스가 분리되어 있기 때문에 테스트와 트랜잭션의 복잡도가 증가하고, 많은 자원을 필요로 함     데이터가 여러 서비스에 걸쳐 분산되기 때문에 한번에 조회하기 어려움     데이터의 정합성 또한 관리하기 어려움 [MSA 구축 필수요소]     1) Service Discovery         각 서비스들의 네트워크 위치 정보와 가용 상태를 관리할 수 있는 서비스 레지스트리(Service Registry)를 둠             클라이언트가 서비스 레지스트리에게 가용 상태에 있는 서비스의 네트워크 위치 정보를 질의             서버사이드 디스커버리 / 클라이언트사이드 디스커버리 로 구현방식이 나눠짐                 클라이언트사이드 디스커버리      

서버간 ssh-key를 사용한 로그인 환경 구축하기

[개요] A서버에서 B서버에 ssh 또는 scp 명령을 사용한 원격지 접속을 할 때 실 패스워드를 사용하지 않고 ssh-key 를 사용한 공개키 로그인 인증을 통해 접속하도록 함 [환경] 출발지 : A서버 계정 : auser 계정홈 : /part1/auser 도착지 : B서버 계정 : buser 계정홈 : /part1/buser [절차] 1. 출발서버(A서버) ssk-key 생성   $ ssh-keygen -t rsa 2. 권한 체크 700 : drwx------ : /part1/auser/.ssh/ 600 : rw------- : /part1/auser/.ssh/id_rsa 600 : rw------- : /part1/auser/.ssh/id_rsa.pub 만약 위와 같은 권한으로 되어있지 않을경우 권한 변경 필요 (왜? ssh-key 인증에 필요한 환경에 소유자 외에 쓰기권한이 있을경우 처리불가) chmod 700 /part/auser/.ssh chmod 600 /part/auser/.ssh/id_rsa chmod 600 /part/auser/.ssh/id_rsa.pub 3. 도착서버(B서버) authorized_keys에 출발서버 공개키 등록 A서버 : cat /part1/auser/.ssh/id_rsa.pub B서버 :  - 열고 : vi /part1/buser/.ssh/authorized_keys  - A서버에서 확인한 키값을 맨 아랫줄에 붙여넣기  - 좀더 스마트하게 작업할수도있겠지만.. 지금 바빠서 다른 붙여넣기 방법은 다른 블로그를 확인!!!  - .ssh 폴더랑 authorized_keys 파일이 없으면 ? mkdir 이랑 touch명령으로 만들어도 됨  - B서버도 마찬가지로 .ssh 디렉토리랑 authorized_keys는 700 으로 권한 변경 해주자  - 또한! buser 계정에 홈에 해당하는 /part1/buser/ 디렉토리도 소유자 외에 쓰기권한이 없어야 한다 (7

flutter showDatePicker locale 설정을 통해 한국어로 표현되게 하는방법

제목 그대로.. showDatePicker 를 사용하면 아래와같은 형태로 사용할수가 있는데 Future<Null> _selectDate(BuildContext context) async { final DateTime picked = await showDatePicker( context: context , initialDate: selectedDate , firstDate: DateTime ( 2015 , 8 ) , lastDate: DateTime ( 2101 ) , initialDatePickerMode: DatePickerMode. year , //locale : const Locale('kr') ) ; if (picked != null && picked != selectedDate) setState(() { selectedDate = picked ; debugPrint( "_selectDate" ) ; debugPrint(selectedDate.toString()) ; }) ; } 위 소스처럼 locale을 직접 할당하면 datePicker 로딩부터 실패한다 그래서 해결방법을 찾아본 결과 아래와같이 MyApp에서 locale설정을 해주면 이곳에 설정한 locale옵션을 따라서 datepicker의 언어설정이 바뀌게된다 class MyApp extends StatelessWidget { @override Widget build (BuildContext context) { return MaterialApp ( title: 'Flutter Demo

java version 특징 (jdk, java, version)

1996 JDK 1.0 / Java 1 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 1997 JDK 1.1 / Java 1 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 1998 JDK 1.2 / Java 2 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 2000 JDK 1.3 / J2SE 1.3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 2002 JDK 1.4 / J2SE 1.4 / JRE 1.4 java version 1.4.0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 2004 JDK 5 / Java SE 5 / JRE 5 java version 1.5.0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 2006 JDK 6 /