본문 바로가기

분류 전체보기188

베이비프렌즈, 투자까지 받은 앱인데 왜 사라졌을까? 미래에 내가 사용할 애플리케이션을 서칭하다. MBTI 'N'의 성향이 강한 나는, 갑자기 이런 생각을 한 적이 있었다. '내가 만약 결혼을 한다면 아이를 키워야 하는데, 나도 뭘 해야할 지 모르겠는데 아이를 위해 어떤 것을 해줘야 하지?'라는 나의 갑작스러운 상상력으로 미래를 생각하며 '육아 애플리케이션'을 찾아봤던 적이 있었다. '내가 만약 아이를 키운다면 일단, 아내와의 관계를 돈독하게 해야 하니까 미리 아내의 육아 불만을 알 수 있다면 대비할 수 있지 않을까?'라는 생각에 스토어에 서칭을 시작했다. 서칭을 하던 중 '주변 비슷한 또래 아이를 키우고 있는 엄마들과 함께, 각자 엄마들의 각자 유아 고민, 남편과 시댁 이야기, 육아에 대한 불만과 고민 등을 나누고 고민할 수 있는 커뮤니티 육아 앱'인 '.. 2023. 9. 24.
PM이란, 처음 PM이란 단어를 들었을 때, 나는 단지, 사람들이 인스타그램의 DM을 잘못 말한 건 줄만 알고 있었다. 그렇게 나는 무지했다. 그러나 공모전과 각종 프로젝트를 좋아하고, 많이 이끌어왔던 나로서 자연스럽게 PM이라는 직책을 맡고 있었다. 내가 지금까지 느낀 PM은 아래의 한 줄로 정의할 수 있을 것 같다. 'PM'은 여러 사용자의 입맛에 맞게 여러 재료들을 골라, 정한 레시피에 따라 요리를 하는 '주방장'과 같다. 1. 사용자의 입맛에 맞게. 어떤 프로젝트를 진행하는 목적은, 결국은 해당 프로젝트로 도출된 결과물을 누군가에게 보이기 위함, 사용시키기 위함이라고 생각했다. 그런데, 만약 프로젝트 산출물이 사용자의 입맛에 맛지 않는다면? 사용자들은 그 산출물을 맛보지 않을 것이다. 그렇기에 우선은 사용자.. 2023. 9. 17.
[Flutter] Text 노란색 밑줄 없애는 방법 | flutter text yellow underline 해결방법 1. DefaultTextStyle 위젯 사용 기존 코드 child: Text( '왜 노란색 줄이 뜨는가', style: TextStyle( fontSize: 20.0, fontWeight: FontWeight.w700, color: Colors.black, ), ), DefaultTextStyle 사용한 코드 DefaultTextStyle를 사용해 아래와 같이 코드를 작성하면 기존의 노란 줄이 사라진 것을 볼 수 있다. child: DefaultTextStyle( style: TextStyle( fontSize: 20.0, fontWeight: FontWeight.w700, color: Colors.black, ), child: Text('왜 노란색 줄이 뜨는가'), ), 기본골격 Defaul.. 2023. 5. 24.
[Flutter] unable to resolve class GradleException 에러 / build.gradle 에러발생 build.gradle에서 minSdkVersion을 바꾼다든지, build.gradle 파일을 수정하면 갑작스러운 에러를 발견할 수 있다. 아래와 같이 GradleException 부분에 'unable to resolve class GradleException @line 11, column 15.' 에러가 나타나는 것을 확인할 수 있다. unable to resolve class GradleException @line 11, column 15. 해결방법 GradleException를 FileNotFoundException로 변경해주면 된다. FileNotFoundException 2023. 5. 21.
BASE64 인코딩 디코딩 / BASE64 Encode Decode / BASE64 포멧이란 BASE64 인코딩이란 무엇인가? Base64는 이진 데이터를 ASCII 문자로 변환하는 인코딩 방식입니다. 이진 데이터는 컴퓨터가 이해할 수 있는 0과 1로 이루어진 형태이지만, 이를 텍스트 기반 시스템에서 사용하기 위해서는 ASCII 문자로 변환해야 합니다. Base64는 이를 가능하게 해주는 방법 중 하나입니다. BASE64를 왜 사용하는가? Base64는 주로 데이터 전송과 저장 시에 사용됩니다. 이진 데이터를 그대로 전송하거나 저장하면 데이터가 손실되거나 손상될 수 있습니다. 또한, 일부 네트워크 프로토콜은 ASCII 문자만 허용하므로 이진 데이터를 텍스트로 변환해야 합니다. Base64는 이러한 문제를 해결하기 위해 이진 데이터를 텍스트로 안전하게 변환합니다. BASE64로 인코딩(Encodi.. 2023. 5. 21.
[POSTMAN] 포스트맨 설치 및 사용법 / POSTMAN request 요청해보기 Contents 포스트맨(POSTMAN)이란? POSTMAN은 API 개발 및 테스트를 위한 인기있는 협업 도구입니다. 웹 기반으로 제공되며, 개발자들이 API를 디자인하고 문서화하며, 테스트하고 공유하는 데 사용됩니다. POSTMAN을 사용하면 간편하게 HTTP 요청을 생성하고, 응답을 검사하며, 테스트를 자동화할 수 있습니다. 포스트맨(POSTMAN)의 주요기능 API 개발: POSTMAN은 사용자가 직접 API를 디자인하고 작성할 수 있는 강력한 개발 환경을 제공합니다. 사용자는 REST, SOAP, GraphQL 등 다양한 유형의 API를 생성하고 편집할 수 있습니다. 테스트 자동화: POSTMAN은 API 엔드포인트에 대한 테스트를 자동화할 수 있는 기능을 제공합니다. 사용자는 다양한 테스트 케.. 2023. 5. 21.
[Flutter] JWT 토큰, Aceess Token, Refresh Token이란? Contents JWT (JSON Web Token)이란? JWT (JSON Web Token) 토큰은 인증과 정보 교환을 위한 업계 표준이다. JWT는 클라이언트와 서버 간의 안전한 방식으로 정보를 전송하기 위해 사용된다. 이 토큰은 JSON 형식으로 표현되며, 클레임(claim)이라고 불리는 정보를 포함하고 서명(signature)을 통해 검증된다. JWT (JSON Web Token) 구조 JWT 토큰은 아래와 같이 점( . )을 기준으로 세 가지 부분으로 구성한다. Hearder(헤더) . Payload(페이로드) . Signature (서명) Header(헤더) 토큰의 유형과 해싱 알고리즘을 포함한다. 일반적으로 "alg"라는 필드에 암호화 알고리즘(예: HMAC, RSA, 등)을 지정한다. P.. 2023. 5. 20.
[Flutter] 세션(Session)과 토큰(Token)의 차이점 및 정의과 특징 Contents 세션(Session)과 토큰(Token)은 사용자 인증과 상태 관리를 위한 보안 기술로 사용되지만 몇 가지 차이점이 있다. 아래에서 세션과 토큰의 정의와 그들 간의 차이를 비교해 보겠다. 세션(Session)이란? 정의: 세션은 서버 측에서 유지되는 상태 정보로서, 사용자 인증과 관련된 데이터를 저장하고 클라이언트와 서버 간의 연결을 유지한다. 특징: 서버 측에서 상태를 유지하고 관리한다. 클라이언트는 세션 ID를 통해 서버와 상호작용하고 세션 상태를 유지한다. 보안을 위해 세션 ID는 일반적으로 암호화되어 전송된다. 세션은 서버의 리소스를 사용하므로 서버 부하가 발생할 수 있다. 세션 ID가 서버에 저장되기 때문에 사용자 정보 노출될 위험이 없으며, 요청을 보내는 사용자가 누구인지 서버.. 2023. 5. 20.
[Flutter] showDatePicker 한국어 바꾸기 / DatePicker 데이트피커 한국어 변경 현재는 적용되지 않는 코드 아래 코드에 showDatePicker에 직접적으로 locale : const Locale('ko', 'KR') 을 주게 되면 showDatePicker() 로드부터 실패가 된다. 아래 코드처럼 showDatePicker에 locale을 설정하는 것이 아닌, MaterialApp에 전체적으로 언어를 설정해줘야 한다. Future _selectDate(BuildContext context) async { final DateTime? picked = await showDatePicker( context: context, initialDate: DateTime.now(), firstDate: DateTime(DateTime.now().year - 1), lastDate: DateTi.. 2023. 4. 28.