<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>wonbeen_00.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Fri, 30 May 2025 03:35:53 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>wonbeen_00.log</title>
            <url>https://velog.velcdn.com/images/wonbeen_00/profile/9ab579f3-83a9-4cb9-999b-c773996fdb20/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. wonbeen_00.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/wonbeen_00" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[MAC   vs  IP address 🧷💻]]></title>
            <link>https://velog.io/@wonbeen_00/MAC-vs-IP-address</link>
            <guid>https://velog.io/@wonbeen_00/MAC-vs-IP-address</guid>
            <pubDate>Fri, 30 May 2025 03:35:53 GMT</pubDate>
            <description><![CDATA[<table>
<thead>
<tr>
<th>-----</th>
<th>MAC address</th>
</tr>
</thead>
<tbody><tr>
<td><code>사용 방법</code></td>
<td>주소가 바뀌지 않고 사용(즉, 변동하지 않는다)</td>
</tr>
<tr>
<td><code>목적</code></td>
<td><strong>16진수 주소, 실제 주소를 식별한다</strong></td>
</tr>
</tbody></table>
<hr>
<table>
<thead>
<tr>
<th>-----</th>
<th>IP address</th>
</tr>
</thead>
<tbody><tr>
<td><code>사용 방법</code></td>
<td>자동적으로 할당받아서 사용하는 IPwnth</td>
</tr>
<tr>
<td><code>목적</code></td>
<td><strong>IPv4 32비트 / IPv6 128비트</strong></td>
</tr>
</tbody></table>
<p><strong>Mac address</strong>
<strong>IP address</strong></p>
<ul>
<li>네트워크의 특정 연결의 대한 IP 주소는 RARP로 검색이 가능</li>
<li>물리적 통신 Mac address를 사용 논리적인 IP address는 라우팅을 하기 위한 주소</li>
<li>상황에  따라 Mac address와 ip address를 사용함</li>
</ul>
<hr>
<p>📣송식측 클라이언트의 애플리케이션 계층에서 HTTP 요청을 한다.</p>
<p>-그 다음의 트랜트포트 계층 에서 받은 데이터(HTTP 메시지)를 통신을 위해 포트번호를 붙여 네트워크 계층에 전달한다.</p>
<p>-네트워크 계층에서 데이터에 IP 패킷을 추가해 링크 계층에 전달한다.</p>
<p>-링크계층에서는 수신지 MAC 주소와 이더넷 프레임을 추가한다.</p>
<p>-수신측 서버는 링크 계층에서 데이터를 받아들여 순서대로 위에 계층에 전달해 애플리케이션 계층까지 통신하면서 전달</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[05.30]]></title>
            <link>https://velog.io/@wonbeen_00/05.30</link>
            <guid>https://velog.io/@wonbeen_00/05.30</guid>
            <pubDate>Fri, 30 May 2025 02:07:42 GMT</pubDate>
            <description><![CDATA[<h3 id="tcpip">TCP/IP</h3>
<p>응용 계층(Application Layer, L4) : HTTPS SMTP DHCP DNS POP3</p>
<p>전송 계층(Transport Layer, L3) : TCP / UDP
TCP : 연결형 송신자가 수신자에게 IP 주소를 사용해서 데이터 전달 
// TCP 특징 흐름제어, 혼잡제어
UDP:비연결형
인터넷 계층(Internet Layer, L2): IP ICMP ARP
네트워크 주소를 기반으로 데이터 전송
네트워크 접근 계층(Network access Layer, L1) : 이더넷, 무선 LAN</p>
<p>LAN ( Local Area Network ) 근거리 통신망, 주로 가정이나 회사내 네트워크</p>
<p>WAN ( Wide Area Network) 원거리 통신으로 데이터 센터를 두고 통신함</p>
<p>고정 IP
컴퓨터에 고정적으로 부여된 IP로 한번 부여되면 IP를 반납하기 전까지는 다른 장비에 부여할 수 없는 IP주소</p>
<p>유동 IP
장비에 고정적으로 IP를 부여하지 않고 컴퓨터를 사용할 때 남은 IP 중에서 돌아가면서 부여하는 IP</p>
<p>인터넷 상에서 서버를 운영하고자 할 때는 공인 IP를 고정 IP로 부여한다</p>
<p>공인 IP 를 부여받지 못하면 다른 사람이 내 서버에 접속할 수 없다</p>
<p><img src="https://velog.velcdn.com/images/wonbeen_00/post/4f741951-41ce-41ff-9c20-721c79bce3b2/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/wonbeen_00/post/fbe3012e-35e2-4b11-b3e2-e26721179895/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[공부 필기노트]]></title>
            <link>https://velog.io/@wonbeen_00/%EA%B3%B5%EB%B6%80-%ED%95%84%EA%B8%B0%EB%85%B8%ED%8A%B8</link>
            <guid>https://velog.io/@wonbeen_00/%EA%B3%B5%EB%B6%80-%ED%95%84%EA%B8%B0%EB%85%B8%ED%8A%B8</guid>
            <pubDate>Sun, 25 May 2025 06:35:11 GMT</pubDate>
            <description><![CDATA[<p>시스템 로그 및 이벤트 로그
DMZ 서버 네트워크: 프록시 서버의 경우 보안상의 이유로 사용되는 경우 DMZ
또한 프록시 서버는 캐시 기능이 있어서 외부 인터넷에서 client를 알 수 없음</p>
<h3 id="이벤트-로그란">이벤트 로그란?</h3>
<p>설정되어 있는 시스템상에서 성능이나 오류등을 담고 있는 데이터.
이벤트 로그 // 엔진로그</p>
<p>알약 패치관리(PMS) : DB에서 통합 관리</p>
<p>패치 설치 현황 실시간 파악 </p>
<p>신속하고 간편한 패치 파일 배포 및 관리</p>
<p>솔루션을 통한 최신 패치 상태 유지</p>
<p>DRM (디지털 저작권 관리) -fasoo
DLP (데이터 유출 방지) -PC 내부보안, 통합보안
DB 접근제어
개인정보 비식별화 -고객정보 삭제, 마스킹 후 가명처리
위협 인텔리전스 -
간편인증 종합서비스-
PMS(보안패치) // 솔루션 패치, 솔루션 업데이트 원격으로부터 자동으로 설치를 유도함
EPP(dosemvhdlsxm 엔드포인트 통합 보안 플랫폼) // 차세대 방화벽 (UTM=Unified Threat Management) 포트 8803설정
관리자모드로 접근 설정</p>
<pre><code>CLI(SSH)포트설정 : 22번
GUI포트설정 : 443번 https로 접속</code></pre><pre><code>PMS(patch management system)
시스템과 네트워크의 사용 및 접근에 대한 모니터링 절차와 책임이 정의되어 있고 이에 따라 수행

망 연계 기술 ( 방화벽 접근, 패치 양호)


VPN 원격로그 서버
이벤트 로그 &gt;흐름 읽은 뒤 조치// 방화벽을 통과한 트래픽 기록을 기준으로 설정.
DB접근제어 OTP보안/진단 시작

DMZ 네크워크
외부 네트워크를 사용할 때 오픈소스 설치하고 각종 서버에 배포
내부 네트워크에 존재하지만 외부에서 점근 가능한 네트워크</code></pre><p>이벤트 뷰어 사용하는법</p>
<ol>
<li>Win + R 단축키로 실행창을 킨 다음에 eventvwr.msc</li>
<li>windows 로그확인</li>
</ol>
<h3 id="출처🧷">출처🧷</h3>
<p><a href="https://kali-km.tistory.com/entry/Windows-Event-Log-1">https://kali-km.tistory.com/entry/Windows-Event-Log-1</a>
<a href="https://developnote.tistory.com/102">https://developnote.tistory.com/102</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[정보보안 정리]]></title>
            <link>https://velog.io/@wonbeen_00/%EC%A0%95%EB%B3%B4%EB%B3%B4%EC%95%88-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@wonbeen_00/%EC%A0%95%EB%B3%B4%EB%B3%B4%EC%95%88-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Wed, 21 May 2025 22:47:37 GMT</pubDate>
            <description><![CDATA[<p>방화벽(사이버 guard)</p>
<p>데이터 보안 / 시스템 보안 / 클라우드 보안 / 네트워크 보안</p>
<p>DRM (디지털 저작권 관리) -fasoo
DLP (데이터 유출 방지) -PC 내부보안, 통합보안
DB 접근제어
: 데이터 베이스에 저장돠어 있는 방대한 자료를 암호화를함
개인정보 비식별화 -고객정보 삭제, 마스킹 후 가명처리
위협 인텔리전스 -
간편인증 종합서비스-
PMS(보안패치) // 솔루션 패치, 솔루션 업데이트 원격으로부터 자동으로 설치를 유도함</p>
<p>EPP(dosemvhdlsxm 엔드포인트 통합 보안 플랫폼) // 차세대 방화벽 (UTM=Unified Threat Management) 포트 8803설정
관리자모드로 접근 설정</p>
<p>알약 패치관리(PMS) : DB에서 통합 관리</p>
<p>패치 설치 현황 실시간 파악 </p>
<p>신속하고 간편한 패치 파일 배포 및 관리</p>
<p>솔루션을 통한 최신 패치 상태 유지</p>
<p>CLI(SSH)포트설정 : 22번
GUI포트설정 : 443번 https로 접속</p>
<p>AI 보안 관제
사용자 인증 및 로그인
전자서명
보안 진단 취약점 관리</p>
<p>웹 보안 : SAFE transaction</p>
<p>네트워크 접근제어(NAC)
안랩 // NAVER 클라우드   보안 서비스 (접근제어)
클라우드 방화벽  / 클라우드 위협관리 / DB보안제어
안티 바이러스 / 모바일 디바이스 / EPP (보안 플랫폼)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0512🎨]]></title>
            <link>https://velog.io/@wonbeen_00/0512</link>
            <guid>https://velog.io/@wonbeen_00/0512</guid>
            <pubDate>Mon, 12 May 2025 10:30:29 GMT</pubDate>
            <description><![CDATA[<p>구조체: 서로 다른 타입의 데이터를 하나의 단위로 묶을 수 있는 도구</p>
<p> strcpy 문자열 끝 null(= &#39;\0&#39;) 까지 복사</p>
<p>#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;stdlib.&gt;</p>
<p>struct strudent{</p>
<pre><code>int 10;
char name[20];
int age;
};

int main() {
struct strict s1;
s1.id = 101;
s1.age = 20;
strcpy = string copy









https://blockdmask.tistory.com/348</code></pre><p>// 구조체 : 여러개의 다른 데이터를 하나로 묶어서 관리할 수 있는 데이터 꾸러미
struct People{
    char* name;
    int age;
};
struct Address{
    char* city; // 도시
    int num;  // 우편번호
};
struct Student{
    char* name;
    int age;
    struct Address addr;
};
int main() {
    struct People p1;
    // . 연산자를 이용해 멤버변수에 접근
    char a = 10;
    char* p = &a;
    // 구조체 + 포인터
    struct Student s;
    s.name = &quot;홍길동&quot;;
    s.age = 20;
    s.addr.city = &quot;서울&quot;;
    s.addr.num = 1234;
    printf(&quot;%s\n&quot;,s.addr.city);
    struct Student <em>ps = &s;
    printf(&quot;%d\n&quot;, (</em>ps).age);
    printf(&quot;%d\n&quot;, ps-&gt;age);
    // -&gt; 연산자 왼쪽은 무조건 구조체 주소
    int arr[3]= {1,2,3};
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    printf(&quot;%d\n&quot;, *p);
    return 0;
}</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[05.10]]></title>
            <link>https://velog.io/@wonbeen_00/05.10</link>
            <guid>https://velog.io/@wonbeen_00/05.10</guid>
            <pubDate>Sat, 10 May 2025 04:08:40 GMT</pubDate>
            <description><![CDATA[<p>컴파일 타임이란 무엇인가? </p>
<ul>
<li>C언어 소스코드가 컴퓨터가 알아들을 수 있는 기계어로 변환된다.</li>
<li>컴파일 타임에  소스코드를 분석, 오류, 타입 등을 검사한다.</li>
<li>변수의 메모리 할당, 상수 처리 등이 이루어진다.</li>
<li>컴파일 타임에 발생한 에러를 컴파일 에러, 컴파일 타임에 발생한 에러는 반드시 수정-&gt;프로그램 작동</li>
</ul>
<p>✔Syntax error, 파일 참조 오류 등과 같은 문제들로 인해 컴파일이 방해되어 발생하는 오류</p>
<p>런타임이란 무엇인가? </p>
<ul>
<li>컴파일 된 프로그램이 실제 실행되는 시간을 의미</li>
<li>변수에 값이 할당되고, 연산이 수행되고, 함수의 호출이 이루어진다.</li>
<li>런타임에 동적할당, 입출력 처리 등이 포함된다.</li>
<li>런타임에 발생한 에러를 런타임 에러라 한다.</li>
</ul>
<p>✔ null 참조 했을 때 에러</p>
<p> 배열은 연속적인 데이터 구조로 데이터 관리가 편함
연결리스트(linked list)
:노드로 연결되어 있어 각 노드는 데이터와 주소를 가짐</p>
<p>연결 리스트에서 숫자와 포인터를 함께 저장하기 위해 할당한 메모리
출처: <a href="https://bo5mi.tistory.com/156">https://bo5mi.tistory.com/156</a> [대범하게:티스토리]</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[25.05.09]]></title>
            <link>https://velog.io/@wonbeen_00/25.05.09</link>
            <guid>https://velog.io/@wonbeen_00/25.05.09</guid>
            <pubDate>Fri, 09 May 2025 10:32:03 GMT</pubDate>
            <description><![CDATA[<p>int main() {
    int a[3]={1,2,3};
    // 자료형 배열명[행의갯수][열의갯수]
    int arr[2][3] = {
    {1,2,3},
    {4,5,6}
    };
    // x1000 = 1 = arr[0][0]
    // x1004 = 2 = arr[0][1]
    // x1008 = 3 = arr[0][2]
    // x1012 = 4 = arr[1][0]
    // x1016 = 5 = arr[1][1]
    // x1020 = 6 = arr[1][2]
    printf(&quot;%d\n&quot;, arr[1][0]);
    printf(&quot;%p\n&quot;, arr[0]);
    printf(&quot;%p\n&quot;, arr[0]+1);
    // arr[i][j] == arr+i*열의갯수+j
    가로줄은 행, 세로ㄷ줄은 열</p>
<pre><code>arr[1][0] // 1  
arr[2][0] // 4
arr[3][0] //7
arr[4][0] //10</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[05.04]]></title>
            <link>https://velog.io/@wonbeen_00/05.04</link>
            <guid>https://velog.io/@wonbeen_00/05.04</guid>
            <pubDate>Sun, 04 May 2025 04:15:03 GMT</pubDate>
            <description><![CDATA[<p>DDL : 데이터 구조 정의
create, alter, drop, truncate</p>
<p>DML: 데이터베이스에서 사용자와 데이터베이스 관리 시스템 사이의 인터페이스를 제공함
SELECT
INSERST
DELETE
UPDATE</p>
<p>[조건연산자]</p>
<h4 id="조건-연산자">조건 연산자</h4>
<p>&lt;&gt; &gt; &lt; &gt;= &lt;=</p>
<h4 id="논리-연산자">논리 연산자</h4>
<p>NOT AND OR</p>
<h3 id="like-연산자">LIKE 연산자</h3>
<p>대표 문자를 통해 지정된 속성의 값이 문자 패턴과 일치하는 튜플을 검색</p>
<pre><code>
DROP: 스키마 도메인 뷰 인덱스 삭제 
DELETE :튜플 삭제


DCL: 데이터 보안 부결성 회복을 정의하는데 정의함

GRANT REVOKE COMMIT ROLLBACK SAVEPOINT

COMMIT : 데이터베이스에서  하나의 논리적인  수행하는 일련의 연산집합
SAVEPOINT :트렌젝션 안에서  ROLLBACK 할 위치 저장점을 지정

</code></pre><p>&lt;서브쿼리&gt; subquery
sql문 안에 포함된 또 하나의 sql문</p>
<ul>
<li>괄호 사용</li>
<li>서브쿼리에서 order by 사용불가</li>
<li>group by절에 사용불가</li>
<li>사용가능절
select : 스칼라 서브쿼리(=1행1칼럼)
from : 인라인 뷰
where
having
order by
insert의 values 
update의 set<pre><code>서브쿼리 : 한 쿼리 내에 포함된 또 하나의 쿼리 
</code></pre></li>
</ul>
<p>•  GROUP BY 절을 제외하고 모든 부분에 사용 가능 </p>
<p>•  서브쿼리는 반드시 괄호 안에 포함되어야 함 </p>
<p><a href="https://easyitwanner.tistory.com/274">https://easyitwanner.tistory.com/274</a></p>
<ul>
<li>exists 연산자: 값이 있으면 TRUE 없으면 FALSE 반환함 </li>
</ul>
<p>트랜잭션&gt;  : 원자성 일관성 독립성 연관성</p>
<p>하나의 업무에 사용되는 다수의 query는 모두 성공하거나 모두 실패해야한다는 뜻.</p>
<p> 데이터의 무결성을 보장하기 위함.</p>
<p> ```
 START TRANSACTION; -- 트랜잭션 시작</p>
<p>select * from members; -- 초기 상태 보여줌
.
.
.
.</p>
<p>select * from members;
출처: <a href="https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98Transaction-%EC%9D%B4%EB%9E%80-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC#%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98_%ED%8A%B9%EC%A7%95">https://inpa.tistory.com/entry/MYSQL-📚-트랜잭션Transaction-이란-💯-정리#트랜잭션_특징</a> [Inpa Dev 👨‍💻:티스토리]</p>
<p>&lt;조인&gt;
select
from
inner join
on : 조인키. 다른 명칭 칼럼 가능
using (칼럼): 조인키. 같은 명 칼럼만.</p>
<ul>
<li>종류
inner join : 동일한 값만 반환
left outer join : 기준된 테이블의 데이터는 모두 반환
right outer join
self join : alias 필수</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[c언어 동적할당]]></title>
            <link>https://velog.io/@wonbeen_00/c%EC%96%B8%EC%96%B4-%EB%8F%99%EC%A0%81%ED%95%A0%EB%8B%B9</link>
            <guid>https://velog.io/@wonbeen_00/c%EC%96%B8%EC%96%B4-%EB%8F%99%EC%A0%81%ED%95%A0%EB%8B%B9</guid>
            <pubDate>Mon, 28 Apr 2025 12:17:36 GMT</pubDate>
            <description><![CDATA[<p>해당 코드에서 사용자에게 사람수를 입력받을때 1<del>3명까지만 허용한다.
사용자가 3보다 더 큰 수를 입력을 하게되면 올바른 숫자인 1</del>3 사이 숫자를 입력할때까지 반복!! 그래서 while (true) 조건식 자리에 1을 넣어 무한루프를 돌게하고 if 조건식을 만들어서 count 입력받은 값이 0보다 크고 3보다 작으면 반복문 탈출 아니면 계속 진행하면서 3이하로 입력해달라고 반복.</p>
<pre><code>while (true) {
        printf(&quot;사람의 숫자를 입력해주세요. :&quot;);
        scanf_s(&quot;%d&quot;, &amp;count);
        if (count&lt;=3&amp;&amp;count&gt;0) {
            break;
        }
        printf(&quot;%d 이하로 입력해주세요.\n&quot;,SIZE);
    }</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[0428 (1)]]></title>
            <link>https://velog.io/@wonbeen_00/0428-1</link>
            <guid>https://velog.io/@wonbeen_00/0428-1</guid>
            <pubDate>Mon, 28 Apr 2025 11:01:19 GMT</pubDate>
            <description><![CDATA[<pre><code>
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

int main() {
    // 정수형 메모리를 동적으로 할당
    int *p = (int *)malloc(sizeof(int));

    if (p == NULL) {
        // 메모리 할당 실패 처리
        printf(&quot;메모리 할당 실패\n&quot;);
        return 1;
    }

    // 777을 저장
    *p = 777;

    // 저장된 값 출력
    printf(&quot;저장된 값: %d\n&quot;, *p);

    // 메모리 해제
    free(p);

    return 0;
}
</code></pre><p>malloc(sizeof(int))로 int 하나를 저장할 수 있는 크기의 메모리
동적할당.</p>
<p>메모리 찾은 뒤 출력.</p>
<p>*p = 777;로 할당된 메모리 공간에 777을 저장.</p>
<p>마지막에는 free(p);로 메모리를 해제.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[04.28 (구조체)]]></title>
            <link>https://velog.io/@wonbeen_00/04.28-%EA%B5%AC%EC%A1%B0%EC%B2%B4</link>
            <guid>https://velog.io/@wonbeen_00/04.28-%EA%B5%AC%EC%A1%B0%EC%B2%B4</guid>
            <pubDate>Mon, 28 Apr 2025 10:03:24 GMT</pubDate>
            <description><![CDATA[<p>#include &lt;studio.h&gt;
struct student {
    char* name;
    int age;
}student; 
int main() {</p>
<pre><code>studnet s1;</code></pre><p>s1.name = &quot;qlqlql&quot;;
s1.age. = 30;
struct student s2 = {&quot;qlqlql, 30};
struct student  *ps = &s2;</p>
<p>return 0;
}</p>
<p>정적 할당 : 프로그램이 실행될 때 메모리공간을 미리 선접하는것.</p>
<p>int a = 10;
char name[10];</p>
<p>동적할당 : 프로그램이 실행되는 도중에 필요할 때 메모리를 요청함.</p>
<p>메모리 만드는 방법: malloc
메모리 반납하는 방법: free    //  포인터 변수 = (자료형 변수) malloc (필요한 메모리크기);</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[SQL 쿼리]]></title>
            <link>https://velog.io/@wonbeen_00/SQL-%EC%BF%BC%EB%A6%AC</link>
            <guid>https://velog.io/@wonbeen_00/SQL-%EC%BF%BC%EB%A6%AC</guid>
            <pubDate>Sun, 27 Apr 2025 05:18:12 GMT</pubDate>
            <description><![CDATA[<pre><code>쿼리 스트링이란?
 웹 애플리케이션에서 URL을 통해 데이터를 전달하는 방법입니다. URL의 끝에 ? 문자로 시작하여 key=value 형식으로 데이터


 쿼리 스트링은 마치 웹 주소에 붙이는 &quot;메모&quot;와 같다. 주소 자체가 어디로 갈지 알려주고, 쿼리 스트링은 그 주소에서 무슨 일을 해야 하는지 더 자세히 알려주는 것이라고 생각!

기본 주소: 집 주소 
쿼리 스트링: 방문할 때 가져갈 목록


</code></pre><p>SELECT DISTINCT {컬럼명} FROM {테이블명} {조건절} </p>
<p>SELECT {컬럼명} FROM {테이블명} {조건절} GROUP BY {테이블명}</p>
<p>DISTINCT : 중복을 없애주지만 정렬X
GROUP BY : 중복을 없애주고 정렬 둘 다 만족</p>
<p><a href="https://dayae-dev.tistory.com/356">https://dayae-dev.tistory.com/356</a></p>
<p><a href="https://dev-ws.tistory.com/61">https://dev-ws.tistory.com/61</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[04.27]]></title>
            <link>https://velog.io/@wonbeen_00/04.27</link>
            <guid>https://velog.io/@wonbeen_00/04.27</guid>
            <pubDate>Sun, 27 Apr 2025 03:53:10 GMT</pubDate>
            <description><![CDATA[<p><span style="color:olivedrab">DBMS</span></p>
<p><span style="color:blue">DBMS</span></p>
<p>인덱스 :트리형 구조
데이터를 효율적으로 저장하고 검색하기 위해 트리 구조를 사용하는 
캐시 시스템</p>
<p>인덱스 트리는 포화 이진 트리 모양의 자료 구조이다. 최댓값이나 최솟값, 구간 합 등을 구할 때 사용
배열을 순회하면서 원하는 정보를 계산할 수 있지만, 인덱스 트리를 사용하면 정보를 더 빠르게 구현</p>
<p>이미 계산한 정보가 있는 상황에서 배열이 변경되면 배열을 다시 순회해야 하지만, 인덱스 트리를 사용하면 정보를 습득</p>
<p><span style="color:orange">DBMS</span></p>
<p><a href="https://attenti-on.tistory.com/2">https://attenti-on.tistory.com/2</a></p>
<p><a href="https://for-my-wealthy-life.tistory.com/5">https://for-my-wealthy-life.tistory.com/5</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[25.04.23]]></title>
            <link>https://velog.io/@wonbeen_00/25.04.23</link>
            <guid>https://velog.io/@wonbeen_00/25.04.23</guid>
            <pubDate>Wed, 23 Apr 2025 11:40:47 GMT</pubDate>
            <description><![CDATA[<p>// 구조체 : 여러개의 다른 데이터를 하나로 묶어서 관리할 수 있는 데이터 꾸러미</p>
<pre><code>struct People{
    char* name;
    int age;
};
struct Address{
    char* city; // 도시
    int num;  // 우편번호
};
struct Student{
    char* name;
    int age;
    struct Address addr;
};
int main() {
    struct People p1;
    // . 연산자를 이용해 멤버변수에 접근
    char a = 10;
    char* p = &amp;a;
    // 구조체 + 포인터</code></pre><p> 구조체 공부 
 다음시간에는 연결 리스트공부</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[04.15]]></title>
            <link>https://velog.io/@wonbeen_00/04.15</link>
            <guid>https://velog.io/@wonbeen_00/04.15</guid>
            <pubDate>Tue, 15 Apr 2025 05:55:00 GMT</pubDate>
            <description><![CDATA[<p>#구조체 선언</p>
<p> 구조체는 변수선언과 초가화를 함께하거나 구조체 변수 선언를 하고
 나중에 필드 초기화를 할 수 있음</p>
<h2 id="구조체-정의">구조체 정의</h2>
<ul>
<li>하나 이상의 변수를(char int double)새로운 변수로 묶어서 함</li>
</ul>
<ul>
<li>여러 자료형 변수를 묶어놓은 공간을 설계해놓은 설계도</li>
</ul>
<ul>
<li>변수 선언과 모양이 비슷하지만 , 저장 공간이 생기지 않는다.</li>
</ul>
<ul>
<li>여러개의 구조체를 선언 할때는 이름이 중복되면 안된다.</li>
</ul>
<p>선언 형식
struct date{
int year();
int mouth();
int day();
};</p>
<p>#include &lt;stdio.h&gt;</p>
<p>struct 
int x = 10;
int y = 15;</p>
<p>구조체 변수의 대입과 비교</p>
<ul>
<li>같은 구조체 변수끼리 대입은 가능하지만 비교는 불가능하다</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[ORDER by]]></title>
            <link>https://velog.io/@wonbeen_00/ORDER-by</link>
            <guid>https://velog.io/@wonbeen_00/ORDER-by</guid>
            <pubDate>Sun, 13 Apr 2025 02:57:35 GMT</pubDate>
            <description><![CDATA[<p>ORDER BY
출력되는 결과물을 테이블에 입력한 데이터만 출력</p>
<p>SELETE* FROM table_name
ORDER BY column_name
내림차순의 정렬을 원할 시 DESC로 정리함.</p>
<p>ORDER BY 값을 여러 개 주면 나열된 순서대로(왼쪽부터) 정렬을 시작한다.</p>
<p>SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME ASC, DATETIME DESC</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[sql LIKE]]></title>
            <link>https://velog.io/@wonbeen_00/sql-LIKE</link>
            <guid>https://velog.io/@wonbeen_00/sql-LIKE</guid>
            <pubDate>Sun, 13 Apr 2025 02:25:06 GMT</pubDate>
            <description><![CDATA[<p>컬럼명 LIKE [조건]</p>
<p>LIKE 구문</p>
<p>where절에 주로 사용되며 부분적으로 일치하는 칼럼을 찾을때 사용</p>
<p>like</p>
<h2 id="select-title-from-book-where-title-like-a">select title from book where title like <code>A%</code>;</h2>
<p>A로 시작하는 문자 찾기</p>
<h2 id="select-title-from-book-where-title-like-a-1">select title from book where title like <code>%A</code>;</h2>
<p>A로 끝나는 문자 찾기</p>
<h2 id="select-title-from-book-where-title-like-a-2">select title from book where title like <code>%A%</code>;</h2>
<p>A를 포함하는 문자</p>
<p>기본키(Primary Key)
-값 중복을 허용하지 않는다. 
-NULL값을 허용하지 않는다. 
-테이블에서 한 개만 생성 가능하다.
유니크키(Unique Key, Unique Index)
-값 중복을 허용하지 않는다.
-NULL값을 허용한다.
-테이블에서 여러 개 생성 가능하다.
출처: <a href="https://im-codding.tistory.com/59">https://im-codding.tistory.com/59</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[포인터와 배열]]></title>
            <link>https://velog.io/@wonbeen_00/%ED%8F%AC%EC%9D%B8%ED%84%B0%EC%99%80-%EB%B0%B0%EC%97%B4</link>
            <guid>https://velog.io/@wonbeen_00/%ED%8F%AC%EC%9D%B8%ED%84%B0%EC%99%80-%EB%B0%B0%EC%97%B4</guid>
            <pubDate>Thu, 10 Apr 2025 03:19:45 GMT</pubDate>
            <description><![CDATA[<p>포인터 : 어떤 변수의 주소를 저장하는 변수
int x = 10;
int* p = &x;
p는 x의 주소를 저장하고 있고
*p는 x의 값에 간접적으로 접근하는 방식</p>
<p>배열 : 같은 자료형을 연속된 메모리 공간에 저장하는 구조
int* arr = &amp;arr[0];
arr[0] == *(arr+0)
arr[1] == *(arr+1)
배열명[인덱스번호] // 인덱스번호는 0부터 시작한다
arr[0] = 1;
*(arr+0) = 1;</p>
<p>int x= 10;
int* p = &x;
int** pp = &p;
printf(&quot;%d&quot;, x);
printf(&quot;%d&quot;, <em>p);
p는 x의 주소 x의 주소를 찾아가려면? * 연산자 이용
printf(&quot;%d&quot;, *</em>pp);
pp는 p의 주소 p의 주소를 찾아가려면? *연산자 필요. p의 값을 찾아갔더니 x의 주소를 찾아가려면? *연산</p>
<p>변수는 공간이다.</p>
<p>int a = 10; // 메모리안의 4바이트짜리 공간 하나
변수는 값을 담는 공간 1개
int b = 20;
int * p =&a; // 포인터는 어떤 타입을 가리키든 항상 8바이트</p>
<p>int arr[3] = {10, 20, 30};
//int 타입 공간 3개가 메모리안에 연속적으로 붙어있는것
arr[0], arr[1], arr[2] 총 12바이트가 한줄로 이어져있음
(int arr[4] = int형 4바이트 4개 = 16바이트</p>
<p>*arr1 = 10; // *arr1 == *(arr1 + 0) == *(&amp;arr[0]) </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0409]]></title>
            <link>https://velog.io/@wonbeen_00/0409</link>
            <guid>https://velog.io/@wonbeen_00/0409</guid>
            <pubDate>Wed, 09 Apr 2025 11:04:24 GMT</pubDate>
            <description><![CDATA[<p>int a = 10;
int b = 20;</p>
<p>//메모리안의 4바이트 공간을 말한다.</p>
<p>int* p = &amp;a
int arr[3] = {10, 20, 30};</p>
<p>arr[0] arr[1] arr[2] 4,4,4 =&gt;12byte</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[04.08]]></title>
            <link>https://velog.io/@wonbeen_00/04.08</link>
            <guid>https://velog.io/@wonbeen_00/04.08</guid>
            <pubDate>Tue, 08 Apr 2025 06:15:38 GMT</pubDate>
            <description><![CDATA[<p>pwd
pwd ( print working directory ) 의 약자로, 현재 위치하고 있는 경로를 출력하는 명령어입니다. 리눅스에서의 경로는 디렉토리를 의미하므로, pwd를 입력하면 해당 명령어를 입력한 디렉토리를 출력</p>
<p>Is
Is는 list의 약자로, 현재 위치한 디렉토리 내에 존재하는 모든 파일 및 하위 디렉토리의 목록을 출력</p>
<p>cd
cd (change directory) 의 약자로, 다른 디렉토리로 이동할 때 사용하는 명령어</p>
<p>touch
touch는 본래 파일의 생성 날짜 및 시각을 수정할 때에 사용하는 명령어지만, 내용물이 비어있는 파일생성</p>
<p>rm
rm remove의 약자로, 파일을 삭제할 때 사용</p>
]]></description>
        </item>
    </channel>
</rss>