본문 바로가기

분류 전체보기

(45)
Flutter 로드맵 - 2025 개발자 로드맵 제작자인 Kamran Ahmed의 플러터 로드맵입니다. 플러터 개발자 로드맵에서는 공부가 필요한 내용과 순서를 정리했는데요. https://roadmap.sh/flutter Learn to become a modern Flutter developerCommunity driven, articles, resources, guides, interview questions, quizzes for flutter development. Learn to become a modern Flutter developer by following the steps, skills, resources and guides listed in this roadmap.roadmap.sh
Throttle 과 Debounce 앱 개발과 프론트엔드 실제 서비스 개발을 하다보면, 정말 많이 필요하고 사용하게될 개념이다. Throttle 과 Debounce 모두, 무의미하게 무수하게 발생하는 이벤트를 막기 위한 기법이다.Throttle : 함수 실행 후 특정 기간 동안 추가 실행을 모두 취소 (특정기간동안, 맨 처음 실행된것만 실행)Debounce : 특정 기간안의 함수 실행을 모두 취소하고, 마지막에만 실행 (특정기간동안, 마지막 에 실행된것만 실행)  Throttlethrottle은 영어로 조르다, 목을 조르다라는 의미를 가지고 있다.이벤트의 목을 조른다(?)라는 느낌으로 일단 이해를 하는 것이 좋다.throttle 의 목적은 이벤트가 무수하게 발생하더라도, 일정 시간 동안 이벤트가 1번만 발생하도록 처리하는 것을 의미한다.보..
제네릭 <T> 를 사용할때, 착각하기 쉬운 경우 요즘은 컴포넌트화, 모듈화, 캐싱에 대한 관심이 지대하게 높다.이런과정들을 공부하는 과정에서 '제네릭' 에 대한 이해도가 높아야 좋은 퀄리티의 코드를 작성할 수 있다. 이번에는 그중 착각하기 쉬운 상황 1개를 설명하고자 한다.class Pagination { final List data; ... 보통 다양하게 대응하기 위해 제네릭을 사용하는데,위의 코드를 통해, 보통 T 에 itemModel 이 들어간다고 생각하면,class Pagination { final List data; ...이렇게 작성되어 있는 것처럼 동작하겠지 라고 생각하는 친구들이 많다. 맞다! 그렇게 동작한다.그런데, 여기서 더 나아가서class ItemModel { final String id; final String ..
Pagination 많은 데이터를 부분적으로 가져오는 기술 Pagination 특징쿼리에 해당되는 모든 데이터를 한번에 다 불러오지 않고 부분적으로 쪼개서 불러온다. 예) 한번에 20개씩쿠팡같은 앱의경우 수억개의 상품이 데이터베이스에 저장되어있는데 사용자가 상품 검색 화면을 들어갈때마다, 모든 상품정보를 서버에서 클라이언트로 전송할 필요가 없다.현대 클라우드 시스템은 데이터 전송에 돈이 든다!돈이 안들더라도 수억개의 데이터를 한번에 보내면 분명 메모리가 터질것이다!메모리가 터지지 않더라도 데이터 전송에 상당히 오랜 시간이 걸릴것이다!예시상품데이터를 20개씩 가져온다고 해보자맨아래 까지 스크롤 하고 더 가져올 데이터가 있다면 추가 요청 3. 21 ~ 40 번까지 의 데이터를 가져오게 된다 4. 가져와서 데이터가 붙으면 위의 ..
JWT JWT : Json Web Token을 먼저 이해하기 위해서는 세션과 토큰에 대해 먼저 알아야 한다.  세션과 토큰Session유저의 정보를 DB에 저장하고 상태를 유지하는 도구장점서버에 저장되서 노출 위험 X 단점요청이 있을때마다 매번 DB를 확인해야 한다.DB에 세션을 저장해야 해서,Horizontal Scaling(같은 서버를 여러개 복제시켜 트래픽을 분산)이 어렵다.⇒ Horizontal Scaling을 사용한다면, 세션을 중복저장해야 하는 문제가 있음⇒ Redis 캐싱 중앙화 하면 뭐 또 이 문제가 해결 될수도 있음..ㅋㅋㅋ  세션 로그인 요청클라이언트는 쿠키안에다가 세션을 저장해 놓는다. 세션 데이터 요청데이터 요청 + 쿠키를 같이 보냄서버에서 쿠키를 받아서 안에 있는 세션 검증세션 Flow ..
당신의 사이드 프로젝트를 위한 10가지 팁 이 글은 유튜브채널 Traversy Media의 영상 중 당신의 사이드 프로젝트를 위한 10가지 팁이라는 영상의 내용을 정리한 글입니다. 이 글(영상)에서는 사이드프로젝트를 위한 10가지 팁을 알려드리고자 합니다.이 주제로 이야기하는 이유는, 제가 정말 추천하는 팟캐스트인 syntax.fm에서 Kanye West 팬들의 Dating site를 사이드프로젝트로 개발한 사람이 소개되었습니다.(관련 한글기사)그는 전혀 기대하지 않았지만, 반응이 폭발적이었고 여러 미디어에도 소개가 되었다고 합니다.그는 대학을 나오지도 않았으며, 인터넷 강의와 유튜브 채널로만 코딩을 배웠습니다.이는 정말 굉장한 이야기고, 스스로 자신만의 무언가를 만드는 것이 가능하다는 것을 증명하는 좋은 예입니다.물론 많은 사이드프로젝트가 실패..
이미지 파일에 대한 이해 가끔, 우리는 무슨 이미지 저장양식을 골라야 할지... 무한 선택 회로에 놓인다.용량이 적을 수록 당연히 좋지만, 이미지를 표시할 때 적절한 포맷을 택하는 것이 여러모로 중요합니다.웹에서 사용하는 주 이미지 포맷은 JPEG와 PNG일 텐데, 그럼 둘 중에 뭘로 저장하는 게 좋을까요?JPEG → 복잡한 이미지나 사진
PNG → 단순한 이미지, 투명 표현이 필요한 이미지보통 이렇게 알고 있으며, 실제로도 그러하다. 일단 저렇게 나눠야 하는 이유는 JPEG와 PNG의 압축 방식이 다르기 때문입니다.아래 이미지는 겉보기엔 같아 보이지만 포맷이 다르며 용량도 다릅니다.확대해서 보면,  JPEG JPEG =  '사진'을 위한 이미지 포맷!픽셀 기반 이미지1개의 픽셀에 24비트 저장 ⇒ 즉, 2^24 = 16,777..
JavaScript - 02 기본타입 원시 타입(primitive type)은 다음과 같습니다.숫자(number)문자열(string)불리언(boolean)심볼(symbol) : ECMAScript 6부터 제공됨undefined객체 타입(object type)은 다음과 같습니다.객체(object) 숫자(number)자바스크립트는 다른 언어와는 달리 정수와 실수를 따로 구분하지 않고, 모든 수를 실수 하나로만 표현합니다.또한, 매우 큰 수나 매우 작은 수를 표현할 경우에는 e 표기법을 사용할 수 있습니다.var firstNum = 10; // 소수점을 사용하지 않은 표현var secondNum = 10.00; // 소수점을 사용한 표현var thirdNum = 10e6; // 10000000var fourthNum = 10e-6; /..