<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>연구하는 개발자</title>
        <link>https://velog.io/</link>
        <description>연구하는 프로그래머</description>
        <lastBuildDate>Thu, 14 Jul 2022 00:28:33 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>연구하는 개발자</title>
            <url>https://images.velog.io/images/kyj-kr/profile/9e15c48c-526d-4a13-8eef-1b1ee69ac60f/다운로드.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. 연구하는 개발자. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/kyj-kr" rel="self" type="application/rss+xml"/>
        <item>
            <link>https://velog.io/@kyj-kr/bh344tr8</link>
            <guid>https://velog.io/@kyj-kr/bh344tr8</guid>
            <pubDate>Thu, 14 Jul 2022 00:28:33 GMT</pubDate>
            <description><![CDATA[<p>안녕하세요.</p>
<p>1인 앱 개발자 연구하는개발자입니다.</p>
<p>그래서 이번에는 다양한 성격 유형 검사를 여러 웹, 앱 돌지말고 하나의 앱에서 수행할 수 있게 성격 유형 모음 앱을 만들었습니다.</p>
<p>아직까지는 앱 출시 초기라(개발은 이전부터 해왔습니다) 디자인(UI/UX) 등에서 버그가 생길 순 있으나, 검사 결과에는 문제가 없을겁니다.</p>
<p>아래 플레이스토어 다운로드 주소입니다.</p>
<p><a href="https://play.google.com/store/apps/details?id=com.inspectionapplication">https://play.google.com/store/apps/details?id=com.inspectionapplication</a></p>
<p>한번씩 클릭(접속)만 해주셔도 역시나 매우 매우 감동일 것 같습니다.</p>
<p>늦은 밤, 소중한 시간을 내주어서 감사드립니다.</p>
<p>행복하세요.</p>
<p><img src="https://velog.velcdn.com/images/kyj-kr/post/7ca102e4-b252-46a5-84f6-bcd5c662c20d/image.jpeg" alt="">
<img src="https://velog.velcdn.com/images/kyj-kr/post/29f80b64-7c54-41dc-95e6-bf5e6032c4ca/image.jpeg" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0]]></title>
            <link>https://velog.io/@kyj-kr/0</link>
            <guid>https://velog.io/@kyj-kr/0</guid>
            <pubDate>Fri, 25 Mar 2022 02:49:30 GMT</pubDate>
            <description><![CDATA[<p>0</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Lambda와 Inner class의 final 변수]]></title>
            <link>https://velog.io/@kyj-kr/Lambda%EC%99%80-Inner-class%EC%9D%98-final-%EB%B3%80%EC%88%98</link>
            <guid>https://velog.io/@kyj-kr/Lambda%EC%99%80-Inner-class%EC%9D%98-final-%EB%B3%80%EC%88%98</guid>
            <pubDate>Fri, 26 Nov 2021 03:09:20 GMT</pubDate>
            <description><![CDATA[<p>안드로이드를 개발하면서 onClick 메소드를 주로 anonymous class로 정의하여 사용한다.</p>
<p>이때 anonymous class 내부에서 외부 스택 변수를 참조할 때 오류가 발생하는 조건이 있다.</p>
<h3 id="참조하려는-외부-변수가-final로-역할을-할-수-없을-때이다"><strong>참조하려는 외부 변수가 final로 역할을 할 수 없을 때이다.</strong></h3>
<p>JAVA8 이전에는 외부 스택 변수를 final 변수로 선언하거나, 멤버 변수를 사용해야 했다.</p>
<p>다만, JAVA8 이후로 직접적인 final 선언 없이 외부 스택 변수가 수정되지 않으면 에러가 발생하지 않고 사용할 수 있었다.</p>
<p>이런 제약이 발생하는 이유는 JAVA는 직관적인 철학을 따르기 때문이다.</p>
<p>내부 원리로는 Lambda와 Inner class에서 외부 스택 변수를 참조하는것이 아니라, 외부 스택 변수 값을 복사하여 자기(스레드) 스택에 따로 저장하는 것이다. 그래서 외부 스택 변수가 소멸되도 그 안에서는 따로 살아나 있는것이다.</p>
<p>결론적으로, 역시 제약에는 다 이유가 있다는것을 느끼고 간다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바 String = ""의 길이는 0이다.]]></title>
            <link>https://velog.io/@kyj-kr/%EC%9E%90%EB%B0%94-String-%EC%9D%98-%EA%B8%B8%EC%9D%B4%EB%8A%94-0%EC%9D%B4%EB%8B%A4</link>
            <guid>https://velog.io/@kyj-kr/%EC%9E%90%EB%B0%94-String-%EC%9D%98-%EA%B8%B8%EC%9D%B4%EB%8A%94-0%EC%9D%B4%EB%8B%A4</guid>
            <pubDate>Thu, 04 Nov 2021 10:11:15 GMT</pubDate>
            <description><![CDATA[<p>자바 String 타입 변수의 length는 0이다.</p>
<p>따라서, charAt(0) 메소드의 결과가 에러가 나오는 것이다. (StringIndexOutofBoundsException)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[앱 제작] 주식 정보 및 알람 앱]]></title>
            <link>https://velog.io/@kyj-kr/%EC%95%B1-%EC%A0%9C%EC%9E%91-%EC%A3%BC%EC%8B%9D-%EC%A0%95%EB%B3%B4-%EB%B0%8F-%EC%95%8C%EB%9E%8C-%EC%95%B1</link>
            <guid>https://velog.io/@kyj-kr/%EC%95%B1-%EC%A0%9C%EC%9E%91-%EC%A3%BC%EC%8B%9D-%EC%A0%95%EB%B3%B4-%EB%B0%8F-%EC%95%8C%EB%9E%8C-%EC%95%B1</guid>
            <pubDate>Mon, 12 Jul 2021 08:03:27 GMT</pubDate>
            <description><![CDATA[<p>이번에는 처음으로 직접 제작한 앱에 대해 소개시켜 드리겠습니다.</p>
<p>원래 앱에 대한 관심이 1도 없어서, 공부를 해본적도 없었고 할 마음도 없었습니다.</p>
<p>그런데 이번 학기 수업에 앱을 제작하여 발표하는 수업이 있었고, 그때서야 안드로이드에 대한 흥미가 생겼었습니다. 코로나 때문에 동영상 수업을 했고, 이미 자바 쪽은 이전에 열심히 공부를 해서인지 그냥 안드로이드는 강의를 듣지 않고 구글링을 통해 독학하면서 학기를 마무리 했었네요.</p>
<p>그래도, 방학이 끝나고 너무나도 높아진 관심때문에 책을 따로 구매하여 이론쪽도 다시 공부하고 있습니다. 즐겁네요 !</p>
<p>뭐, 어찌됐든 온갖 구글링을 통해 제작한 주식 앱을 간략히 소개 시켜드리고자 합니다.</p>
<p><img src="https://images.velog.io/images/kyj-kr/post/86ed0d84-d84d-44b5-af37-13b98e59dfa2/a1.jpg" alt=""></p>
<p>앱의 아이콘도 구글에서 따왔고 다행히 맘에 쏙 드네요. 아, 앱을 클릭하면 당연히 실행이 되겠죠? 클릭해봅시다.</p>
<p><img src="https://images.velog.io/images/kyj-kr/post/c145a8da-3283-4042-950b-5497d4a56ae2/a2.jpg" alt=""></p>
<p>잠시간의 알람 서비스 세팅이 이루어지고 위와 같은 메인화면이 나옵니다. 대표적인 기능으로 차트, 주문, 알람, 추가가 있구요. 저기서 차트와 주문은 한국투자증권에 로그인을 해야 나옵니다. 주문은 어쩔 수 없이 원하는 기업에 로그인해야하는게 당연하지만, 차트는 비로그인으로 구현해보고자 데이터를 찾고있습니다.</p>
<p><img src="https://images.velog.io/images/kyj-kr/post/1728e2f3-e0e3-46d6-b984-5ed031d21544/a3.jpg" alt=""></p>
<p>그래도 비회원으로도 세세한 주식 정보까지 모두 조회 가능합니다.</p>
<p><img src="https://images.velog.io/images/kyj-kr/post/b76a4d6b-784d-420d-b239-6cce1006df46/a7.jpg" alt=""></p>
<p>또한, 알람 설정할때에도 주식정보의 핵심인 현재가와 등락률이 기재가 되어있어서 손절가와 목표가를 편하게 정할 수 있습니다. 아, 참고로 손절가 이하로 떨어지거나 목표가 이상으로 상승하면 알람이 울리는 시스템입니다.</p>
<p><img src="https://images.velog.io/images/kyj-kr/post/0c6bfd07-7413-4a24-b56a-9fb46030ae1b/a8.jpg" alt=""></p>
<p>앱이 켜져있을때는 위와 같은 Toast 형식의 알람이 15초 간격으로 계속 울립니다. 차후, 알람 시간에 대한 설정도 넣어줄 예정입니다.</p>
<p>또한, 앱이 꺼졌을때(단순히 뒤로 가기로 인해 앱 종료, Task 리스트에서도 제거된 경우 모두)는 Notification 알람이 딱 한번 울립니다.(카카오톡 알림을 생각하시면 편할거에요)</p>
<p><img src="https://images.velog.io/images/kyj-kr/post/9d10fc5d-d00c-4c13-9733-cd4de0da20fc/a9.jpg" alt=""></p>
<p>당연히 알람리스트도 볼 수 있습니다.</p>
<p><img src="https://images.velog.io/images/kyj-kr/post/6ad0cf3a-e0ad-4eae-bfe8-53e316c11101/a4.jpg" alt=""></p>
<p>그리고 관심종목을 정할 수도 있습니다.</p>
<p>참고로, 위에서 설명한 모든 설정사항들은 스마트폰에 저장이 되게끔 구현하였기 때문에, 앱을 삭제하지 않는 이상 데이터가 지워지지 않습니다!</p>
<p>또 한국투자증권에 로그인하여 매도, 매수, 잔고조회, 주문내역 등 다양한 주식활동을 할 수 있습니다. 이는 그저 부차적으로 만든것으로 생각이 되고 이 앱의 핵심은 알람을 설정할 수 있는 부분인거 같네요.</p>
<p>또, 기존 다양한 주식앱들을 보면 로그인을 거치거나 혹은 속도가 느려 버벅거림이 발생하는게 대부분일겁니다. 이번에 제작한 앱</p>
<p><strong>주식 정보집</strong>은 간소화 및 최적화가 이루어져서, 주식 조회 혹은 알람 기능을 알차게 이용하고자 하는 유저분들에게 많은 도움이 될것이라고 생각이 드네요. 많은 이용 바랍니다 !</p>
<blockquote>
<p><a href="https://play.google.com/store/apps/details?id=wo.main">https://play.google.com/store/apps/details?id=wo.main</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[JAVA] 처음 배울때 메모했던 내용들 (4)]]></title>
            <link>https://velog.io/@kyj-kr/JAVA-%EC%B2%98%EC%9D%8C-%EB%B0%B0%EC%9A%B8%EB%95%8C-%EB%A9%94%EB%AA%A8%ED%96%88%EB%8D%98-%EB%82%B4%EC%9A%A9%EB%93%A4-4</link>
            <guid>https://velog.io/@kyj-kr/JAVA-%EC%B2%98%EC%9D%8C-%EB%B0%B0%EC%9A%B8%EB%95%8C-%EB%A9%94%EB%AA%A8%ED%96%88%EB%8D%98-%EB%82%B4%EC%9A%A9%EB%93%A4-4</guid>
            <pubDate>Tue, 29 Jun 2021 15:23:42 GMT</pubDate>
            <description><![CDATA[<blockquote>
<ol>
<li>static 변수는 해당 클래스 정보가 가상머신에 의해 읽히는 순간(클래스 로딩) 메모리 공간에 할당되고 초기화 된다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="2">
<li>즉, static이 먼저 정의되기 때문에 static이 로딩되는 시점에선 인스턴스 객체가 정의되지 않았기에 호출할 수 없다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="3">
<li>static 메소드는 this 키워드를 사용할 수 없다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="4">
<li>static 메소드는 메소드 오버라이딩이 하이딩으로 적용된다. 또한 static 메소드는 static 메소드로만 오버라이딩이 가능하다. (static &lt;-&gt; non-static 오버라이딩 불가능)</li>
</ol>
</blockquote>
<blockquote>
<ol start="5">
<li>static 메소드에 대해서는 다형성이 적용되지 않는다.</li>
</ol>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[JAVA] 처음 배울때 메모했던 내용들 (3)]]></title>
            <link>https://velog.io/@kyj-kr/JAVA-%EC%B2%98%EC%9D%8C-%EB%B0%B0%EC%9A%B8%EB%95%8C-%EB%A9%94%EB%AA%A8%ED%96%88%EB%8D%98-%EB%82%B4%EC%9A%A9%EB%93%A4-3</link>
            <guid>https://velog.io/@kyj-kr/JAVA-%EC%B2%98%EC%9D%8C-%EB%B0%B0%EC%9A%B8%EB%95%8C-%EB%A9%94%EB%AA%A8%ED%96%88%EB%8D%98-%EB%82%B4%EC%9A%A9%EB%93%A4-3</guid>
            <pubDate>Mon, 28 Jun 2021 10:35:52 GMT</pubDate>
            <description><![CDATA[<blockquote>
<ol>
<li>JAVA에서는 클래스에 대한 변수는 모두 레퍼런스이다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="2">
<li>모든 클래스(사용자 정의 클래스 포함)는 SUPER 클래스로 Object 클래스를 상속받는다. ( &quot;extends Object&quot; 가 생략 되어있다고 보면됨)</li>
</ol>
</blockquote>
<blockquote>
<ol start="3">
<li>JAVA는 &quot;Call by Value&quot; 이다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="4">
<li>하나의 소스파일엔 public 클래스도 하나 이하만 존재해야하며, 파일의 이름과 일치해야한다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="5">
<li>static 메소드에서는 static 필드만 접근가능하고, static 메소드만 호출 가능하다.</li>
</ol>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[JAVA] 처음 배울때 메모했던 내용들 (2)]]></title>
            <link>https://velog.io/@kyj-kr/JAVA-%EC%B2%98%EC%9D%8C-%EB%B0%B0%EC%9A%B8%EB%95%8C-%EB%A9%94%EB%AA%A8%ED%96%88%EB%8D%98-%EB%82%B4%EC%9A%A9%EB%93%A4-2</link>
            <guid>https://velog.io/@kyj-kr/JAVA-%EC%B2%98%EC%9D%8C-%EB%B0%B0%EC%9A%B8%EB%95%8C-%EB%A9%94%EB%AA%A8%ED%96%88%EB%8D%98-%EB%82%B4%EC%9A%A9%EB%93%A4-2</guid>
            <pubDate>Sat, 26 Jun 2021 10:53:34 GMT</pubDate>
            <description><![CDATA[<blockquote>
<ol>
<li>Wrapper Class.valueOf 는 내부에 캐시를 이용하며 값의 범위가 있다. 만약 생성하려는 값이 범위 안에 있으면 캐시에서 객체를 가져오고, 범위 밖에 있으면 new로 객체를 생성하여 리턴하는것이다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="2">
<li>String 객체의 문자열은 생성이 되면 이후 변경되지 않는다. (immutable)</li>
</ol>
</blockquote>
<blockquote>
<ol start="3">
<li>C++와는 다르게 JAVA에서는 String 문자열은 &#39;\0&#39; 문자로 끝난다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="4">
<li>JAVA에서는 클래스의 객체가 문자열로 변환이 될 필요가 있으면 그 클래스에 존재하는 toString 이 된다.(toString 메소드는 모든 클래스가 상속받는 최상위 클래스인 Object 클래스에 존재한다.)</li>
</ol>
</blockquote>
<blockquote>
<ol start="5">
<li>JAVA의 클래스에 대한 변수는 모두 레퍼런스입니다. (정확히는 Primitive 타입을 제외한 모든 타입에 대한 변수는 모두 레퍼런스이다.)</li>
</ol>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[JAVA] TO DO LIST 메모 프로그램]]></title>
            <link>https://velog.io/@kyj-kr/JAVA-TO-DO-LIST-%EB%A9%94%EB%AA%A8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8</link>
            <guid>https://velog.io/@kyj-kr/JAVA-TO-DO-LIST-%EB%A9%94%EB%AA%A8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8</guid>
            <pubDate>Sat, 26 Jun 2021 10:12:37 GMT</pubDate>
            <description><![CDATA[<p>대략 반년전쯤에 자바 언어 플랫폼 수업을 듣고서, 호기심 삼아 만들었습니다.</p>
<p>시간이 꽤 지나서 세세한 기능이 잘동작하는지는 모르겠지만, 제 기억이 맞다면 디자인만 다듬으면 괜찮은 프로그램으로 재탄생할 수 있을거 같습니다.</p>
<p>아래에 소스를 위한 사이트를 올리겠습니다.</p>
<p>올바른 목적에 사용되길 바라겠습니다.</p>
<blockquote>
</blockquote>
<p><a href="https://github.com/kyj-kr/javaWO">TO DO LIST 프로그램</a></p>
<blockquote>
<p>참고로, ftp 서버와 통신을 통해 프로그램 버전을 확인하는 소스가 있는데, 완전히 개발된지는 확신할 수 없습니다. 다만, 그 외의 기능들은 온전히 작동하므로 궁금한 점 있으면 댓글 달아주십시오.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[JAVA] 처음 배울때 메모했던 내용들 (1)]]></title>
            <link>https://velog.io/@kyj-kr/JAVA-%EC%B2%98%EC%9D%8C-%EB%B0%B0%EC%9A%B8%EB%95%8C-%EB%A9%94%EB%AA%A8%ED%96%88%EB%8D%98-%EB%82%B4%EC%9A%A9%EB%93%A4</link>
            <guid>https://velog.io/@kyj-kr/JAVA-%EC%B2%98%EC%9D%8C-%EB%B0%B0%EC%9A%B8%EB%95%8C-%EB%A9%94%EB%AA%A8%ED%96%88%EB%8D%98-%EB%82%B4%EC%9A%A9%EB%93%A4</guid>
            <pubDate>Sat, 26 Jun 2021 02:31:48 GMT</pubDate>
            <description><![CDATA[<blockquote>
<ol>
<li>모든 요소(메소드, 변수)는 클래스 내부에 존재한다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="2">
<li>JAVA의 char type은 2바이트이다. ( 0 ~ 2^16 값의 범위를 가짐 )<ul>
<li>1바이트를 표현하기 위해 byte type이 존재한다.( -2^7 ~ 2^7-1 값의 범위)</li>
</ul>
</li>
</ol>
</blockquote>
<blockquote>
<ol start="3">
<li>static 메소드들은 객체생성없이 바로 접근할 수 있는데, Math 클래스의 메소드들이 static 메소드의 한 예이다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="4">
<li>JAVA에서 Primitive type 변수들은 STACK에 할당된다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="5">
<li>JAVA에서 Primitive type을 제외한 타입 객체들(Array, Enum, String, Class, Interface)은 HEAP에 동적할당이 된다. 다만, 이를 참조하는 변수들은 STACK에 할당된다.</li>
</ol>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>