전체 글

개발 관련 내용 정리.
Flutter

Flutter SharedPreferences를 사용할 때 getInstance()를 사용하는 이유(Singleton 디자인 패턴)

궁금증 Flutter에서 영구적으로 기기에 데이터를 저장하기 위해 SharedPreferences 패키지를 사용한다. SharedPreferences를 사용할 때 인스턴스를 따로 생성하지 않고, getInstance()를 사용하는데 그 이유가 궁금했다. 해답 그 이유는 Singleton 디자인 패턴을 따르기 때문이었다. singleton 패턴 singleton은 '단독 개체', '독신자'라는 뜻 말고도 '정확히 하나의 요소만 갖는 집합' 등의 의미가 있다. singleton 패턴은 객체의 생성과 관련된 패턴으로서 특정 클래스의 객체가 오직 한 개만 존재하 terms.naver.com 싱글톤 디자인 패턴 : "특정 클래스의 객체가 오직 한 개만 존재하도록 보장한다. 즉 클래스의 객체를 하나로 제한한다." ..

Flutter

Flutter 플러터 앱 출시 후 인터넷 안되는 경우 (에뮬레이터는 잘 됨)

문제점 에뮬레이터에서는 문제가 없었는데 출시한 앱에서는 인터넷이 안되는 경우. 해결 android/app/src/main/AndroidManifest.xml 로 이동. uses-permission을 추가해준다. ... ...

Flutter

Flutter 플러터 AlertDialog pop error 처리

상황 AlertDialog에서 submit버튼을 누르면 pop 되면서 return 값이 반환되도록 코드를 짰다. 원하는 대로, submit 버튼을 누르면 pop 되면서 return 값도 잘 반환되었다. 문제 나는 상기 코드처럼 showDialog의 반환값을 기존 변수에 저장을 해주도록하였는데, 내가 의도한대로 submit 버튼을 누를 때는 반환값이 제대로 넘어왔지만, AlertDialog의 외부 영역을 클릭했을 시에는 당연하게도 return값이 넘어오지 않아 null 에러가 발생하였다. cf) AlertDialog는 Dialog 외부 영역을 클릭하면 pop된다. 해결 외부영역을 눌러서 pop될 때는 따로 변경사항이 저장되지 않는 것이 맞기 때문에, 이로 인해 null값이 발생하면 그냥 기존값 그대로 두도..

Node.js

Nodemon 노드몬 포트 충돌 에러 발생 시 해결

노드몬을 사용하여 서버를 재시작하다보면 가끔 발생하는 일이다. 나는 5001번 포트를 사용하고 있었고 에러가 발생하였다. 종료하고 다시 5001번 포트를 사용하려고 하는데 상기에러가 뜰 경우가 있다. 해결방법 해결방법은 프로세스를 강제 종료하고 다시 시작하면된다. lsof -nP -iTCP:5001 | grep LISTEN kill 670639 1. 5001포트 사용중이 프로세스 확인 2. 프로세스 kill

기타

윈도우11 모바일 핫스팟 인터넷 연결 안됨(해결완료)

가끔식 발생하는 일이지만 닥치면 너무 짜증나서 글로 정리해보았다. 마이크로소프트 상담내역 보면 얘네도 잘 모르는 것 같고, 명확한 해결방법도 안보이고 어쩌다 우연히 해결하였다. 내 환경. - PC에는 랜선으로 이더넷 연결 되어 있음. - 방에서 PC와 함께 노트북을 사용 중 - 거실의 wifi는 방문이 닫히면 너무 느리기 때문에 - PC에서 모바일 핫스팟을 켜서 노트북에서 와이파이로 접속해서 사용하려고 함. 문제 상황. - 평상시에 괜찮다가 가끔 인터넷 연결 안되는 현상이 발생. - 좀 더 디테일하게 적자면, 노트북에서 확인 했을 때 wifi 연결이 되어 있는 것 처럼 보임. - 그러나, 브라우저에서 접속하면 인터넷 연결 안됨. - 노트북의 문제인지 PC의 문제인지 확인해보려고 나의 아이폰으로 핫스팟 접..

Flutter

Flutter 로그인 기능 구현 (JWT, Flutter Secure Storage)

로그인 기능 로직 앱 실행 => Flutter Secure Storage 확인 => - If (토큰 존재) => 토큰 검증 => 로그인 성공 - else if(토큰 없음) => 로그인 시도 => 로그인 성공 => 토큰 발행 => Flutter Secure Storage에 토큰 저장. Flutter Secure Storage 사용 이유 일반적으로 기기에 영구 데이터를 저장하려고 할 때 SharedPreferences를 사용한다. 하지만, 유저의 로그인 관련된 정보는 민감한 정보이기 때문에 좀 더 안전한 저장방법으로 Flutter Secure Storage 선택. - iOS에서는 keychain이 - android에서는 KeyStore가 사용되어 안전하다. JWT 사용이유 모바일 앱 개발 할 때 일반적으로 ..

Dart

Dart 변수

변수 함수나 메소드 지역번수 안에서는 var를 사용하고, 보통 클래스 등 다른 곳에선 명시해줘. Dynamic 여러가지 타입을 가질 때 쓴다. 걍 js에서 var 같은거. dart의 var와는 다르다. dart의 var는 타입 변경 불가 null safety null을 참조할 수 없게 하는거. null 참조하면 런타임 에러 생김. 그렇기에 컴파일 에러로 처리해줘야해. ? => optional null이 되게 할 수도 있다. 단축해서 null이 아닐 때 처리를 할 수 있어. nico?.isNotEmpty; 하면 null 아닐 때만 처리해줌. final js의 const와 같음.바뀌지 않는 값. 타입 생략하고 가능. ex) final nico = "name"; late late은 final이나 var 앞에서..

Flutter

Flutter에서 WebRTC 사용하기(작성중)

flutter_webrtc | Flutter Package (pub.dev) flutter_webrtc | Flutter Package Flutter WebRTC plugin for iOS/Android/Destkop/Web, based on GoogleWebRTC. pub.dev * flutter_webrtc 패키지를 사용하였다. 1. 권한 추가 2. pubspec.yaml - dependencies

YJKDEV
YJK.DEV