분류 전체보기(18)
-
나만보려고 쓴 데이터베이스 정규화 - 1
보호되어 있는 글입니다.
2024.02.20 -
Why immutable?
보호되어 있는 글입니다.
2023.12.17 -
Offset 방식의 페이지네이션
보호되어 있는 글입니다.
2023.12.06 -
웹 서버 와 웹 애플리케이션 서버
웹 서버와 웹 애플리케이션 서버는 웹 환경에서 중요한 역할을 하는 두 가지 주요 컴포넌트입니다. 이 두 요소는 각자의 역할과 책임을 가지며, 웹 어플리케이션의 구조와 성능을 개선하기 위해 협력합니다. 웹 서버 (Web Server) 웹 서버는 클라이언트(일반적으로 웹 브라우저)로부터 HTTP 요청을 받아 정적인 콘텐츠(HTML, CSS, 이미지 등)를 제공하는 역할을 합니다. 주로 정적인 파일을 처리하며, 동적인 콘텐츠를 처리하기 위해 웹 애플리케이션 서버와 협력합니다. 몇 가지 주요 특징은 다음과 같습니다 정적 파일 제공: 주로 HTML, CSS, 이미지 파일과 같은 정적 파일을 클라이언트에 전달합니다. 기본 프로토콜은 HTTP: 주로 HTTP 프로토콜을 사용하여 클라이언트와 통신합니다. 간단한 요청-..
2023.12.06 -
[Flutter] Vertical scroll tabbar 을 만들어보자
오늘 만들어볼 ui는 스크롤이 인덱스 아이템을 넘어갈때마다 tabbar 아이템이 자동으로 변경되는 ui이다. 필요한 것은 다음과 같다. 1. 각 인덱스 별 아이템의 높이를 동적으로 구한다. 2. 스크롤 된 offset 이 인덱스 별 아이템의 높이를 벗어날때마다 tabbar 의 아이템을 변경해준다. 3. tabbar 의 아이템을 tap 하면 해당 인덱스의 아이템으로 스크롤시켜준다. 해당 ui를 구현하는데 있어서 가장 까다로웠던것이 두가지가 있었는데 그중 첫번째가 아이템의 높이를 동적으로 구해주는 것이었다. 다행히도 Globalkey 를 이용하여 Widget의 Renderbox 에 접근해 크기를 구할 수 있었다. final ancestor = context.findRenderObject(); // 부모 위젯..
2023.06.05 -
[Flutter] Expandable bottom sheet dialog 를 직접 만들어보자
오늘 만들어 볼 ui 는 Expandable bottom sheet dialog 이다. 위 그림처럼 드래그를 했을때 드래그 한 만큼 길이가 늘어나거나 줄어드는 인터렉션을 가진 ui 이다. 해당 ui를 만들기 위해서 필요한 것은 다음과 같다. 1. 드래그 이벤트가 발생할때마다 dy 차이(delta dy) 를 BottomSheetContainer 의 height 에 더해준다 2. 사이즈를 최소 미만 또는 최대 초과 할 수 없도록 한다. 3. 드래그 이벤트가 끝났을 때, 설정된 기준점에 도달했다면 사이즈를 최대로 늘리고 그렇지 않다면 최소로 줄인다. 첫번째로, delta dy 를 BottomSheetContainer 의 기존 height 값에 더해주면, 드래그 하는만큼 컨테이너의 height 도 늘어남으로 ..
2023.06.01