<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>g-02.log</title>
        <link>https://velog.io/</link>
        <description>Hello</description>
        <lastBuildDate>Fri, 05 Aug 2022 08:41:23 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. g-02.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/g-02" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[알고리즘 : 슬라이딩 윈도우]]></title>
            <link>https://velog.io/@g-02/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%94%A9-%EC%9C%88%EB%8F%84%EC%9A%B0</link>
            <guid>https://velog.io/@g-02/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%94%A9-%EC%9C%88%EB%8F%84%EC%9A%B0</guid>
            <pubDate>Fri, 05 Aug 2022 08:41:23 GMT</pubDate>
            <description><![CDATA[<p>슬라이딩 윈도우를 사용하는 경우</p>
<ol>
<li>고정된 데이터 더미에서</li>
<li>일정한 구간을 </li>
<li>순서대로 연속적으로 순회할때 사용한다.</li>
</ol>
<blockquote>
<p><a href="https://www.acmicpc.net/problem/12891">백준:12891:DNA비밀번호</a></p>
</blockquote>
<p>입력으로 주어진 S길이의 &#39;ATGC&#39;로 이루어진 문자열에서<br>길이가 P인 연속적인 부분집합 중<br>민호가 제시한 ATGC의 개수보다 크거나 같은 부분집합의 개수를 구하기.  </p>
<ol>
<li>S의 데이터가 변경되지 않는다.</li>
<li>P의 크기가 고정 되어있다.</li>
<li>P가 S를 순서대로 연속적으로 순회한다.</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[프로토타입 이론]]></title>
            <link>https://velog.io/@g-02/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98-%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84</link>
            <guid>https://velog.io/@g-02/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98-%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84</guid>
            <pubDate>Sat, 04 Jun 2022 14:14:22 GMT</pubDate>
            <description><![CDATA[<p>자바스크립트의 패러다임에 대해 궁금증을 가지던 중 명쾌한 답을 알려주는 글을 발견했다.</p>
<p><a href="https://medium.com/@limsungmook/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94-%EC%99%9C-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85%EC%9D%84-%EC%84%A0%ED%83%9D%ED%96%88%EC%9D%84%EA%B9%8C-997f985adb42">자바스크립트는 왜 프로토타입을 선택했을까? &lt;-클릭</a></p>
<p>이 글을 읽고 자바스크립트의 본질에 대해서 조금은 알 수 있었다. </p>
<p>핵심은 프로토타입 이었다.</p>
<p>이전까진 프로토타입에 대해서는 그저 자바스크립트의 상속 방법 정도로만 알고있었다. 하지만 프로토타입을 왜 사용하는지는 모르고 있었다. 프로토타입이 나온 배경이나 아이디어에 대해서는 궁금해 하지도 않았었다. 다시 생각해보면 어떻게 궁금해 하지 않았는지 모르겠다. 당장의 상황에 급박해서 근본,본질을 생각하지 않는 공부를 한 탓일까?</p>
<hr>
<h3 id="1-플라톤의-이데아">1. 플라톤의 이데아</h3>
<p>이 글의 초반에 나온 플라톤의 이데아에 대한 내용은 나의 생각방식을 바꾸어놓았다. 플라톤의 주장은 현실에 존재하는 객체들은 반드시 이데아에 그 추상적이고, 본질적인 것이 존재한다는 것이었다.</p>
<p>이러한 플라톤의 사고방식이 녹아든 것이 Java, c++같은 &#39;클래스기반의 객체지향 프로그래밍 언어&#39;였다. 이데아에 존재하는 추상적이고 본질적인 것이 클래스이고, 클래스를 이용해 현실세계로 존재하게(인스턴스화) 한 것이 객체였다.</p>
<h3 id="2-아리스토텔레스의-분류classification">2. 아리스토텔레스의 분류(classification)</h3>
<p>플라톤의 제자 아리스토텔레스는 플라톤의 이데아 이론을 분류라는 개념으로 정립했다고 한다. 같은 본질을 가지는 객체들을 모아 하나의 범주로 묶은 것을 분류라고 정의 했다는 말 같다.</p>
<p>클래스라는 말도 아리스토텔레스의 classification에서 나오게 되었다는 것도 엄청난 충격이었다. 동일한 속성을 가지는 객체를 모아 그 추상적이고 본질적인 classificaiton을 만드는 것이 바로 클래스를 만드는 근본 아이디어 였다. </p>
<p>여태 &#39;클래스 기반 객체지향 프로그래밍 언어&#39;를 배우면서 이 개념을 몰랐다는것이 참 허탈했다. 내가 평소에 사용하던 언어가 플라톤과 아리스토텔레스라는 철학자의 아이디어로부터 파생되었고 그 구현체라는 것이 너무나도 놀랍다. 세상에 무엇하나 의미나 이유없이 만들어진 것이 없구나라는 생각이 들었다.</p>
<h3 id="3-비트겐슈타인의-의미사용이론-가족유사성">3. 비트겐슈타인의 의미사용이론, 가족유사성</h3>
<p>그리고 드디어 내가 왜 그렇게 자바스크립트를 어려워했고, 이해하지 못했는지 이유를 알 수 있었다. 자바스크립트의 프로토타입은 아리스토텔레스의 분류 이론을 반박하는 비트겐슈타인의 의미사용이론과 가족유사성을 따르기 때문이었다.</p>
<p>다시 생각해보면 클래스를 정의하기란 생각보다 쉽지 않았던 것 같다. 문제 상황에 완전히 알맞는 속성과 연산을 가지는 클래스를 설계하기에는 예외가 생기면 수정해야할 부분이 많았다. 예를들어, 하위타입은 상위타입에 관계없는 멤버까지 구현/상속을 해야한다는 점이 말이다. 어떻게 상위타입의 속성을 모두 만족하는 하위타입 만 있다는 말인가.(사실 이게 올바른 예시인지 모르겠다)</p>
<p>비트겐슈타인은 &#39;세계에 미리 내제되어서 대상과 언어를 완전히 규정하는 언어란 존재하지 않는다.&#39; 고 하였다. 내 생각에 이 말의 의미가 이데아라는 본질적이고 추상적인 개념은 현실세계에 완벽히 존재할 수 없다는 것을 말해주는 것 같다. 그래서 그런 완벽한 이데아의 개념을 클래스로 만드는 것이 어려웠던 것이고.</p>
<p>그리고 비트겐슈타인은 &#39;표현은 삶의 흐름속에서만 의미를 갖는다&#39;라고 하였다. 이데아와 같은 본질적이고 추상적인 표현은 표현을 사용하는 상황에서 그 의미를 갖는다는 말인 것 같다.</p>
<blockquote>
</blockquote>
<p><strong>의미사용이론</strong>
사용(use)에 의해 의미(meaning)가 결정된다는 이론. 단어의 쓰임새가 곧 의미가 된다. 즉, 단어의 ‘진정한 본래의 의미&#39;란 존재하지 않고 ‘상황과 맥락에 의해서 결정된다&#39;라고 주장한다. 
상황과 <strong>맥락</strong>에 의해서 그 &#39;무엇인가&#39;의 <strong>의미가 결정</strong>된다는 말.</p>
<blockquote>
</blockquote>
<p><strong>가족유사성</strong>
현실에서 인간이 무엇인가를 분류할때 속성을 포함하는지 여부가 아닌, 유사성을 통해 분류한다는 이론.</p>
<p>확실히 생각해보면, 현실에서 사람이 객체를 분류하고 그 의미를 사용할 때, 아리스토텔레스의 분류 이론보다는 비트겐슈타인의 가족유사성과 의미사용이론에 의한 경우가 많은것 같다. </p>
<p>예를들어, 사진을 분류할 때 특정 속성이 반드시 포함되었냐의 여부보다는 사용하는 목적이나 상황에 따르거나 유사한것끼리 묶는 것이 보통이다. 그리고 상황이나 사람에 따라 같은 사진을 분류하는 기준이 다르다.</p>
<p>결론적으로 사람이 객체를 분류한다는 것은 가족유사성과 의미사용이론에 의해 절대적이지 않고 상대적으로 분류된다는 말 같다.</p>
<h3 id="4-일레노어-로쉬의-프로토타입-이론">4. 일레노어 로쉬의 프로토타입 이론</h3>
<p>비트겐슈타인의 의미사용이론과 가족유사성은 일레노어 로쉬에 의해 정리된다. </p>
<blockquote>
</blockquote>
<p><strong>프로토타입 이론</strong></p>
<ol>
<li>인간은 등급이 매겨진 개념 구조를 가진다. 사물을 분류할 때도 자연스럽게 유사성이 높은 것 순서대로 등급을 매기는데, 여기서 가장 높은 등급을 원형(prototype)으로 선택한다.</li>
<li>문맥(컨텍스트)에 따라 ‘범주’, 즉 ‘의미’가 달라진다. 누가 어떤 상황에서 객체를 접했는지에 따라 의미,범주가 달라진다.</li>
</ol>
<p><a href="https://en.wikipedia.org/wiki/Prototype_theory">일레노어 로쉬의 프로토타입 이론 &lt;-클릭</a></p>
<h3 id="5-프로토타입-기반-객체지향-프로그래밍">5. 프로토타입 기반 객체지향 프로그래밍</h3>
<p><a href="https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2010/ch4_4e_ms">프로토타입 기반 프로그래밍 &lt;- 클릭</a></p>
<p>갑자기 예전에 신교수님이 객체지향이란 것은 현실세계(?)를 말한다고 했던 것이 기억난다. 그 땐 그 말이 너무 추상적이라고 생각했었는데 저 글을 읽고나니 왜 교수님이 그렇게 이야기 하셨는지 조금은 이해가 된다. 플라톤의 이데아, 아리스토텔레스의 분류, 비트겐슈타인과 일레노어 로쉬의 프로토타입 이론이 바로 현실세계의 본질을 이해하기 위한 이론들이기 때문에, 그 이론들을 컴퓨터 프로그래밍 언어로 녹여낸 클래스, 프로토타입 또한 객제지향이라고 말하는 것이 아닐까. </p>
<p>현실세계의 본질을 알기위해 생겨난 이론들이, 컴퓨터 프로그래밍 언어에 녹아들어, 현실 세계를 컴퓨터 프로그램으로 표현한 것이 객제치향 프로그래밍이 아닐까 하는 생각이 든다. </p>
<p>어쨋든, 저 글에서 &#39;프로토타입 이론을 기반으로한 객제치향 프로그래밍의 특징&#39;에 대해서도 설명을 해주었는데. 다음과 같다.</p>
<blockquote>
</blockquote>
<ul>
<li><strong>개별 객체 수준에서 메소드와 변수를 추가</strong></li>
<li><strong>객체 생성은 일반적으로 복사를 통해 이루어진다</strong></li>
<li><strong>확장(extends)은 클래스가 아니라 위임(delegation)</strong> 
  (현재 객체가 메세지에 반응하지 못할 때 다른 객체로 메세지를 전달할 수 있게 하여 상속의 본질을 지원한다.)</li>
<li><strong>개별 객체 수준에서 객체를 수정하고 발전시키는 능력은 선험적 분류의 필요성을 줄이고 반복적인 프로그래밍 및 디자인 스타일을 장려한다.</strong></li>
<li><strong>결과적으로 설계는 맥락에 의해 평가된다.</strong></li>
<li><strong>분류를 우선하지 않는다. 생성된 객체 위주로 유사성을 정의한다.</strong></li>
<li>*<em>어휘 쓰임새는 맥락에 의해 평가된다. *</em>
  (자바스크립트의 실행 컨텍스트, 스코프 체인이 여기서 파생되었다. 클로져, this, 호이스팅 등등이 프로토타입의 맥락을 표현하기 위한 것이다.)</li>
</ul>
<p>아리스토텔레스의 분류(classification)는 </p>
<ol>
<li>변수와 메소드를 미리 정의하는 클래스를 만든다. 상속을 통해 클래스를 확장 한다. (클래스 수준에서의 확장)</li>
<li>그 클래스를 인스턴스화하여 변수와 메소드를 사용한다.</li>
</ol>
<p>프로토타입은 </p>
<ol>
<li>객체 수준에서 메소드와 변수를 추가한다. 객체를 확장할 때는 현재 존재하고 있는 객체를 프로토타입으로 연결해서 확장한다. (객체 수준에서의 확장)</li>
<li>해당 객체를 사용하는 상황/문맥에 따라, 해당 객체를 사용하는 의미(쓰임새)가 달라진다.
(자바스크립트의 메소드는 실행하는 객체에 따라 this의 바인딩이 달라지는 것을 말하는 것 같다.)</li>
</ol>
<p>ex) 청솔모 객체에 &#39;꼬리&#39;,&#39;털색&#39; 변수 와 &#39;사냥방법&#39; 메소드를 추가하고, 다람쥐 객체를 만들 때 청솔모 객체를 프로토타입으로 추가하고, &#39;털색&#39;,&#39;사냥방법&#39;을 수정하고 &#39;동면&#39;같은 다람쥐만의 함수를 추가할 수 있다는 말인것같다. 그리고 객체를 생성할 때는 복사를 통해 여러개를 만들 수 있다는 말 같음. 그리고 해당 객체를 사용하는 문맥에 따라 의미가 달라진다는 말은, 동일한 메소드를 청솔모와 다람쥐에 추가했다고 하더라도, 해당 메소드를 실행하는 주체객체에 따라 결과값이 달라질 수 있다는 말인 것 같음.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바스크립트 다시 공부하기]]></title>
            <link>https://velog.io/@g-02/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%8B%A4%EC%8B%9C%EA%B3%B5%EB%B6%80%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@g-02/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%8B%A4%EC%8B%9C%EA%B3%B5%EB%B6%80%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 03 Jun 2022 15:02:22 GMT</pubDate>
            <description><![CDATA[<p>여태껏 자바스크립트로 프로젝트를 여러번 했었지만, 자바스크립트가 다른 언어와 어떤점이 다른지, 어떤 방식으로 작동되는지를 자세히 생각해보지 않은 것 같다.</p>
<p>내가 가장 처음 배운 언어는 자바였다. 대학교 1학년 때 컴퓨터에게 일을 시키기 위해서 자바를 공부했다. 처음엔 메인 문에 모든 알고리즘 로직을 집어 넣어 절차적 언어처럼 프로그래밍 했었다. 그 뒤에 함수를 이용해 코드를 재사용했다. 그리고 객체지향 프로그래밍을 배운 후에는 프로그램을 하나의 역할을 수행하는 메소드+변수의 묶음인 객체로 나누고 그 객체들의 상호작용으로 작성했다. 그리고 나서 객체를 이용한 디자인 패턴, 설계방식을 공부했다.</p>
<p>대학교 3학년 1학기까지 자바와 C++로 객체지향 프로그래밍 하는 법 만 공부했었다. 근데 대학교 3학년 2학기에 갑자기 자바스크립트로 웹사이트를 만들어야하는 상황이 왔다.</p>
<p>자바스크립트는 자바와 너무 달랐다. 타입도 명시하지않고, let const var 같은 것을 쓰고, 일급함수라며 변수에 함수를 넣을수도있고, 클로저? 호이스팅? 프로토타입? 등 지금까지 배운 내용으론 이해되지 않는 개념들이 너무 많았다. 사실 지금도 제대로 이해가 안된다.</p>
<p>자바를 배울때는 이렇게까지 힘들지 않았다. 왜냐하면 머리속으로 메모리에 어떤식으로 저장이 될 것이라는 상상이 되었기 때문이다. 그런데, 자바스크립트는 대체 어떤식으로 컴퓨터가 동작을 할것인지 이해가 되지 않는다. 어떤 프로그래밍 패러다임을 가지고 있는지도 잘 모르겠다. </p>
<p>그래서 이번에 다시 자바스크립트를 공부해 보려고한다. 왜 자바스크립트를 써야하는지, 자바스크립트는 어떤 프로그래밍 패러다임을 가지고 있는지, 자바스크립트가 어떻게 메모리를 사용하고 어떤 방식으로 실행되는지 공부해보려고한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[프로그래밍 언어들의 차이점]]></title>
            <link>https://velog.io/@g-02/-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EB%93%A4%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</link>
            <guid>https://velog.io/@g-02/-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EB%93%A4%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</guid>
            <pubDate>Thu, 02 Jun 2022 13:36:53 GMT</pubDate>
            <description><![CDATA[<p>세상에는 다양한 프로그래밍 언어들이 있다. 프로그래밍 언어들은 왜 이렇게 다양하고, 대체 어떤 점이 서로 다른걸까? 내가 생각했을 때 프로그래밍 언어들이 가지는 차이점을 정리 해보았다.</p>
<hr>
<h3 id="1-메모리에-데이터를-저장하는-방법의-차이">1. <strong>메모리에 데이터를 저장하는 방법의 차이</strong></h3>
<p>컴퓨터가 프로그램을 실행하기 위해선 메모리에 프로그램을 로드해야 하는데, 
운영체제가 프로그램을 아래와 같이 크게 4개의 메모리 공간으로 로드해준다. 이 공간에서 데이터를 읽고 쓰며 프로그램이 실행된다.</p>
<blockquote>
</blockquote>
<p><strong>코드 영역</strong> : 실행할 프로그램의 코드가 저장 되는 곳
<strong>데이터 영역</strong> : 전역 변수와 정적(static) 변수가 저장되는 곳
<strong>스택 영역</strong> :  함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역. 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.
<strong>힙 영역</strong> : 힙 영역은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다.</p>
<p><img src="https://velog.velcdn.com/images/g-02/post/e0a7b9a5-c366-4acf-ae4d-422a9f2cfb0f/image.png" alt="TCP School">
출처 : <a href="http://www.tcpschool.com/c/c_memory_structure">http://www.tcpschool.com/c/c_memory_structure</a></p>
<p>프로그램이 위의 4 공간을 가지는 것 동일하지만, 프로그래밍 언어에 따라 메모리 영역을 관리하는 방법이 다르다. C와 python을 예를들어 보자. </p>
<p>a 라는 변수에 정수 2를 저장한다고 가정하면,</p>
<p><strong>C</strong>는 <code>int a = 2;</code> 와 같이 작성하며, int 타입은 스택 영역에 4바이트 고정으로 2가 저장된다.</p>
<p><strong>파이썬</strong>은 <code>a = 2</code>와 같이 직접 타입을 작성하지 않으며, 타입이 실행시간에 결정된다. 파이썬의 int는 크기가 고정되어 있지 않고, 4영역 중 저장위치 또한 파이썬의 Python Memory Manager가 동적으로 관리 한다.</p>
<p>똑같이 a에 2를 저장하는데도 언어에 따라 메모리에 저장되는 방식이 완전히 다르다.</p>
<p>C와 같이 타입이 고정되어 있는 언어를 <strong>정적타입언어</strong>, 파이썬과 같이 타입이 동적으로 결정되는 언어를 <strong>동적타입언어</strong> 라고 하고, </p>
<p>C처럼 메모리를 관리해주는 프로그램이 없는 언어를 <strong>비관리언어</strong>, 파이썬 처럼 메모리를 관리하는 프로그램이 있는 언어를 <strong>관리언어</strong>라고 한다.</p>
<h3 id="2-기계어로-변역하는-방법의-차이">2. 기계어로 변역하는 방법의 차이</h3>
<p>프로그램을 실행하려면, 자연어로 작성된 소스코드를 기계어로 바꾸어야 하는데 그 방식에는 크게 두 가지가 있다.</p>
<p><img src="https://velog.velcdn.com/images/g-02/post/e3da76ca-a16f-427a-835f-c7271025083d/image.png" alt=""></p>
<ol>
<li><p>컴파일러로 소스코드를 한꺼번에 기계어로 번역해 실행파일을 만들고, 그 실행파일을 CPU/메모리가 실행하는 방식. *<em>C++, C, *</em></p>
</li>
<li><p>인터프리터가 프로그램 코드를 한 줄 씩 번역,실행 하는 방식. <strong>python, JavaScript</strong></p>
</li>
</ol>
<p>참고로, 내 사랑 <strong>자바</strong>는 컴파일러과 인터프리터를 모두 사용한다. javac 컴파일러가 .java파일을 .class파일로 컴파일하고, 자바 인터프리터가 .class를 해당 os에 맞게 실행한다.</p>
<p>1 같은 방식은 미리 컴파일을 할 수 있는 환경에서, 2같은 방식은 컴파일 시간을 기다리기 힘든 환경에서 사용한다.</p>
<h3 id="3-운영체제의-차이">3. 운영체제의 차이</h3>
<p>운영체제의 종류로는 Linux, Unix, Windows, MacOS, Android, IOS 등이 있다. Linux, Unix, Windows의 어플은 C, C++, 파이썬, 자바, 자바스크립트 등의 언어로 만들 수 있고, Android의 어플은 자바랑 코틀린 등으로 만들고, MacOS,IOS는 swift로 만들 수 있다.</p>
<p>참고로, 요즘은 자바스크립트 언어로 작성한 코드를 자바,코틀린,스위프트으로 바꾸어 주는 리액트 네이티브 같은 크로스 플랫폼도 있다.</p>
<h3 id="4-프로그래밍-패러다임의-차이">4. 프로그래밍 패러다임의 차이</h3>
<p>프로그래밍 패러다임이란 프로그래밍 스타일을 말한다. 프로그램은 순차,분기,반복, 참조로 구성되며 프로그래밍 전략을 수립해야한다. 언어를 만들고 사용하는 사람들이 추구하는 프로그래밍 패러다임의 차이가 있다.</p>
<ol>
<li>명령형 프로그래밍 : <strong>문제를 어떻게 해결해야 하는지 컴퓨터에게 명령을 내리는 방법을 프로그래밍 한다</strong><ul>
<li>절차적 언어 : C, Pascal</li>
<li>객체지향 언어 : C++, Java</li>
</ul>
</li>
<li>선언형 프로그래밍 : <strong>문제를 어떻게 해결해야 하는지에 집중하고 해결방법은 컴퓨터에게 위임해버리는 프로그래밍 방법</strong><ul>
<li>SQL, HTML, XML</li>
</ul>
</li>
</ol>
<p>JavaScripts같이 멀티 패러다임을 갖는 언어도 있다.</p>
<p>출처 : <a href="https://velog.io/@codenmh0822/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84#%EB%AA%85%EB%A0%B9%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D">https://velog.io/@codenmh0822/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84#%EB%AA%85%EB%A0%B9%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D</a></p>
<h3 id="5-사용-목적의-차이">5. 사용 목적의 차이</h3>
<ul>
<li>SQL : 데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어.</li>
<li>PHP : 대표적인 서버 사이드 스크립트 언어로 전 세계 수많은 웹 시스템의 기반이 되는 언어.</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>