<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>m_solasid0.log</title>
        <link>https://velog.io/</link>
        <description>Let's do it now</description>
        <lastBuildDate>Sun, 23 Mar 2025 09:46:18 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>m_solasid0.log</title>
            <url>https://images.velog.io/images/m_solasid0/profile/a55c48b3-42ff-4ff7-9333-e84d927e8855/social.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. m_solasid0.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/m_solasid0" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Android App Update]]></title>
            <link>https://velog.io/@m_solasid0/Android-App-update</link>
            <guid>https://velog.io/@m_solasid0/Android-App-update</guid>
            <pubDate>Sun, 23 Mar 2025 09:46:18 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/m_solasid0/post/71cdbfbc-2bd3-4384-9612-c42a0e9edef0/image.png" alt=""></p>
<h3 id="💾-apk-또는-appbundle-생성">💾 APK 또는 AppBundle 생성</h3>
<ul>
<li>프로젝트 파일 버전 수정 후 APK, AppBundle(추천) 생성</li>
<li>ex) 프로젝트 파일 내 android/app/release 경로 .aab 파일</li>
</ul>
<hr>
<h1 id=""></h1>
<h3 id="🌏-google-play-console-진입">🌏 Google play Console 진입</h3>
<ul>
<li><a href="https://play.google.com/console">https://play.google.com/console</a></li>
<li>테스트 및 출시 &gt; 프로덕션 &gt; 새 버전 만들기</li>
<li>추출한 APK, AppBundle 업로드 후 업데이트 진행</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Flutter - 위젯 생명주기]]></title>
            <link>https://velog.io/@m_solasid0/Flutter-%EC%9C%84%EC%A0%AF-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0</link>
            <guid>https://velog.io/@m_solasid0/Flutter-%EC%9C%84%EC%A0%AF-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0</guid>
            <pubDate>Sun, 23 Mar 2025 09:19:47 GMT</pubDate>
            <description><![CDATA[<h3 id="✔️-statelesswidget---상태-변경-불가능">✔️ StatelessWidget - 상태 변경 불가능</h3>
<ul>
<li>build()만 실행</li>
</ul>
<pre><code>class ExStatelessWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    print(&quot;build() 실행&quot;);
    return Text(&quot;Stateless Widget&quot;);
  }
}</code></pre><ul>
<li><strong>🌀 생명주기</strong></li>
</ul>
<p>1.create      - 생성
2.build()     - 화면 구성
3.dispose() X - 위젯이 바로 삭제됨</p>
<hr>
<h3 id="✔️-statefulwidget---상태-변경-가능">✔️ StatefulWidget - 상태 변경 가능</h3>
<pre><code>class MyStatefulWidget extends StatefulWidget {
  @override
  _MyStatefulWidgetState createState() =&gt; _MyStatefulWidgetState();
}

class _MyStatefulWidgetState extends State&lt;MyStatefulWidget&gt; {
  @override
  void initState() {
    super.initState();
    print(&quot;initState() - 처음 실행&quot;);
  }

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    print(&quot;didChangeDependencies() - 의존성 변경 시 실행&quot;);
  }

  @override
  Widget build(BuildContext context) {
    print(&quot;build() - 화면이 다시 그려질 때 실행&quot;);
    return Text(&quot;Stateful Widget&quot;);
  }

  @override
  void didUpdateWidget(covariant MyStatefulWidget oldWidget) {
    super.didUpdateWidget(oldWidget);
    print(&quot;didUpdateWidget() - 부모 위젯이 변경될 때 실행&quot;);
  }

  @override
  void deactivate() {
    print(&quot;deactivate() - 위젯이 트리에서 제거될 때 실행&quot;);
  }

  @override
  void dispose() {
    print(&quot;dispose() - 위젯이 완전히 삭제될 때 실행&quot;);
    super.dispose();
  }
}</code></pre><ul>
<li><strong>🌀 생명 주기</strong></li>
</ul>
<ol>
<li>createState()          - State 객체 생성</li>
<li>initState()                - 초기 상태 설정 (한 번만 실행)</li>
<li>didChangeDependencies() - 의존성이 변경될 때 실행</li>
<li>build()                    - UI 구성 (상태 변경 시 다시 실행)</li>
<li>didUpdateWidget()        - 부모 위젯이 변경될 때 실행</li>
<li>deactivate()            - 위젯이 위젯 트리에서 제거될 때 실행</li>
<li>dispose()                - 위젯이 완전히 삭제될 때 실행</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[SFTP - 파일 전송 프로토콜]]></title>
            <link>https://velog.io/@m_solasid0/SFTP-%ED%8C%8C%EC%9D%BC-%EC%A0%84%EC%86%A1-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C</link>
            <guid>https://velog.io/@m_solasid0/SFTP-%ED%8C%8C%EC%9D%BC-%EC%A0%84%EC%86%A1-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C</guid>
            <pubDate>Sun, 23 Mar 2025 09:16:48 GMT</pubDate>
            <description><![CDATA[<h2 id="🗂️-sftp-개념">🗂️ SFTP 개념</h2>
<ul>
<li>SSH(Secure Shell)를 이용한 안전한 파일 전송 프로토콜</li>
<li>원격 서버에 안전하게 접속하여 파일을 업로드/다운로드</li>
</ul>
<hr>
<h2 id="✔️-sftp-접속">✔️ SFTP 접속</h2>
<ol>
<li>기본 명령어 (리눅스/macOS/윈도우 PowerShell)
(처음 접속 시 비밀번호 입력 후 로그인)</li>
</ol>
<pre><code>sftp 사용자명@서버IP
</code></pre><ul>
<li>SSH 키 인증을 사용할 경우</li>
</ul>
<pre><code>sftp -i ~/.ssh/id_rsa 사용자명@서버IP</code></pre><hr>
<h2 id="💻-기본-명령어">💻 기본 명령어</h2>
<p>ls    : 현재 디렉토리 파일 목록 보기
cd  : 디렉토리 특정 디렉토리 이동
pwd    : 현재 위치 확인
get : 파일명 서버에서 내 PC로 다운로드
put : 파일명 내 PC에서 서버로 업로드
bye 또는 exit : SFTP 세션 종료</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[SSL 인증서 갱신 가이드(Nginx)]]></title>
            <link>https://velog.io/@m_solasid0/SSL-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EA%B0%B1%EC%8B%A0-%EA%B0%80%EC%9D%B4%EB%93%9CNginx</link>
            <guid>https://velog.io/@m_solasid0/SSL-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EA%B0%B1%EC%8B%A0-%EA%B0%80%EC%9D%B4%EB%93%9CNginx</guid>
            <pubDate>Sun, 23 Mar 2025 08:47:17 GMT</pubDate>
            <description><![CDATA[<h2 id="🔐-ssl-인증서">🔐 SSL 인증서</h2>
<ul>
<li>웹사이트와 사용자 간의 데이터를 암호화하여 보안을 강화하는 디지털 인증서</li>
<li>주요 기능
✔️ 데이터 암호화: 해커가 중간에서 데이터를 가로채더라도 해독할 수 없음
✔️ 사이트 신뢰성 보장: 사용자가 방문하는 사이트가 신뢰할 수 있는지 확인
✔️ HTTPS 활성화</li>
</ul>
<p><a href="https://www.cloudflare.com/ko-kr/learning/ssl/what-is-an-ssl-certificate/">[공식 사이트]
</a></p>
<hr>
<h2 id="🔐-ssl-인증서-갱신-방법">🔐 SSL 인증서 갱신 방법</h2>
<p>** 1. 인증서 및 키 파일 준비**</p>
<ul>
<li>도메인 인증서(~.crt)</li>
<li>체인 인증서(체인-루트 인증서는 ~Bundle.crt 파일로 통합)</li>
<li>루트 인증서(체인-루트 인증서는 ~Bundle.crt 파일로 통합)</li>
<li>SSL/TLS 개인 키(~.key)</li>
</ul>
<p>** 2. SFTP 사용하여 파일 가져오기**</p>
<ul>
<li><p>sftp 접속</p>
<p>  <code>sftp 사용자명@서버IP</code></p>
</li>
<li><p>get 명령어로 파일 가져오기(2번 파일들 get 동작 수행)</p>
</li>
</ul>
<p><strong>3. 인증서 파일 통합(도메인, 체인, 루트 인증서 순서대로 통합하는 것이 중요함)</strong></p>
<ul>
<li>해당 가이드에서는 bundle 파일 사용으로 파일 1 파일 2 통합
<code>sudo cat 파일1 파일 2 파일 3 &gt; nginx_ssl.crt</code></li>
</ul>
<p><strong>4. 통합된 인증서 내용 확인</strong></p>
<ul>
<li>nano 편집기로 인증서 내용 확인
<code>sudo nano 파일명</code></li>
</ul>
<ul>
<li>총 3개의 인증서 확인</li>
</ul>
<p><strong>5. 프로젝트 SSL 인증서 파일 경로 확인</strong>
    - 프로젝트 nginx 폴더 내 ssl 관련 인증서 파일 경로 확인 가능</p>
<p><strong>6. 기존 SSL 인증서 백업 및 새 인증서 추가</strong></p>
<ul>
<li><p>기존 인증서 파일명 변경하여 백업(기존파일명_현재날짜 : 추천)</p>
<p>  (nginx_ssl.crt, .key 파일)</p>
<p>  <code>sudo mv 파일명 파일명_현재날짜</code></p>
</li>
<li><p>1번, 4번에서의 .key, 통합된 인증서 파일을 인증서 경로로 이동(6번의 SSL 인증서 파일 경로)</p>
</li>
</ul>
<p><strong>7. Nginx 재시작</strong></p>
<ul>
<li><p>7번 경로의 디렉토리에서 진행</p>
<p>  <code>sudo docker-compose restart</code></p>
</li>
<li><p>인증서 유효성 기간 확인하여 갱신을 마침</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Flutter - const]]></title>
            <link>https://velog.io/@m_solasid0/Flutter-const</link>
            <guid>https://velog.io/@m_solasid0/Flutter-const</guid>
            <pubDate>Wed, 05 Feb 2025 04:38:48 GMT</pubDate>
            <description><![CDATA[<h4 id="1️⃣-불필요한-객체-생성-방지-성능-최적화">1️⃣ 불필요한 객체 생성 방지 (성능 최적화)</h4>
<ul>
<li>const가 없으면 빌드될 때마다 새로운 객체가 생성됨</li>
<li>const가 있으면 앱 실행 시 한 번만 생성되어 메모리에 유지됨</li>
</ul>
<p>🔹 const를 사용하면 객체가 앱 실행 시 한 번만 생성, 이후 재사용</p>
<h4 id="2️⃣-위젯-트리-최적화-불필요-리빌드-방지">2️⃣ 위젯 트리 최적화 (불필요 리빌드 방지)</h4>
<ul>
<li>Flutter는 위젯 트리를 비교하여 변경된 부분만 다시 그림(rebuild).</li>
<li>const로 변하지 않는 데이터라는 것을 명시</li>
<li>결과적으로 리빌드할 필요가 없는 위젯은 다시 그리지 않음</li>
</ul>
<h4 id="3️⃣-컴파일-타임-상수-사용-가능-안전성">3️⃣ 컴파일 타임 상수 사용 가능 (안전성)</h4>
<ul>
<li>const가 붙으면 컴파일 타임에 값을 확정할 수 있어 오류를 줄임</li>
<li>런타임이 아니라 앱이 빌드될 때(컴파일 시) 객체가 생성됨<h1 id=""></h1>
</li>
</ul>
<h4 id="📌-결론">📌 결론</h4>
<p>✅ 메모리 사용을 최적화, 불필요한 객체 생성을 막아 성능 향상
✅ 위젯 트리를 최적화하여 불필요한 리빌드 방지
✅ 적극적으로 활용 추천하는 Flutter 코드 스타일</p>
<p>👉👉 변하지 않는 값의 경우 const 사용 권장</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[백준, 프로그래머스 깃허브 연동]]></title>
            <link>https://velog.io/@m_solasid0/%EB%B0%B1%EC%A4%80-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EA%B9%83%ED%97%88%EB%B8%8C-%EC%97%B0%EB%8F%99</link>
            <guid>https://velog.io/@m_solasid0/%EB%B0%B1%EC%A4%80-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EA%B9%83%ED%97%88%EB%B8%8C-%EC%97%B0%EB%8F%99</guid>
            <pubDate>Wed, 10 Jan 2024 09:06:38 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/m_solasid0/post/ab678923-6586-42d3-887e-bf0a2cc109bc/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/be27b027-cd65-44b2-8a4c-496b87473609/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/382dcedf-acb0-4baf-8e85-99121d8a88bc/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CRUD 알아보기]]></title>
            <link>https://velog.io/@m_solasid0/CRUD-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0</link>
            <guid>https://velog.io/@m_solasid0/CRUD-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0</guid>
            <pubDate>Wed, 10 Jan 2024 05:31:33 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h1 id="💻-crud-">💻 CRUD ?</h1>
<p>CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제) 를 일컫는다. 사용자 인터페이스가 갖추어야 할 기능(정보의 참조/검색/갱신)을 가리키는 용어로서도 사용된다.</p>
</blockquote>
<blockquote>
<h4 id="🔸-c--create--생성">🔸 C : CREATE  생성</h4>
</blockquote>
<h4 id="🔸-r--read----읽기">🔸 R : READ    읽기</h4>
<h4 id="🔸-u--update--갱신">🔸 U : UPDATE  갱신</h4>
<h4 id="🔸-d--delete--삭제">🔸 D : DELETE  삭제</h4>
<h4 id="✔️database">✔️Database</h4>
<p>Create &gt; 생성 &gt; INSERT
Read   &gt; 조회 &gt; SELECT
Update &gt; 수정 &gt; UPDATE
Delte  &gt; 삭제 &gt; DELETE</p>
<h4 id="✔️backend">✔️backend</h4>
<p>Create &gt; 생성 &gt; POST
Read   &gt; 읽기 &gt; GET
Update &gt; 갱신 &gt; PUT
Delte  &gt; 삭제 &gt; DELETE</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Github] Repository 레파지토리 삭제]]></title>
            <link>https://velog.io/@m_solasid0/Github-Repository-%EB%A0%88%ED%8C%8C%EC%A7%80%ED%86%A0%EB%A6%AC-%EC%82%AD%EC%A0%9C</link>
            <guid>https://velog.io/@m_solasid0/Github-Repository-%EB%A0%88%ED%8C%8C%EC%A7%80%ED%86%A0%EB%A6%AC-%EC%82%AD%EC%A0%9C</guid>
            <pubDate>Wed, 10 Jan 2024 05:17:12 GMT</pubDate>
            <description><![CDATA[<p>Github 레파지토리 삭제 방법</p>
<hr>
<p><a href="https://github.com/">Giyhyb PAGE 클릭</a></p>
<hr>
<p>✔️해당 레파지토리 &gt; settings
<img src="https://velog.velcdn.com/images/m_solasid0/post/d38c6b0f-c0ca-4989-8046-91597c116abd/image.png" alt=""></p>
<p>✔️settings 하단 Danger Zone &gt; Delete this repository</p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/5cb71092-7732-4181-88b6-a1d59e06134a/image.png" alt=""></p>
<p>✔️I want to delete this repository</p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/78457bac-0346-46a7-8138-0ecf627caece/image.png" alt=""></p>
<p>✔️I have read and understand there effects</p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/400b3aff-900c-4456-8d0e-d5070757db89/image.png" alt=""></p>
<p>✔️ 레파지토리명 입력
<img src="https://velog.velcdn.com/images/m_solasid0/post/b5485bd7-d2f1-4984-ad94-5cb87dd9f6da/image.png" alt=""></p>
<p>✔️ 삭제 완료</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python - 오픈 API 활용 코드]]></title>
            <link>https://velog.io/@m_solasid0/Python-%EC%98%A4%ED%94%88-API-%ED%99%9C%EC%9A%A9-%EC%BD%94%EB%93%9C</link>
            <guid>https://velog.io/@m_solasid0/Python-%EC%98%A4%ED%94%88-API-%ED%99%9C%EC%9A%A9-%EC%BD%94%EB%93%9C</guid>
            <pubDate>Tue, 09 Jan 2024 05:14:44 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@m_solasid0/%EA%B3%B5%EA%B3%B5%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%98%A4%ED%94%88-API-%ED%99%9C%EC%9A%A9%EB%B2%95">공공데이터 오픈 API 1탄</a></p>
<p>✔️ import requests     : 데이터 요청 모듈 import
✔️ requests.get(&#39;URL&#39;) : 데이터 get 요청(+URL)
✔️ raise_for_status()  : 코드 실행 response</p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/311bb378-317f-4207-87da-e237beb2e547/image.png" alt=""></p>
<pre><code>#공공데이터 open api 활용 코드 예제
import requests

url=(&#39;http://apis.data.go.kr/B551182/hospInfoServicev2/getHospBasisList?serviceKey=서비스키&#39;)
response = requests.get(url)
print(response.text)</code></pre><hr>
<p>(이외 api 예제)
<img src="https://velog.velcdn.com/images/m_solasid0/post/695683c9-197d-4f40-b6b6-67eb38955db5/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/bf2b3cbb-45dc-4284-8ec2-94c3b9f35fba/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/04c274e1-03a4-49d7-8ab9-4f8d00050b58/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[코딩테스트 준비_1]]></title>
            <link>https://velog.io/@m_solasid0/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A4%80%EB%B9%841</link>
            <guid>https://velog.io/@m_solasid0/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A4%80%EB%B9%841</guid>
            <pubDate>Mon, 08 Jan 2024 15:03:01 GMT</pubDate>
            <description><![CDATA[<p>💻1번
<img src="https://velog.velcdn.com/images/m_solasid0/post/f278232a-c5d1-496c-8b11-e8df16e39190/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/4d49d045-e3d0-4489-8abd-e47425e54f3f/image.png" alt=""></p>
<p>💻2번
<img src="https://velog.velcdn.com/images/m_solasid0/post/33a615db-9d39-452b-b331-bfaf8344bb43/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/75623a5c-382d-4a8f-ace0-95075570e8bc/image.png" alt=""></p>
<p>💻3번
<img src="https://velog.velcdn.com/images/m_solasid0/post/cdeafe03-5920-481a-aca2-7f239d8c85c1/image.png" alt=""></p>
<p>💻4번
<img src="https://velog.velcdn.com/images/m_solasid0/post/a8cb92f0-5e1a-4d97-b8a6-e0be72a548de/image.png" alt=""></p>
<p>💻5번
<img src="https://velog.velcdn.com/images/m_solasid0/post/c0e9fd50-e26b-4b96-9261-5a3c5456f04c/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python 기초 정리]]></title>
            <link>https://velog.io/@m_solasid0/Python-%EA%B8%B0%EC%B4%88-%EC%A0%95%EB%A6%AC-qy89t5jd</link>
            <guid>https://velog.io/@m_solasid0/Python-%EA%B8%B0%EC%B4%88-%EC%A0%95%EB%A6%AC-qy89t5jd</guid>
            <pubDate>Sun, 07 Jan 2024 15:20:00 GMT</pubDate>
            <description><![CDATA[<p><strong>💻 딕셔너리</strong></p>
<pre><code>dict : key, value 로 구성
-----------------------------------------------------
dic = {&#39;one&#39;: &#39;1&#39;, &#39;two&#39;: &#39;2&#39;} #키, 값
dic[&#39;one&#39;] =&gt; 1

del dic[&#39;one&#39;]                 #원소 삭제
dic.keys()                     #키만 얻음
dic.values()                     #값만 얻음


dic.items()                            #원소(키/값 쌍)
dic([(&#39;one&#39;: &#39;1&#39;), (&#39;two&#39;: &#39;2&#39;)])   #결과

&#39;one&#39; in dic      #키가 있는지 유무 (T/F)
</code></pre><p><strong>💻 집합</strong></p>
<pre><code>set : 중복되지 않은 원소로 구성
ex) {&#39;apple&#39;, &#39;banana&#39;, &#39;grape&#39;}</code></pre><p><strong>💻 문자열 =&gt; 문자열의 일부 문자를 대입형으로 변경 불가</strong></p>
<pre><code>x = &#39;apple&#39;
x[0]           =&gt; &#39;a&#39;
x[:3]          =&gt; &#39;app&#39;
x[3:]          =&gt; &#39;le&#39;
x = &#39;b&#39;+x[1:]  =&gt; x가 bpple로 변경
x[-1:]         =&gt; e
x[:]           =&gt; apple 전체
x[::-1]        =&gt; 역순으로 복사 &#39;elppa&#39;

x.replace(&#39;바꾸고 싶은 단어&#39;, &#39;바꿀 단어&#39;)

x.find(&#39;e&#39;)    =&gt; e 위치 찾기 =&gt; 5

x.strip()      =&gt; 문자열 끝 공백제거 함수

x.split()[0]
ex) x = [&#39;python&#39;, &#39;c++&#39;]
    x.split()[1] #단어 알아내기
 &gt;&gt;&gt;&#39;c++&#39;

✔️ 문자열의 리스트
 fruit = [&#39;apple&#39;, &#39;banana&#39;]
 fruit[:1]     #[&#39;apple&#39;]
 fruit[0]      #&#39;apple&#39;</code></pre><p><strong>💻 리스트 예제</strong></p>
<pre><code>x = [1,5,2,10]
 x.append(11)   #11을 원소로 리스트에 추가
 x.sort()       #순서정렬 함수
 x.insert(2,4)  #2(+1)번째 자리에 4 삽입
 del x[2]       #2(+1)번째 원소 삭제
 x.pop()        #마지막 원소 삭제
 x[0] = 0       #새로운 원소 값 지정 가능

&gt;&gt;&gt;family = [&#39;mother&#39;, &#39;father&#39;, &#39;me&#39;] #리스트
&gt;&gt;&gt;len(family)                         #len &gt; 리스트의 길이 추출 함수
&gt;&gt;&gt;family.remove(&#39;me&#39;)                 #리스트에서 &#39;me&#39; 삭제
&gt;&gt;&gt;print(family)                       #or family
-------------------------------------------------------------------
[&#39;mother&#39;, &#39;father&#39;]


✔️리스트 = 2차원 리스트 가능 ex)family=[&#39;a&#39;, &#39;b&#39;, [&#39;c&#39;, &#39;cc&#39;, &#39;ccc&#39;], &#39;d&#39;]
        = 행렬 가능 ex)matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

✔️문자열을 리스트로 변경
strTolist = []
str = &#39;str&#39;

for i in str:
    strTolist.append(i) #[&#39;s&#39;, &#39;t&#39;, &#39;r&#39;]

또는
list(&#39;str&#39;) #바로 문자열을 리스트로 바꾸기

✔️숫자를 문자열로 바꾸기
num = 123
str(num) #&#39;123&#39;

✔️문자열을 숫자로 바꾸기
int(&#39;123&#39;)
float(&#39;123&#39;)  #123.0

✔️리스트 원소의 합
oneToten = list(range(1, 11))   #[&#39;1&#39;, &#39;2&#39;, &#39;3&#39;, &#39;4&#39;, &#39;5&#39;, &#39;6&#39;, &#39;7&#39;, &#39;8&#39;, &#39;9&#39;, 10&#39;]
sum(oneToten)                   #1~10까지의 합
</code></pre><p><strong>💻 튜플 =&gt; 원소값 직접 바꿀 수 없어서 오려붙여야 함</strong></p>
<pre><code>d,c = c,d   #한번에 값 바꾸기 가능
print(c, d) #한번에 출력 가능


t = (&#39;a&#39;, &#39;b&#39;, &#39;c&#39;) #괄호의 유무는 상관 없지만 빈 튜플 생성시 괄호 필수
t = 5,              #원소 하나인 튜플 원소 뒤에는 콤마 필수
                    #출력 : (5,)

t = t[:1] + (&#39;c&#39;, &#39;d&#39;) + t[1:3] #원소값 바꾸는 법

t = p[:1], &#39;c&#39;, p[2:] #((&#39;a&#39;,), &#39;c&#39;, (&#39;c&#39;,))

p = (1, 2, 3)
q = list(p)                  # 튜플 p -&gt; 리스트 q =&gt; [1,2,3]

r = tuple(q)                 # 리스트 q -&gt; 튜플 r =&gt; (1,2,3)</code></pre><p><strong>💻 세트 =&gt; 집합, {}사용</strong></p>
<pre><code>fruit = set() #빈 세트 생성
fruit = {&#39;apple&#39;, &#39;banana&#39;}
fruit.add(&#39;grape&#39;) #원소 추가

#세트의 교집합(&amp;), 합집합(|), 집합간 뺄셈(-)
#중복 원소를 갖지 않으며 원소의 순서가 유지되지 않음</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[Python 기초 정리]]></title>
            <link>https://velog.io/@m_solasid0/Python-%EA%B8%B0%EC%B4%88-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@m_solasid0/Python-%EA%B8%B0%EC%B4%88-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Sun, 07 Jan 2024 08:38:40 GMT</pubDate>
            <description><![CDATA[<p>*<em>💻 문자열 예제
*</em></p>
<pre><code>&gt;&gt;&gt; a = &#39;apple&#39;    #문자열
&gt;&gt;&gt; b = &#39;banana&#39;
&gt;&gt;&gt; print(a+b)     #or a+b
-------------------------
applebanana
</code></pre><p><strong>💻 while 반복문</strong></p>
<pre><code> num = 1
 while num &lt;= 5:      #콜론 필수
     print(num)
     num = num + 1
-------------------------------
1
2
3
4
5</code></pre><pre><code>while True:            #무한반복, 종료시 조건문과+break 사용</code></pre><p><strong>💻 for 반복문</strong></p>
<pre><code>for a in family:
    print(a, len(a))   #family 요소와 요소의 길이 출력

#2 이상 7미만의 숫자로 이루어진 리스트 생성
list(range(2, 7)) #파이썬 3
range(2,7)        #파이썬 2
---------------------------
[2, 3, 4, 5, 6]

#4이상 8미만 리스트 생성을 위한 for 반복문 사용
for i in range(4, 8):
     print(i)
------------------------
4
5
6
7</code></pre><p><strong>💻 if-elif-else 조건문</strong></p>
<pre><code>a = 1
b = 2

if a &gt; b:
    print(a)
elif a == b:
    print(&#39;a = b&#39;)
else:
    print(b)</code></pre><p><strong>💻 and/or 연산자</strong></p>
<pre><code>a = &#39;apple&#39;

if &#39;p&#39; in a:
    if &#39;l&#39; in &#39;a&#39;:
        print(a+&#39;에는 p와 l 모두 있어요!&#39;)

or

if &#39;p&#39; in a and &#39;l&#39; in &#39;a&#39;:
    print(a+&#39;에는 p와 l 모두 있어요!&#39;)

--------------------------------------------    
&gt;&gt;&gt;&#39;a&#39; in s
--------------
True
</code></pre><p><strong>💻 함수 선언 def</strong></p>
<pre><code>def print_a(a1):   #리스트 a를 매개변수로 받음
    for i in a1:
        print(i)  

a = [1, 2, 3, 4]
print_a(a)         #print_a 함수 호출</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[오픈 API(병원정보서비스) JAVA 활용 코드]]></title>
            <link>https://velog.io/@m_solasid0/%EC%98%A4%ED%94%88-API%EB%B3%91%EC%9B%90%EC%A0%95%EB%B3%B4%EC%84%9C%EB%B9%84%EC%8A%A4-JAVA-%ED%99%9C%EC%9A%A9-%EC%BD%94%EB%93%9C</link>
            <guid>https://velog.io/@m_solasid0/%EC%98%A4%ED%94%88-API%EB%B3%91%EC%9B%90%EC%A0%95%EB%B3%B4%EC%84%9C%EB%B9%84%EC%8A%A4-JAVA-%ED%99%9C%EC%9A%A9-%EC%BD%94%EB%93%9C</guid>
            <pubDate>Sat, 06 Jan 2024 09:47:03 GMT</pubDate>
            <description><![CDATA[<p>*<em>오픈 API - 건강보험심사평가원_병원정보서비스 JAVA 활용 코드
*</em></p>
<p>1) 개발계정 상세보기 &gt; 미리보기(확인)
<img src="https://velog.velcdn.com/images/m_solasid0/post/b023e1a9-88a3-464f-ae8f-32e17ba79650/image.png" alt=""></p>
<p>2) 데이터 사용 가능 확인
<img src="https://velog.velcdn.com/images/m_solasid0/post/9c6b383b-4104-4dc9-adb0-95eb30d4af58/image.png" alt=""></p>
<p>3) URL, 인증키 입력 후 코드 실행</p>
<pre><code>import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.io.BufferedReader;
import java.io.IOException;

public class db {
    public static void main(String[] args) throws IOException {
        StringBuilder urlBuilder = new StringBuilder(&quot;https://apis.data.go.kr/B551182/hospInfoServicev2/getHospBasisList&quot;); /*URL*/
        urlBuilder.append(&quot;?&quot; + URLEncoder.encode(&quot;ServiceKey&quot;,&quot;UTF-8&quot;) + &quot;=인증키&quot;); /*Service Key*/

        URL url = new URL(urlBuilder.toString());
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod(&quot;GET&quot;);
        conn.setRequestProperty(&quot;Content-type&quot;, &quot;application/json&quot;);
        System.out.println(&quot;Response code: &quot; + conn.getResponseCode());
        BufferedReader rd;
        if(conn.getResponseCode() &gt;= 200 &amp;&amp; conn.getResponseCode() &lt;= 300) {
            rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        } else {
            rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
        }
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = rd.readLine()) != null) {
            sb.append(line);
        }
        rd.close();
        conn.disconnect();
        System.out.println(sb.toString());
    }
}</code></pre><p>4) 코드 실행 결과
<img src="https://velog.velcdn.com/images/m_solasid0/post/799cdf24-9be6-464e-95c1-795949ca422c/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[공공데이터 - 오픈 API 활용법]]></title>
            <link>https://velog.io/@m_solasid0/%EA%B3%B5%EA%B3%B5%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%98%A4%ED%94%88-API-%ED%99%9C%EC%9A%A9%EB%B2%95</link>
            <guid>https://velog.io/@m_solasid0/%EA%B3%B5%EA%B3%B5%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%98%A4%ED%94%88-API-%ED%99%9C%EC%9A%A9%EB%B2%95</guid>
            <pubDate>Sat, 06 Jan 2024 06:46:35 GMT</pubDate>
            <description><![CDATA[<p>*<em>1) 공공데이터 포털 접속 
*</em><a href="https://www.data.go.kr/index.do">https://www.data.go.kr/index.do</a></p>
<p><strong>2) 필요 데이터 키워드 활용 검색(ex. 전국 병원, 약국, 건강보험 등)</strong>
<img src="https://velog.velcdn.com/images/m_solasid0/post/67100bcb-7254-44c3-a149-9d4cb0a5a2a7/image.png" alt=""></p>
<p>*<em>3) 검색한 오픈 API 활용 신청(데이터 포맷 확인)
*</em><img src="https://velog.velcdn.com/images/m_solasid0/post/b15e33b0-19af-4e86-93e4-13843e37e4ce/image.png" alt=""></p>
<p>*<em>4) 오픈 API 활용 목전 선택(활용 목적 간단히 작성)
*</em><img src="https://velog.velcdn.com/images/m_solasid0/post/8c12582a-760a-4a93-927d-9c63887393bf/image.png" alt=""></p>
<p>*<em>5) 필요 데이터 선택 후 저작자 표시 필수 동의
*</em><img src="https://velog.velcdn.com/images/m_solasid0/post/a8ed1279-05b4-4f3c-b432-afd00983b0ad/image.png" alt=""></p>
<p>*<em>6) 마이페이지 &gt; 개인 API 인증키 발급 완료
*</em><img src="https://velog.velcdn.com/images/m_solasid0/post/30b71d5a-d417-487e-b28b-43b77381f108/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[2023_2회차 정보처리기사 실기 정리]]></title>
            <link>https://velog.io/@m_solasid0/20232%ED%9A%8C%EC%B0%A8-%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@m_solasid0/20232%ED%9A%8C%EC%B0%A8-%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Sat, 24 Jun 2023 12:47:27 GMT</pubDate>
            <description><![CDATA[<h2 id="사용-교재--2023-시나공-퀵이지">사용 교재 ) 2023 시나공 퀵이지</h2>
<h3 id="1_1장-요구사항-확인-1">1_1장 요구사항 확인 1</h3>
<hr>
<p><strong>002 나선형 모형</strong>
나선형 모형은 여러 번의 소프트웨어 개발 과정을 거쳐 개발하는 모형으로 보헴이 제안
<strong>[ 계획수립 -&gt; 위험분석 -&gt; 개발 및 검증 -&gt; 고객평가 ]</strong> 를 순환</p>
<p><strong>003 폭포수 모형</strong>
폭포수 모형(=고전적 생명 주기 모형)은 각 단계를 확실하게 매듭짓고 검토, 승인 과정을 거친 후 다음을 진행하는 개발 방법론</p>
<p><strong>005 애자일 모형</strong>
요구사항 변호에 유연하게 대응할 수 있도록 일정한 주기를 반복하여 개발하는 모형
(스크럼, XP, 칸반, Lean, 기능중심개발(FDD))</p>
<p><strong>006 애자일 개발 4가지 핵심 가치</strong></p>
<ul>
<li>프로세스와 도구보다는 개인과 상호작용</li>
<li>방대한 문서보다는 실행되는 SW</li>
<li>계약 협상보다는 고객과 협업</li>
<li>계획을 따르기 보다는 변화에 반응</li>
</ul>
<p><strong>007 소프트웨어 공학</strong>
소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문</p>
<ul>
<li>현대적인 프로그래밍 기술 적용</li>
<li>개발 소프트웨어 품질 검증</li>
<li>소프트웨어 개발 사항 및 결과에 대한 기록 유지</li>
</ul>
<p><strong>010 XP(eXtreme Programming)</strong>
요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법</p>
<ul>
<li>용(용기)</li>
<li>단(단순성)</li>
<li>의(의사소통)</li>
<li>피(피드백)</li>
<li>존(존중)</li>
</ul>
<p><strong>011 XP의 주요 실천 방법</strong>
<strong>[Pair Programming(짝 프로그래밍)]</strong>
다른 사람과 함께 프로그래밍을 수행하며 개발에 대한 책임을 공동으로 나눠 갖는 환경 조성</p>
<p><strong>[Collective Ownership(공동 코드 소유)]</strong>
개발 코드에 대한 권한과 책임을 공동으로 소유</p>
<p><strong>[Continuous Integration(계속적인 통합)]</strong>
모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합</p>
<p><strong>[Refactoring(리팩토링)]</strong>
프로그램 기능의 변경 없이 시스템 재구성, 프로그램을 쉽게 이해, 수정, 빠른 개발을 위함</p>
<p><strong>016 기능 요구사항</strong>
기능 요구사항은 시스템이 무엇을, 어떤 기능을 하는지 등의 기능과 수행에 관련된 요구사항
시스템이 반드시 수행, 사용자가 제공받기를 원하는 기능 등</p>
<p><strong>017 비기능 요구사항</strong>
품질이나 제약사항과 관련된 요구사항
품질 요구사항(가용성, 정합성, 상호 호환성, 대응성, 이식성, 확장성, 보안성 등)</p>
<p><strong>018 요구사항 개발 프로세스</strong>
개발 대상에 대한 요구사항을 체계적으로 도출, 분석, 명세서 정리 및 확인, 검증의 구조화된 활동
<strong>[ 도출 -&gt; 분석 -&gt; 명세 -&gt; 확인 ]</strong></p>
<p><strong>020 요구사항 명세 기법</strong>
<strong>[정형 명세 기법]</strong>
수학적 원리 기반, 모델 기반
VDM, Z, CSP, Petri-net 등</p>
<p><strong>[비정형 명세 기법]</strong>
상태/기능/객체 중심, 자연어
FSM, Decision, Table, ER모델링, State Chart(SADT) 등</p>
<p><strong>021 요구사항 분석</strong>
소프트웨어 개발의 실질적 첫 단계, 개발 대상에 대한 사용자의 요구사항을 이해, 문서화하는 활동
사용자 요구의 타당성 조사, 비용과 일정의 제약 설정, 요구를 정확히 추출해 목표 설정</p>
<p><strong>022 자료 흐름도(=버블 차트)</strong>
자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법, 구조적 분석 기법에 이용</p>
<p><strong>023 자료 흐름도의 구성 요소</strong></p>
<ul>
<li>프로세스(Process) : 자료를 변환시키는 시스템의 한 부분</li>
<li>자료 흐름(Data Flow) : 자료의 이동, 연관 관계</li>
<li>자료 저장소(Data Storage) : 자료의 저장소</li>
<li>단말(Terminator) : 시스템가 교신하는 외부 개체, 출력 데이터를 받음</li>
</ul>
<p><strong>024 자료 사전</strong>
자료 흐름도에 있는 자료를 더 자세히 정의, 기록한 것</p>
<p>=: 자료의 정의
+: 자료의 연결
(): 자료의 생략
[]: 자료의 선택
{}: 자료의 반복
**: 자료의 설명</p>
<p><strong>026 SADT</strong>
시스템 정의, 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위한 도구, SoftTech 개발</p>
<p><strong>027 HIPO</strong>
시스템 실행 과정인 입력, 처리, 출력 기능을 표현한 것, 하향식</p>
<hr>
<h3 id="uml"><strong>&lt;&lt; UML &gt;&gt;</strong></h3>
<p><strong>028 UML</strong>
시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 대표적 객체지향 모델링 언어
사물(Things), 관계(Relationships), 다이어그램(Diagram)</p>
<p><strong>029 관계</strong>
사물과 사물 사이의 연관성을 표현하는 것</p>
<p><strong>031 집합 관계</strong>
하나의 사물이 다른 사물에 포함되어 있는 관계</p>
<p><strong>033 일반화 단계</strong>
하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계</p>
<p><strong>034 의존 관계</strong>
서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계</p>
<p><strong>035 실체화 단계</strong>
사물이 할 수 있거나 해야하는 기능, 서로를 그룹화 할 수 있는 관계
객체 간 오퍼레이션을 수행하도록 하는 의미적 관계</p>
<hr>
<p><strong>037 구조적 다이어그램의 종류</strong>
<strong>[클래스 다이어그램]</strong>
클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현</p>
<p><strong>[객체 다이어그램]</strong>
클래스에 속한 사물들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현, 럼바우 기법에서 활용</p>
<p><strong>[컴포넌트 다이어그램]</strong>
실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현, 구현 단계에서 사용</p>
<hr>
<p><strong>038 행위 다이어그램의 종류</strong>
<strong>[유스케이스]</strong>
사용자의 요구를 분석하는 것, 기능 모델링 작업에 사용</p>
<p><strong>[시퀀스 다이어그램]</strong>
상호작용하는 시스템이나 객체들이 주고받는 메시지를 표현</p>
<p><strong>[상태 다이어그램]</strong>
하나의 객체가 자신이 속한 클래스 상태 변화 혹은 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지를 표현, 럼바우 기법의 동적 모델링에 활용</p>
<p><strong>[활동 다이어그램]</strong>
시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현</p>
<p><strong>039 스테레오 타입</strong>
UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하는 것
<strong>&lt;&lt;&gt;&gt; 길러멧</strong></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[ATOM 설치 및 테마 적용]]></title>
            <link>https://velog.io/@m_solasid0/ATOM-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%85%8C%EB%A7%88-%EC%A0%81%EC%9A%A9</link>
            <guid>https://velog.io/@m_solasid0/ATOM-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%85%8C%EB%A7%88-%EC%A0%81%EC%9A%A9</guid>
            <pubDate>Sat, 30 Jul 2022 08:31:33 GMT</pubDate>
            <description><![CDATA[<h2 id="atom-설치-및-테마-설정">&lt; ATOM 설치 및 테마 설정 &gt;</h2>
<blockquote>
<p><a href="https://atom.io/">[ ATOM 설치 ] 클릭
</a>
<img src="https://velog.velcdn.com/images/m_solasid0/post/b6806b3e-d583-4025-a055-7a9358071428/image.png" alt=""></p>
</blockquote>
<blockquote>
<p>ATOM 실행, Setting 이동(Ctrl+,)</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/b6323b4f-d651-45d8-bb15-b9c440aff83b/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/0eac7996-157a-48ba-b76d-1419b65d7611/image.png" alt=""></p>
<blockquote>
<p>language-vue 검색 후 install : vue 공식 지원</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/7e9d665e-4385-4a1a-986f-10a2ea196483/image.png" alt=""></p>
<ul>
<li>설치 후 하단에 Vue Component로 표기됨
<img src="https://velog.velcdn.com/images/m_solasid0/post/88448e1c-2500-4353-b741-59e2175246d9/image.png" alt=""></li>
</ul>
<blockquote>
<p>Themes -&gt; seti-ui 검색 후 install
(seti-ui : 파일 아이콘 제공)</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/4ecf4f0d-f391-4165-9eb9-90397e89b858/image.png" alt=""></p>
<blockquote>
<p>Themes -&gt; atom-material-syntax-dark 검색 후 install
(코드색 구분 제공 : 가독성 높임)</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/3b9ddac8-5f0f-4901-87c2-43b5a56adbb2/image.png" alt=""></p>
<blockquote>
<p>UI Theme : Seti / Syntax Theme : Atom Material Dark 선택</p>
</blockquote>
<p><img src="blob:https://velog.io/fa933c4a-e8de-4c3d-ad86-0b8e40747e2e" alt="업로드중.."></p>
<blockquote>
<p>😊 테마 설정 완료 😊
<img src="https://velog.velcdn.com/images/m_solasid0/post/0988991b-85a5-42fc-b28b-e0bd405e35e3/image.png" alt=""></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[vue.js 프로젝트 생성 및 환경설정]]></title>
            <link>https://velog.io/@m_solasid0/vue.js-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-%EB%B0%8F-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@m_solasid0/vue.js-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-%EB%B0%8F-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95</guid>
            <pubDate>Sat, 30 Jul 2022 08:02:21 GMT</pubDate>
            <description><![CDATA[<p><img src="blob:https://velog.io/455ee69d-07c3-4c07-95a4-344c359acff5" alt="업로드중.."></p>
<h2 id="vuejs">&lt; Vue.js &gt;</h2>
<blockquote>
<p>Vue.js 는 무엇인가?</p>
</blockquote>
<ul>
<li>Vue.js는 웹 애플리케이션의 사용자 인터페이스를 만들기 위해 사용하는 오픈 소스 프로그레시브 자바스크립트 프레임워크다.</li>
</ul>
<blockquote>
<p>Vue 설치 (cmd 창에서 진행)</p>
</blockquote>
<ul>
<li><p>npm install –g @vue/cli</p>
<p>-&gt; 명령어에서 -g : &#39;전역(global)&#39;을 의미</p>
</li>
</ul>
<p>( 단, npm 명령어 사용 불가 시, Node.js 설치 )</p>
<ul>
<li><a href="https://nodejs.org/ko/">[Node.js 설치하기] 클릭</a></li>
</ul>
<ul>
<li>vue --version
(버전 확인)</li>
</ul>
<hr>
<blockquote>
<p>Vue.js 프로젝트 생성 및 환경설정 - cmd 창에서 진행</p>
</blockquote>
<pre><code>- vue create 파일명</code></pre><p><img src="https://velog.velcdn.com/images/m_solasid0/post/1cb3ef48-8467-4a9d-aff0-80bef5fb1d99/image.png" alt=""></p>
<pre><code>- Manully select features 선택 (설치 관련 옵션 선택 가능)</code></pre><p><img src="https://velog.velcdn.com/images/m_solasid0/post/9053b6bb-2c93-41ac-85a4-328edce2381b/image.png" alt=""></p>
<pre><code>-&gt; 각 원하는 체크 항목 선택</code></pre><p><img src="https://velog.velcdn.com/images/m_solasid0/post/61688d50-8971-4ffc-8be7-abcd77f1dc16/image.png" alt=""></p>
<pre><code>-&gt; 버전 선택(2.x, 3.x-최신버전)</code></pre><p><img src="https://velog.velcdn.com/images/m_solasid0/post/c3518359-743a-4bd2-a6c8-3e5687cc9168/image.png" alt=""></p>
<pre><code>-&gt; Use history mode for router? Y
   (라우터에 히스토리 모드(/)사용)</code></pre><p><img src="https://velog.velcdn.com/images/m_solasid0/post/8dcaf26d-d0db-4fe5-8855-66cd08bcac67/image.png" alt=""></p>
<pre><code>-&gt; 해당 체크 - 개인에 맞게 설치</code></pre><p><img src="https://velog.velcdn.com/images/m_solasid0/post/60398daa-89aa-4a6a-921d-9c2adedc51b0/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/b1837918-cac8-4dee-9a05-12ff30a65f1e/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/a0510a10-8780-4d76-9ff0-13256079869a/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/6960ae61-b9f0-4fbc-a017-2abf8f3e3c33/image.png" alt=""></p>
<pre><code>-&gt; Save this as a preset for future projects? N 
   (선택한 옵션들이 향후 프로젝트에 기본 설정으로 저장)</code></pre><p><img src="https://velog.velcdn.com/images/m_solasid0/post/df21b77b-9fba-4937-acfa-0e412be1269d/image.png" alt=""></p>
<blockquote>
<p>Vue 기본 페이지 구현 (마찬가지로 cmd창에서 진행)</p>
</blockquote>
<pre><code>- npm run serve</code></pre><p><img src="https://velog.velcdn.com/images/m_solasid0/post/cdec74dd-d431-4116-bde2-8ec535b1ede3/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/m_solasid0/post/db60fe59-775b-4c63-9e75-37486442dfde/image.png" alt=""></p>
<blockquote>
<p>Local 또는 Network 주소로 url 이동
<img src="https://velog.velcdn.com/images/m_solasid0/post/975cb4b1-bd5d-4a97-8129-7ca92c6a74b5/image.png" alt=""></p>
</blockquote>
<p>vue 프로젝트 환경설정 및 생성 완료 :) 👍👍</p>
]]></description>
        </item>
    </channel>
</rss>