본문 바로가기

전체 글

[구조패턴] 퍼사드(fasade) 패턴과 slf4j 퍼사드(fasade) 패턴이란 - 여러 라이브러리, 프레임워크 또는 클래드들의 복합한 집합을 단순화시켜주는 인터페이스를 제공하는 구조의 디자인 패턴 대표적인 예로는 스프링 부트의 slf4j 가 있다. 퍼사드 패턴 적용의 장점 - 대표적으로 퍼사드 패턴이 적용된 프레임워크인 slf4j는 log4j, log4j2, logback 등 을 코드 수정 없이 적합한 프레임워크를 slf4j 만의 인터페이스를 통해 info, error 등의 로그 기능을 통합하여 단순하게 사용할 수 있게 해준다. 따라서 slf4j 를 사용하여 Spring Boot 의 로깅 시스템을 구현한다는 가정을 했을경우 log4j2를 사용도중 심각한 보안 이슈가 터졌을 경우 자바 또는 코틀린 코드 수정이 없이 설정 파일 추가만으로 logback 으.. 더보기
[AWS] 마이크로 서비스 환경 구축을 위한 EC2 + Route53 + Load Balancer + ACM(SSL) 사용 'AWS로 구현하는 MAS와 컨테이너 오캐스트레이션' 강의를블로그를 통해 구매하시는 분들에게만 10%할인 중입니다.이미지를 클릭하고, 아래 쿠폰번호를 입력해 주세요!16861-259843d6c2d7   요청 구조 및 프로세스클라이언트 -> Route53 도메인으로 요청Reoute53 도메인에 설정된 Load Balancer로 포워딩Load Balancer의 리스너에 정의된 SSL 인증서를 통에 인증Load Balancer의 리스너에 정의된 대상 그룹에 규칙에 맞게 요청대상(EC2)은 클라이언트 요청에 맞게 응답 AWS 환경 구성 로드 밸런싱 대상 그룹 생성EC2콘솔에서 로드 밸런싱 탭의 대상 그룹에 Create target group 버튼 클릭 대상 그룹의 타입은 VPC 내의 인스턴스로 선택 포트는 로드.. 더보기
[Flutter] 매우 쉽게 Flutter 푸시 메세지(FCM) 사용하기 'AWS로 구현하는 MAS와 컨테이너 오캐스트레이션' 강의를블로그를 통해 구매하시는 분들에게만 10%할인 중입니다.이미지를 클릭하면 강의로 이동할 수 있습니다.아래 쿠폰번호를 입력해 주세요!16861-259843d6c2d7  시작 전 프로젝트에 firebase 설정 [FlutterFire] 아주 쉽게 Flutter프로젝트 Firebase 설정 (with firebase CLI)Firebase CLI 설치 및 로그인 curl -sL https://firebase.tools | bash 위 명령어를 입력하고 password를 입력하면 cli가 설치된다. version 명령어를 통해 설치가 되었는지 확인 firebase login firebase logi..kanoos-stu.tistory.com FCM  .. 더보기
[Flutter] 아주 간단하게 firebase google 로그인 구현 스프링 부트를 사용한 예제 애플리케이션을 AWS를 통해 모노리식에서 MSA로 MSA에서 다시 컨테이너 오케스트레이션으로 개선해나가는 과정을 모두 담은 강의를 출시하게 되었습니다.강의 과정에서 15개 이상의 서비스를 사용하게 됩니다.그래서 클라우드 개발자가 아닌 프론트엔드 개발자, 백엔드 개발자, 학생 분들도 AWS의 폭넓은 지식을 쉽고 빠르게 습득할 수 있는 기회가 될 수 있다고 생각합니다!배너를 누르면 강의로 이동됩니다.커리큘럼을 보시고 관심 있으신분들은 수강해주시면 감사드리겠습니다!블로그를 통해 구매하시는 분들에게만 10%할인 쿠폰을 증정중입니다.꼭 아래 쿠폰번호를 입력해 주세요!16861-259843d6c2d7   *firebase 프로젝트 설정 안 되어 있다면 [FlutterFire] 아주 쉽게 .. 더보기
[FlutterFire] 아주 쉽게 Flutter프로젝트 Firebase 설정 (with firebase CLI) 'AWS로 구현하는 MAS와 컨테이너 오캐스트레이션' 강의를블로그를 통해 구매하시는 분들에게만 10%할인 중입니다.이미지를 클릭하면 강의로 이동할 수 있습니다.아래 쿠폰번호를 입력해 주세요!16861-259843d6c2d7   Firebase CLI 설치 및 로그인curl -sL https://firebase.tools | bash위 명령어를 입력하고 password를 입력하면 cli가 설치된다.version 명령어를 통해 설치가 되었는지 확인 firebase loginfirebase login 명령어를 입력하면 위의 로그와 함께 로그인할 계정 선택 화면이 나와 간편하게 로그인을 할 수 있다.로그인 완료 Firebase CLI 참조  |  Firebase Documentationfirebase.googl.. 더보기
[Flutter] Dart에서 const와 final의 차이점 const 와 final 둘은 값을 한 번 지정하게 되면 바꿀 수 없다는 공통적인 속성을 가지고 있다. 하지만 다른점이 존재하는데 가장 큰 차이점은 생성 시점이라고 볼 수 있다. const 위의 코드와 같이 인스턴스를 생성하는 코드를 만났을 때 일반적인(const가 아닌) 인스턴스화 시 무조건 새로운 인스턴스를 생성한다. 하지만 const로 선언된 변수 또는 위젯의 경우 생성을 앱이 시작될 때 메모리에 같이 등록하여 해당 생성 시점에 실질적으로 새로 생성되는것이 아닌 기존에 메모리에 올라가있던 인스턴스를 매번 재사용하게 된다. setState 등 상태 변경에서 새로운 인스턴스를 생성하고 기존의 인스턴스는 메모리에 남게 되어 일정 시점에서 GC에 의해 지워지는데 빈번한 생성은 메모리 효율을 저하시킬 수 있.. 더보기
[Flutter] GetX를 사용해야할 이유3 - 종속성 관리(의존성 주입, 바인딩) GetX의 의존성 주입 flutter에도 여러가지 의존성 주입 라이브러리가 있지만 GetX에서도 의존성 주입을 지원한다. 페이지를 실행할 때 의존성 주입 방법 GetX를 통해 페이지를 실행할 때 의존성을 주입하는 방법은 기본적으로 4가지를 지원한다. 해당 주입 방법들은 페이지가 종료될때 GetX에서 자동으로 인스턴스를 모두 메모리에서 날려준다. [GETX] Instance "DependencyController" has been created [GETX] "DependencyController" deleted from memory 위의 로그와 같이 생성될때와 삭제될 때 GetX에서 로그를 남겨 확인이 가능하다. Get.put() 해당 페이지가 시작될때 인스턴스가 생성된다. Get.to(const Next.. 더보기
[Flutter] GetX를 사용해야할 이유2 - 상태관리 상태 관리 GetX의 상태관리와 비슷한 라이브러리로 Provider가 있다. 상태 관리는 ui등과 같은 부분에 특정 값의 변화를 특정 시점에 반영 및 상태를 알려줄 수있다. GetX의 반응형 상태관리 GetX의 기능을 사용하여 간결한 문법으로 값의 변경을 리액티브하게 반영할 수 있다. 리액티브 변수 선언 class ReactiveController { RxInt num = 0.obs; RxDouble _double = 0.0.obs; RxString _string = "".obs; RxList _list = [0].obs; Rx _object = Test(0, "").obs; // 값 변경 void increaseValue() { num++; // == num(num.value+1); } // 객체의 내.. 더보기