<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>sugar-dev.log</title>
        <link>https://velog.io/</link>
        <description>기록-정리-다내거</description>
        <lastBuildDate>Tue, 25 Feb 2025 07:04:08 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>sugar-dev.log</title>
            <url>https://velog.velcdn.com/images/sugar-dev/profile/2309485f-6215-4f11-b87f-432f40503426/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. sugar-dev.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sugar-dev" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[개발자의 컴퓨터 구조 공부: 해야 하는 이유와, 컴퓨터 구조 정리하기.]]></title>
            <link>https://velog.io/@sugar-dev/%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-%EA%B3%B5%EB%B6%80-%ED%95%B4%EC%95%BC-%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0%EC%99%80-%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-%EC%A0%95%EB%A6%AC%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@sugar-dev/%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-%EA%B3%B5%EB%B6%80-%ED%95%B4%EC%95%BC-%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0%EC%99%80-%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-%EC%A0%95%EB%A6%AC%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 25 Feb 2025 07:04:08 GMT</pubDate>
            <description><![CDATA[<p>개발공부를 시작할 때 우리는 프로그래밍 언어와 관련된 책부터 찾아보고는 한다. 하지만 실력 있는 개발자가 되기 위해서는 컴퓨터 구조를 잘 알아야, 프로그래밍을 근본적으로 이해하고 다양한 문제를 빠르게 해결 할 수 있게 된다. </p>
<p>개발자가 컴퓨터 구조를 공부 해야 하는 이유는 아래 두가지로 볼 수 있다.</p>
<ol>
<li><p>컴퓨터 구조를 이해하면 문제 해결 능력이 향상된다.</p>
</li>
<li><p>컴퓨터 구조를 이해하면 언어공부 만으로는 얻기 힘든 성능/용량/비용을 고려하며 개발 할 수 있다.</p>
</li>
</ol>
<p>컴퓨터 구조 지식은 크게 2가지 이다. </p>
<ol>
<li><p>컴퓨터가 이해하는 정보 ➡️ 데이터, 명령어</p>
</li>
<li><p>컴퓨터의 네가지 핵심 부품 ➡️ 메모리, CPU(중앙처리장치), 보조기억장치(usb, 외장하드 ...), 입출력장치(모니터,키보드,마우스...)</p>
</li>
</ol>
<p>컴퓨터가 이해하는 정보는 &#39;데이터&#39;와 &#39;명령어&#39;가 있다. 컴퓨터의 네가지 핵심 부품으로는 메모리, 중앙처리장치, 보조기억장치, 입출력장치 가 있다. 아래에서 자세히 알아보자.</p>
<p>컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 가리켜 데이터(data)라고 한다. 데이터 만으로는 컴퓨터가 어떤 일을 처리할 수 없다. 명령어(instruction)는 정적인 데이터들을 사용해 컴퓨터가 실질적으로 작동할 수 있도록 해주는 정보이다. 예를 들어보자면, 데이터는 &#39;1&#39;,&#39;2&#39;... 같은 정적인 정보이고, 명령어는 &#39;1과 2를 더하라&#39;와 같은 정보이다.</p>
<p>컴퓨터의 네가지 핵심 부품으로는 CPU(Central Processing Unit), 주기억장치(main memory), 보조기억장치(secondary storage), 입출력장치(input/output (IO) device)이다. 네가지 부품의 역할만 이해하고 있어도 컴퓨터의 작동 원리를 대부분 알 수 있다. </p>
<p>*주기억장치(메모리)의 종류는 RAM(Random of Memory),ROM(Read Only Memory) 크게 두가지가 있으나 보통 메모리라는 용어는 RAM을 지칭한다.</p>
<p><img src="https://velog.velcdn.com/images/sugar-dev/post/d564f394-cd1b-47f1-bbed-59587c2a6933/image.png" alt="컴퓨터의 네가지 핵심부품 구성도"></p>
<p>1️⃣ 메인보드 : 컴퓨터의 핵심 부품들이 있는 판으로 마더보드라고도 한다. 메인 보드에는 여러 컴퓨터 부품들과 컴퓨터 부품을 부착할 수 있는 슬롯과 연결된 단자가 있다.</p>
<p>2️⃣ CPU(중앙처리장치) : 메모리에 저장된 명령어를 읽고 해석하고 실행하는 부품이다. 중앙처리장치 내에는 아래 세가지의 내부 구성 요소가 있다. 산술논리연산장치(ALU-Arithmatic Logic Unit), 레지스터(register), 제어장치(CU-Control Unit) </p>
<p>① ALU(산술논리연산장치) :계산만을 위해서 존재하는 부품으로, 컴퓨터 내부에서 수행되는 대부분을 계산을 도맡아 한다. 계산기라고 보면 된다.</p>
<p>② 레지스터 : 작은 임시 저장 장치로, 프로그램에 실행에 필요한 값을 임시로 저장한다. 레지스터는 여러 개 존재하고 있으며, 각기 다른 이름과 역할을 가지고 있다.</p>
<p>③ 제어장치 : 제어 신호라는 전기 신호를 보내고 명령어를 해석하는 장치다. 메모리 읽기[CPU가 메모리에 저장된 값을 읽고 싶을 때 메모리를 에게 보내는 제어 신호], 메모리 쓰기[CPU가 메모리에 값을 저장하고 싶을 때 보내는 제어 신호]</p>
<p>3️⃣ 메모리(주기억장치) : 현재 실행되는 프로그램의 데이터와 명령어를 저장하는 부품으로, 프로그램이 실행 되려면 반드시 메모리에 저장되어 있어야 한다. 메모리에는 주소가 존재하는데 주소로 메모리 내에 저장된 데이터나 명령어의 위치에 접근할 수 있다. </p>
<p>4️⃣ 보조기억장치 : 전원이 꺼져도 저장된 내용을 잃지 않는 기억 장치이다. 하드 디스크, SSD, USB 메모리, DVD, CD-ROM 등이 있다. 보관할 프로그램을 저장하는 장치이다.</p>
<p>5️⃣ 입출력장치 : 모니터, 키보드, 마우스 등 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보 교환하는 장치를 의미한다.</p>
<p>6️⃣ 시스템버스 : 메인보드 내부에 있는 통로를 버스라고 부르는데, 다양한 종류의 통로 즉 여러 개의 버스가 있다. 컴퓨터의 네 가지 핵심 부품을 연결하는 가장 중요한 버스이다. </p>
<p><img src="https://velog.velcdn.com/images/sugar-dev/post/db69929e-c443-4ed3-9ec6-e5cbd814efda/image.png" alt="시스템 버스의 내부 구성"></p>
<p>주소 버스 : 주소를 주고 받는 통로이다. </p>
<p>데이터 버스 : 명령어와 데이터를 주고 받는 통로이다. </p>
<p>제어 버스 : 제어 신호를 주고 받는 통로이다. </p>
<p>아래는 확인 문제!</p>
<ol>
<li>컴퓨터의 4가지 핵심 부품은?</li>
</ol>
<p>답&gt; 중앙처리장치, 주기억장치(메모리), 보조기억장치, 입출력장치</p>
<ol start="2">
<li>CPU가 메모리에서 값을 읽는 과정을 설명하시오.</li>
</ol>
<p>답&gt;</p>
<p>1) CPU가 제어 버스로 &#39;메모리 읽기&#39; 제어 신호 내보내고
2) 주소 버스로 읽고자 하는 주소를 내보내면
3) 메모리는 데이터 버스로 요청한 주소에 있는 내용을 CPU에 보냄 </p>
<ol start="3">
<li>CPU가 메모리에 값을 저장할 때 데이터 버스, 주소 버스, 제어 버스를 각각 어떻게 사용하는지 서술하시오.</li>
</ol>
<p>답&gt;</p>
<p>1) 데이터 버스를 통해 메모리에 저장할 값을
2) 주소 버스를 통해 저장할 주소를
3) 제어 버스를 통해 &#39;메모리 쓰기&#39; 신호를 내보냄</p>
<ol start="4">
<li>개발자가 컴퓨터 구조를 공부해야하는 이유는 빠른 문제 해결 능력 향상과, 성능/용량/비용을 알고 있으면 문법 파악이 빨라지기 때문이다.</li>
</ol>
<p>답&gt; X 성능/용량/비용을 고려하며 개발할 수 있다 문법 파악은 다른 문제이다.</p>
<ol start="5">
<li>우리는 분석의 대상인 컴퓨터를 컴퓨터 구조를 공부함으로써 미지의 대상으로 인식하게 된다.</li>
</ol>
<p>답&gt; 미지의대상에서 분석의대상으로 인식한다.</p>
<ol start="6">
<li><p>아래 괄호 안에 들어갈 풀 네임을 적어주세요. 
컴퓨터의 네가지 핵심 부품으로는 CPU(Centeral Processig Unit), 주기억장치(main memory), 보조기억장치(secondary storage), 입출력장치(input/output device , IO device )이다. 네가지 부품의 역할만 이해하고 있어도 컴퓨터의 작동 원리를 대부분 알 수 있다.</p>
</li>
<li><p>메모리 내부에 ALU가 있다.</p>
</li>
</ol>
<p>답&gt; X 산술연산장치는 중앙처리장치 내부에 있다.</p>
<ol start="8">
<li>보조기억장치와 입출력장치는 주변장치라고 통칭하기도 하지만 완전히 다른 장치이다.</li>
</ol>
<p>답&gt; X 둘다 합쳐서 주변장치라고 통칭하기도 하며 완전히 다른 부품은 아니라고 본다.</p>
<p>아래 책을 바탕으로 자습하며 작성된 글입니다.</p>
<p><a href="product.kyobobook.co.kr">혼자서 공부하는 컴퓨터 구조 + 운영체제</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Sequence Diagram < UML Diagram]]></title>
            <link>https://velog.io/@sugar-dev/Sequence-Diagram-UML-Diagram</link>
            <guid>https://velog.io/@sugar-dev/Sequence-Diagram-UML-Diagram</guid>
            <pubDate>Wed, 01 Feb 2023 06:19:06 GMT</pubDate>
            <description><![CDATA[<p> 고객사에 개발 내용과 관련된 간단한 시퀀스 다이어그램을 그려줄 일이 생겼다. 앞으로 문서화 작업이 이루어 질 것 같아. 아래 정리 해둔다. </p>
<p>시퀀스 다이어그램 = 순서 다이어그램 이라고도 하며, 객체 간의 상호작용 메시지 시퀀스를 시간 순서에 따라 표현한 다이어그램이다. 다음 편집 툴을 사용하였다. <a href="https://app.diagrams.net/"> [ShareIdea.drawio] </a> </p>
<p>화면 좌측에서 UML을 클릭하면 시퀀스다이어그램을 그릴 수 있는 도형들이 노출 된다.</p>
<p><img src="https://velog.velcdn.com/images/sugar-dev/post/edeb8cc3-693e-4d5a-8652-7cff121181c9/image.png" alt=""></p>
<ol>
<li><p>LifeLine (생명선): 상호작용에 참여하는 오브젝트들을 의미한다
<img src="https://velog.velcdn.com/images/sugar-dev/post/9b0e1fba-78b8-42d5-8924-a25e752f8846/image.png" alt=""></p>
</li>
<li><p>Message (메시지): 서로 다른 객체간의 의사소통 통신을 정의하는 요소이다.
<img src="https://velog.velcdn.com/images/sugar-dev/post/a1c0b0ef-f876-4d03-a1c6-ca78a78231cf/image.png" alt=""></p>
</li>
<li><p>Activation box (활성박스): 객체의 라이프 라인위에 그려지는 박스로 박스 위에서 객체 호출이 이루어진다. 
<img src="https://velog.velcdn.com/images/sugar-dev/post/8b8c7275-9736-4858-9587-4d619b6638e1/image.png" alt=""></p>
</li>
</ol>
]]></description>
        </item>
    </channel>
</rss>