<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>tkd_developer.log</title>
        <link>https://velog.io/</link>
        <description>컴퓨터공학과 수학을 공부하는 학생입니다!</description>
        <lastBuildDate>Thu, 20 Feb 2025 20:32:32 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>tkd_developer.log</title>
            <url>https://images.velog.io/images/tkd_developer/profile/f427264f-c604-4be7-bcfa-f80deb01be35/social.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. tkd_developer.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/tkd_developer" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Clean Code - Ch.4 Comments]]></title>
            <link>https://velog.io/@tkd_developer/Clean-Code-Ch.3-Comments</link>
            <guid>https://velog.io/@tkd_developer/Clean-Code-Ch.3-Comments</guid>
            <pubDate>Thu, 20 Feb 2025 20:32:32 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Clean Code - Ch.3 Functions]]></title>
            <link>https://velog.io/@tkd_developer/Clean-Code-Ch.3-Functions</link>
            <guid>https://velog.io/@tkd_developer/Clean-Code-Ch.3-Functions</guid>
            <pubDate>Tue, 18 Feb 2025 20:49:52 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[인프런 워밍업 클럽 Backend 2기 Day4 미션]]></title>
            <link>https://velog.io/@tkd_developer/%EC%9D%B8%ED%94%84%EB%9F%B0-%EC%9B%8C%EB%B0%8D%EC%97%85-%ED%81%B4%EB%9F%BD-Backend-2%EA%B8%B0-Day4-%EB%AF%B8%EC%85%98</link>
            <guid>https://velog.io/@tkd_developer/%EC%9D%B8%ED%94%84%EB%9F%B0-%EC%9B%8C%EB%B0%8D%EC%97%85-%ED%81%B4%EB%9F%BD-Backend-2%EA%B8%B0-Day4-%EB%AF%B8%EC%85%98</guid>
            <pubDate>Thu, 03 Oct 2024 14:21:29 GMT</pubDate>
            <description><![CDATA[<p>*<em>1. SOLID *</em>
SRP (Single Responsibility Principle) - 단일 클래스는 한 가지 기능만을 수행한다.
OCP (Open/Closed Principle) - 기능을 확장할 때 기존 클래스 코드의 수정이 없음.
LSP (Liskov Substitution Principle) - 프로그램의 객체가 서브 타입으로 교체될 수 있다.
ISP (Interface Segregation Principle) - 인터페이스는 클라이언트의 니즈에 따라 세분화되어야 하고, 클라이언트는 본인이 사용하지 않는 인터페이스에 종속되지 않음.
DIP (Dependency Inversion Principle) - 고수준 모델은 저수준 모델에 의존하지 않음.</p>
<p><strong>2. 코드 리팩토링</strong></p>
<pre><code>public boolean validateOrder(Order order) {
    boolean isValid = true;
    if (isOrderEmpty(order)) {
        log.info(&quot;주문 항목이 없습니다.&quot;);
        isValid = false;
    }

    if (isOrderPriceInvalid(order) {
        log.info(&quot;올바르지 않은 총 가격입니다.&quot;);
        isValid = false;
    }


    if (!order.hasCustomerInfo()) {
        log.info(&quot;사용자 정보가 없습니다.&quot;);
        isValid = false;
    }

    return isValid;
}

private static boolean isOrderEmpty(Order order) {
    return order.isEmpty()
}

private static boolean isOrderPriceInvalid(Order order) {
    return order.getTotalPrice() &lt;= 0
}</code></pre><p>Reference:
인프런 - <a href="https://www.inflearn.com/course/lecture?courseSlug=readable-code-%EC%9D%BD%EA%B8%B0%EC%A2%8B%EC%9D%80%EC%BD%94%EB%93%9C-%EC%9E%91%EC%84%B1%EC%82%AC%EA%B3%A0%EB%B2%95&amp;unitId=207905&amp;subtitleLanguage=ko">https://www.inflearn.com/course/lecture?courseSlug=readable-code-%EC%9D%BD%EA%B8%B0%EC%A2%8B%EC%9D%80%EC%BD%94%EB%93%9C-%EC%9E%91%EC%84%B1%EC%82%AC%EA%B3%A0%EB%B2%95&amp;unitId=207905&amp;subtitleLanguage=ko</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] 클린코드 Day 6]]></title>
            <link>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-Day-6</link>
            <guid>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-Day-6</guid>
            <pubDate>Sun, 30 Jun 2024 20:41:59 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] 클린코드 Day 4-5]]></title>
            <link>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-Day-4-5</link>
            <guid>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-Day-4-5</guid>
            <pubDate>Thu, 27 Jun 2024 20:17:49 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] 클린코드 Day 3]]></title>
            <link>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-Day-3</link>
            <guid>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-Day-3</guid>
            <pubDate>Tue, 25 Jun 2024 20:58:40 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] 클린코드 Day 2]]></title>
            <link>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-Day-2</link>
            <guid>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-Day-2</guid>
            <pubDate>Sun, 23 Jun 2024 20:28:26 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] 클린 코드 Day 1]]></title>
            <link>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0-%EC%BD%94%EB%93%9C-Day-1</link>
            <guid>https://velog.io/@tkd_developer/TIL-%ED%81%B4%EB%A6%B0-%EC%BD%94%EB%93%9C-Day-1</guid>
            <pubDate>Sat, 22 Jun 2024 17:45:21 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] IT 잡학사전 Day 13]]></title>
            <link>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-13</link>
            <guid>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-13</guid>
            <pubDate>Wed, 12 Jun 2024 20:50:22 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] IT 잡학사전 Day 12]]></title>
            <link>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-12</link>
            <guid>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-12</guid>
            <pubDate>Tue, 11 Jun 2024 20:58:38 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] IT 잡학사전 Day 10]]></title>
            <link>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-10</link>
            <guid>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-10</guid>
            <pubDate>Sun, 09 Jun 2024 15:21:21 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] IT 잡학사전 Day 7]]></title>
            <link>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-7</link>
            <guid>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-7</guid>
            <pubDate>Thu, 06 Jun 2024 18:10:40 GMT</pubDate>
            <description><![CDATA[<p>TIL (Today I Learned)</p>
<p>오늘 읽은 범위 22장 - 25장</p>
<p>*<em>책에서 기억하고 싶은 내용을 써보세요.
*</em></p>
<ol>
<li>22장</li>
</ol>
<ul>
<li>알고리즘은 컴퓨터에게 내리는 지시 사항을 나열한 것. 실생활에서는 지도 앱에서 사용하는 Pathfinder 알고리즘, 그림/사진파일 압축시 이미지를 최대한 덜 손상시키면서 용량을 최대한 줄이는데 사용하는 compression 알고리즘 등을 쉽사리 접할 수 있다.</li>
<li>자료구조는 데이터를 잘 보관하여 효율적으로 사용하기 위한 것.</li>
</ul>
<p><strong>오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요</strong></p>
<p>자바스크립트의 다재다능함을 알게 된 계기였고, 코틀린의 자바의 호환 과정을 통해 자바 가상 머신에 대해 어렴풋이지만 이해하게 되었습니다.</p>
<p><strong>궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.</strong></p>
<p>코루틴에 대해서 조금 더 공부해봐야 할 것 같습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] IT 잡학사전 Day 6]]></title>
            <link>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-6</link>
            <guid>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-6</guid>
            <pubDate>Wed, 05 Jun 2024 20:14:11 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] IT 잡학사전 Day 4]]></title>
            <link>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-4</link>
            <guid>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-4</guid>
            <pubDate>Mon, 03 Jun 2024 20:53:51 GMT</pubDate>
            <description><![CDATA[<p>Placeholder</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] IT 잡학사전 Day 3]]></title>
            <link>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-3-eqyzk7lc</link>
            <guid>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-3-eqyzk7lc</guid>
            <pubDate>Sun, 02 Jun 2024 11:57:30 GMT</pubDate>
            <description><![CDATA[<p>TIL (Today I Learned)</p>
<p>오늘 읽은 범위 6장 - 10장</p>
<p>*<em>책에서 기억하고 싶은 내용을 써보세요.
*</em></p>
<ol>
<li>6장 부록</li>
</ol>
<ul>
<li>프로그래밍을 배우는 사람의 실수 2가지: 공부만 하고 실제로 프로젝트를 만들어보지 않는 것과 항상 준비를 더 해야 한다고 생각하는 것.</li>
</ul>
<ol start="2">
<li>8장</li>
</ol>
<ul>
<li>파이썬은 인터프리트 언어, C언어는 컴파일 언어이다.</li>
<li>컴파일 언어와 인터프리트 언어의 가장 큰 차이는 실시간 여부에 달려 있다. 이 말인 즉슨, 파이썬과 같은 인터프리트 언어는 마치 동시통역사처럼 코드 한줄 한줄을 0과 1이라는 컴퓨터가 이해 가능한 언어로 치환하는 과정을 거친다. 이에 반해 C언어와 같은 컴파일 언어는 완성된 코드를 한번에 번역하여 기계어로 치환한다.</li>
<li>이런 방식 차이에 기인하여 컴파일 언어는 인터프리트 언어보다 실행 속도가 빠르다. 왜냐하면 번역 작업의 횟수가 인터프리트 언어의 경우 코드가 길어지면 길어질수록 늘어나는 반면, 컴파일 언어는 일관되게 한번의 작업만을 수행하기 때문이다. 또한, 번역 중 에러가 생기는 경우도 인터프리트 언어의 경우 제때 발견하기 어렵다는 특성이 있다.</li>
</ul>
<ol start="3">
<li>9장</li>
</ol>
<ul>
<li>하이브리드 앱, 크로스 플랫폼 앱은 모바일 애플리케이션 용어로서, 한번의 개발로 안드로이드/iOS 모두에서 사용이 가능한 앱을 의미한다.</li>
<li>하이브리드 앱을 만들기 위해서는 Ionic 등을 사용하고, 크로스 플랫폼 앱을 만들기 위해서는 React Native 등을 사용하는데, 이 툴들은 모두 자바스크립트 기반이다.</li>
<li>데스크톱 소프트웨어를 만들기 위해서도 자바스크립트를 사용할 수 있는데, HTML/CSS/JS를 컴파일하여 데스크톱 소프트웨어로 변환시켜주는 툴인 Electron을 사용하면 됨 (ex. Github, Atom, Slack, VS Code)</li>
<li>자바스크립트로 phaser.js/impact.js와 같은 물리 엔진이 탑재된 도구를 활용하여 게임 제작도 가능하며, node.js/socket.io 등을 이용하여 멀티플레이가 가능한 게임도 제작 가능함</li>
<li>three.js를 활용하여 3D 개발도 가능하며, A-Frame과 AR.js를 활용하여 증강현실 개발도 가능하다.</li>
<li>tensorflow.js를 활용하여 인공지능 개발도 가능함.</li>
</ul>
<ol start="4">
<li>10장</li>
</ol>
<ul>
<li>호환이란 자바 코드에서 코틀린 코드를 부를 수도 있고, 그와 반대로 코틀린 코드에서 자바 코드를 부를 수도 있다는 의미임.</li>
<li>Compliation vs Interpretation: 컴필레이션은 코드를 받아서 한번에 기계어로 변환 vs 인터프리테이션은 코드를 실시간으로 기계어로 변환</li>
<li>컴필레이션 방식의 실행 속도가 더 빠르지만, 각 운영체제마다 사용하는 기계어가 다르기에 코드가 실행될 환경(플랫폼)이 달라질 때마다 개발자가 컴필레이션을 계속 실행해줘야 함.</li>
<li>그에 반해 인터프리테이션 방식의 경우 인터프리터가 항상 기계어 번역을 수행하니 개발자가 따로 컴필레이션 과정을 실행할 필요가 없다는 장점이 있음.</li>
<li>자바의 경우 이 두 가지 방식이 혼합되어 있음. 자바 코드는 기계어로 곧바로 컴파일되지 않고 자바 바이트 코드라는 중간 단계 언어로 컴파일되고, 이 자바 바이트 코드는 자바 가상 머신 (Java Virtual Machine)에 의해 현 운영체제에 따라 알맞은 기계어로 변환되는 과정을 거침.</li>
<li>이런 특성 덕에 코틀린은 자바 바이트 코드로 변환되기만 하면 되기에 자바와 100% 호환될 수 있음.</li>
<li>코틀린은 자바와 달리 null safe한 언어다 (자바와 달리 null이 발생할 것 같으면 개발자에게 미리 알려줌).</li>
<li>코틀린은 coroutine을 지원하는 언어이기에 한번에 많은 일을 수행할 수 있음.</li>
</ul>
<p><strong>오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요</strong></p>
<p>자바스크립트의 다재다능함을 알게 된 계기였고, 코틀린의 자바의 호환 과정을 통해 자바 가상 머신에 대해 어렴풋이지만 이해하게 되었습니다.</p>
<p><strong>궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.</strong></p>
<p>코루틴에 대해서 조금 더 공부해봐야 할 것 같습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] IT 잡학사전 Day 2]]></title>
            <link>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-2</link>
            <guid>https://velog.io/@tkd_developer/TIL-IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-Day-2</guid>
            <pubDate>Sat, 01 Jun 2024 13:53:32 GMT</pubDate>
            <description><![CDATA[<p>TIL (Today I Learned)</p>
<p>오늘 읽은 범위 1장 - 5장</p>
<p>*<em>책에서 기억하고 싶은 내용을 써보세요.
*</em></p>
<ol>
<li>1장</li>
</ol>
<ul>
<li>좋은 개발자는 암기력이 좋은 개발자가 아니라, 개발 과정을 잘 이해하고 문제를 해결할 수 있는 사람이다.</li>
<li>개발자가 되려면 &#39;이 함수 고칠 때까지 잠자지 않겠다&#39;라는 끈기가 필요함.</li>
<li>개발에서는 포기하지 않는 것이 가장 중요하다.</li>
</ul>
<ol start="2">
<li>2장</li>
</ol>
<ul>
<li>C언어는 기계가 소통하는 방식에 가까운, 제한된 상황에서 최대의 성능을 내기 위해 만들어진 프로그래밍 언어이다.</li>
<li>자바는 역사가 오래된 언어이며, 역사가 오래된 만큼 시스템 유지 및 보수에 자주 사용된다. 안드로이드 어플리케이션 개발에도 주로 사용되며, 코틀린이 프로그램 실행 전 자바로 완전하게 변환되기에 자바에 능숙한 사람은 금방 숙련자가 되는 것이 가능함.</li>
<li>파이썬은 간단명료하고 데이터 분석, AI, 웹개발 등에 모두 사용 가능한 프로그래밍 언어이다.</li>
<li>자바스크립트의 경우 파이썬과 같이 다재다능한 언어이고, node의 등장 이후 프론트/백엔드를 모두 개발하는 것이 가능해졌으므로 웹개발을 하고 싶은 경우 공부하면 되는 언어이다.</li>
</ul>
<ol start="3">
<li>3장</li>
</ol>
<ul>
<li>새 프로그래밍 언어를 배우고 싶은 경우, 공식 문서 참고 -&gt; 문법 확인 -&gt; 타 프로그래밍 언어와 비교 -&gt; 직접 코딩해보기 순서로 진행하는 것이 효과적이다.</li>
<li>해당 4단계 이후, 공식 문서로 돌아가서 튜토리얼 파트를 진행하고 나만의 프로젝트를 진행하는 방식이 있다.</li>
</ul>
<ol start="4">
<li>5장</li>
</ol>
<ul>
<li>C언어의 경우 적은 메모리 사용량만으로도 높은 성능의 프로그램을 구현할 수 있다.</li>
<li>C++언어는 C언어 기반으로 개발된 언어로서, 객체 지향과 절차 지향을 모두 지원한다 (C언어는 절차 지향만을 지원하기에 C++에는 C언어에 없는 class와 같은 문법이 존재함).</li>
<li>C# 언어는 위 두 언어와는 완전히 별개의 언어로서, 마이크로소프트가 만든 자바라고 생각하면 됨. 마이크로소프트는 닷넷이라는 윈도우 프로그램 개발에 필요한 언어로 C#을 사용했으며, 이 C#은 배우기 쉽고 범용성이 높다는 장점이 있으나 실행 속도가 느리다는 단점이 있음.</li>
</ul>
<p><strong>오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요</strong></p>
<p>기존에 어렴풋이 알고 있었던 내용들이 대부분이었으나 이번을 계기로 해당 내용들을 일목요연하게 정리할 수 있었습니다!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[IT 잡학사전 TIL#4]]></title>
            <link>https://velog.io/@tkd_developer/IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-TIL4</link>
            <guid>https://velog.io/@tkd_developer/IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-TIL4</guid>
            <pubDate>Wed, 17 Apr 2024 20:40:17 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[TIL #3]]></title>
            <link>https://velog.io/@tkd_developer/TIL-3</link>
            <guid>https://velog.io/@tkd_developer/TIL-3</guid>
            <pubDate>Wed, 17 Apr 2024 20:39:54 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[IT 잡학사전 TIL#2]]></title>
            <link>https://velog.io/@tkd_developer/IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-TIL2</link>
            <guid>https://velog.io/@tkd_developer/IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-TIL2</guid>
            <pubDate>Sun, 14 Apr 2024 20:56:04 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[IT 잡학사전 TIL#1]]></title>
            <link>https://velog.io/@tkd_developer/IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-TIL1</link>
            <guid>https://velog.io/@tkd_developer/IT-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-TIL1</guid>
            <pubDate>Sat, 13 Apr 2024 16:26:46 GMT</pubDate>
        </item>
    </channel>
</rss>