<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>rickylu-8.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Sat, 10 Feb 2024 04:36:29 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>rickylu-8.log</title>
            <url>https://velog.velcdn.com/images/rickylu-8/profile/e96b1ab7-ed8d-45df-b5a0-63c11219c60d/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. rickylu-8.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/rickylu-8" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[모두의 연구소 오름캠프 KDT 플러터과정 1기 후기]]></title>
            <link>https://velog.io/@rickylu-8/%EB%AA%A8%EB%91%90%EC%9D%98-%EC%97%B0%EA%B3%A0%EC%88%98-%EC%98%A4%EB%A6%84%EC%BA%A0%ED%94%84-KDT-%ED%94%8C%EB%9F%AC%ED%84%B0%EA%B3%BC%EC%A0%95-1%EA%B8%B0-%EA%B3%BC%EC%A0%95%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@rickylu-8/%EB%AA%A8%EB%91%90%EC%9D%98-%EC%97%B0%EA%B3%A0%EC%88%98-%EC%98%A4%EB%A6%84%EC%BA%A0%ED%94%84-KDT-%ED%94%8C%EB%9F%AC%ED%84%B0%EA%B3%BC%EC%A0%95-1%EA%B8%B0-%EA%B3%BC%EC%A0%95%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Sat, 10 Feb 2024 04:36:29 GMT</pubDate>
            <description><![CDATA[<h2 id="1-계기">1. 계기</h2>
<h3 id="어느날-우연치않게-오름캠프-k디지털-교육과정을-알게되었습니다-물론-제가-it교육을-배울-수-있는-국비부캠-등-온오프-창구가-많이-포진되어있다는-것을-알고있었지만-신빙성과연될까과-강사진의-신뢰도로-인해-수강할생각을-안하였는데-오름캠프-플러터교육은-비전공자인-제가-이름한번은-들어봤던-훌륭한-강사진으로-포진되어있고-과정퀄리티도-훌륭했고">어느날 우연치않게 오름캠프 k디지털 교육과정을 알게되었습니다. 물론 제가 IT교육을 배울 수 있는 국비,부캠 등 온.오프 창구가 많이 포진되어있다는 것을 알고있었지만 신빙성(과연될까)과 강사진의 신뢰도로 인해 수강할생각을 안하였는데 오름캠프 플러터교육은 비전공자인 제가 이름한번은 들어봤던 훌륭한 강사진으로 포진되어있고 과정퀄리티도 훌륭했고,</h3>
<h3 id="온라인-강좌가-트랜드에-맞춰-다양하며-정말-필요한-교육들로-편성되어있으며-더군다나-비용도-전액무료-그래서-안할-이유가-전혀-없는-오름캠프-k디지털-플러터-교육에-문을-두드리게됩니다">온라인 강좌가 트랜드에 맞춰 다양하며 정말 필요한 교육들로 편성되어있으며 더군다나 비용도 전액무료 그래서 안할 이유가 전혀 없는 오름캠프 k디지털 플러터 교육에 문을 두드리게됩니다.</h3>
<h2 id="2-온라인이지만-오프라인같은-다정함">2. 온라인이지만 오프라인같은 다정함</h2>
<h3 id="온라인-이지만-줌과-게더타운을-통해-최대한의-온라인의-단점을-극복하여-마치-오프라인느낌의-수업을-진행하며-학습분위기도-열정적이고-확실히-하나하나-제대로-가르쳐준다오프라인보다-더-꼼꼼히-알려주신다-라는-강사분들의-의지와-친절함-보였어요">온라인 이지만 줌과 게더타운을 통해 최대한의 온라인의 단점을 극복하여 마치 오프라인느낌의 수업을 진행하며 학습분위기도 열정적이고 확실히 하나하나 제대로 가르쳐준다?!오프라인보다 더 꼼꼼히 알려주신다 라는 강사분들의 의지와 친절함 보였어요.</h3>
<h3 id="무료교육도-모자라-수업이-없는-시간에-한하여-특강을-통해-몰랐던-개발지식을-한층-업그레이드-시켜주었고-긴밀한-소통을-통해-취업에-실질적으로-도움을주어-취업희망자들에게-취업성공률도-높여주었고-주말-스터디그룹을-장려하여-오름캠프-강남점을-공간으로-제공해주어-오롯이-공부에만-전념할-수-있는-컨디션을-만들어주는-세심함에-여러번-감동을-받았습니다">무료교육도 모자라 수업이 없는 시간에 한하여 특강을 통해 몰랐던 개발지식을 한층 업그레이드 시켜주었고 긴밀한 소통을 통해 취업에 실질적으로 도움을주어 취업희망자들에게 취업성공률도 높여주었고 주말 스터디그룹을 장려하여 오름캠프 강남점을 공간으로 제공해주어 오롯이 공부에만 전념할 수 있는 컨디션을 만들어주는 세심함에 여러번 감동을 받았습니다</h3>
<h2 id="3-찐-개발자-양성소">3. 찐 개발자 양성소</h2>
<h3 id="소수의-인원이다-보니-거의-개인교습받는-수준으로-질의응답에대한-피드백이-바로바로-나와-좋았고-정규수업이-끝나도-팀원을-편성해주어-팀원간-서로-의견을-주고받으며-공부하니-혼자할때보다-함께성장하는-시너지를-받으며-한주한주-성장하는-나자신을-보게되었던것같아요">소수의 인원이다 보니 거의 개인교습받는 수준으로 질의응답에대한 피드백이 바로바로 나와 좋았고 정규수업이 끝나도 팀원을 편성해주어 팀원간 서로 의견을 주고받으며 공부하니 혼자할때보다 함께성장하는 시너지를 받으며 한주한주 성장하는 나자신을 보게되었던것같아요.</h3>
<h3 id="수강-마지막쯤에는-팀or혼자서-앱을-완성하는-경험까지-하고-그-결과물을-가지고-발표도-직접하며-첨엔-과연될까라는-물음표에서-이젠-내가-정말-개발자가-될수있겠구나-라는-느낌표로-내자신이-변화되었고-비전공자인-제가-이번교육을-마치니-개발이라는-거-나도-할수있네-라고-할수있다는-확신이-생겼습니다">수강 마지막쯤에는 팀or혼자서 앱을 완성하는 경험까지 하고 그 결과물을 가지고 발표도 직접하며 첨엔 과연될까라는 물음표에서 이젠 내가 정말 개발자가 될수있겠구나 라는 느낌표로 내자신이 변화되었고, 비전공자인 제가 이번교육을 마치니 “개발이라는 거 나도 할수있네?” 라고 할수있다는 확신이 생겼습니다.</h3>
<h3 id="물론-아직도-많이-헤매이고-덤벙거리지만-중요한건-하나씩-나스스로-해결할수있다는-용기와-자신감이-생겨났습니다-그리고-실제로-같이-공부한-비전공자-수강생들이-취업하는모습을-보며-나뿐아니라-이-교육이-수강생들에게-많은-도움이-되었구나-라며-다시한번-교육듣길-잘했다라고-생각했습니다">물론 아직도 많이 헤매이고 덤벙거리지만 중요한건 하나씩 나스스로 해결할수있다는 용기와 자신감이 생겨났습니다. 그리고 실제로 같이 공부한 비전공자 수강생들이 취업하는모습을 보며 나뿐아니라 이 교육이 수강생들에게 많은 도움이 되었구나 라며 다시한번 교육듣길 잘했다라고 생각했습니다.</h3>
<h2 id="4-고민중이신-예비-수강생분들께">4. 고민중이신 예비 수강생분들께..</h2>
<h3 id="이번기회에-오름캠프-k디지털-플러터-과정을-통해서-제2의-도전-한걸음-더-도약의-계기가-되셨으면-좋겠습니다-막연했던-개발자의-길을-정말로-걸을수있게-해줍니다">이번기회에 오름캠프 k디지털 플러터 과정을 통해서 제2의 도전, 한걸음 더 도약의 계기가 되셨으면 좋겠습니다. 막연했던 개발자의 길을 정말로 걸을수있게 해줍니다.</h3>
<h3 id="도전을-해야-성공을-할-수-있다잖아요-실패할것같다고-포기한다면-성공또한-못합니다-실패를-생각하지마시고-도전하시다보시면-언젠간-여러분들이-원하는-성공에-가까이-있을거라-생각합니다">도전을 해야 성공을 할 수 있다잖아요. 실패할것같다고 포기한다면 성공또한 못합니다 실패를 생각하지마시고 도전하시다보시면 언젠간 여러분들이 원하는 성공에 가까이 있을거라 생각합니다.</h3>
<h1 id="오름캠프를-통해-성공적인-개발자가-되시기-바랍니다-화이팅">오름캠프를 통해 성공적인 개발자가 되시기 바랍니다 화이팅.</h1>
]]></description>
        </item>
        <item>
            <title><![CDATA[flutter 위젯 Listview()]]></title>
            <link>https://velog.io/@rickylu-8/flutter-%EC%9C%84%EC%A0%AF-Listview</link>
            <guid>https://velog.io/@rickylu-8/flutter-%EC%9C%84%EC%A0%AF-Listview</guid>
            <pubDate>Tue, 19 Dec 2023 08:37:14 GMT</pubDate>
            <description><![CDATA[<p>ListView 위젯은 스크롤 가능한 항목 목록을 만드는 데 사용. 
다양한 데이터 집합을 표시하는 유연한 위젯이며 여러 기능을 제공.</p>
<p>주요 특징:</p>
<p>다양한 데이터 소스 지원: List, SliverList, FutureBuilder 등 다양한 데이터 소스와 함께 사용 가능.
맞춤 설정 가능: 아이템 위젯을 완전히 커스터마이징하여 원하는 모습을 만들 수 있음.
효과 지원: 스크롤 시 애니메이션 효과 추가 가능.
효율성: 화면에 보이는 항목만 렌더링하여 성능 최적화.
다양한 빌더 유형: ListView.builder, ListView.separated, ListView.custom 등 다양한 빌더 유형 제공되어 데이터 표시에 유연성 제공.</p>
<p>사용 예시:</p>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/fb5f588f-0b0a-4a41-9f5f-80337118d326/image.png" alt="">
// 간단한 리스트뷰</p>
<pre><code class="language-dart">ListView(
              children: const [
                Center(child: Text(&#39;스크롤&#39;, style: TextStyle(fontSize: 30))),
                Center(child: Text(&#39;스크롤&#39;, style: TextStyle(fontSize: 30))),
                Center(child: Text(&#39;스크롤&#39;, style: TextStyle(fontSize: 30))),
                Center(child: Text(&#39;스크롤&#39;, style: TextStyle(fontSize: 30))),
                Center(child: Text(&#39;스크롤&#39;, style: TextStyle(fontSize: 30))),
                Center(child: Text(&#39;스크롤&#39;, style: TextStyle(fontSize: 30))),
                Center(child: Text(&#39;스크롤&#39;, style: TextStyle(fontSize: 30))),         
              ],
            ),         </code></pre>
<p>flutter ListView 사용 시 고려해야 할 점:</p>
<p>성능: 항목 수가 많을 경우 렌더링 성능 문제가 발생할 수 있으니 데이터를 효율적으로 다루는 방법 검토 필요.
아이템 크기: 동적 아이템 크기 사용 시 ListView 성능 저하 가능.
스크롤 이벤트 처리: 필요한 경우 스크롤 이벤트 처리 코드 추가.
flutter ListView는 다양한 상황에서 유용한 위젯이며 기본적인 리스트뷰 구현부터 복잡한 데이터 표시까지 활용.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[flutter 위젯 _ Spacer()]]></title>
            <link>https://velog.io/@rickylu-8/flutter-%EC%9C%84%EC%A0%AF-Spacer</link>
            <guid>https://velog.io/@rickylu-8/flutter-%EC%9C%84%EC%A0%AF-Spacer</guid>
            <pubDate>Tue, 19 Dec 2023 08:19:59 GMT</pubDate>
            <description><![CDATA[<p>Spacer 위젯은 Row나 Column 같은 Flex 컨테이너 안에 두 위젯 사이에 여백을 넣어주는 역할라 </p>
<p>Spacer의 주요 특징 :
Flex 값 지정 가능: Spacer 생성자에 flex 속성을 지정할 수 있습니다. 이 값은 Spacer와 다른 위젯 사이의 크기 비율을 결정합니다. 예를 들어, Spacer(flex: 2)는 다른 위젯보다 두 배 큰 공간을 차지합니다.
유연한 공간: Spacer는 컨테이너의 남은 공간을 비율에 따라 분배합니다. 즉, 컨테이너 크기가 변경되면 Spacer의 크기도 변경되어 여백 유지됩니다.
간단한 사용: 코드가 간결하고 직관적이며 기존의 Padding이나 SizedBox 대신 사용할 수 있습니다.
사용 예시:</p>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/64ea84ce-a670-4799-8247-bd0d68ed257b/image.png" alt=""></p>
<p>Spacer 변경 전</p>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/526f1ef0-8719-4973-80e0-1aaeeca637d7/image.png" alt="">
Spacer 변경 후</p>
<pre><code class="language-dart">// Column 위젯에서 Spacer 사용
Column(
  children: [
    Spacer(), Row 위 공간을 모두 채워준다
    Row(...),
    const SizedBox(height: 30),
  ],
)</code></pre>
<p>Spacer vs. SizedBox:</p>
<p>Spacer는 Flex 컨테이너에서 유연한 공간을 만들기 위해 사용되며 위젯 크기에 따라 자동으로 조정</p>
<p>SizedBox는 고정 크기의 공간을 만들기 위해 사용되며 크기 설정이 필요.</p>
<p>Spacer는 간편하게 Flex 컨테이너 내에서 위젯 간의 여백 정렬에 유용하며, 
SizedBox는 보다 정교한 크기 조정이 필요한 경우 사용.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[안드로이드 스튜디오 유용한 flutter plugin]]></title>
            <link>https://velog.io/@rickylu-8/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%9C%A0%EC%9A%A9%ED%95%9C-plugin</link>
            <guid>https://velog.io/@rickylu-8/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%9C%A0%EC%9A%A9%ED%95%9C-plugin</guid>
            <pubDate>Fri, 15 Dec 2023 03:38:30 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/rickylu-8/post/3e8354bf-f727-4fd2-ad28-65ecee6be9c6/image.png" alt=""></p>
<h1 id="flutter-toolkit">Flutter-Toolkit</h1>
<h2 id="빌드를-자동으로-할수있게-해준다">빌드를 자동으로 할수있게 해준다</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/28a140b5-3986-45a2-aec1-d5dfba0cf62f/image.png" alt=""></p>
<h1 id="flutter-enhancement-suite">flutter enhancement suite</h1>
<h2 id="라이브러리-설치--업데이트를-쉽게해주고">라이브러리 설치 &amp; 업데이트를 쉽게해주고</h2>
<h2 id="선언된-변수-및-클래스가-어디서-쓰이는지-쉽게확인">선언된 변수 및 클래스가 어디서 쓰이는지 쉽게확인</h2>
<h2 id="타입-힌트">타입 힌트</h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[안드로이드 스튜디오 라이브 템플릿 사용법]]></title>
            <link>https://velog.io/@rickylu-8/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EB%9D%BC%EC%9D%B4%EB%B8%8C-%ED%85%9C%ED%94%8C%EB%A6%BF-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
            <guid>https://velog.io/@rickylu-8/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EB%9D%BC%EC%9D%B4%EB%B8%8C-%ED%85%9C%ED%94%8C%EB%A6%BF-%EC%82%AC%EC%9A%A9%EB%B2%95</guid>
            <pubDate>Fri, 15 Dec 2023 03:31:59 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/rickylu-8/post/2aaef00e-507e-494e-acfe-53aa6917eca6/image.png" alt=""></p>
<h2 id="라이브-템플릿의-위치">라이브 템플릿의 위치</h2>
<h3 id="상단-가장-왼쪽-android-studio--setting--find--live-templates">상단 가장 왼쪽 android studio &gt; setting &gt; find &gt; live templates</h3>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/7787b29b-c175-49be-85b7-3791e66dfe44/image.png" alt=""></p>
<h3 id="사용할-언어로-이동후-오른쪽--버튼으로-추가가능">사용할 언어로 이동후 오른쪽 &quot;+&quot; 버튼으로 추가가능</h3>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/697ee3b9-a4b7-4414-a894-2016a38b65d7/image.png" alt=""></p>
<h2 id="live-template-클릭">Live Template 클릭</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/2ad42fc2-406e-422d-b2cc-c0282a3c444e/image.png" alt=""></p>
<h2 id="abbreviation">Abbreviation:</h2>
<h3 id="live-template-이름을-설정">live template 이름을 설정</h3>
<h2 id="description">Description:</h2>
<h3 id="템플릿의-내용-입력입력안해도-가능">템플릿의 내용 입력(입력안해도 가능)</h3>
<h2 id="template-text">Template text:</h2>
<h3 id="자동-입력될-코드-작성">자동 입력될 코드 작성</h3>
<h2 id="edit-variables-">Edit Variables... :</h2>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/ef31d589-66c7-4d08-a202-77b8350a2216/image.png" alt="">
<img src="https://velog.velcdn.com/images/rickylu-8/post/c1599a5e-8e5b-4e71-a489-6bf4c1ab97b9/image.png" alt=""></p>
<h3 id="커서위치-스킵-연산자-설정"><strong>커서위치, 스킵, 연산자 설정</strong></h3>
<h1 id="edit-template-variables-설정">Edit Template Variables 설정</h1>
<h3 id="namp과-커서위치-변경-cap_name의-위치를-변경했다">NAMP과 커서위치 변경 CAP_NAME의 위치를 변경했다.</h3>
<h4 id="앞뒤에--붙는것은-변수인데-불러오자마자의-커서위치를">앞뒤에$ $ 붙는것은 변수인데 불러오자마자의 커서위치를</h4>
<h4 id="cap_name이-위에있으면-커서가-해당-위치로-가게하기위해">CAP_NAME이 위에있으면 커서가 해당 위치로 가게하기위해</h4>
<h3 id="스킵">스킵</h3>
<h4 id="작업을-수행하지-않도록-한다">작업을 수행하지 않도록 한다</h4>
<h3 id="연산자-설정">연산자 설정</h3>
<h4 id="해당-명령어에-부가기능을-부여한다">해당 명령어에 부가기능을 부여한다</h4>
]]></description>
        </item>
        <item>
            <title><![CDATA[flutter CLI 명령어]]></title>
            <link>https://velog.io/@rickylu-8/flutter-CLI-%EB%AA%85%EB%A0%B9%EC%96%B4</link>
            <guid>https://velog.io/@rickylu-8/flutter-CLI-%EB%AA%85%EB%A0%B9%EC%96%B4</guid>
            <pubDate>Thu, 14 Dec 2023 02:43:56 GMT</pubDate>
            <description><![CDATA[<p>flutter doctor : 문제점 파악
(flutter/dart) upgrade : 현재 메이저 버전의 하위 버전 중에서 최신 버전으로 업그레이드 (flutter/dart) pub get : 수정 사항 반영
flutter clean : 빌드 파일 삭제
flutter run : 실행
(flutter/dart) pub upgrade-major-versions : 메이저 버전의 최신 버전으로 업그레이드 (flutter/dart) pub add [라이브러리이름] : pubspec.yaml 파일에 자동 추가 후 pub get 까지</p>
<p>flutter create . : 최신버전의 플랫폼(macos, window 등) 폴더를 만들어준다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[안드로이드 스튜디오 유용한 plugin & 단축키(mac) /table of contents]]></title>
            <link>https://velog.io/@rickylu-8/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%9C%A0%EC%9A%A9%ED%95%9C-plugin-%EB%8B%A8%EC%B6%95%ED%82%A4mac</link>
            <guid>https://velog.io/@rickylu-8/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%9C%A0%EC%9A%A9%ED%95%9C-plugin-%EB%8B%A8%EC%B6%95%ED%82%A4mac</guid>
            <pubDate>Mon, 04 Dec 2023 06:14:14 GMT</pubDate>
            <description><![CDATA[<p>/table of contents</p>
<h1 id="plugin"><strong>plugin</strong></h1>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/052ffe9b-fa78-4a03-a40c-aa49eb62a873/image.png" alt=""></p>
<p>control + enter 시 Named argument constructor 로 만들어준다</p>
<hr>
<h1 id="단축키"><strong>단축키</strong></h1>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/f259da8e-d2f7-4e61-8242-4f42f10b34cf/image.png" alt=""></p>
<p>안드로이드스튜디오 메뉴중 가장끝 Help &gt; Find Action에서 해당 단축키 이름을 확인할수있다</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/fa8947c8-5f89-4a9c-a648-e0e51d60c27c/image.png" alt="">
띄어쓰기된 공간을 시각화하여 보여지게 할수있다 (on/off로 설정)</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/a0c57bac-7763-46ce-9c12-ba90e9752713/image.png" alt=""></p>
<p>shift +F6     이름수정</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/ae43d342-10ae-4222-9362-ddc5f25cc5c9/image.png" alt=""></p>
<p>control + enter or control + N 툴가이드</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/26fced05-fc90-4307-93fa-c1d73aa677e7/image.png" alt=""></p>
<p>command + delete 한줄 지우기</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/c93d5a0a-24f9-4d99-b781-94606dd58b11/image.png" alt=""></p>
<p>코드 정리</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/c06f274f-889c-438b-b422-dbd9662b3ce0/image.png" alt=""></p>
<p>shift + option + 화살표 위, 아래 = 해당줄을 위,아래로 이동</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/dd6dc596-aff0-4494-846f-ff368d79405b/image.png" alt=""></p>
<p>command + E 이전에 열어보았던 file 탐색</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/a11be96e-3d75-4aa4-a555-7438f28dd34e/image.png" alt=""></p>
<p>command + B 해당 문장이 인용되어 만들어준 코드로 이동</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/dbb1a9da-32bf-4e9c-98a6-1c07f111231f/image.png" alt="">
<img src="https://velog.velcdn.com/images/rickylu-8/post/0c43a85d-f9a5-4020-99c4-0ecc70ead3be/image.png" alt=""></p>
<p>command + [ 뒤로가기
command + ] 앞으로가기</p>
<hr>
<p>왼쪽 탭으로 이동
command + shift + [</p>
<p>오른쪽 탭으로 이동
command + shift + ]</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/e72e4603-9171-4641-958d-29f1df11b70b/image.png" alt=""></p>
<p>전체검색
shift + command + F</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/a2adef35-6826-4124-8730-43ec5f7e8adf/image.png" alt=""></p>
<p>파일내 같은 이름을 한번에 모두 지정
command + control G</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/2057db48-1d54-4699-b4ae-d0d0b9cc302d/image.png" alt=""></p>
<p>파일내 같은 이름을 순차적으로 지정
control + G</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/b5753a75-45d0-44df-bf99-77e6cad3e656/image.png" alt=""></p>
<p>해당줄의 코드를 아래줄로 그대로 복사
command + D</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/b2b0cec2-3779-4057-8460-282bf6c89704/image.png" alt="">
타입의 상속 도표 확인
control + H</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/f066aa4c-1067-4242-ae9d-3079377ee0e5/image.png" alt=""></p>
<p>해당 페이지내 선언된 구조 확인
command + F12 </p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/bc5a0409-33ae-41e2-9515-070ec8e123b0/image.png" alt="">
<img src="https://velog.velcdn.com/images/rickylu-8/post/183cdc2c-8664-457f-96cd-3cbf2f2e755b/image.png" alt=""></p>
<p>플러터 위젯의 파라미터 목록확인</p>
<p>control + space bar</p>
<hr>
<p><img src="https://velog.velcdn.com/images/rickylu-8/post/56065194-6da2-4a44-a3b9-7df7cb8f5efe/image.png" alt=""></p>
<p>한줄 지우기</p>
<p>command + 백스페이스</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Dart null safety]]></title>
            <link>https://velog.io/@rickylu-8/Dart-null-safety</link>
            <guid>https://velog.io/@rickylu-8/Dart-null-safety</guid>
            <pubDate>Wed, 29 Nov 2023 09:23:09 GMT</pubDate>
            <description><![CDATA[<h3 id="null-safety--값이-비었을때-기본적으로-에러가-되지만-null-safety-를-변수뒤에-넣어주어-null일경우-null값을-출력하도록-명령">Null Safety : 값이 비었을때 기본적으로 에러가 되지만 ?(null safety) 를 변수뒤에 넣어주어 null일경우 null값을 출력하도록 명령</h3>
<p>void main() {</p>
<p>  String? name;</p>
<p>  String age = &#39;25&#39;;</p>
<p>  print(name.length);</p>
<p>  print(age.length);
}</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Dart Class]]></title>
            <link>https://velog.io/@rickylu-8/Dart-Class</link>
            <guid>https://velog.io/@rickylu-8/Dart-Class</guid>
            <pubDate>Wed, 29 Nov 2023 08:41:26 GMT</pubDate>
            <description><![CDATA[<h3 id="class--반복-활용을-위해">class : 반복 활용을 위해</h3>
<h3 id="inheritance--extends로-해당-클래스를-이어받아-양산을-한다"><strong>inheritance</strong> : extends로 해당 클래스를 이어받아 양산을 한다</h3>
<h3 id="polymorphism--extends로-해당-클래스를-이어받아-양산하되-기능-추가가-필요할때"><strong>polymorphism</strong> : extends로 해당 클래스를 이어받아 양산하되 기능 추가가 필요할때</h3>
<p>class IronMan {
  String name;
  int powerLevel;</p>
<p>  IronMan(this.name, this.powerLevel);</p>
<h3 id="this--해당-클래스내-상위에-선언한-변수를-가르킨다"><strong>this</strong> : 해당 클래스내 상위에 선언한 변수를 가르킨다</h3>
<p>  void shoot() {
    print(&#39;$name is shooting guns!&#39;);}}</p>
<p>class IronManMK3 extends IronMan {
int flyhigh;
IronManMK3(String name, Int powerLevel, this.flyhigh):super(name, powerLevel)</p>
<h3 id="superextends한-클래스의-변수를-그대로-가져온다"><strong>super</strong>:extends한 클래스의 변수를 그대로 가져온다</h3>
<p>@override</p>
<h3 id="override-extends한-클래스의-함수의-내용을-재설정한다">@override extends한 클래스의 함수의 내용을 재설정한다.</h3>
<p>  void shoot() {
    print(&#39;$name is shooting Laser!&#39;);}
    void fly(){
    print(&quot;$name is $flyhigh&quot;);}}</p>
<h3 id="interface--계획단계-청사진-클래스-설정">Interface : 계획단계 청사진 클래스 설정</h3>
<h3 id="abstract-class--추상클래스미완성클래스-추후-완성을-위해-미리-선언만해놓은상태-가져와-활용시-추상클래스-함수를-모두-사용해야-한다">Abstract Class : 추상클래스(미완성클래스). 추후 완성을 위해 미리 선언만해놓은상태 (가져와 활용시 추상클래스 함수를 모두 사용해야 한다)</h3>
<h3 id="mixin--각각의-다른-클래스간-필요한-기능들만-가져와-새로운-클래스를-만든다다중상속과-같은-효과를-만들어줌">Mixin : 각각의 다른 클래스간 필요한 기능들만 가져와 새로운 클래스를 만든다(다중상속과 같은 효과를 만들어줌)</h3>
<p>추상클래스 실습</p>
<p>Abstract Class Abs{
run()
jump() }</p>
<p>Class ABS extends Abs{
run(){(print(&quot;dsf&quot;);df)}
junm(){(print(&quot;dsf&quot;))}
} 무조건 추상클래스의 함수를 가져와야 함 </p>
<p>mixin 실습</p>
<p>Class animal{
String name;
animal(this.name){}}</p>
<p>mixin A <strong>on</strong> animal{ <strong>on으로 클래스를 가져오고</strong>
애니멀의 클래스를 A가 섞어 쓸수있다 
fly(){}}</p>
<p>Class bird extends animal <strong>with</strong> A{ <strong>with로 활용한다</strong>
버드 클래스는 애니멀과 A를 상속과 같은 효과를 받는다 }</p>
<h3 id="비동기--순서대로-작업을-안하고-동시작업-해주는것">비동기 : 순서대로 작업을 안하고 동시작업 해주는것</h3>
<h3 id="키워드--async-await">키워드 : Async await</h3>
<h3 id="타입--future미래값-딱한번만-돌아온다-stream데이터가-꾸준히-들어온다실시간채팅">타입 : future(미래값 딱한번만 돌아온다) stream(데이터가 꾸준히 들어온다(실시간채팅))</h3>
<p>비동기 예시</p>
<p>future a<String> down(String url) Async{
**  future 비동기 타입의 함수를 Async를 넣으므로 비동기상태이다
**  var response=await http.get(url);
**  await뒤에있는 미래 언젠간 받을 url을 받을때까지 기다리지말고 다른작업도 
  가능하도록 비동기로 명령** 
  }</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Dart 369 코딩 리뷰]]></title>
            <link>https://velog.io/@rickylu-8/Dart-369-%EC%BD%94%EB%94%A9-%EB%A6%AC%EB%B7%B0</link>
            <guid>https://velog.io/@rickylu-8/Dart-369-%EC%BD%94%EB%94%A9-%EB%A6%AC%EB%B7%B0</guid>
            <pubDate>Wed, 29 Nov 2023 01:46:32 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/rickylu-8/post/1b454fe9-d6cc-4e9d-8704-983215595475/image.png" alt=""></p>
<p>void main() {
  int i = 1;
  List<String> players = [&quot;player1&quot;, &quot;player2&quot;, &quot;player3&quot;, &#39;player4&#39;];
  플레이어 4명을 리스트화
  int currentPlayerIndex = 0;
  선언 및 초기화
  int clapCount = 0;
  int roolCount = 0;
  int ahhCount = 0;
  List<int> clapCountsByPlayer = [0,0,0,0];
  플레이어 카운트할 리스트화</p>
<p>  for (int i = 1; i &lt;= 100; i++) {
                          1부터 100까지 숫자 하나씩 올리는 for 문
    String currentPlayer = players[currentPlayerIndex];</p>
<pre><code>if (i % 30 == 0) {
  print(&#39;$currentPlayer: ahh&#39;);
  ahhCount++; (총 갯수 카운트)
                      30배수
} else if (i % 3 == 0) {
  print(&#39;$currentPlayer: clap&#39;);
  clapCount++; (총 갯수 카운트)
                      3배수
  clapCountsByPlayer[currentPlayerIndex]++;
} else if (i % 10 == 0) {
  print(&#39;$currentPlayer: rool&#39;);
  roolCount++; (총 갯수 카운트)
                      10배수
} else {
  print(&#39;$currentPlayer: $i&#39;);
                      나머지 프린트
}

currentPlayerIndex = (currentPlayerIndex + 1) % players.length;
                      모름</code></pre><p>  }</p>
<p>  int maxClapCount = 0;
                          최대값 선언 초기화
  String playerWithMaxClap = &quot;&quot;;
                          가장많이 출력플레이어 선언 초기화</p>
<p>  for(int i = 0; i&lt; players.length; i++){
       가장많이 출력플레이어 for문
    int count = clapCountsByPlayer[i];
  모름(카운트 = 0,1,2)
    print(&quot;${players[i]}:$count&quot;);
  프린트
    if(count &gt; maxClapCount){
  모름
      maxClapCount = count;
  선언
      playerWithMaxClap = players[i];
  선언
    }
  }
  print(&quot;\n가장 많은 clap을 출력한 플레이어: $playerWithMaxClap &quot;);
  프린트
  }</p>
<p>  힌트 : 
  <img src="https://velog.velcdn.com/images/rickylu-8/post/fd4f1d9c-fdb7-4fdb-8fed-dc6261b2a2ac/image.png" alt="">
  <img src="https://velog.velcdn.com/images/rickylu-8/post/04498eba-55f1-465c-9f13-46af883c8045/image.png" alt="">
<img src="https://velog.velcdn.com/images/rickylu-8/post/0e96320a-d59c-44f2-9d69-024434ca4057/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[DART기본(1129)]]></title>
            <link>https://velog.io/@rickylu-8/DART%EA%B8%B0%EB%B3%B81129</link>
            <guid>https://velog.io/@rickylu-8/DART%EA%B8%B0%EB%B3%B81129</guid>
            <pubDate>Wed, 29 Nov 2023 01:17:05 GMT</pubDate>
            <description><![CDATA[<p><strong>함수</strong>는 값을 반환하지 않는다
<strong>함수</strong>가 다른함수의 인수로 활용가능하다</p>
<p><strong>변수</strong>는 프로그램에서 값을 저장하고 참조할때 사용하는 중요 개념
<strong>변수</strong>는 선언(var name;)과 초기화(var name = 2;)와 타입(int name;)이 필요하다</p>
<p><strong>final, const</strong> : 변경이 불가능하게 값을 할당한다</p>
<p>다트의 함수는 일급객체이다(다른객체들에 연산을 모두 지원) 함수를 변수처럼 활용가능</p>
<p>객체지향 각각의 객체를 모듈화
<strong>object</strong> : 데이터 혹은 기능이 정의되어있으며 프로그래밍상으로 활용가능한것
<strong>class</strong> : object의 데이터와 기능이 정의되어있는 설계도(class의 최종결과물은 object)
<strong>instance</strong> : 클래스를 복제하여 활용</p>
<h2 id=""></h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[Dart 문법(231129)]]></title>
            <link>https://velog.io/@rickylu-8/Dart-%EA%B8%B0%EB%B3%B8</link>
            <guid>https://velog.io/@rickylu-8/Dart-%EA%B8%B0%EB%B3%B8</guid>
            <pubDate>Wed, 29 Nov 2023 01:15:27 GMT</pubDate>
            <description><![CDATA[<pre><code>//일반주석
///문서화 주석
/* 장문주석 */</code></pre><h3 id="타입-지정된-함수"><strong>타입 지정된 함수</strong></h3>
<p>int add(int a, int b){
  return a+b; }</p>
<h3 id="화살표-함수"><strong>화살표 함수</strong></h3>
<p>int add2(int a, int b) =&gt; a+b;</p>
<h3 id="string첫글자-대문자"><strong>String(첫글자 대문자)</strong></h3>
<p>String add3 = &quot;string&quot;;
bool YES or NO
bool add4 = false;</p>
<h3 id="var-시스템-알아서-타입-찾아줌">var 시스템 알아서 타입 찾아줌</h3>
<p>var add5 = &quot;sstr&quot;;</p>
<h3 id="리스트">리스트</h3>
<p>List<int> add6=[1,2,3,4,5];
if-else
int ifa = 23;</p>
<h3 id="if문"><strong>if문</strong></h3>
<p>if(ifa &lt; 50){
print(&quot;object&quot;);
}else{
  print(&quot;oddbject&quot;);
}</p>
<h3 id="switch-조건문">switch 조건문</h3>
<p>String add7 = &quot;show&quot;;
Switch(add7){
case &quot;ssow&quot; :
print(&#39;dsf&#39;);
break;
case &quot;show&quot;:
print(&quot;df&quot;);
break;
default :
print(&quot;df&quot;);}</p>
<h3 id="for---in-문">for - in 문</h3>
<p>List<int> aLss = [1,2,3,4,5];
for(int aLs in aLss){
print(aLs);}</p>
<h3 id="while-문">while 문</h3>
<p>int while1 = 1 ;
while(count &lt; 5) {
print(&#39;object&#39;);
while1++;}</p>
<h3 id="do-문">do 문</h3>
<p>int do1 = 1;
do{
print(&#39;object&#39;);
do1++;
}while(1&lt;10);</p>
<h3 id="late-키워드계산기-처럼-선언후-값이-뒤에-입력이-될때-미리-선언한다">late 키워드(계산기 처럼 선언후 값이 뒤에 입력이 될때 미리 선언한다)</h3>
<p>late String name;
print(&quot;my name is $name&quot;);
name = alice;</p>
<h3 id="instance-실습">instance 실습</h3>
<p>Class Person{
String name;
int age;
Person(this.name, this.age);
printInfo(){
print(&quot;name $name&quot;);
print(&quot;age $age&quot;); }}
var person = Person(&#39;john do, 30&#39;);
person.printInfo();</p>
]]></description>
        </item>
    </channel>
</rss>