<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>choi_free.log</title>
        <link>https://velog.io/</link>
        <description>울지말고 해결하자,</description>
        <lastBuildDate>Tue, 26 Mar 2024 05:06:47 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. choi_free.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/choi_free" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[도커개념, 이미지란, 컨테이너란, Dockerfile이란, docker-compose]]></title>
            <link>https://velog.io/@choi_free/%EB%8F%84%EC%BB%A4%EA%B0%9C%EB%85%90-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%9E%80-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EB%9E%80-Dockerfile%EC%9D%B4%EB%9E%80-docker-compose</link>
            <guid>https://velog.io/@choi_free/%EB%8F%84%EC%BB%A4%EA%B0%9C%EB%85%90-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%9E%80-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EB%9E%80-Dockerfile%EC%9D%B4%EB%9E%80-docker-compose</guid>
            <pubDate>Tue, 26 Mar 2024 05:06:47 GMT</pubDate>
            <description><![CDATA[<h3 id="도커의-개념">도커의 개념</h3>
<ul>
<li>컨테이너 패키징 플랫폼</li>
<li>같은 컴퓨터 내에서 공간을 분리하여 어플리케이션을 구동시킬수 있다.<ul>
<li>ex) 서버, db, 클라이언트 등등등</li>
</ul>
</li>
<li>리눅스의 기능을 사용하여 프로세스를 격리한다.</li>
<li>윈도우에서 도커를 사용할 경우 WSL2(리눅스 하위 시스템)를 설치하여 리눅스 커널을 이용하여 컨테이너 관리를 한다. MAC은 없어도 된다.</li>
</ul>
<h3 id="컨테이너란">컨테이너란</h3>
<ul>
<li>호스트의 커널을 공유받는 격리된 환경, 다른 OS에 있는것처럼 어플리케이션 실행이 가능하다.  </li>
<li>호스트 OS(도커를 설치한 OS)를 공유하므로 컨테이너 내에서 항상 OS설치를 필요로 하는것은 아니다.</li>
<li>여러개를 띄울 경우 메모리 점유율이 높아질 수 있다. 컨테이너를 여러개 개 돌릴경우 16기가 메모리가 모자란다.</li>
</ul>
<h3 id="이미지란">이미지란</h3>
<ul>
<li>컨테이너(가상의 프로세스 공간)를 띄우기 위해 만드는 템플릿. <ul>
<li>Dockerfile이란 도커 이미지를 빌드하기 위한 텍스트 파일.</li>
<li>한번 만들어두면 컨테이너 생성이 수월하다.</li>
</ul>
</li>
<li>우리가 불러오는 통상적인 이미지들, 예를들어 docker pull mysql 이런식으로 불러오는 이미지들은 공식 이미지이며 <a href="https://hub.docker.com/%EC%97%90%EC%84%9C">https://hub.docker.com/에서</a> 세부내역 확인이 가능하다.</li>
</ul>
<h3 id="docker-compose란">docker-compose란</h3>
<ul>
<li>도커 컨테이너를 정의하고 실행하는 도구로 개발 초기단계에서 여러 컨테이너를 동시에 실행하고 관리하기 용이하다. 예를들어 멀티컨테이너로 client, server, db를 한번에 올릴수 있다. 각 컨테이너간의 의존성 관리 및 실행순서 제어등을 할 수 있다.</li>
</ul>
<h3 id="도커의-장점">도커의 장점</h3>
<ul>
<li>컴퓨터를 여러개 운영하는것보다 비용적, 시간적으로 매우 효율적이다. </li>
<li>도커 엔진이 설치된 모든 머신, 혹은 가상머신에서 동일한 환경으로 실행이 가능하다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[워크벤치 auth_gssapi_client 오류 발생 이유]]></title>
            <link>https://velog.io/@choi_free/%EC%9B%8C%ED%81%AC%EB%B2%A4%EC%B9%98-authgssapiclient-%EC%98%A4%EB%A5%98-%EB%B0%9C%EC%83%9D-%EC%9D%B4%EC%9C%A0</link>
            <guid>https://velog.io/@choi_free/%EC%9B%8C%ED%81%AC%EB%B2%A4%EC%B9%98-authgssapiclient-%EC%98%A4%EB%A5%98-%EB%B0%9C%EC%83%9D-%EC%9D%B4%EC%9C%A0</guid>
            <pubDate>Mon, 25 Mar 2024 04:54:19 GMT</pubDate>
            <description><![CDATA[<p>도커로 mysql을 올린후 워크벤치에서 오픈하려는데 이 오류가 계속 발생하였다.</p>
<p>이 하지만 auth_gssapi_client는 mariaDB용인데 왜 나를 괴롭히는지 알수가없었다.</p>
<p>내가 mariaDB를 실행중인가 싶어서 작업관리자의 서비스부분을 봤더니 켜놨다.</p>
<p><img src="https://velog.velcdn.com/images/choi_free/post/540b174e-72ad-4c02-b72a-6e3a67189b00/image.png" alt=""></p>
<p>mariaDB를 중지하니 워크벤치에 연결이 잘된다.</p>
<p><img src="https://velog.velcdn.com/images/choi_free/post/b9ac5378-895f-4858-ba9d-ad2ab2fa3033/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[윈도우11 메모리 점유율 해결]]></title>
            <link>https://velog.io/@choi_free/%EC%9C%88%EB%8F%84%EC%9A%B011-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%A0%90%EC%9C%A0%EC%9C%A8-%ED%95%B4%EA%B2%B0</link>
            <guid>https://velog.io/@choi_free/%EC%9C%88%EB%8F%84%EC%9A%B011-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%A0%90%EC%9C%A0%EC%9C%A8-%ED%95%B4%EA%B2%B0</guid>
            <pubDate>Fri, 23 Feb 2024 01:28:21 GMT</pubDate>
            <description><![CDATA[<p>윈도우버튼 클릭후 msconfig(시스템구성)를 들어간 뒤 
서비스탭에서 모든 Microsoft 서비스 숨기기를 체크하고(중요)
모두 사용 안함에 체크하고 적용한다</p>
<p>그리고 재부팅하는데 이걸 클린부팅이라고 한다.</p>
<p>나의경우 8+8 메모리카드 사용중인데 부팅시 자동 점유율이 60%대였는데 지금은 30%대로 줄어들었다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[ then/catch 메소드와 async await의 문법차이는?
]]></title>
            <link>https://velog.io/@choi_free/thencatch-%EB%A9%94%EC%86%8C%EB%93%9C%EC%99%80-async-await%EC%9D%98-%EB%AC%B8%EB%B2%95%EC%B0%A8%EC%9D%B4%EB%8A%94</link>
            <guid>https://velog.io/@choi_free/thencatch-%EB%A9%94%EC%86%8C%EB%93%9C%EC%99%80-async-await%EC%9D%98-%EB%AC%B8%EB%B2%95%EC%B0%A8%EC%9D%B4%EB%8A%94</guid>
            <pubDate>Sat, 27 Jan 2024 02:48:23 GMT</pubDate>
            <description><![CDATA[<p>then/catch 메소드와 async/await는 둘 다 JavaScript에서 비동기 작업을 처리하는 방법입니다. 그러나 이들은 사용법과 문법적인 측면에서 몇 가지 중요한 차이점을 가지고 있습니다.</p>
<p>then/catch 메소드
Promise 기반: then과 catch는 Promise 객체의 메소드입니다. 이들은 Promise의 결과에 따라 실행될 콜백 함수를 설정합니다.</p>
<p>체이닝(Chaining): then과 catch는 체인 형태로 연결될 수 있어, 여러 비동기 작업을 순차적으로 실행하고 각 단계에서 오류를 잡을 수 있습니다.</p>
<p>구문: 비동기 작업이 완료될 때 실행할 콜백 함수를 인자로 전달합니다. then은 성공 시, catch는 오류 발생 시 실행됩니다.</p>
<p>예시:</p>
<pre><code class="language-javascript">javascript
Copy code
doSomethingAsync()
  .then(result =&gt; doSomethingElseAsync(result))
  .catch(error =&gt; console.error(error));</code></pre>
<p>async/await 문법
async 함수: async/await는 async로 정의된 함수 내에서만 사용됩니다. 이 함수는 항상 Promise를 반환합니다.</p>
<p>동기적 코드 스타일: await 키워드는 Promise가 해결될 때까지 함수 실행을 일시 중지시킵니다. 이로 인해 코드가 동기적으로 보이며, 이해하고 작성하기 쉬워집니다.</p>
<p>오류 처리: 오류 처리는 try/catch 블록을 사용하여 이루어집니다. try 블록 내에서 await을 사용하여 비동기 작업을 수행하고, catch 블록에서 오류를 잡습니다.</p>
<p>예시:</p>
<pre><code class="language-javascript">async function asyncFunction() {
  try {
    const result = await doSomethingAsync();
    const newResult = await doSomethingElseAsync(result);
  } catch (error) {
    console.error(error);
  }
}</code></pre>
<p>주요 차이점
가독성: async/await은 코드를 동기적으로 작성할 수 있게 해주어, 특히 복잡한 비동기 로직에서 가독성이 높습니다.
오류 처리: then/catch는 각 Promise마다 오류 처리를 해야 하지만, async/await에서는 try/catch 블록을 통해 여러 비동기 작업의 오류를 한 곳에서 처리할 수 있습니다.
표현력: async/await을 사용하면 더 직관적이고 선언적인 방식으로 비동기 로직을 표현할 수 있습니다.
두 방법 모두 각기 다른 상황과 개인적인 선호에 따라 유용하게 사용될 수 있습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Promis,  async/await, axios, fetch의 개념을 간략하게 정리해줄래?]]></title>
            <link>https://velog.io/@choi_free/gpt-Promis-asyncawait-axios-fetch%EC%9D%98-%EA%B0%9C%EB%85%90</link>
            <guid>https://velog.io/@choi_free/gpt-Promis-asyncawait-axios-fetch%EC%9D%98-%EA%B0%9C%EB%85%90</guid>
            <pubDate>Sat, 27 Jan 2024 02:22:48 GMT</pubDate>
            <description><![CDATA[<p>물론이죠! JavaScript에서의 Promise, async/await, axios, fetch는 모두 비동기 프로그래밍과 관련이 있습니다. 이들 각각의 개념을 쉽게 정리해 드리겠습니다.</p>
<p>Promise: JavaScript에서 비동기 작업을 대표하는 객체입니다. Promise는 어떤 작업이 완료되었을 때 그 결과값을 나중에 사용할 수 있게 해줍니다. 기본적으로, Promise는 세 가지 상태를 가집니다: pending(진행 중), fulfilled(성공적으로 완료), rejected(오류 발생). Promise를 사용하면, 비동기 작업이 완료된 후에 특정 코드를 실행할 수 있습니다.</p>
<p>async/await: 이는 Promise를 더 쉽게 사용하기 위한 문법입니다. async 함수는 항상 Promise를 반환하고, await 키워드는 Promise가 처리될 때까지 함수 실행을 일시 중지시킵니다. 이를 통해 비동기 코드를 동기 코드처럼 보이게 하여 가독성을 높일 수 있습니다.</p>
<p>axios: axios는 HTTP 요청을 보내기 위한 JavaScript 라이브러리입니다. 이 라이브러리를 사용하면 쉽게 REST API와 같은 외부 리소스와 통신할 수 있습니다. axios는 내부적으로 Promise를 사용하기 때문에, 비동기 요청을 처리할 때 매우 유용합니다.</p>
<p>fetch: fetch도 HTTP 요청을 보내는 데 사용되는 JavaScript의 내장 함수입니다. axios와 마찬가지로, fetch는 Promise 기반으로 작동합니다. fetch는 추가 라이브러리 없이도 사용할 수 있으며, 웹 브라우저에서 기본적으로 제공됩니다.</p>
<p>간단히 요약하자면, Promise는 JavaScript의 비동기 작업을 대표하는 기본적인 객체이며, async/await는 Promise를 더 쉽게 다루기 위한 문법입니다. axios와 fetch는 웹에서 비동기적으로 데이터를 요청하고 받아오는 데 사용되는 도구입니다. axios는 외부 라이브러리로, 좀 더 많은 기능을 제공하고, fetch는 브라우저 내장 함수로서 라이브러리 없이 사용 가능합니다.</p>
<p><strong>개념 정리</strong></p>
<p>Promise: 비동기 작업(예: 데이터 요청, 파일 읽기 등)의 완료를 대표하는 기본 객체이다. 세 가지 상태(pending, fulfilled, rejected)를 가진다.</p>
<p>axios와 fetch: 웹에서 데이터를 비동기적으로 요청하고 받아오는 데 사용되는 도구. 데이터를 요청하면 그 결과는 Promise로 반환되며, 이를 async/await나 Promise의 then/catch 메소드를 사용하여 처리한다.</p>
<p>async/await: Promise를 더 쉽게 사용하기위한 js문법으로, </p>
<ul>
<li>async로 선언된 함수는 항상 Promise를 반환</li>
<li>await는 해당 함수 내에서 Promise의 결과가 나올 때까지 함수의 실행을 일시 중지시키며, 코드를 마치 동기적인 것처럼 보이게 해서 가독성을 높여준다.</li>
</ul>
<p>then/catch 메소드:
아래의 형식으로 성공시, 실패시의 경우를 나누어 관리할수 있다.
myPromise
  .then(function(value) {
    // 성공 시 실행할 코드
  }, function(error) {
    // 실패 시 실행할 코드 (옵션)
  });</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[개발자가 되려고 한다.]]></title>
            <link>https://velog.io/@choi_free/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EB%90%98%EB%A0%A4%EA%B3%A0-%ED%95%9C%EB%8B%A4</link>
            <guid>https://velog.io/@choi_free/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EB%90%98%EB%A0%A4%EA%B3%A0-%ED%95%9C%EB%8B%A4</guid>
            <pubDate>Fri, 25 Aug 2023 07:38:54 GMT</pubDate>
            <description><![CDATA[<p>세달동안 국비지원 프로그램에서 강의만 겉핥기로 듣고 실습은 했어도 응용은 안되는 상태로 학습을 진행하다가
도저히 이렇게는 배우는게 없을것 같아 리액트고 뭐고 기본 자바스크립트부터 다시 공부하고자 한다.
실제로 내가 뭔가를 배우는 과정을 남겨보고자 한다.
강의만 봐서는 되는게 없다. 라는 코딩애플님 말 듣고 머리를 맞은것 같았다.(결제도 하러갈뻔)
단순한 취직을 넘어 나의 의지를 실현시켜줄 도구로 사용하고 싶다.
3개월이 남았다. 무엇을 더 배울수 있을까?
강의 듣는것을 멈추고 응용을 하며 수업을 이틀간 해본 결과 할수있다는 결정을 내렸다.
하고 싶은걸 하는게 남는거라는 마음으로 배움도 과정으로 삼으며 행복을 이루겠다.</p>
]]></description>
        </item>
    </channel>
</rss>