본문 바로가기

전체 글

(271)
[백엔드] HTTPS 설정(AWS EC2, Routes 53+Nginx+Node.js) 내가 나중에 다시 보기 위해 작성하는 글 [백엔드] Nginx 개념 및 설정 방법 Nginx Nginx는 로드 밸런스 처리에 특화된 웹 서버 프로그램이다. Nginx를 서버 앞 단에 두어 Express가 사용하는 실제 포트를 숨기고 Nginx의 80번 포트를 통해 Reverse proxing 함으로써 보안 이슈를 방지하 bb-library.tistory.com 1. 가비아에서 구입한 도메인을 AWS Routes 53에 등록 호스팅 영역 생성 NS(Nameserver)의 주소 4개를 구입한 가비아의 네임서버에 등록 레코드 생성: A타입, 도메인, Elastic IP 입력 EC2 보안규칙 인바운드에서 80(http), 443(https) 열기 2. Nginx 설정 [백엔드] Nginx 개념 및 설정 방법 N..
[Flutter] RxDart 사용과 PublishSubject, BehaviorSubject 개요 RxDart는 Dart를 리액티브 프로그래밍이 가능하게 하는 라이브러리이다. 이번 포스트에서는 RxDart에서 생산 주체인 Subject와 위젯의 StreamBuilder를 활용하는 방법을 간단하게 소개한다. 추가로 PublishSubject와 BehaviorSubject도 소개한다. Bloc.dart class Bloc { List mStocks = []; BehaviorSubject _subjectMyStockList; Bloc() { _subjectMyStockList = BehaviorSubject.seeded(mStocks); } get myStockObservable => _subjectMyStockList.stream; insertFromMyStock(MyStock item) { mSt..
[Flutter] isolate(compute)를 활용한 백그라운드에서 작업하기 개요 웹이나 로컬에서 대량의 데이터를 가져와 파싱하는 작업을 메인 쓰레드에서 진행할 시 UI가 버벅이거나 움직이지 않는 현상이 앱에서 종종 발생한다. 기존 안드로이드에서는 코루틴이나 RxJava를 통해 워커 쓰레드에서 이러한 작업을 처리했다. Flutter에서는 dart의 isolate을 활용한 compute 메서드를 통해 이 백그라운드에서 작업을 수행하여 화면의 버벅임이나 중단을 줄일 수 있다. 먼저 아래는 Flutter 공식 문서에서 compute를 활용하는 예시이다. 응답의 body를 파싱하여 Photo 리스트로 변환하는 작업을 진행한다. // 응답 결과를 List로 변환하는 함수. List parsePhotos(String responseBody) { final parsed = json.decod..
안드로이드 개발만 진행하던 사람의 Flutter 사용 후기 개요 2019년 6월부터 줄곧 안드로이드 개발만 진행해왔다. 처음엔 꽤 어려웠지만 이제는 어느 정도 적응해서 쉬운 구현사항에 대해서는 무리가 없다. 한쪽 플랫폼에서만 개발하다보니 자연스럽게 ios 개발도 하고 싶어졌다. 그 선택지는 ios 네이티브 앱 개발과 크로스 플랫폼 개발 두 가지로 나누어진다. 이 선택 과정에서 접근성과 호환성이 좋은 크로스 플랫폼 앱 개발을 시도해보는 것을 선택했다. React Native, Xamarin, Flutter 등 다양한 크로스 플랫폼 프레임워크가 존재하지만 그 중에서 Flutter를 선택했다. 이유는 간단하다. React Native 소스 코드를 접할 기회가 잦았는데 코드를 이해하기 매우 어려웠다. 그리고, 라이브러리 의존도가 높아 꽤 불안정해 보였다. 1. 플러터의..
[안드로이드] 데이터바인딩 깨알 팁 데이터 바인딩 시 기본 내장 라이브러리를 활용하고 싶은 경우 아래와 같이 import 태그를 통해 사용 가능하다.
[디버깅] 게시판에서 특정 게시글을 보고 다시 게시판으로 돌아올 때 보던 위치로 돌아오기 개요 현재 개발 중인 앱에 게시판 기능이 존재하고 게시판의 목록 중 특정 게시글을 선택하면 해당 게시글에 대한 자세한 정보를 노출한다. 위 앱은 AAC의 네비게이션 컴포넌트를 기반으로 작성되어 있다. [안드로이드] 프래그먼트 스택 (feat. 네비게이션) (tistory.com) 기존 위 포스팅에서 네비게이션 컴포넌트에서 스택 관리를 위해 게시판으로 돌아가는 GlobalAction의 popUpTo를 활용하여 특정 게시글에서 게시판으로 되돌아갈 때 특정 게시글 프래그먼트를 스택에서 제거하는 방법으로 구현했다. 위 구현의 문제점은 action을 통해 진입하면 프래그먼트를 새로 그리는 것으로 보인다. 다시 말하면, 특정 게시글을 보고 게시판으로 돌아갈 때 게시판의 내용이 전부 리로드된다. 이는 필요없는 작업이..
[디버깅] 맵뷰 위에 다른 레이아웃 그리기 네이버맵 API 사용 중 맵 위에 검색창을 그리려고 시도했는데 안보이는 문제가 발생함. 이는 단순히, 루트 레이아웃을 Relative layout으로 바꾸고, mapview를 xml에서 가장 상위에 작성하고 기타 다른 뷰는 linearlayout을 새로 정의하여 그 안에 작성하는 방식으로 구현하면 된다. android - Set a textview on top of a Map Fragment - Stack Overflow
[데이터베이스] 정규화 정규화 관계형 데이터베이스의 설계에서 중복을 최소화하는 방식으로 일관성 훼손을 방지하여 데이터를 구조화하는 프로세스를 정규화라고 한다. 데이터베이스 정규화의 목표는 이상이 있는 관계를 재구성하여 작고 잘 조직된 관계를 생성하는 것에 있다. 설계가 잘못된 테이블의 예시 위 테이블의 문제점은 아래와 같다. 하나의 테이블에 여러 주제가 표현 -> 학생, 교수, 교과목 여러 주제의 표현으로 인해 데이터 중복이 발생했다. 수정 이상(갱신/삽입/삭제이상) 현상이 발생할 수 있다. 수정 이상 수정 이상이란 데이터의 갱신/삽입/삭제 과정에서 원치 않는 결과가 초래되는 현상을 의미한다. 갱신 이상은 데이터의 값을 변경하는 작업에 의해 생기는 이상 현상이다. 위처럼 홍병근 학생의 주소 변경 시 일부 행들만 변경되어 데이터..