<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ty_min12.log</title>
        <link>https://velog.io/</link>
        <description>꿈을 꾸는 개발자</description>
        <lastBuildDate>Fri, 07 Mar 2025 08:27:55 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>ty_min12.log</title>
            <url>https://velog.velcdn.com/images/ty_min12/profile/1aa9d9e1-0cab-4b02-887d-93d4af3210e3/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. ty_min12.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/ty_min12" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[그래프탐색(DFS&BFS)-개념요약]]></title>
            <link>https://velog.io/@ty_min12/%EA%B7%B8%EB%9E%98%ED%94%84%ED%83%90%EC%83%89DFSBFS-%EA%B0%9C%EB%85%90%EC%9A%94%EC%95%BD</link>
            <guid>https://velog.io/@ty_min12/%EA%B7%B8%EB%9E%98%ED%94%84%ED%83%90%EC%83%89DFSBFS-%EA%B0%9C%EB%85%90%EC%9A%94%EC%95%BD</guid>
            <pubDate>Fri, 07 Mar 2025 08:27:55 GMT</pubDate>
            <description><![CDATA[<h1 id="그래프탐색">그래프탐색</h1>
<h2 id="1-기본개념">1. 기본개념</h2>
<blockquote>
</blockquote>
<p>그래프란 버텍스(Vertext)와 간선(Edge)으로 이루어진 자료구조중의 하나이다. 
버텍스는 정점 엣지는 정점과 정점을 연결을 뜻한다.</p>
<h2 id="2-대표탐색종류">2. 대표탐색종류</h2>
<h3 id="bfsbreadth-first-search너비우선탐색---여러명을-한번씩-때리면서-감">BFS(Breadth-First-Search):너비우선탐색 - 여러명을 한번씩 때리면서 감</h3>
<h3 id="dfsdepth-first-search깊이우선탐색---한놈만-팬다">DFS(Depth-First-Search):깊이우선탐색 - 한놈만 팬다</h3>
<h4 id="예">예)</h4>
<p>BFS는 연재중인 여러웹툰을 보는것
DFS는 한웹툰이 완결될때까지 기다렸다가 한번에 쭉보는것</p>
<h3 id="2-1-시각자료">2-1.　시각자료</h3>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/7cb07bce-44c4-4875-abdd-bb82116e4ba9/image.png" alt=""></p>
<p>이미지출처:<a href="https://www.geeksforgeeks.org/difference-between-bfs-and-">https://www.geeksforgeeks.org/difference-between-bfs-and-</a></p>
<blockquote>
</blockquote>
<p>위에서 보는바와같이 탐색의 순서는 각각 다르다
BFS: 부모밑의 자식노드를 탐색시 횡적으로 형제를 우선적으로 탐색한다.
DFS: 탐색시 자식의 후손노드들을 우선적으로 종적으로 탐색을 한다.</p>
<h3 id="2-2-시간복잡도구하기">2-2. 시간복잡도구하기</h3>
<blockquote>
</blockquote>
<p>O(n) = V(Vertext) + E(Edge)(n*V) 
E는 각V에 연결되어있는 간선의 최대값을 가지고 구하면 된다. </p>
<h3 id="2-3-적합한-자료구조">2-3. 적합한 자료구조</h3>
<blockquote>
</blockquote>
<p>BFS: Queue
DFS: Stack</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Lambda関数]]></title>
            <link>https://velog.io/@ty_min12/Lambda%E9%96%A2%E6%95%B0</link>
            <guid>https://velog.io/@ty_min12/Lambda%E9%96%A2%E6%95%B0</guid>
            <pubDate>Wed, 16 Oct 2024 04:07:18 GMT</pubDate>
            <description><![CDATA[<h2 id="1-lambda関数とは：">1. Lambda関数とは：</h2>
<blockquote>
<ol>
<li>AWSLambdaで実行するアプリケーション<ul>
<li>サポートされる言語、もしくはカスタムランタイムで用意した言語で記述</li>
</ul>
</li>
<li>それぞれが隔離されたコンテナ内で実行される<ul>
<li>１コンテナで複数イベントを同時に処理することはない</li>
</ul>
</li>
<li>利用する言語の関数もしくはメソッドをハンドラーとして指定し、実行の際に呼び出す(JSON形式)にアクセスすることが可能<ul>
<li>ハンドラー内では呼び出しの：際にパラメータとして渡されたイベントのデータ(JSON形式)にアクセスすることが可能</li>
</ul>
</li>
<li>コード依存関係も含めてビルド、パッケージングしたうえでアップロード<ul>
<li>ZIP形式</li>
<li>アップロードしたものはAmazon S3に保存され、実行以外は暗号化される</li>
<li>ユーザがＳ3にアップロードしてARNで指定することも可能</li>
</ul>
</li>
</ol>
</blockquote>
<h2 id="2-lambda関数に基本的にサポートされている言語">2. Lambda関数に基本的にサポートされている言語</h2>
 <ul>
  <li>Python</li>
  <li>Node</li>
  <li>C#</li>
  <li>Java</li>
  <li>PowerShell</li>
  <li>Ruby</li>
 </ul>


<h2 id="3-lambda関数---基本設定">3. Lambda関数 - 基本設定</h2>
<h3 id="3-1-メモリ">3-1) メモリ</h3>
<ul>
<li><p>64MBごとに128MBから10,240MBの間で設定可能</p>
</li>
<li><p>容量に応じてCPU能力なども比例</p>
</li>
<li><p>メモリ容量が一定を超えると使用するコア数も増えるため、マルチコアを活用するようなコードを実装することでより効果的な処理が可能</p>
<h3 id="3-2-タイムアウト">3-2) タイムアウト</h3>
<blockquote>
<p>コードを一定時間実行してからタイムアウトする。
Lambda関数がタイムアウトするまでの最大実行時間を指す</p>
</blockquote>
</li>
<li><p>Lambda関数の実行時間に関するタイムアウト</p>
</li>
<li><p>最大900秒(15分)まで</p>
</li>
<li><p>一秒単位で調整可</p>
</li>
</ul>
<h3 id="3-3-実行ロール">3-3) 実行ロール</h3>
<blockquote>
<p>Lambda関数の実行リールとは、AWSサービスおよびリソースにアクセス許可を関数に付与するIAM(Identity and Access Management)ロールを指す</p>
</blockquote>
<ul>
<li>必要なAWSリソースのアクセスを許可するIAMロール</li>
<li>指定されたIAMロールに沿ってLambda関数からAWSのリソースのアクセスが許可される可能</li>
</ul>
<h2 id="4-lambda関数の制限">4. Lambda関数の制限</h2>
<div style="display: flex">
  <ul>
    <li>インバウンドネットワーク接続はブロックされる</li>
    <li>アウトバウンドはTCP/IPとUDP/IPソケットのみ</li>
    <li>ptraceシステムコールはブロックされる</li>
    <li>TCP　25番ポートのトラフィックされる</li>
  </ul>
</div>


<h2 id="5-実行環境">5. 実行環境</h2>
<ul>
<li>オペレーションシステム：Amazon Linux</li>
<li>AMI: amzn-ami-hvm-2027.03.1.20170812-x86_64-gp2</li>
<li>Linux : 4.14.77-70.59.amzn1.x86_64</li>
<li>AWS SDK for JavaScript: 2.290.0</li>
<li>SDK for Python (Boto 3)
• Python 3.6: boto3-1.7.74 botocore-1.10.74
• Python 3.7: boto3-1.9.42 botocore-1.12.42</li>
</ul>
<h2 id="6-イベントソース">6. イベントソース</h2>
<blockquote>
</blockquote>
<p>Lambda関数のイベントソースにはAWSのサービス+ユーザが開発したアプリケーション
<img src="https://velog.velcdn.com/images/ty_min12/post/355181fd-8ff4-49bb-aca1-a8fc76d700e2/image.png" alt=""></p>
<h3 id="6-1-イベントソースを恩恵">6-1) イベントソースを恩恵</h3>
<ul>
<li>AWS(IAM)を使用しリソースへのアクセスを安全に管理</li>
<li>保存中のデータを暗号化</li>
<li>AWS PrivateLinkのVPCエンドポイントを使用しAmazon Virtual Private Cloudからアクセス可能</li>
<li>Amazon CloudWatch Application Insights使用し、メトリクスを基にした報告、警告を生成</li>
</ul>
<h2 id="7-呼び出しタイプ">7. 呼び出しタイプ</h2>
<blockquote>
<p>カスタムアプリケーションによる呼び出し、もしくはAWS CLIなどを用いての手動実行の場合に呼び出しタイプを指定できる。</p>
</blockquote>
<p style="color: red; font-weight: bold;" >
  ※イベントソースがAWSのサービスの場合はサービスごとに事前に決められていて変更不可
</p>


<h3 id="7-1-非同期呼び出しタイプ">7-1) 非同期呼び出しタイプ</h3>
<ul>
<li>InvocationTypeはEvent</li>
<li>レスポンス内容はリクエストが正常に受け付けられたかどうか</li>
</ul>
<h3 id="7-2-同期呼び出しタイプ">7-2) 同期呼び出しタイプ</h3>
<ul>
<li>InvocationTypeはRequestResponse</li>
<li>実行完了時にレスポンスが返ってくる。その内容は関数内で定義</li>
</ul>
<h2 id="vpcアクセス">VPCアクセス</h2>
<blockquote>
<p>Amazon　RDSやElasticacheなどのVPC内のリソースインターネットを経由せずにアクセス可能</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS API Gateway]]></title>
            <link>https://velog.io/@ty_min12/AWS-API-Gateway</link>
            <guid>https://velog.io/@ty_min12/AWS-API-Gateway</guid>
            <pubDate>Wed, 02 Oct 2024 02:04:16 GMT</pubDate>
            <description><![CDATA[<h2 id="개요">개요</h2>
<blockquote>
<p>AWS APIgateway는 규모와 상관없이 개발자가 API를 생성, 게시, 유지관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스이다. 
실시간 양방향 통신 애플리케이션이 가능하도록 하는 RESTful API 및 WebSocket API를 작성할 수 있다.
API Gateway는 컨테이너식 서버리스 워크로드 및 웹 어플리케이션을 지원한다.</p>
</blockquote>
<h3 id="여기서-api란">여기서 API란</h3>
<blockquote>
<p>어플리케이션이 백엔드서비스의 데이터 비즈니스로직 또는 기능에 액세스
할 수 있는 &quot;정문&quot;역할을 한다. </p>
</blockquote>
<h3 id="api-gateway의-주요-지원서비스">API Gateway의 주요 지원서비스</h3>
<ul>
<li>AWS의 서비스 및 외부 서비스를 위한 API를 생성/관리해주는 서비스이다.</li>
<li>HTTP/Websocket프로토콜 지원 </li>
<li>Serverless서비스</li>
<li>다양한 AWS서비스와 연동 <ul>
<li>예1) HTTP API형식으로 Lambda혹은 DynamodDB연동</li>
<li>예2) 어플리케이션 백엔드를 HTTP API로 연결</li>
</ul>
</li>
<li>API Key를 사용해 보안 관리와 사용량 추적가능 </li>
<li>배포관리 기능 (Canary배포 등) </li>
</ul>
<h3 id="rest">REST</h3>
<blockquote>
<p>REST = Representational State Transfer의 약자 </p>
</blockquote>
<ul>
<li>단일 HTTP메세지로 하나의 조작에 관한 정보를 포함 </li>
<li>URI로 표현하는 리소스를 정의 </li>
<li>HTTP메서드(POST, GET, PUT, DELETE...)로 조작</li>
</ul>
<h3 id="apigateway의-rest엔드포인트-3타입">APIGateway의 REST엔드포인트 3타입</h3>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/115013fb-4292-406b-b142-80617e5e9699/image.png" alt=""></p>
<blockquote>
<p>REST API의 경우 크게 3종류의 엔드포인트가 존재하며 그 중 하나를 선택(클라이언트입장에서 액세스를 한 엔드포인트의 성질을 결정)
(추후 자세하게 정리예정)</p>
</blockquote>
<ol>
<li>엣지최적화: 엣지로케이션의 루팅</li>
<li>리젼: 
2-1: 리젼에 직접 루팅
2-2: 리퀘스트의 루트가 동일한 리젼의 경우 레이턴시가 삭감
2-3: CloudFront와 연동가능 </li>
<li>프라이베이트:Public에서의 접근이 불가하며 VPC내에서 AWS PrivateLink=VPC엔드포인트경유로만 접근을 할 수 있다.</li>
</ol>
<h3 id="websocket">WebSocket</h3>
<blockquote>
<p>HTTP상으로 클라이언트와 서버간의 양방향 통신을 구현하는 통신프로토콜 </p>
</blockquote>
<ul>
<li>하나의 커넥션으로 지속적인 데이터를 송수신할 수 있다. </li>
<li>URI스키마는 wss://를 사용한다.</li>
</ul>
<h3 id="api작성의-흐름신규작성">API작성의 흐름(신규작성)</h3>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/1512e643-b29a-4f1a-9612-2f8740d75581/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[ローカルとgithubの連携方法]]></title>
            <link>https://velog.io/@ty_min12/%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A8github%E3%81%AE%E9%80%A3%E6%90%BA%E6%96%B9%E6%B3%95</link>
            <guid>https://velog.io/@ty_min12/%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A8github%E3%81%AE%E9%80%A3%E6%90%BA%E6%96%B9%E6%B3%95</guid>
            <pubDate>Thu, 26 Sep 2024 06:27:26 GMT</pubDate>
            <description><![CDATA[<h3 id="初めに">初めに</h3>
<p>今までローカルとgithub連携は何度もやってきたが、連携する度に忘れてしまい、調べるのに手間が掛かるし毎回忘れて今う自分にもイライラしてきて、整理したいと思った。</p>
<h3 id="step1">STEP1</h3>
<p>まずVSCODEにプロジェクトを作る、僕の場合はreactを作ることにした。
ターミナルに下記のようにタイピングして</p>
<pre><code>npm create vite@latest</code></pre><p>プロジェクト名はreact-todos
フレームワークはreact + typescriptまで追加した。</p>
<h3 id="step2">STEP2</h3>
<p>自分のgithubに連携したいプロジェクトと同じ名前の新たなrepositoryを作り
下のURLをコピーする</p>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/5e5d5043-bba8-4037-b4c1-71734a9a7f3e/image.png" alt=""></p>
<h3 id="step3">STEP3</h3>
<p>プロジェクトを開きターミナルに下記のように作成</p>
<pre><code>git remote add origin 「githubレポジトリのURL」</code></pre><h3 id="step4">STEP4</h3>
<p>下のコマンドを打ちgithubのレポジトリとちゃんと連携しているか確認</p>
<pre><code>git remote -v
</code></pre><p>連携している場合下のような結果が出力される</p>
<pre><code>origin  「githubレポジトリのURL」 (fetch)
origin  「githubレポジトリのURL」 (push)</code></pre><h3 id="エラーを発見">エラーを発見…</h3>
<pre><code>remote: Permission to 「新アカウントユーザー名/リポジトリ名」 denied to 「前のアカウントユーザー名」.
fatal: unable to access 「新しいリポジトリURL」: The requested URL returned error: 403</code></pre><p>解決方法</p>
<h3 id="step1-1">STEP1</h3>
<p>タイピングミスがないか実際Ctrlキーを押下しながらURL部分をクリックして、ちゃんと意図したリポジトリが表示されるか確認するとよい</p>
<pre><code>git remote set-url origin https://&lt;ユーザ名&gt;@github.com/&lt;ユーザ名&gt;/&lt;リポジトリ名&gt;.git
\</code></pre><h3 id="step2-1">STEP2</h3>
<pre><code>git push origin main
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[CSSのmodule化]]></title>
            <link>https://velog.io/@ty_min12/CSS%E3%81%AEmodule%E5%8C%96</link>
            <guid>https://velog.io/@ty_min12/CSS%E3%81%AEmodule%E5%8C%96</guid>
            <pubDate>Wed, 25 Sep 2024 09:14:04 GMT</pubDate>
            <description><![CDATA[<h3 id="1エラー発生">1.エラー発生</h3>
<p>元々、JSXで行われる講義だが、Typescriptを勉強したい気持ちで、
TSXに変えて勉強をしていた。しかし、CSSのmodule化がどうしても
上手くいかなくて色々と調べた結果ようやく解決できた。</p>
<p>下記ようにCSSをmodule化して読み込みたいと思っていたが
<img src="https://velog.velcdn.com/images/ty_min12/post/93e44c30-8b65-4e5e-98cc-fca126dcdbe5/image.png" alt=""></p>
<p>こういったエラーが発生した。
すなわち、CSSファイルを探せないということ</p>
<pre><code>Cannot find module &#39;./Example.module.css&#39; or its corresponding type declarations.</code></pre><h3 id="2解決策">2.解決策</h3>
<p>参考になった: <a href="https://velog.io/@drrobot409/React-TypeScript-module.scss-import">https://velog.io/@drrobot409/React-TypeScript-module.scss-import</a></p>
<p>ソースフォルダの中に
<img src="https://velog.velcdn.com/images/ty_min12/post/6600cbf2-e678-4aad-90ab-218552074dfb/image.png" alt=""></p>
<p>global.d.tsファイルを作り
中に下記のようにコードを作成する</p>
<pre><code>declare module &quot;*.css&quot; {
  const content: { [className: string]: string };
  export = content;
}</code></pre><p>もしCSSではなくSCSSの場合&quot;<em>.css&quot;の所を&quot;</em>.SCSS&quot;に設定しよう
そうすると…
<img src="https://velog.velcdn.com/images/ty_min12/post/646b76b3-15cd-44a7-b3ec-8bd370653b4d/image.png" alt=""></p>
<p>エラーが無くなった！</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[OpenAPIとSwagger]]></title>
            <link>https://velog.io/@ty_min12/OpenAPI%E3%81%A8Swagger</link>
            <guid>https://velog.io/@ty_min12/OpenAPI%E3%81%A8Swagger</guid>
            <pubDate>Tue, 24 Sep 2024 00:52:51 GMT</pubDate>
            <description><![CDATA[<h3 id="swaggerとは？">Swaggerとは？</h3>
<blockquote>
<p>APIの設計、構築、文章化、およびテストを支援するための「オープンソースフレームワーク」である。RESTfulAPIを設計し、その仕様をJSONやYAML形式で文書化するためのツールセットを提供、</p>
</blockquote>
<h3 id="openapiとは？">OpenAPIとは？</h3>
<blockquote>
<p>OpenAPIはSwaggerから派生したものであり、同じくAPIの設計、構築、文章化、およびテストを支援するための「オープンソースフレームワーク」である。
OpenAPI(OAS)の仕様は、APIがどのように動作するかを詳細に説明し、開発者がAPIの機能を理解し使用方法を学ぶ役立ちをする</p>
</blockquote>
<h3 id="swaggerとopenapiの比較">SwaggerとOpenAPIの比較</h3>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/0d007dff-0bb6-4602-8d9d-718c1a35023a/image.png" alt=""></p>
<h4 id="swaggerとopenapiの違い">SwaggerとOpenAPIの違い</h4>
<table>
<thead>
<tr>
<th>特性</th>
<th>Swagger</th>
<th>OpenAPI</th>
</tr>
</thead>
<tbody><tr>
<td>オリジン</td>
<td>Swaggerは、APIの設計と文書化を目的として開発</td>
<td>OpenAPIは、Swaggerの仕様を基に開発され、より広範で標準化されたAPIの設計と文書化を目指</td>
</tr>
<tr>
<td>フォーマット</td>
<td>Swaggerは、JSONとYAMLの両方のフォーマットをサポート</td>
<td>OpenAPIも、JSONとYAMLの両方のフォーマットをサポート</td>
</tr>
<tr>
<td>ツールのサポート</td>
<td>Swaggerは、Swagger UIとSwagger Editorなどのツールを提供</td>
<td>OpenAPIは、Swaggerツールに加えて、ReDocやSpeccyなどの他のツールもサポート</td>
</tr>
<tr>
<td>コミュニティのサポート</td>
<td>Swaggerは、広範なコミュニティのサポート</td>
<td>OpenAPIは、Linux Foundationの一部であるOpenAPI Initiativeによって管理されており、広範なコミュニティのサポート</td>
</tr>
</tbody></table>
<blockquote>
<p>どちらもAPIの設計、構築、および文書化を支援する。しかし、それぞれが提供する機能とツールは異なる。</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[APIgateway & Lambda]]></title>
            <link>https://velog.io/@ty_min12/APIgateway-Lambda</link>
            <guid>https://velog.io/@ty_min12/APIgateway-Lambda</guid>
            <pubDate>Mon, 23 Sep 2024 17:43:55 GMT</pubDate>
            <description><![CDATA[<h3 id="1apigatewayとは">1.APIgatewayとは</h3>
<blockquote>
<p>AWSが提供するAPIの作成及び様々の管理を行えるサービス
デバロッパーは規模にかかわらず簡単にAPIの作成、公開、保守、モニタリング、保護を行える。APIgatewayを使用すれば、リアルタイム双方向通信アプリケーションを実現するRESTfulAPI及びWebSocketAPIを作成することが可能</p>
</blockquote>
<h4 id="1-1apigatewayの特徴">1-1.APIgatewayの特徴</h4>
<blockquote>
<p>HTTPAPIまたはRESTAPIを使用してRESTfulなAPIを作成することができる。
またWebSocketAPIの作成も可能
AWSLambdaと連携したサーバレスなアーキテクチャも実装可能
イメージとしてはリクエストの受口としてAPI Gatewayがあり、
そこからLambda関数を呼び出してバックエンドの処理を行うという感じ</p>
</blockquote>
<h4 id="1-2aws-apigatewayの料金">1-2.AWS APIgatewayの料金</h4>
<blockquote>
<p>ユーザーに使用された分のみ支払う形になる、後最低料金や前払いの義務も無し。受信した API コール数と、転送データ量に対してのみ料金が発生</p>
</blockquote>
<h3 id="2lambda関数">2.Lambda関数</h3>
<blockquote>
<p>サーバレスを言われているサービス、実行基盤はAWS側で管理をする
各種ミドルウェアなどの様々な環境構築が必要なEC2と違い、LambdaのようなFaasを利用すればサーバ構築せずともプログラムを作成しすぐに実行するということができる</p>
</blockquote>
<h4 id="2-1lambdaの特徴">2-1.Lambdaの特徴</h4>
<h4 id="サポート言語">サポート言語</h4>
<blockquote>
<p>複数の言語をサポートしており、NodeJS, Python, Java, Ruby, C#, Go, PowerShell等をサポートしている、サポートされない言語でもカスタムランタイムという機能を利用してどの言語でも利用可能</p>
</blockquote>
<h4 id="lambda-layers">Lambda Layers</h4>
<blockquote>
<p>共通のロジックやライブラリに関しては、Lambda Layerとしてパッケージ化(zipファイルアーカイブ)して、複数のLambda関数で共有することができる。
！一つのLambda関数には最大5つまでのLayerを紐付けることができる。
Lambda関数とLayerの解凍後の合計サイズが250MB以下となる必要がある</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[TypeScript簡単な基本概念]]></title>
            <link>https://velog.io/@ty_min12/TypeScript%E7%B0%A1%E5%8D%98%E3%81%AA%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5</link>
            <guid>https://velog.io/@ty_min12/TypeScript%E7%B0%A1%E5%8D%98%E3%81%AA%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5</guid>
            <pubDate>Thu, 05 Sep 2024 09:04:03 GMT</pubDate>
            <description><![CDATA[<h2 id="typescriptとは">TypeScriptとは:</h2>
<blockquote>
<p>JSにコンパイルされる静的型システムが付いたJSの上位集合である</p>
</blockquote>
<h3 id="jsにコンパイルされるってことは">JSにコンパイルされるってことは:</h3>
<blockquote>
<p>　TSで作成されたものはJSにコンパイルされる。
ブラウザーやサーバー(ノード等)でTSを使いたい場合は、そのままTSを実行するのではなくJSに変換して実行するというプロセスになっている
JSが動く環境はTSも動く</p>
</blockquote>
<h3 id="静的型システムとは：">静的型システムとは：</h3>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/5addaa2b-47e5-4b6a-a641-72408fb6fd8f/image.png" alt=""></p>
<blockquote>
<p>TSがJSに変換される時、型検査というものを用いる
JSに変換される時、全体の型(変数、関数の戻り値、仮引数等)を検査する</p>
</blockquote>
<h3 id="tsはjsの上位集合：">TSはJSの上位集合：</h3>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/467abccc-4f2a-4f9d-bbc5-e88edb18d3d8/image.png" alt=""></p>
<blockquote>
<p>　TSという集合にJSが部分集合されている、つまりJSで書いたコードはTSでもある。</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[インターネット基本知識]]></title>
            <link>https://velog.io/@ty_min12/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88</link>
            <guid>https://velog.io/@ty_min12/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88</guid>
            <pubDate>Wed, 04 Sep 2024 05:50:06 GMT</pubDate>
            <description><![CDATA[<h3 id="1-インターネット基本概念-">1. インターネット基本概念 :</h3>
<blockquote>
</blockquote>
<p>####　インターネットは標準化されたプロトコルを介して通信し、相互に接続されたコンピューターのグローバルネットワークを意味する</p>
<hr>
<h3 id="2-httpとは-">2.　HTTPとは :</h3>
<blockquote>
</blockquote>
<p>Hyper Text Transfer Protocolの略語、WEBクライアントとWEBサーバーがデーターをやり取りする時に使われる通信手順(プロトコル)を意味する</p>
<h4 id="2-1-プロトコルとは-">2-1. プロトコルとは :</h4>
<blockquote>
<p>コンピューター同士が通信する時規格や手順を定めた約束事
つまり異なるメーカーのコンピューター同士でも規定のプロトコルに従っていれば通信することが可能。HTTPというプロトコルに従っていればどんなコンピューターでもWEB上でやり取りすることができる。</p>
</blockquote>
<h4 id="2-2-httpの特徴-">2-2. HTTPの特徴 :</h4>
<blockquote>
<p>1) HTML以外にもCSSやJavaScript, 画像, 動画, PDF 等コンピューターが扱えるデータなら何でも転送可能
2) 情報のやり取りは常にクライアントが要求を出し、サーバーが応答を返すといったシンプルな動作
3) 1つの要求(request)に対し1つの応答(response)</p>
</blockquote>
<hr>
<h3 id="3-httpsとは-">3. HTTPSとは :</h3>
<blockquote>
<p>Hypertext Transfer Protocol Secureの略語で通信が暗号化されていてHTTP通信で通信を安全に行うための仕組み(https://で始まるURLは暗号化されている)
ネットバンキングやクレジットカード決済サービス、個人情報や編集を行うようなケースで使われる。</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/1b6335d8-9f45-4fbd-a8bb-1d94c96d90fd/image.png" alt=""></p>
<h4 id="3-1-httpsの特徴-：">3-1. HTTPSの特徴 ：</h4>
<blockquote>
<p>1) SSL(Secure Sockets Layer)/TLS(Transfer　Layer　Securrity)と呼ばれるプロトコルが作り出す安全な接続を使ってその上でHTTPによる通信を行う
2) HTTPの持つシンプルで汎用性の高い特徴はそのまま活用される</p>
</blockquote>
<h3 id="httpとhttpsの比較表">HTTPとHTTPSの比較表</h3>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/086f2c82-47b2-420f-b695-47076c95164e/image.png" alt=""></p>
<hr>
<h3 id="4-ドメインネームとは-">4. ドメインネームとは :</h3>
<blockquote>
<p>簡単に説明するとネット上で使用される人間が覚えやすい住所を意味する。</p>
</blockquote>
<h4 id="4-1-dnsdomain-name-system">4-1 DNS(Domain Name System)</h4>
<blockquote>
<p>ネットワーク上の住所表記に関して、人間とコンピューターの仲立ちをしてくれるシステム。
IPアドレスとドメイン名を紐付けしてくれるシステムである。
コンピューターがネット上でWebサイトがどこにあるのか判別する情報は、IPv4アドレスまたはIPv6アドレスのパブリックIPアドレスを介してアクセスを行う
「192.0.2.1722001:db8:8b73:0000:0000:8a2e:0370:1337」
しかし人間にはこういった住所は覚えにくく、変更される可能性もある。
このような問題を解決するためにDNSが使用されている。</p>
</blockquote>
<hr>
<h3 id="5-ホスティングとは">5. ホスティングとは</h3>
<blockquote>
<p>　Webサイトやアプリケーション等をインターネットに公開するオンラインサービスを意味する。
ホスティングサービスによって自分が作ったサイトをネット上で他のひとがアクセスすることができる。</p>
</blockquote>
<hr>
<h3 id="6-ブラウザー">6. ブラウザー</h3>
<blockquote>
<p>　インターネットを介してホームページやウェブサイトに接続するためのソフトウェアを指す
Webサイトを表示するために必要なHTMLやCSS・画像等といったデーターをWebサーバーから受け取り
分析して人が見られるように表示する</p>
</blockquote>
<h4 id="6-1-コンピューターで使用されるブラウザの種類">6-1. コンピューターで使用されるブラウザの種類</h4>
<blockquote>
<p>Chrome,　Firefox, safari,　opera, Internet Explorer(RIP)</p>
</blockquote>
<h4 id="6-2-モバイルで使用されるブラウザの種類">6-2. モバイルで使用されるブラウザの種類</h4>
<blockquote>
<p> Androidブラウザ, iPhone, Opera Mini 等</p>
</blockquote>
<h4 id="6-3-処理の流れ">6-3. 処理の流れ</h4>
<p>1) ユーザーがブラウザーのURLバーにアドレスを入力
2) Webサイトが集まっているWebサーバーにURLが示すWebサイトの情報をリクエストを送信
3) サーバーはリクエストを受けブラウザーがWebサイトを描画するために必要な
データーを返す
4) ブラウザーはそのデーターを受け取り分析してユーザーが見えるように描画する</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[이클립스 - 깃허브 연동하기]]></title>
            <link>https://velog.io/@ty_min12/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EA%B9%83%ED%97%88%EB%B8%8C-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@ty_min12/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EA%B9%83%ED%97%88%EB%B8%8C-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0</guid>
            <pubDate>Mon, 24 Jun 2024 13:45:33 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>vscode에 익숙해져 있던 나는 최근 이클립스를 사용하게 되면서 깃허브연동 조차 쉽게 하지 못하는 개초보라는 걸 깨달았다. 몇개나 프로젝트를 쳐 날려먹었는지..</p>
</blockquote>
<h2 id="span-stylecolortomato-연동하기에-앞서-주의점"><span style="color:tomato"> !!!!연동하기에 앞서 주의점!!!!</h2>
</span>

<blockquote>
<ol>
<li>이클립스는 VSCODE와 달리 깃허브 로그인시 일반 패스워드가 아닌 토큰을 발급받아 로그인한다. </li>
<li>토큰을 발급받을 때 만료기간을 정할 수 있으며 최대 영구적으로 정할 수 있다. </li>
<li>잘 Commit되던 깃허브가 갑자기 안될 때 발급받은 토큰이 만료가 안되었는지 확인해보자</li>
</ol>
</blockquote>
<blockquote>
</blockquote>
<h3 id="목차-">목차 :</h3>
<h4 id="1-깃허브에서-새로운-리포지토리-생성">1. 깃허브에서 새로운 리포지토리 생성</h4>
<h4 id="2-이클립스에서-gitrepository생성">2. 이클립스에서 gitRepository생성</h4>
<h4 id="3-프로젝트를-shareproject">3. 프로젝트를 shareProject</h4>
<h4 id="4-프로젝트를-github에-올리기">4. 프로젝트를 github에 올리기</h4>
<h3 id="1-깃허브에서-새로운-리포지토리-생성-1">1. 깃허브에서 새로운 리포지토리 생성</h3>
<blockquote>
<p>먼저 이클립스의 Git Repository와 연동할 깃허브리포지토리를 생성한다.</p>
</blockquote>
<h4 id="1-1-new버튼을-클릭">1-1 New버튼을 클릭</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/dbca53b7-8547-437c-be71-11cb8241a001/image.png" alt=""></p>
<h4 id="프로젝트를-올릴-깃허브-레포지토리-생성">프로젝트를 올릴 깃허브 레포지토리 생성</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/d89f5678-6172-4f9a-b443-8674f5ee464f/image.png" alt=""></p>
<h3 id="2-이클립스에서-gitrepository생성-1">2. 이클립스에서 gitRepository생성</h3>
<blockquote>
<p>깃허브의 레포지토리를 생성하면 이클립스에서 깃허브로 commit할 깃레포지토리를 생성한다. </p>
</blockquote>
<h4 id="2-1-이클립스-상단메뉴-window--show-view--other--git폴더--git-repositories">2-1 이클립스 상단메뉴 Window =&gt; Show View =&gt; Other =&gt; Git폴더 =&gt; Git Repositories</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/df816d83-008d-45cb-9b89-c08ca3f7586c/image.png" alt=""></p>
<h4 id="2-2-clone-a-git-repository클릭">2-2 Clone a Git repository클릭</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/88baeed1-721c-405a-9524-5375761e558e/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/6d65718a-d9de-4c85-afe4-2cd8c1c09153/image.png" alt=""></p>
<h4 id="2-3-uri안에-commit할-깃허브의-리포지토리-주소를-입력한-후-next">2-3 URI안에 commit할 깃허브의 리포지토리 주소를 입력한 후 Next</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/91817d17-b4e6-4659-b0a9-2f4f982044ef/image.png" alt=""></p>
<h4 id="next">Next</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/ff2fbeb4-5e56-4239-b63f-017bfdf7db10/image.png" alt=""></p>
<h4 id="finish">Finish</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/f10b6cd7-d89f-4cb5-85a8-a4a792d46a26/image.png" alt=""></p>
<h4 id="remote-repository와-연동한-깃repository완성">Remote Repository와 연동한 깃repository완성</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/3f5ddc7e-edb2-47a2-b2d3-57ec965991c2/image.png" alt=""></p>
<h3 id="3-프로젝트를-shareproject-1">3. 프로젝트를 shareProject</h3>
<h4 id="3-1-프로젝트-오른쪽클릭하고-team--share-project를-클릭하면-아래의-창이-뜬다">3-1 프로젝트 오른쪽클릭하고 Team =&gt; Share Project를 클릭하면 아래의 창이 뜬다.</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/f8dc53c6-93d6-4a84-a5f7-55cb6b484cce/image.png" alt=""></p>
<h4 id="3-2-repository의-아래-화살표를-클릭하여-생성한-이클립스의-gitrepository를-보고-연동할-리포지토리를-선택하고-finish한다">3-2 Repository:의 아래 화살표를 클릭하여 생성한 이클립스의 gitRepository를 보고 연동할 리포지토리를 선택하고 finish한다.</h4>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/4d26f702-8e93-463d-b4a7-b79cb3710394/image.png" alt=""></p>
<p>위의 과정을 마무리하면 깃허브의 리포지토리와 프로젝트가 연동된다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Springboot - Maven vs Gradle]]></title>
            <link>https://velog.io/@ty_min12/springboot-Maven-vs-Gradle</link>
            <guid>https://velog.io/@ty_min12/springboot-Maven-vs-Gradle</guid>
            <pubDate>Tue, 14 May 2024 09:15:47 GMT</pubDate>
            <description><![CDATA[<h2 id="1-빌드관리도구">1. 빌드관리도구</h2>
<blockquote>
<p>프로젝트에서 필요한 xml, properties, jar파일들을 자동을 인식하여 빌드해주는 도구이다. 예전에는 개발자들이 수동으로 필요한 라이브러리가 있을시 직접 다운받거나 버전업의 확인을 하는 등 여러 수고를 덜어주는 도구이다.</p>
</blockquote>
<h3 id="1-1-주-작업">1-1) 주 작업</h3>
<ul>
<li>소드코드를 정보관리, 테스트 빌드, 배포 등의 작업을 진행</li>
<li>프로젝트 정보 관리, 테스트빌드, 배포 등의 작업을 진행</li>
<li>외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트의 관리를 진행</li>
</ul>
<h3 id="1-2-대표적인-빌드관리-도구">1-2) 대표적인 빌드관리 도구</h3>
<blockquote>
<h4 id="ant-maven-gradle">Ant, Maven, Gradle</h4>
</blockquote>
<hr>
<h2 id="2-메이븐maven이란">2. 메이븐(Maven)이란?</h2>
<h4 id="maven-repository--httpsmvnrepositorycom">Maven Repository : <a href="https://mvnrepository.com/">https://mvnrepository.com/</a></h4>
<blockquote>
<p>자바의 대표적인 관리도구였던 Ant를 대체</p>
</blockquote>
<ul>
<li>프로젝트의 외부 라이브러리를 쉽게 참조할 수 있게 pom.xml파일로 명시하여 관리</li>
<li>참조한 외부 라이브러리에 연관된 다른 라이브러리도 자동으로 관리</li>
</ul>
<h3 id="2-1-메이븐을-사용하는-이유">2-1) 메이븐을 사용하는 이유</h3>
<ul>
<li>기존에 사용되던 Ant는 빌드의 기능만을 가지고 있음</li>
<li>Maven은 라이브러리를 자동으로 관리해주는 기능이 추가</li>
<li>사용중인 라이브러리가 업데이트내용이 있을 시 자동으로 업데이트하여 적용</li>
</ul>
<h3 id="2-2-메이븐-간단사용법">2-2) 메이븐 간단사용법</h3>
<blockquote>
<p>pom.xml파일을 활용하여 빌드 및 관리 </p>
</blockquote>
<h4 id="pomxml의-역할">pom.xml의 역할</h4>
<ul>
<li>프로젝트 정보관리</li>
<li>해당 프로젝트에서 사용하는 외부 라이브러리 관리</li>
<li>해당 프로젝트의 빌드 관련 설정</li>
</ul>
<h3 id="2-3-메이븐-대표태그">2-3) 메이븐 대표태그</h3>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/10a8f714-5945-4847-b4ef-e0d7f48a6b89/image.png" alt=""></p>
<hr>
<h2 id="3-그래들gradle이란">3. 그래들(Gradle)이란?</h2>
<blockquote>
<p>Groovy스크립트를 활용한 빌드관리 도구</p>
</blockquote>
<ul>
<li>안드로이드 프로젝트의 표준 빌드 시스템으로 채택</li>
<li>멀티프로젝트의 빌드에 최적화하여 설계됨</li>
<li>Maven에 비해 더 빠른 처리속도를 가짐</li>
<li>Maven에 비해 더 간결한 구성이 가능</li>
</ul>
<h3 id="3-1-maven과의-차이">3-1) Maven과의 차이</h3>
<ul>
<li><h4 id="maven--pomxml-gradle--buildgradle">Maven : pom.xml, Gradle : build.gradle</h4>
</li>
<li><h4 id="gradle은-설치없이-사용할-수-있다">Gradle은 설치없이 사용할 수 있다.</h4>
</li>
<li><h4 id="maven에-비해-대규모프로젝트에서의-성능이-좋다">Maven에 비해 대규모프로젝트에서의 성능이 좋다.</h4>
</li>
</ul>
<h3 id="3-2-그래들-대표용어">3-2) 그래들 대표용어</h3>
<ul>
<li><h4 id="repositories--라이브러리가-저장된-위치-등-설정">repositories : 라이브러리가 저장된 위치 등 설정</h4>
</li>
<li><h4 id="mavencentral--기본-maven-repository">mavenCentral : 기본 Maven Repository</h4>
</li>
<li><h4 id="dependencies--라이브러리-사용을-위한-의존성-설정">dependencies : 라이브러리 사용을 위한 의존성 설정</h4>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[자바 - 프로세스와 쓰레드]]></title>
            <link>https://velog.io/@ty_min12/%EC%9E%90%EB%B0%94-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%93%B0%EB%A0%88%EB%93%9C</link>
            <guid>https://velog.io/@ty_min12/%EC%9E%90%EB%B0%94-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%93%B0%EB%A0%88%EB%93%9C</guid>
            <pubDate>Thu, 25 Apr 2024 06:09:14 GMT</pubDate>
            <description><![CDATA[<h3 id="1-프로세스란">1. 프로세스란</h3>
<blockquote>
<p>운영체제로부터 자원을 할당받는 작업의 단위 즉 현재 실행 중인 프로그램을 의미 한다. </p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/ca7bfc99-e984-4715-a6dd-0d237519aa05/image.png" alt=""></p>
<ul>
<li><p>예를들어 윈도우에서 카카오톡, 인터넷브라우저, 자바프로그램을 실행했을 때 각 실행중인 프로그램들은 프로세스라는 이름으로 운영체제위에서 실행된다. </p>
</li>
<li><p>크롬브라우저를 2개 띄우면 크롬브라우저 프로세스도 2개가 띄워진다.</p>
</li>
</ul>
<h3 id="2-쓰레드란">2. 쓰레드란</h3>
<blockquote>
<p>프로세스가 할당받은 자원을 이용하는 실행의 단위 
즉 노예다. 싱글쓰레드는 일하는 노예가 하나 멀티쓰레드는 일하는 노예가 다수</p>
</blockquote>
<h4 id="2-1-쓰레드의-생성">2-1 쓰레드의 생성</h4>
<ul>
<li><p>프로세스가 작업중인 프로그램에서 실행요청이 들어오면 쓰레드를 만들어 명령을 처리하도록 한다.</p>
</li>
<li><p>쓰레드의 자원 프로세스 안에는 여러 쓰레드들이 있고 쓰데르들은 실행을 위한 프로세스 내 주소공간이나 메모리공간을 공유 받는다.</p>
</li>
<li><p>쓰레드들은 각각 명령처리를 위한 자신만의 메모리공간을 할당받는다.</p>
</li>
</ul>
<h3 id="3-프로세스-구조">3. 프로세스 구조</h3>
<blockquote>
</blockquote>
<p>할당 받은 프로세스에는 크게 3가지로 구성되어있다.</p>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/b9d00707-32de-4ae1-90d7-21479160c6cb/image.png" alt=""></p>
<ul>
<li>Code : 자바의 main메소드와 같은 코드를 의미</li>
<li>Data : 프로그램이 실행 중 저장 할 수 있는 저장공간을 의미 
예) 전역변수, 정적변수, 배열 등 초기화된 데이터를 저장하는 공간</li>
<li>메모리영역 : 메모리영역도 2가지 영역으로 이루어져있다.
  1) Stack : 메서드안의 지역변수나 매개변수 리턴변수 등을 저장하는 공간
  2) Heap : 프로그램이 동적으로 필요한 변수를 저장하는 공간 new(), mallock()</li>
</ul>
<h3 id="4-java에서의-쓰레드">4. JAVA에서의 쓰레드</h3>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/1d6f594f-4484-40f2-9668-015c4cd95163/image.png" alt=""></p>
<blockquote>
<p>일반 쓰레드와 동일하며 JVM프로세스안에서 실행되는 쓰레드를 의미 </p>
</blockquote>
<ul>
<li>Java프로그램을 실행하였을 때 JVM프로세스위에서 실행</li>
<li>Java프로그램 쓰레드는 Java Main(Main메서드)쓰레드부터 실행되며 JVM에 의해 실행된다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[JAVA - 메서드 오버로딩]]></title>
            <link>https://velog.io/@ty_min12/JAVA-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9</link>
            <guid>https://velog.io/@ty_min12/JAVA-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9</guid>
            <pubDate>Tue, 16 Apr 2024 02:50:38 GMT</pubDate>
            <description><![CDATA[<h3 id="메서드-오버로딩이란">메서드 오버로딩이란</h3>
<blockquote>
<p>자바의 한 클래스내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수, 순서, 타입을 다르면 동일한 이름을 사용해서 메서드를 정의 할 수 있다.</p>
</blockquote>
<h4 id="1-오버로딩-조건">1. 오버로딩 조건</h4>
<ul>
<li>메서드의 이름이 같아야한다.</li>
<li>매개변수의 개수, 타입, 순서가 달라야한다.</li>
<li>&#39;응답값&#39;만 다른것은 오버로딩을 할 수 없다.</li>
<li>접근제어자만 다른것도 오버로딩을 할 수 없다.</li>
<li>결론 오버로딩은 매개변수의 차이로만 구현할 수 있다.</li>
</ul>
<h4 id="2-오버로딩의-장점">2. 오버로딩의 장점</h4>
<p>1) 메서드이름 하나로 상황에 따른 동작을 개별로 정의할 수 있음</p>
<p>2) 메서드의 이름을 절약할 수 있다. </p>
<p>예)</p>
<pre><code>class OverloadingMethods {
    public void print() {
        System.out.println(&quot;오버로딩1&quot;);
    }

    String print(Integer a) {
        System.out.println(&quot;오버로딩2&quot;);
        return a.toString();
    }

    void print(String a) {
        System.out.println(&quot;오버로딩3&quot;);
        System.out.println(a);
    }

    String print(Integer a, Integer b) {
        System.out.println(&quot;오버로딩4&quot;);
        return a.toString() + b.toString();
    }

}</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[JAVA - 참조형변수 및 래퍼클래스타입 ]]></title>
            <link>https://velog.io/@ty_min12/JAVA-%EC%B0%B8%EC%A1%B0%ED%98%95%EB%B3%80%EC%88%98-%EB%B0%8F-%EB%9E%98%ED%8D%BC%ED%81%B4%EB%9E%98%EC%8A%A4%ED%83%80%EC%9E%85</link>
            <guid>https://velog.io/@ty_min12/JAVA-%EC%B0%B8%EC%A1%B0%ED%98%95%EB%B3%80%EC%88%98-%EB%B0%8F-%EB%9E%98%ED%8D%BC%ED%81%B4%EB%9E%98%EC%8A%A4%ED%83%80%EC%9E%85</guid>
            <pubDate>Tue, 09 Apr 2024 06:58:08 GMT</pubDate>
            <description><![CDATA[<h3 id="참조형-변수">참조형 변수</h3>
<blockquote>
<p>참조형변수란 값을 변수에 할당하는 것이 아닌 
원본값이 있는 주소를 변수에 담아 &quot;참조&quot;(가리키는것)하게 하는 변수이다.</p>
</blockquote>
<ul>
<li><p>Stack : 정적으로 할당된 메모리영역 
기본형변수와 참조형변수의 주소값을 저장하는 장소</p>
</li>
<li><p>Heap : 동적으로 할당된 메모리영역(크기가 계속 늘어날 수 있는 참조형 변수의 원본을 저장)
참조형변수의 원본값을 저장하는 장소
<img src="https://velog.velcdn.com/images/ty_min12/post/2b08eb05-ef25-4308-80b7-6b3f7e80158e/image.png" alt=""></p>
</li>
</ul>
<h4 id="1-문자열-변수--string">1. 문자열 변수 : String</h4>
<blockquote>
<p>&quot;Apple&quot;, &quot;텍스트&quot;와 같은 문장을 참조 </p>
</blockquote>
<pre><code>String message = &quot;Hello World&quot; </code></pre><h4 id="2-object-array-list">2. Object, Array, List...</h4>
<blockquote>
<p>객체, </p>
</blockquote>
<h4 id="3-wrapper-class">3. Wrapper Class</h4>
<blockquote>
<p>모든 기본타입에는 래퍼클래스가 있고 래퍼클래스의 메서드를 사용할 수 있다. </p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[JAVA - 변수개념 및 기본형변수 타입]]></title>
            <link>https://velog.io/@ty_min12/JAVA-%EB%B3%80%EC%88%98%EA%B0%9C%EB%85%90-%EB%B0%8F-%EA%B8%B0%EB%B3%B8%ED%98%95%EB%B3%80%EC%88%98-%ED%83%80%EC%9E%85</link>
            <guid>https://velog.io/@ty_min12/JAVA-%EB%B3%80%EC%88%98%EA%B0%9C%EB%85%90-%EB%B0%8F-%EA%B8%B0%EB%B3%B8%ED%98%95%EB%B3%80%EC%88%98-%ED%83%80%EC%9E%85</guid>
            <pubDate>Mon, 08 Apr 2024 13:48:50 GMT</pubDate>
            <description><![CDATA[<h2 id="변하는것과-변하지-않는것">변하는것과 변하지 않는것</h2>
<h3 id="1-저장공간의-선언과-값의-저장">1. 저장공간의 선언과 값의 저장</h3>
<h4 id="1-저장공간의-선언">1) 저장공간의 선언</h4>
<pre><code>예) 
int number; 
int     =&gt; 저장공간의 타입 : 정수(Integer)의 약자
number     =&gt; 저장공간 이름</code></pre><h4 id="2-값의-할당">2) 값의 할당</h4>
<blockquote>
<p>Java프로그램에서 저장공간에 값을 저장하는 방법은 2가지</p>
</blockquote>
<h4 id="2-1-선언과-동시에-저장한다면-이것은-초기화라고-한다">2-1) 선언과 동시에 저장한다면 이것은 &quot;초기화&quot;라고 한다.</h4>
<pre><code>예) 
int number = 10;</code></pre><h4 id="2-2-선언-후에-값을-저장한다면-일반적인-덮어쓰기라고-한다">2-2) 선언 후에 값을 저장한다면 일반적인 &quot;덮어쓰기&quot;라고 한다.</h4>
<pre><code>예) 
int number;
number = 10;</code></pre><hr>
<h3 id="2-변수">2. 변수</h3>
<blockquote>
<p>자바에서 저장하는 대부분의 값들은 변하는 것 &quot;변수&quot;이다
즉 값을 할당한 후 재할당할 수 있는 것 </p>
</blockquote>
<pre><code>예)
int number = 10;
number = 11;</code></pre><h3 id="3-상수">3. 상수</h3>
<blockquote>
<p>변하지 않는 저장공간으로 타입앞에 final을 붙인다
즉 값을 한번 할당하면 재할당이 불가능한 것</p>
</blockquote>
<pre><code>예) 
final int NUMBER = 10;
NUMBER = 11; =&gt; error</code></pre><hr>
<h3 id="기본형-변수의-종류">기본형 변수의 종류</h3>
<h4 id="1-논리형변수--boolean">1) 논리형변수 : boolean</h4>
<blockquote>
<p>true/false값만 저장한다</p>
</blockquote>
<pre><code>boolean flag = true;
flag = false;</code></pre><h4 id="2-문자형-변수--char">2) 문자형 변수 : char</h4>
<blockquote>
<p>&#39;A&#39;, &#39;1&#39;와 같은 문자 하나만 저장한다.</p>
</blockquote>
<pre><code>char alphabet = &#39;A&#39;; // 문자 하나를 저장</code></pre><h4 id="3-정수형-변수--byte-short-int-long">3) 정수형 변수 : byte, short, int, long</h4>
<blockquote>
<p>자바에서는 같은 정수형 타입이라도 표현할 수 있는 정수의 크기에 따라 타입을 나누었다는 것이 특징이다.
0, 1, 2, 99와 같은 정수형 숫자값을 저장한다.</p>
</blockquote>
<pre><code>byte byteNum = 127; // byte는 -128 ~ 127범위의 숫자만 저장가능 

short shortNum = 32787; // short는 -32,768 ~ 32,767범위의 숫자만 저장가능 

int intNum = -21억 ~ 21억범위의 숫자만 저장가능 

long longNum = 2147483647L // long은 숫자뒤에 알파벳 L을 붙여서 표기하며 매우 큰수를 저장가능 </code></pre><h4 id="4-실수형-변수--float-double">4) 실수형 변수 : float, double</h4>
<blockquote>
<p>0.123, 1.33와 같은 소수점 실수값을 저장
실수형 변수의 표현범위 
실수도 동일하게 각 변수표현범위를 넘는 숫자를 넣게되면 오버플로우가 발생하고 해당 숫자를 출력해보면 입력값과 다른 값으로 표현
특히 실수는 표현범위가 매우 넓어서 정수형 변수에서 담지 못할 수 있다.  </p>
</blockquote>
<h4 id="-float는-4byte만-쓰는데-어떻게-long보다-더-넓은-범위를-표현가능할까">! float는 4byte만 쓰는데 어떻게 long보다 더 넓은 범위를 표현가능할까?</h4>
<p>float라는 단어의 뜻은 &quot;부동&quot;이라는 의미를 가지고 있으며 소수점이 움직인다는 의미의 &quot;부동소수점방식&quot;으로 숫자를 저장한다. </p>
<ul>
<li>부동 소수점 방식 : 가수와 지수를 구분해서 저장하고 이값들을 곱한 값을 저장하는 방식
<img src="https://velog.velcdn.com/images/ty_min12/post/b8741adc-7e27-4b13-aba2-bb83ccaa8cc3/image.png" alt=""></li>
</ul>
<pre><code>float floatNum = 12.32332f // float(4byte) 3.4 * -10^38 ~ 3.4 * 10^38범위의 숫자를 저장가능 

double doubleNum = 0.123123123; // double은 8byte로 1.7 * 10^308범위를 표현하는 실수값
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[과일장수]]></title>
            <link>https://velog.io/@ty_min12/%EA%B3%BC%EC%9D%BC%EC%9E%A5%EC%88%98</link>
            <guid>https://velog.io/@ty_min12/%EA%B3%BC%EC%9D%BC%EC%9E%A5%EC%88%98</guid>
            <pubDate>Wed, 20 Mar 2024 09:22:40 GMT</pubDate>
            <description><![CDATA[<h3 id="문제">문제</h3>
<blockquote>
<p>과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다.
한 상자에 사과를 m개씩 담아 포장합니다.
상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다.
과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다)</p>
</blockquote>
<p>예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자 1개를 만들어 판매하여 최대 이익을 얻을 수 있습니다.</p>
<blockquote>
</blockquote>
<p>(최저 사과 점수) x (한 상자에 담긴 사과 개수) x (상자의 개수) = 2 x 4 x 1 = 8
사과의 최대 점수 k, 한 상자에 들어가는 사과의 수 m, 사과들의 점수 score가 주어졌을 때, 과일 장수가 얻을 수 있는 최대 이익을 return하는 solution 함수를 완성해주세요.</p>
<h3 id="입출력-예">입출력 예</h3>
<blockquote>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/426aaf11-17e9-49b2-a117-198f91a2e661/image.png" alt=""></p>
</blockquote>
<h4 id="첫시도--시나리오">첫시도 &amp; 시나리오</h4>
<ol>
<li><p>먼저 score를 내림차순으로 정렬</p>
</li>
<li><p>반복문을 돌리면서 상자에 담을 수 있는 m만큼만 splice메서드로 잘라낸다</p>
</li>
<li><p>splice로 잘라낸뒤 temp배열에 담는다.</p>
</li>
<li><p>answer에 temp배열에 있는 요소들을 계산한다.</p>
</li>
</ol>
<h4 id="문제점">문제점</h4>
<blockquote>
<p>테스트는 패스했지만 제출하면 시간초과걸림</p>
</blockquote>
<h4 id="문제점-파악">문제점 파악</h4>
<blockquote>
<p>질문을 보니 score의 길이가 100만이 넘는 경우가 있어 splice메서드가 시간초과의 원인임을 파악 
splice메서드를 안쓰는 방향으로 생각함</p>
</blockquote>
<h4 id="최종코드">최종코드</h4>
<pre><code>function solution(k, m, score) {
    var answer = 0;
    // 내림차순으로 정렬하고 appleArr에 깊은 복사
    let appleArr = score.slice().sort((a, b) =&gt; b - a)
    for(let idx1 = 0; idx1 &lt; score.length; idx1++) {      
        // 남은 요소의 수가 m보다 적을 때 반복문 중단
        if(appleArr.length - idx1 &lt; m) {
            break;
        }
        let temp = []
        let temp2 = idx1
        // temp에 담을 때 현재의 idx1에서 m만큼의 요소를 담는다.
        for(let idx2 = idx1; idx2 &lt; (temp2 + m); idx2++) {
            temp.push(appleArr[idx2]);
        }
        // temp에 다 담아 질때마다 answer에 박스값을 계산한다.
        answer += (Math.min.apply(null, [...temp]) * m)       
        // 얘가 문제였네
        idx1 += m - 1
    }
    return answer;
}</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[추상클래스(abstract class) & 인터페이스(interface)]]></title>
            <link>https://velog.io/@ty_min12/%EC%B6%94%EC%83%81%ED%81%B4%EB%9E%98%EC%8A%A4abstract-class</link>
            <guid>https://velog.io/@ty_min12/%EC%B6%94%EC%83%81%ED%81%B4%EB%9E%98%EC%8A%A4abstract-class</guid>
            <pubDate>Mon, 04 Mar 2024 11:38:26 GMT</pubDate>
            <description><![CDATA[<h2 id="1-추상클래스">1. 추상클래스</h2>
<blockquote>
<p>추상클래스란 추상메서드를 포함한 클래스이며 추상메서드는 선언만 있고 &quot;구현&quot;이 없다. 따라서 내용이 없어 추상클래스로 객체를 만들 수 없고 서브클래스를 만드는 용도로만 사용된다. </p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/cb3c45d4-bf6d-4a22-9f61-a1959f1a9cc9/image.png" alt=""></p>
<h4 id="예">예)</h4>
<pre><code>// abstract메서드를 하나라도 가지면 클래스 자체도 추상클래스가 되기 때문에 abstract를 붙여줘야한다.
// 추상클래스는 객체를 만들 수 없다.
public abstract class Event {

    public String title;

    public Event (String title) {
        this.title = title;
    }

    // 추상메서드
    // 다이나믹바인딩으로 서브클래스에서 제각각의 방식대로 오버라이딩하므로
    // 여기에서는 구현을 할 필요가 없다 그러므로 추상메서드로정의 해버린다. 
    public abstract boolean isRelevant(MyDate theDate);


}

...


public class OneDayEvent extends Event {
    public MyDate date;

    public OneDayEvent(String title, MyDate date) {
        super(title);
        this.date = date;
    }

    public String toString() {
        return title + &quot;, &quot; + date.toString();
    }

    // 이벤트가 해당 날짜에 걸리는지 확인하는 메서드 
    public boolean isRelevant(MyDate date) {
        if(this.date.compareTo(date) == 0) {
            return true;
        }
        return false;
    }
}

</code></pre><h2 id="2-인터페이스">2. 인터페이스</h2>
<blockquote>
</blockquote>
<p>자식클래스가 여러 부모클래스를 상속받을 수 있다면 다양한 동작을 수행할 수 있지만 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. 
다만 인터페이스라는 것을 통해 다중 상속을 지원하고 있다. </p>
<h4 id="특징">특징</h4>
<ul>
<li><h5 id="추상클래스-뿐만아니라-생성자-필드-일반메소드까지-포함할-수-있는-추상클래스와-달리-인터페이스는-오로지-상수와-추상클래스만을-가진다">추상클래스 뿐만아니라 생성자, 필드, 일반메소드까지 포함할 수 있는 추상클래스와 달리 인터페이스는 오로지 상수와 추상클래스만을 가진다.</h5>
</li>
<li><h5 id="추상클래스와-마찬가지로-자신이-직접-인스턴스를-생성할-수-없다-따라서-인터페이스가-가지고-있는-추상메소드를-구현해-줄-클래스를-만들어야한다">추상클래스와 마찬가지로 자신이 직접 인스턴스를 생성할 수 없다. 따라서 인터페이스가 가지고 있는 추상메소드를 구현해 줄 클래스를 만들어야한다.</h5>
</li>
</ul>
<p>예1) </p>
<pre><code>interface Animal { public abstract void cry(); }



class Cat implements Animal {

    public void cry() {

        System.out.println(&quot;냐옹냐옹!&quot;);

    }

}



class Dog implements Animal {

    public void cry() {

        System.out.println(&quot;멍멍!&quot;);

    }

}



public class Polymorphism03 {

    public static void main(String[] args) {

        Cat c = new Cat();

        Dog d = new Dog();



        c.cry();

        d.cry();

    }

}</code></pre><p>예2) 다중상속</p>
<pre><code>interface Animal { public abstract void cry(); }

interface Pet { public abstract void play(); }



class Cat implements Animal, Pet {

    public void cry() {

        System.out.println(&quot;냐옹냐옹!&quot;);

    }

    public void play() {

        System.out.println(&quot;쥐 잡기 놀이하자~!&quot;);

    }

}



class Dog implements Animal, Pet {

    public void cry() {

        System.out.println(&quot;멍멍!&quot;);

    }

    public void play() {

        System.out.println(&quot;산책가자~!&quot;);

    }

}



public class Polymorphism04 {

    public static void main(String[] args) {

        Cat c = new Cat();

        Dog d = new Dog();



        c.cry();

        c.play();

        d.cry();

        d.play();

    }

}
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[다형성 (Polymorphism)]]></title>
            <link>https://velog.io/@ty_min12/%EB%8B%A4%ED%98%95%EC%84%B1-Polymorphism</link>
            <guid>https://velog.io/@ty_min12/%EB%8B%A4%ED%98%95%EC%84%B1-Polymorphism</guid>
            <pubDate>Fri, 01 Mar 2024 05:48:16 GMT</pubDate>
            <description><![CDATA[<h3 id="다형성">다형성</h3>
<blockquote>
<p>다형성이란 poly(여러개) + morphism(형태 or 실체)의 결합어로 
하나의 객체가 여러가지 형태를 가질 수 있는 것을 의미한다. 
한마디로 자바에서 부모클래스타입의 변수가 다양한 자식클래스타입의 객체를 참조할 수 있다.
이는 자바에서 굉장히 중요하게 다뤄지는 개념이다.</p>
</blockquote>
<h4 id="예1">예)1</h4>
<pre><code>public class Computer {
    ...
    public String toString() {
        ...
    }
}

public class Notebook extends Computer {
    ...
    public String toString() {
        ...
    }
}

public static void main(String [] args) {
    // 부모클래스인 Computer타입의 변수가 자식클래스인 Notebook타입의 객체를 참조 가능하다
    Computer notebook1 = new Notebook();

    // 하지만 자식클래스타입의 변수가 부모클래스타입의 객체를 참조하는건 불가능하다
    Notebook notebook2 = new Computer();    &lt;= error
} 
</code></pre><h3 id="dinamic-binding-동적바인딩">dinamic binding (동적바인딩)</h3>
<blockquote>
<p>그렇다면 Computer클래스에 있는 toString이라는 이름의 메서드가 Notebook클래스에서도 overriding하여 존재한다면 notebook1변수는 어느 클래스에 있는 toString메서드를 참조할 것인가. 
결론부터 얘기하면 Notebook객체를 참조하고 있으므로 Notebook클래스에 있는 toString()메서드를 참조하게 된다. 이를 dinamic binding이라고 한다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[상속 (Inheritance)]]></title>
            <link>https://velog.io/@ty_min12/%EC%83%81%EC%86%8D-Inheritance</link>
            <guid>https://velog.io/@ty_min12/%EC%83%81%EC%86%8D-Inheritance</guid>
            <pubDate>Thu, 29 Feb 2024 02:38:22 GMT</pubDate>
            <description><![CDATA[<h3 id="상속">상속</h3>
<blockquote>
<p>기존클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. 기존에 정의되어 있던 클래스의 필드와 메서드들을 물려받아 새로운 클래스를 생성할 수 있다. 
이때 기존의 클래스를 부모클래스, 상위클래스, 기초클래스라고 한다. 상속을 통해 새롭게 작성되는 클래스를 자식클래스, 하위클래스, 파생클래스라고 한다. 
단 상위클래스에 정의된 private접근제한자를 둔 멤버 및 메서드는 하위클래스가 물려받을 수 없다. </p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/9fd7dba6-a689-479b-827d-d95c752a2ffe/image.png" alt=""></p>
<h4 id="상속의-장점">상속의 장점</h4>
<ol>
<li>상위클래스를 재활용할 수 있다. </li>
<li>중복되는 멤버나 메서드들을 미리 상위클래스에 정의해 놓으면 자식클래스들을 따로 정의하지 않아도 된다. </li>
<li>클래스간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련한다. </li>
</ol>
<h4 id="어떨때-쓰일까">어떨때 쓰일까</h4>
<blockquote>
</blockquote>
<p>두 클래스간의 관계가 is - a관계일 경우 
예1) 
컴퓨터 - 데스크탑
컴퓨터 - 노트북 
예2) 
자동차 - k3
자동차 - 세단</p>
<h4 id="상속방법">상속방법</h4>
<blockquote>
<p>상속받을 클래스뒤에 extends &lt;부모클래스이름&gt;</p>
</blockquote>
<pre><code>public class Notebook extends computer {
    ...

}</code></pre><h3 id="method-overriding">Method Overriding</h3>
<blockquote>
<p>부모로부터 물려받은 메서드가 자식클래스에서 사용하기에 완전히 적절하지 않거나 수정해야할 부분이 있을 경우 사용한다.</p>
</blockquote>
<h4 id="method-overriding-방법">Method Overriding 방법</h4>
<pre><code>    // method overriding
    // 부모클래스로부터 상속받은 메서드가 자식클래스에서 사용하기 좋게 만드는 법
    // 상속받은 메서드와 똑같은 이름의 메서드를 만들어서 덮어쓰기
    public String toString() {
        // super를 사용하여 부모클래스의 메서드를 불러올 수 있다
        // super로 접근을 하면 private멤버들을 접근할 수 있다.
        String result = super.toString() + 
                          &quot;\nScreen size: &quot; + screenSize + &quot;inches&quot; + 
                          &quot;\nWeight: &quot; + this.weight;

        // 단순한 방법으로 아래와 같이 할 수 있지만 이미 부모클래스에서 코딩한 내용을 중복함으로 좋은 방법은 아니며 private멤버일 경우 접근제한이 걸린다.
//        String result = &quot;Manufacturer: &quot; + manufacturer +
//                          &quot;\nCPU: &quot; + processor + 
//                          &quot;\nRAN: &quot; + ramSize + &quot; megabytes&quot; + 
//                          &quot;\nDisk: &quot; + diskSize + &quot; gigabytes&quot; + 
//                          &quot;\nProcessor speed: &quot; + processor + &quot; gigahertz&quot; +
//                          &quot;\nScreen size: &quot; + screenSize + &quot;inches&quot; + 
//                          &quot;\nWeight: &quot; + this.weight;

        return result;
    }</code></pre><h4 id="private멤버는-자식클래스에서도-직접적으로-접근을-할-수-없지만-super를-이용하여-접근할-수-있다">!private멤버는 자식클래스에서도 직접적으로 접근을 할 수 없지만 super를 이용하여 접근할 수 있다.</h4>
]]></description>
        </item>
        <item>
            <title><![CDATA[접근제한자 ]]></title>
            <link>https://velog.io/@ty_min12/%EC%A0%91%EA%B7%BC%EC%A0%9C%ED%95%9C%EC%9E%90</link>
            <guid>https://velog.io/@ty_min12/%EC%A0%91%EA%B7%BC%EC%A0%9C%ED%95%9C%EC%9E%90</guid>
            <pubDate>Wed, 28 Feb 2024 05:15:15 GMT</pubDate>
            <description><![CDATA[<h3 id="접근제한자란">접근제한자란</h3>
<blockquote>
<p>접근이란 클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버의 접근을 말하며 접근을 제한하기 위해 사용된다.</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/ty_min12/post/054a8c27-ec71-4b7d-a7fd-0b47b186dad0/image.png" alt=""></p>
<h3 id="접근제한자의-종류">접근제한자의 종류</h3>
<ul>
<li><h4 id="public-접근제한자-">public 접근제한자 :</h4>
<p>단어 뜻 그대로 외부클래스가 자유롭게 사용할 수 있음</p>
</li>
<li><h4 id="protected-접근제한자-">protected 접근제한자 :</h4>
<p>같은 패키지 또는 자식 클래스에서 사용할 수 있음</p>
</li>
<li><h4 id="private-접근제한자-">private 접근제한자 :</h4>
<p>오직 내부클래스에서만 접근이 가능하며 외부클래스에서의 접근이 제한된다.</p>
</li>
<li><h4 id="default접근제한자-">default접근제한자 :</h4>
<p>위의 세가지접근제한자가 적용되지 않으면 해당 접근제한을 가지게 되며 같은 패키지에 소속된 클래스에서만 접근을 허용한다. </p>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>