목록전체 글 (782)
코드로 우주평화
이번 글에서는 이전까지 개발한 Flutter 노트 앱에 노트 수정 기능을 추가하는 과정을 보여드리겠습니다. 기존 노트 앱에서는 수정 기능이 따로 없이 쓰기와 조회, 삭제 기능만 있었습니다. 이번에는 수정 페이지를 추가하고 수정 로직까지 구현해 보도록 하겠습니다. 수정 기능의 결과는 다음과 같습니다. - 수정 버튼을 누르면 노트 수정 화면으로 이동합니다.- 노트 수정 화면에서 내용을 수정한 후 우측 상단의 저장 버튼을 누릅니다.- 노트를 저장하면 노트 목록 화면으로 되돌아가며 내용이 수정된 노트가 보여집니다. 주요 구현 내용1. Enums: 수정 페이지 이름을 정의하는 PageName Enum 을 추가합니다.2. NoteModel: 노트 수정 시간을 나타내는 updatedAt 필드를 추가합니다.3. N..
이번 글에서는 기존의 인덱스 방식의 화면 전환을 Enum 과 GoRouter 를 사용하여 리팩터링 해보겠습니다. GoRouter란?GoRouter는 Flutter의 네비게이션을 간편하게 관리할 수 있도록 도와주는 패키지입니다. URL 기반의 라우팅을 지원하며 화면 전환과 관련된 복잡한 과정을 간단히 처리할 수 있습니다. 리팩터링 이유기존의 탭 전환 방식에서는 네비게이션을 인덱스로 관리했는데, 이렇게 인덱스로 화면 전환을 관리하면 화면이 추가되거나 순서가 변경될 때 수정이 번거롭습니다. 배열 안에 정의된 화면의 순서를 모두 외우고 있어야 개발이 가능하죠. 그렇기 때문에 이번 글에서는 Enum 과 GoRouter 를 이용하여 각 화면을 명확히 구분하고, 경로 기반의 전환으로 더 명확하고 유지보수하기 쉬운..
지난 글에서 Provider 패키지를 이용해 노트를 쓰고 저장하고, 목록을 조회하는 간단한 노트 앱을 만들었습니다. 하지만 노트를 쓰고 '노트 조회' 화면으로 이동하면 다시 '노트 쓰기' 화면으로 돌아갈 수 없었죠. 이번 글에서는 하단 네비게이션 바를 추가하여, '노트 쓰기', '노트 조회', '설정' 화면을 언제든지 이동할 수 있도록 구현해 보겠습니다. 아래 이미지는 네비게이션 바를 추가한 결과 화면입니다. 이런 네비게이션 바를 어떻게 만들 수 있는지, 구현 과정을 하나씩 살펴보겠습니다. 1. 하단 네비게이션 바 컴포넌트 구성네비게이션 바는 앱의 공통 UI 요소이므로 어느 하나의 view 에 속하지 않고. lib/components/bottom_navbar.dart 파일에 별도의 컴포넌트로 정..
책 [유혹하는 글쓰기]에서 스티븐 킹은 자신의 어린 시절 일화를 말합니다. 필요한 것이 드라이버 하나뿐이었다면 어째서 집을 빙 돌아 여기까지 연장통 전체를 힘드게 가져왔느냐고 이모부에게 물어보았다. "그건 그래. 하지만 말이다, 스티브. 일단 여기 와봐야 또 뭐가 필요할지 알 수 있지 않겠니? 연장은 전부 다 갖고 다니는 게 좋단다. 안 그러면 뜻밖의 일이 생겼을 때 김이 빠져버리거든" 스티븐 킹은 이 일화를 말하며, 글쓰기에서도 자기가 가진 최선의 능력을 발휘하려면 연장들을 골고루 갖춰놓아야 하며, 그 연장통을 들고 다닐 수 있도록 팔심을 기르는 것이 좋다고 말합니다. 저는 이것이 비단 글쓰기뿐만 아니라, 개발에도 마찬가지라는 생각이 들었습니다. 개발자에게, 특히 1인 개발자에게는 어떤 연장들이 필요..
이전 글: 2024.10.17 - [나는 이렇게 논다/글또 슬랙 봇 개발기] - 슬랙 봇이 보낸 메시지를 수정해봅시다 이전 글에서 슬랙 봇이 보낸 메시지를 수정하는 과정에 대해 설명드렸습니다. 그런데 이는 매우 특수한 상황에 대한 수정 방법이었죠. 아마 똑같이 따라서 구현하는 일은 없을 겁니다. 그래서 이번 글에서는 훨씬 쉬우면서도 모든 슬랙 메시지에 대해 수정할 수 있는 방법을 설명드리겠습니다. (일종의 AS 글인 셈이죠~🤭) 먼저, 간단하게 요약하자면 '수정할 메시지를 가져와 고칠 부분만 직접 수정하고 업데이트하는 것'입니다. 자 그럼 구현을 시작해 볼까요? (구현은 FastAPI 를 기준으로 설명합니다) 수정할 메시지 가져오기냅다 전체 코드부터 꽂고 시작하겠습니다.@router.get( "/mess..
까먹방지를 위해 적는 글. 1. gtag 적용하기gtag 적용하는 방법은 아래 링크 참고해주세요. (이 글에서는 생략!) https://coyo-hm.github.io/post/nextjs-gtaghttps://kimyanglogging.tistory.com/3 다만, 위 글은 Next.js 14 이전 버전인듯 합니다. Next.js 14 에서는 _app.tsx 파일이 없으므로 Script 선언은 layout.tsx 에서 해주시면 됩니다. 2. gtag config 에 user_id 넣기저의 경우 authenticate.ts 파일을 만들어 로그인 로직을 이곳에 두었습니다. // authenticate.ts import { GA_KEY } from "./gtag";export async function ..
안녕하세요. Flutter 에 입문하여 앱을 출시해 보고자 간단한 노트 앱을 만들고 있습니다. 이번 글에서는 노트를 쓰고, 노트를 조회하는 간단한 기능을 Provider 패키지를 이용하여 구현해보겠습니다. 먼저 구현 결과물부터 보여드리겠습니다. 처음에는 노트를 작성할 수 있는 노트 쓰기 화면이 나타나고, 저장을 누르면 노트 목록 화면으로 이동합니다. 이때, 휴지통 아이콘을 누르면 노트를 지울 수 있습니다. 그럼 이제 프로젝트를 시작해 봅시다! 플러터 프로젝트 생성먼저 프로젝트를 생성해야겠죠. 처음에 프로젝트를 생성할 때 사용하는 명령어는 다음과 같습니다.flutter create {프로젝트 이름} 그런데 이 경우에는 프로젝트의 도메인 설정이 `com.example.{프로젝트 이름}` 으로 표시되더라고..
슬랙 봇이 어떤 채널에 메시지를 보냈다고 가정해 봅시다. 그런데 만약, 메시지에 문제가 있어 봇이 보낸 메시지를 수정해야 한다면 어떻게 해야 할까요? 아래는 슬랙 봇의 메시지를 수정한 모습입니다. 이번 글에서는 슬랙 봇의 메시지를 수정하는 경우와 그 방법에 대하여, 또봇(글또 슬랙 봇)의 구체적인 사례로 설명드리겠습니다. 메시지 수정이 필요한 상황제가 속해있는 글또라고 하는 커뮤니티는 개발자들이 글을 쓰고 봇을 통해 제출하는 커뮤니티입니다. 현재 10기의 멤버 수는 640명이죠. 커뮤니티 인원 수가 많다보니 글을 실수로 잘못 제출하거나 불가피하게 블로그 링크가 바뀌어 메시지 수정이 필요한 때가 종종 생깁니다. 예를 들어, 다음과 같은 상황입니다. 글또 커뮤니티는 글을 제출하면 아래와 같은 형식으로 봇이..
슬랙 API를 사용하면서 동일한 요청을 반복적으로 해야 할 때가 있습니다. 예를 들어 슬랙의 특정 메시지를 조회하여 데이터를 가져오는 경우가 있을 수 있죠. 하지만 슬랙 API는 사용량 제한이 있기 때문에, 같은 요청을 반복하는 대신 캐싱을 통해 효율적으로 처리할 수 있습니다. 오늘은 aiocache 라이브러리를 사용해 비동기 함수에 대한 캐시 구현 방법을 소개해 보겠습니다. 문제 상황slack_sdk 에서 제공하는 AsyncWebClient 를 이용하여 특정 메시지의 댓글을 가져오겠습니다. 이를 위해서는 conversations_replies 메서드를 사용합니다. async def fetch_messages( client: AsyncWebClient, channel_id: str, t..
인사이트사용자가 다른 사용자를 불러올 수 있는 구조를 만들자.사용자가 서비스를 사용할 때, 다른 사용자가 호기심을 갖게 만들자.유용하다는 감각은 정량적인 것이 아니라 감정이다. 도메인에 따라 사용자의 기본 감정을 파악하여 제품에 반영해야 한다.초대장 전략은 초기 안정적인 서비스 운영과 희소성을 높이는 전략이다.친구와 함께할 수 있는 기능과 혜택으로 효용을 높이고 입소문을 유도하자.문제가 발생하면 현재 가진 정보를 공유하고 해결책을 제안할 것. 이것은 위기를 신뢰 자산으로 바꾸는 방법이다.몬조 : 구글이 투자한 영국 디지털 은행, 입소문으로 ‘돈’의 관념을 바꾸다 몬조 : 구글이 투자한 영국 디지털 은행, 입소문으로 ‘돈’의 관념을 바꾸다롱블랙 프렌즈 L 최근 구글이 투자한 회사들을 보다가, 흥미로운 이름..