일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Flutter
- 기술면접공부
- JPA
- nestjs
- 프로그래머스
- JPA 공부
- JPA스터디
- 알고리즘공부
- 코테준비
- 카프카
- nestjs공부
- JPA예제
- 스프링공부
- Axon framework
- Kafka
- 기술공부
- 플러터 공부
- 스프링 공부
- DDD
- 플러터 개발
- 코테공부
- 스프링부트
- nestjs스터디
- 자바공부
- JPA공부
- querydsl
- 자료구조공부
- 스프링부트공부
- 스프링
- K8S
- Today
- Total
목록분류 전체보기 (715)
DevBoi
채팅 관련 웹 서비스를 개발했다. 다뤄보지 않은 프레임워크를 선택해서 극단으로 몰았던게 조금 후회되지만 무튼 관련 개발 내용을 정리해서 포스팅한다. 우선 개발한 서비스의 아키텍처는 아래와 같다. 그림은 귀찮으니 대충 1. Flutter web : 사용자가 사용하는 화면이다. 2. nestJs 포트 두개 (3000,8080) 을 기반으로 채팅과 기초정보를 제공하는 백엔드 프레임워크이다. 3. mongo : 비정형디비로 RDB를 쓰려다가 채팅에 특화된 디비를 쓰기로 했다. 4. mongo express : mongo디비를 볼수있는 콘솔이다. 5. fcm : 사용자가 백그라운드, 포그라운드 일때 메시지 알림을 웹푸시로 주거나 미수신 메시지를 카운트를 증가시킨다. 아래의 로직으로 간단하게 구현했다. 더 심도있는..
알람을 보내야하는 기능이 있는데, http로는 사용자 요청을 얻을 수 없다. 따라서, Https 세팅한다. 1. certbot 설치 sudo snap install certbot --classic 2. 인증서 발급 sudo certbot --nginx -d {도메인} 발급이 끝나면 아래와 같은 문구로 인증서 위치를 알려준다. Certificate is saved at: /etc/letsencrypt/live/rabbithole.gotdns.ch/fullchain.pem Key is saved at: /etc/letsencrypt/live/rabbithole.gotdns.ch/privkey.pem This certificate expires on 2024-07-04. These files will be u..
MySQL said: Too many connections 갑자기 잘 사용하던 RDS가 연결이 안됬다. 커넥션 풀에서 관리되는 커넥션에 대한 부족일 수도있고, 이미 닫힌 커넥션에 대한 유지로 인해 연결이 실패할 수도있고 미사용 커넥션이 너무 오래 살아있는 경우 일 수도 있다. 무튼 커넥션에 대한 max connection 수와 wait-timeout 에 대한 조정이 필요해 보인다. 1) 파라미터 그룹 생성 max_connections는 최소로 잡혀있지만, 이값을 300으로 변경한다. wait_timeout 도 180초로 변경한다. 이는 3분 정도이고, 이 기간동안 커넥션을 얻기 위해 대기한다. 이후 디비의 파라미터 그룹을 변경해서 재부팅해준다. 신규로 생성한 파라미터 그룹으로, 디비가 적용되고 재부팅 되..
1) 배경 EC2가 자꾸 죽었다. 프리티어를 문제없이 사용하다가, 특정 Docker 컨테이너 2개를 띄운 EC2가 자꾸 죽는것을 볼수있었다. 귀찮아서 미루다가 분석을 해보기로했다. 2) 분석 aws의 ec2프리티어였다. 사실 서버 인프라를 확장하면 된다. 그래서 운영이나 회사에서는 발생하지않았던, 새로운 경험이다. 적은 서버 스펙의 서버가 자꾸 죽을때 사용하면 좋을 기술 같다는 생각이 들은겸 리눅스 공부할겸 분석을 해보기로했다. 3) 문제 찾기 3-1) 시스템 로그 보기 별다른게 없었다. 시스템 로그는 부팅 중이나, 부팅후의 로그를 볼수있다. 부팅과정에서 제대로 안된다면 확인할때 유용하다. 3-2) 인스턴스 스크린샷 확인 서버가 기동중에 이유없이 다운되는 거기 때문에 인스턴스 스크린샷을 확인한다. 메모리..
흔히 말하는 키보드영역때문에 화면이 가리는 것이다. 가려진 화면만큼 이동하는게 아니라 키보드가 고정처럼 붙어버려서 입력창을 클릭하면 화면이 가려져서 아래와 같이 해결했다. 우선 입력하는 위젯을 크게 scrollview로 감싸줬다. SingleChildScrollView( child: NewMessages2( roomId: widget.chatResponse.id.toString(), userId: userProvider.userInfo.id.toString(), userName: userProvider.userInfo.name, ), ) 사실 이렇게 해도 되지만 해당 위젯의 build 최상위에 아래와 같은 부분도 추가해줬다. 해당 부분을 추가해야지 키보드가 올라왔을때 화면을 밀어준다. @override ..
최근에 채팅 관련 모듈을 개발하면서, StreamBuilder를 사용했다. 해당 사용할때 이슈가있었는데 해당 부분에 대해서는 아래와 같다. * 채팅 입력 * 채팅 내용 위와 같이 두개의 State를 가지는 위젯들이 있었다. 해당 채팅 내용을 입력할때, 키보드가 위로 올라가면서 화면을 가리는 이슈때문에, 해당 키보드 때문에 화면이 밀리면 다시 그려주게끔 개발을 해놨다. 해당 부분 때문에 StreamBuilder에서 계속 값을 재 connection을 시키려고했다. 해당 이슈로 인해, 조금만 클릭해서 progressbar가 돌았고, 나도 돌았다. 해결 방법은 생각보다 간단하다. 아래와 같이 stream으로 받아오는 변수를 밖으로 빼면 된다. 소스코드는 아래와 같다. import 'package:flutter..
잘 동작하는 서버가 갑자기 동작을 안한다. 특정 시간이 지나면 장애가 발생하는 것인데, 아래와 같이 인스턴스가 다름을 확인했다. 상태 검사가 이 EC2는 1개가 실패한것이다. 아래와 같이 로그를 확인했다. 특정 이슈로 보이는 부분을 발견했다. [[0;32m OK [0m] Finished [0;1;39mRecord successful boot for GRUB[0m. Starting [0;1;39mGRUB failed boot detection[0m... [[0;32m OK [0m] Started [0;1;39mSystem Logging Service[0m. [[0;32m OK [0m] Started [0;1;39mUser Login Management[0m. [[0;32m OK ..
앱에 광고를 달자 애드몹에 회원가입하고 프로젝트를 연결하는 법 등등은 그냥 보면 알수 있다. 정리를 해도, 사용자 인터페이스가 변경되면 의미가 없어서 패스 무튼, 애드몹의 가입 및 연동을 완료해서 앱 ID가 발급 되었다는 이후 부터 진행한다. 1. 플러터 의존성 추가 flutter pub add google_mobile_ads 2. aos, ios 설정 AOS -manifest.xml ... IOS - info.plist GADApplicationIdentifier [YOUR iOS APP ID] LSRequiresIPhoneOS SKAdNetworkItems SKAdNetworkIdentifier cstr6suwn9.skadnetwork SKAdNetworkIdentifier 4fzdc2evr5.ska..
앱의 아이콘에 대한 리소스를 자동으로 세팅해주는 라이브러리이다. 1. 아이콘 이미지를 assets하위에 세팅한다. 2. flutter dev환경에서 해당 라이브러리르 import 한다. flutter pub add flutter_launcher_icons --dev 3. ./flutter_launcher_icons.yaml 생성 및 해당 파일 내용 추가 flutter_icons: ios: true android: true image_path: "assets/images/app_icon.png" remove_alpha_ios: true 4. 라이브러리 실행 flutter pub run flutter_launcher_icons:main 해당 과 같이 하면, 아이콘이 정상적으로 등록되어, aos,ios에 맞게..
IOS 의 심사 과정은 굉~장히 빡세다. 특히 애플은 소셜 로그인이 달려있으면, 애플 로그인이 무조건 달려있어야 하고 로그아웃시 애플 과 연동을 끊었는지를 무조건 본다. 이에 애플 로그인 로그아웃을 정리한다. 애플 디벨로퍼 내용은 조금 어려울 수도있고, 복잡해 보이는데 크게는 그냥 3가지이다. Certificates,Identifiers,Key 이렇게 추가를 해주고 서로 매핑 시켜준다고 보면된다. [애플 로그인 하기] 애플 로그인 애플로그인은 뭐 기타 소셜 로그인과 같이 굉장히 쉽다. sign_in_with_apple: ^5.0.0 AppleDeveloper 설정 (Identifiers, key 생성하기) 이렇게 까지만 하면 일단, 애플 로그인을 위한 설정이 끝난다. 플러터 로그인 소스 나는 apple ..