<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>움직이면 산다</title>
    <link>https://saack.tistory.com/</link>
    <description>개인적인 공부자료 정리하는 공간</description>
    <language>ko</language>
    <pubDate>Wed, 24 Jun 2026 00:57:23 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>tislqhf</managingEditor>
    <image>
      <title>움직이면 산다</title>
      <url>https://tistory1.daumcdn.net/tistory/2416066/attach/8501eff83bb44e738c6a810329a80310</url>
      <link>https://saack.tistory.com</link>
    </image>
    <item>
      <title>C++] 기초(18) - 함수 오버라이딩(Overriding)</title>
      <link>https://saack.tistory.com/103</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #6600ff; font-size: 12pt;&quot;&gt;[들어가기 전]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;함수 오버라이딩(Overriding)은 자식 클래스가 필요에 따라 상속된 멤버 함수를 재정의하여 사용하는 것을 의미한다. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 기법을 사용하면 자식 클래스에서는 상속받은 멤버 함수들을 자기 자신의 필요에 맞추어 변경 할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; color: #6600ff;&quot;&gt;[설명]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;함수 오버라이딩은 자식 클래스 멤버 함수의 구현부만을 변경하는 것이므로, 자식 클래스 멤버 함수의 선언부 부분은 부모 클래스의 선언부와 동일하여야 한다. 즉 멤버 함수의 이름, 반환형, 매개변수의 개수와 자료형이 일치하여야 한다. 만약 자식 클래스에서 오버라이딩한 함수를 실수로 부모 클래스와 약간 다르게 정의한 경우, 컴파일러는 새로운 멤버 함수로 인지하기 때문에 아무런 오류가 발생하지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;함수 오버로딩(중복정의)와 오버라이딩(재정의)의 차이&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 오버로딩은 같은 이름의 멤버 함수를 여러개 정의하는 것. New의 개념.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 오버라이딩은 부모 클래스에서 상속받은 멤버 함수를 다시 정의해서 내용을 변경하는 것. Change, Modify의 개념.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;함수 오버라이딩 후 부모 클래스의 대상 함수 호출 방법&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 부모 클래스에서 대상 함수를 오버라이딩 후, 호출하기 위해서는 범위 연산자인 &quot;::&quot;을 사용하여 호출하면 됨.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;: class Parent() { void Print();} / class Child() {void Print();}&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; Print(); // 자식클래스 오버라이딩 함수 호출&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;rarr; ::Print(); // 부모클래스 대상 함수 호출&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 자식 클래스에서는 부모 클래스의 멤버 함수를 완전히 재정의 하기보다는, 내용만 추가하는 경우가 많다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;: void Print() {&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Parent::Print();&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 기타 작업. }&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[함수 오버로딩(중복정의)와 오버라이딩(재정의)의 차이]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;1) 오버로딩은 같은 이름의 멤버 함수를 여러개 정의하는 것&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- New의 개념.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;2) 오버라이딩은 부모 클래스에서 상속받은 멤버 함수를 다시 정의해서 내용을 변경하는 것&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- Change, Modify의 개념.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[함수 오버라이딩 후 부모 클래스의 대상 함수 호출 방법]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;1) 부모 클래스에서 함수를 오버라이딩 후, &quot;::&quot; 연산자(범위연산자) 사용하여 호출&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- class Parent {&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void Print() {} } &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- class Child : public Parent {&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void Print() {&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 자식클래스의 오버라이딩 수행&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Parent::Print();&amp;nbsp; // 부모클래스 대상 함수 호출&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;기타 작업.. &lt;/span&gt;} }&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;2) 상기 예제와 같이, 자식클래스에서는 부모클래스의 멤버 함수를 완전히 재정의 하기보다는,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;함수 오버라이딩에서 부모클래스의 대상 함수를 호출하여 내용만 추가하는 경우가 많다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[함수 오버라이딩(Overriding)]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp;- 추후 작업.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1710673465266&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#pragma once
#include &amp;lt;string&amp;gt;
using namespace std;

class Car
{
private:
	int m_nSpeed;

public:
	void SetSpeed(int nSpeed);
	int GetSpeed();
};

class SportsCar : public Car
{
private:
	bool m_bTurbo;
   
public:
	void SetTrubo(bool bTurbo);
	bool GetTurbo();
}

int main()
{
	SprotsCar car;
    
	car.SetSpeed(100);	// 부모의 메서드
	car.SetTrubo(true);	// 자식의 메서드
    
	car.GetSpeed();		// 부모의 메서드
	car.GetTrubo();		// 자식의 메서드
    
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>C++/공부</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/103</guid>
      <comments>https://saack.tistory.com/103#entry103comment</comments>
      <pubDate>Sun, 17 Mar 2024 20:03:48 +0900</pubDate>
    </item>
    <item>
      <title>C++] 기초(17) - 상속(Inheritance)</title>
      <link>https://saack.tistory.com/102</link>
      <description>&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #6600ff; font-size: 12pt;&quot;&gt;[들어가기 전]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상속이란 기존에 존재하는 클래스로부터 속성과 동작을 이어받고 자신이 필요한 기능을 추가하는 기법이다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; color: #6600ff;&quot;&gt;[설명]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;상속이란 이미 존재하는 클래스로부터 멤버들을 물려받는 것이다. 이미 존재하는 클래스를 부모 클래스(Parent Class)라고 하고 상속을 받는 클래스를 자식 클래스(Child Class)라고 한다. 상속을 나타낼 때 확장(Extend) 또는 파생(Derive)이라는 용어를 사용하는 이유도 상속을 하게 되면 멤버가 증가하기 때문이며, 부모 클래스로 올라갈수록 멤버는 줄어든다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;상속을 지칭하는 다양한 단어들&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- Parent Class : 부모클래스/조상클래스/슈퍼클래스/베이스클래스/기반클래스 등&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- Child Class : 자식클래스/자손클래스/서브클래스/파생클래스 등&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상속을 활용하면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;이미 작성 및 검증된 소프트웨어를 재사용 할 수 있으며, 신뢰성 있는 소프트웨어를 손쉽게 개발 및 유지 보수할 수 있다. 또한 코드의 중복을 줄일 수 있으며, 전체적으로 코드의 양(열)의 크기가 작아진다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[상속(Inheritance)의 특징]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;1) 자식 클래스로 내려 갈수록 멤버가 증가한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;2) 부모 클래스로 올라 갈수록 멤버가 감소한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;3) 방향이 일방향성이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- 자식 클래스는 부모 클래스의 멤버에 접근이 가능하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- 부모 클래스는 자식 클래스의 멤버에 접근이 불가하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;4) 부모 클래스의 멤버 함수를 자식 클래스에 맞게끔 재정의 가능하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- 메서드 오버라이딩(Method Overriding).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;※ 메서드 오버로딩과 혼동하지 말 것.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;5) 개발 시간을 절약하고, 신뢰성을 높이고 버그를 줄여주는 중요한 기법이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;7) Is-a 관계에서는 상속을 권장하며, Has-a 관계에서는 상속을 권장하지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Is-a : 강아지(자식)는 동물(부모)이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Has-a : 책(자식X)은 도서관(부모X)에 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;6) 생성자는 부모클래스 &amp;rarr; 자식클래스 순서로 호출된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;&amp;nbsp;7) 소멸자는 자식클래스 &amp;rarr; 부모클래스 순서로 호출된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;&amp;nbsp;8) 부모 클래스의 생성자는 상속이 되지 않으며, 상속받은 클래스 생성 시,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;부모 클래스의 생성자가 &lt;/span&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;호출될 뿐이다.&lt;/span&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- 그렇다면 부모 클래스의 생성자 중 매개변수가 있는 생성자는 어떻게 호출?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : class Parent(int n1, int n2) 생성자를 호출하고 싶을 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;rarr; class Child(Float f1, Float f2) : Parent(10, 20) { ... } 방식으로 호출 가능&lt;/span&gt;&lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[상속(Inheritance)의 예제]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1710669160974&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#pragma once
#include &amp;lt;string&amp;gt;
using namespace std;

class Car
{
private:
	int m_nSpeed;

public:
	void SetSpeed(int nSpeed);
	int GetSpeed();
};

class SportsCar : public Car
{
private:
	bool m_bTurbo;
   
public:
	void SetTrubo(bool bTurbo);
	bool GetTurbo();
}

int main()
{
	SprotsCar car;
    
	car.SetSpeed(100);	// 부모의 메서드
	car.SetTrubo(true);	// 자식의 메서드
    
	car.GetSpeed();		// 부모의 메서드
	car.GetTrubo();		// 자식의 메서드
    
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>C++/공부</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/102</guid>
      <comments>https://saack.tistory.com/102#entry102comment</comments>
      <pubDate>Sun, 17 Mar 2024 18:52:43 +0900</pubDate>
    </item>
    <item>
      <title>C++] 기초(16) - 싱글톤(Singleton) 디자인 패턴</title>
      <link>https://saack.tistory.com/101</link>
      <description>&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #6600ff; font-size: 12pt;&quot;&gt;[들어가기 전]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;디자인 패턴(Design Pattern)은 객체 지향 프로그래밍에서 자주 등장하는 여러 가지 패턴을 정리해 놓은 것.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;싱글톤(Singleton) 패턴은 한 클래스에서 오직 하나의 객체만을 생성하는 패턴이며, 시스템에서 어떤 자원이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공유될 때 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;싱글톤 패턴은 정적 멤버 변수와 함수를 사용하는 좋은 예이다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; color: #6600ff;&quot;&gt;[설명]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;싱글톤 패턴은 생성자를 클래스의 Public 영역이 아닌 Private 영역에 넣는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;따라서 생성자를 호출하여서 클레스의 객체를 생성 할 수 없으며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Public 영역에 정적 함수인 getInsetance()를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;선언한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;getInstacne() 함수는 정적 함수이므로 단 한번만 객체를 생성한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;해당 함수를 호출하면 클래스의 객체가 반환되는 형식이다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[싱글톤 패턴의 특징]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;1) 자신을 가리키는 정적 멤버 포인터 변수 Private 영역에 선언&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;2) 자신을 반환하는 정적 멤버 함수인 getInstance() 함수 Public 영역에 선언&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; - getInstance() 함수는 정적 함수이므로 단 한번만 호출되어 객체를 생성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; - getInstance() 함수를 호출하면 클래스 객체 반환&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; - getInstance() 함수 내부에서 최초 호출 시 자신의 객체 생성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;2) 1개의 객체를 사용하므로 메모리 낭비를 방지&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;3) 이미 생성된 객체를 활용하므로 속도 측면에서의 이점 있음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;4) 동시 접근에 대한 동기화 방안을 사전 확보하고 사용하기를 권장&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[싱글톤 패턴 객체 생성]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1710669073543&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#pragma once
#include &amp;lt;iostream&amp;gt;
using namespace std;

class Singleton
{
public:
	static Singleton* getInstance();

private:
	Singleton() {};
	static Singleton* Instance;

};

// 정적 멤버 변수이므로 Class 외부에서 반드시 초기화!!
Singleton *Singleton::Instance = nullptr;
// 정적 멤버 함수이므로 Class 외부에서 반드시 정의!!
Singleton* Singleton::getInstance()
{
	if (Instance == nullptr)
	{
		Instance = new Singleton();
	}

	return Instance;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>C++/공부</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/101</guid>
      <comments>https://saack.tistory.com/101#entry101comment</comments>
      <pubDate>Sun, 17 Mar 2024 18:51:33 +0900</pubDate>
    </item>
    <item>
      <title>C++] 기초(15) - 정적 변수/함수(Static Variable/Func)</title>
      <link>https://saack.tistory.com/99</link>
      <description>&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #6600ff; font-size: 12pt;&quot;&gt;[들어가기 전]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; 정적 변수란 변수 선언 앞에 static 키워드를 추가하여 선언하는 변수이며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;정적 함수란 함수 선언 앞에 static 키워드를 추가하여 선언하는 함수이다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; color: #6600ff;&quot;&gt;[설명]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;static 키워드가 붙은 정적 변수/함수는 메모리 영역(코드/스택/힙/데이터)에서 데이터 영역에 생성되며, &lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;SW LifeCycle과 동일하게 운용되어, SW 종료 시 &lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;해당 메모리를 반환한다. &lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;정적 변수/함수는 단 한 번만 초기화 되며, 하나의 주소값을 가지는 데이터 이다. 따라서&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;클래스 내부에 정적 변수를 멤버로 선언 시, 여러 클래스를 생성하더라도 &lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;정적 멤버 변수는 하나의 주소로 존재하며, &lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;이러한 특징으로 공유 변수 라고 불리기도 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[정적 변수/함수의 특징]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;1) 메모리 영역 중 데이터 영역에 할당된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;2) SW LifeCycle과 동일하게 운용된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;3) SW 실행 시 단 한 번만 초기화 되며, 하나의 주소 값으로 존재한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;4) 클래스 내부에 멤버 변수/함수로 선언 시, 클래스 생성과 무관하게 사전 생성된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; - 클래스를 여러개 생성 하더라도, 하나의 주소 값으로 존재함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; - 클래스를 여러개 생성한 경우에 공유 변수로 사용 가능&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; - 클래스 멤버 함수에서 this 키워드는 사용 불가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(멤버 함수 생성 시점이 객체가 만들어지기 전이기 때문)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;5) 클래스 명으로 접근해서 사용하길 권고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; - ex) Shape::GetWidth();&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;6) Singleton 디자인 패턴의 주요 키워드이다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;추가 작성 예정...&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[싱글톤 패턴 객체 생성]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1695786047993&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#pragma once
#include &amp;lt;iostream&amp;gt;
using namespace std;

class Singleton
{
public:
	static Singleton* getInstance();

private:
	Singleton() {};
	static Singleton* Instance;

};

// 정적 멤버 변수이므로 Class 외부에서 반드시 초기화!!
Singleton *Singleton::Instance = nullptr;
// 정적 멤버 함수이므로 Class 외부에서 반드시 정의!!
Singleton* Singleton::getInstance()
{
	if (Instance == nullptr)
	{
		Instance = new Singleton();
	}

	return Instance;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>C++/공부</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/99</guid>
      <comments>https://saack.tistory.com/99#entry99comment</comments>
      <pubDate>Wed, 27 Sep 2023 12:47:11 +0900</pubDate>
    </item>
    <item>
      <title>C++] 기초(14) - 복사생성자(Copy Constructor)</title>
      <link>https://saack.tistory.com/97</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #6600ff; font-size: 12pt;&quot;&gt;[들어가기 전]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복사 생성자는 동일한 클래스를 복사하여 객체를 생성할 때 사용하는 생성자이다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; color: #6600ff;&quot;&gt;[설명]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복사 생성자는 함수의 매개변수로 객체를 전달하거나, 함수 내부에서 생성한 객체를 반환하는 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;호출되며, call-by-reference 형식의 객체 전달에서는 호출되지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복사 생성자를 직접 정의하지 않으면 컴파일러가 기본 복사 생성자를 내부적으로 정의하여 호출한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[복사 생성자의 특징]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;1) 사용자 정의가 없는 경우 컴파일러가 자동으로 정의&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;2) 컴파일러 자동으로 정의된 복사 생성자는 얕은 복사 형식&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;3) 동적 메모리 할당이 생성자 내부에서 수행되는 경우, 반드시 복사 생성자 사용자 정의&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;4) 복사 생성자는 정의 시 생성자의 매개변수는 &amp;amp; 기호로 선언&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;amp;을 붙이지 않으면, 복사 생성자 무한루프 발생!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;5) 이미 생성된 객체를 다른 객체에 복사하는 경우 복사 생성자 호출 안됨&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex)&lt;/p&gt;
&lt;pre id=&quot;code_1694326513797&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Constructor
{
public:

    int m_nVal;

    Constructor()
    {
        m_nVal = 0;

        std::cout &amp;lt;&amp;lt; &quot;기본 생성자 호출&quot; &amp;lt;&amp;lt; std::endl;
    }

    Constructor(int nVal)
    {
        m_nVal = nVal;

        std::cout &amp;lt;&amp;lt; &quot;입력 생성자 호출&quot; &amp;lt;&amp;lt; std::endl;
    }

    Constructor(const Constructor&amp;amp; other)
    {
        m_nVal = other.m_nVal;

        std::cout &amp;lt;&amp;lt; &quot;복사 생성자 호출&quot; &amp;lt;&amp;lt; std::endl;
    }

    void print()
    {
        std::cout &amp;lt;&amp;lt; this-&amp;gt;m_nVal &amp;lt;&amp;lt; std::endl;
    }
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;[복사 생성자 호출 시점]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;1) 같은 종류의 객체로 초기화 하는 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1694326574624&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int main(void)
{
	Constructor c1(1);
    
    Constructor c2(c1);	// 복사 생성자 호출
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;2) 객체를 함수에 전달하는 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1694326733591&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;void Plus(Constructor cIn)
{
	cIn.m_nVal++;
}

int main(void)
{
	Constructor c1;
	Plus(c1);	// 복사 생성자 호출
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;3) 함수에서 객체를 반환하는 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1694326850285&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Constructor Insert(int nVal)
{
	Constructor c1;
    c1.m_nVal = nVal;
    return c1;	// 복사 생성자 호출
}

int main(void)
{
	Constructor c1 = Insert(1);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>C++/공부</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/97</guid>
      <comments>https://saack.tistory.com/97#entry97comment</comments>
      <pubDate>Sun, 10 Sep 2023 14:13:10 +0900</pubDate>
    </item>
    <item>
      <title>[함정장비] NED, ENU, XYZ 좌표계</title>
      <link>https://saack.tistory.com/96</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1. NED 좌표계(지면 좌표계)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;284&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/enbjou/btqMpL4aq6C/nOoIWnJRqxmGwXmf45G1m1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/enbjou/btqMpL4aq6C/nOoIWnJRqxmGwXmf45G1m1/img.png&quot; data-alt=&quot;&amp;amp;amp;lt; NED 좌표계 도식화 &amp;amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/enbjou/btqMpL4aq6C/nOoIWnJRqxmGwXmf45G1m1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fenbjou%2FbtqMpL4aq6C%2FnOoIWnJRqxmGwXmf45G1m1%2Fimg.png&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;284&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt; NED 좌표계 도식화 &amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1.1 North(N)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; North는 경도선(Longitude)와 평행을 이루며, 북쪽을 바라보는 방향을 표현한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; North는 적도를 기준으로 북반구는 +, 남반구는 &amp;ndash; 로 표현한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; X,Y,Z를 기준으로 표현하는 Local Frame 에서 +X 방향과 동일하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1.2 East(E)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; East는 위도선(Latitude)와 평행을 이루며, 동쪽을 바라보는 방향을 표현한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; East는 본초 자오선을 기준으로 동쪽은 +, 서쪽은 &amp;ndash;로 표현한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; X,Y,Z를 기준으로 표현하는 Local Frame 에서 +Y 방향과 동일하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1.3 Down(D) or Depth(D)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Depth는 지구 중심을 가리키며, 지구 내부를 바라보는 방향을 표현한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Depth는 지구 중심을 기준으로 중심과 가까워지는 방향은 +, 중심과 멀어지는 방향은 &amp;ndash;로 표현한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; X,Y,Z를 기준으로 표현하는 Local Frame 에서 +Z 방향과 동일하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2. ENU 좌표계(동북상 좌표계)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;284&quot; data-origin-height=&quot;258&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b87Q74/btqMtzOXecE/M3gVJIQrLWJW81M6JiWHD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b87Q74/btqMtzOXecE/M3gVJIQrLWJW81M6JiWHD0/img.png&quot; data-alt=&quot;&amp;amp;amp;lt; ENU 좌표계 도식화 &amp;amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b87Q74/btqMtzOXecE/M3gVJIQrLWJW81M6JiWHD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb87Q74%2FbtqMtzOXecE%2FM3gVJIQrLWJW81M6JiWHD0%2Fimg.png&quot; data-origin-width=&quot;284&quot; data-origin-height=&quot;258&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt; ENU 좌표계 도식화 &amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2.1 North(N)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; North는 경도선(Longitude)와 평행을 이루며, 북쪽을 바라보는 방향을 표현한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; North는 적도를 기준으로 북반구는 +, 남반구는 &amp;ndash; 로 표현한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; X,Y,Z를 기준으로 표현하는 Local Frame 에서 +Y 방향과 동일하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2.2 East(E)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; East는 위도선(Latitude)와 평행을 이루며, 동쪽을 바라보는 방향을 표현한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; East는 본초 자오선을 기준으로 동쪽은 +, 서쪽은 &amp;ndash;로 표현한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; X,Y,Z를 기준으로 표현하는 Local Frame 에서 +X 방향과 동일하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2.3 Up(U)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Up은 지구 중심과 멀어지는 방향을 표현한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Up는 지구 중심을 기준으로 중심과 멀어지는 방향은 +, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; 중심과 가까워지는 방향은 &amp;ndash;로 표현한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; X,Y,Z를 기준으로 표현하는 Local Frame 에서 -Z 방향과 동일하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3 Local /Body Frame X,Y,Z 좌표계&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;284&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/enbjou/btqMpL4aq6C/nOoIWnJRqxmGwXmf45G1m1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/enbjou/btqMpL4aq6C/nOoIWnJRqxmGwXmf45G1m1/img.png&quot; data-alt=&quot;&amp;amp;amp;lt; XYZ 좌표계 도식화 &amp;amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/enbjou/btqMpL4aq6C/nOoIWnJRqxmGwXmf45G1m1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fenbjou%2FbtqMpL4aq6C%2FnOoIWnJRqxmGwXmf45G1m1%2Fimg.png&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;284&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt; XYZ 좌표계 도식화 &amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3.1 Local Frame X,Y,Z 좌표계&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3.1.1 Local Frame X&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Local Frame X는 대상 물체가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; NED 좌표계의 North(N) 방향으로 행동함을 의미한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3.1.2 Local Frame Y&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Local Frame Y는 대상 물체가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; NED 좌표계의 East(E) 방향으로 행동함을 의미한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3.1.3 Local Frame Z&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Local Frame Z는 대상 물체가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; NED 좌표계의 Down(D) 방향으로 행동함을 의미한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3.2 Body Frame X,Y,Z 좌표계&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3.2.1 Body Frame X&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Body Frame X는 Local Frame X를 기준으로 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; 대상 물체의 Heading, Pitch를 기반하여 연산한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Heading, Pitch 값이 0일 경우, Local Frame X와 일치한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3.2.2 Body Frame Y&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Body Frame Y는 Local Frame Y를 기준으로&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; 대상 물체의 Heading, Roll을 기반하여 연산한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Heading, Roll 값이 0일 경우, Local Frame Y와 일치한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3.2.3 Body Frame Z&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Body Frame Z는 Local Frame Z를 기준으로&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; 대상 물체의 Roll, Pitch를 기반하여 연산한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Roll, Pitch 값이 0일 경우, Local Frame Z와 일치한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;4. 좌표계 간 연산&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;4.1. NED &amp;lt;-&amp;gt; ENU&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;u&gt;[NED -&amp;gt; ENU] (Local Frame 기준)&lt;br /&gt;&lt;/u&gt;+ NED.North(N) == + ENU.North(N)&lt;br /&gt;+ NED.East(E) == + ENU.East(E)&lt;br /&gt;+ NED.Down(D) == - ENU.Up(U)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ex) +N+E+D == +X+Y+Z 일 경우 / +E+N+U == +Y+X-Z&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;u&gt;[ENU -&amp;gt; NED] (Local Frame 기준)&lt;br /&gt;&lt;/u&gt;+ ENU.East(E) == + NED.East(E)&lt;br /&gt;+ ENU.North(N) == + NED.North(N)&lt;br /&gt;+ ENU.Up(U) == - NED.Down(D)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ex) +E+N+U == +Y+X+Z 일 경우 / +N+E+D == +X+Y-Z&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;4.2 Local Frame X,Y,Z &amp;lt;-&amp;gt; NED / ENU&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;u&gt;[LF X,Y,Z -&amp;gt; NED] (Local Frame 기준)&lt;br /&gt;&lt;/u&gt;+ LF.X == + NED.North(N)&lt;br /&gt;+ LF.Y == + NED.East(E)&lt;br /&gt;+ LF.Z == + NED.Down(D)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;u&gt;[LF X,Y,Z -&amp;gt; ENU] (Local Frame 기준)&lt;br /&gt;&lt;/u&gt;+ LF.X == + ENU.East(E)&lt;br /&gt;+ LF.Y == + ENU.North(N)&lt;br /&gt;+ LF.Z == - ENU.Up(U)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 참고자료 : &lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/mavlink/mavros/issues/216&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/mavlink/mavros/issues/216&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>함정장비</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/96</guid>
      <comments>https://saack.tistory.com/96#entry96comment</comments>
      <pubDate>Tue, 3 Nov 2020 17:18:27 +0900</pubDate>
    </item>
    <item>
      <title>[함정장비] 위경도 좌표계</title>
      <link>https://saack.tistory.com/95</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1. 위경도 좌표계(Geodetic Latitude / Longitude)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp; 1-1. 위도&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 위도(Latitude)&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 지구 위의 위치를 나타내는 좌표축 중에서 가로선 의미. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 위도는 적도를 기준으로 북반구는 +, 남반구는 &amp;ndash; 로 표현.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -90~+90의 범위를 가지며, 적도에서 00&amp;deg;이고 극에서는 90&amp;deg;N 또는 90&amp;deg;S 이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 북위(North Latitude)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 적도(00&amp;deg;)를 기준으로 북쪽 90&amp;deg;까지의 위도이며, 범위가 북반구와 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 남위(South Latitude)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 적도(00&amp;deg;)를 기준으로 남쪽 90&amp;deg;까지의 위도이며, 범위가 남반구와 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp; 1-2. 경도&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 경도(Longitude)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 지구 위의 위치를 나타내는 좌표축 중에서 세로선 의미. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 경도는 본초 자오선을 기준으로 동쪽은 +, 서쪽은 &amp;ndash; 로 표현.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -180~+180의 범위를 가지며,&amp;nbsp; 그리니치 천문대를 지나는 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 본초 자오선에서 00&amp;deg;이고 180&amp;deg;W 또는 180&amp;deg;E 이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 동경(East Longitude)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 그리니치 천문대를 지나는 본초자오선의 동쪽 부분의 경도.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 서경(West Longitude)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 그리니치 천문대를 지나는 본초자오선의 서쪽 부분의 경도.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lMJw9/btqMr5HmS3Y/pwTIOppi0tVzKNW3P4vk20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lMJw9/btqMr5HmS3Y/pwTIOppi0tVzKNW3P4vk20/img.png&quot; data-alt=&quot;&amp;amp;amp;lt; 위경도 좌표계 도식화 &amp;amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lMJw9/btqMr5HmS3Y/pwTIOppi0tVzKNW3P4vk20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlMJw9%2FbtqMr5HmS3Y%2FpwTIOppi0tVzKNW3P4vk20%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt; 위경도 좌표계 도식화 &amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp; 1-3. 위경도 표현(Format)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Fddd.ddddd&amp;deg; : [도] 표현법. 도단위 정수 이하를 소수로 표현하며, 소수 여섯째 자리에서 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;반올림하여 소수 다섯째 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;자리까지 표기. &lt;span style=&quot;color: #000000;&quot;&gt;d는 도(Degree)를 의미.&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;F는 북위(N), 남위(S), 동경(E), 서경(W)를 표현한 것.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;위도 0.00001&amp;deg; 차이는 1.1m 거리에 해당하며, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;경도 0.00001&amp;deg; 차이는 0.9m 거리에 해당.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ex) N050.12345&amp;deg;, E126.12345&amp;deg;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Fddd&amp;deg;mm.mmm' : [도분] 표현법. 소수점 이하에 분(')단위를 사용하며, 소수 넷째 자리에서&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;반올림하여 소수 셋째 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;자리까지 표기. &lt;span style=&quot;color: #000000;&quot;&gt;m은 분(Minute)를 의미.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1도(&amp;deg;)를 60등분하면 1분(')의 각도 획득 가능.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;F는 북위(N), 남위(S), 동경(E), 서경(W)를 표현한 것.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;위도 0.001' 차이는 1.8m 거리에 해당하며, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;경도 0.001' 차이는 1.5m 거리에 해당.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ex) N050&amp;deg;25'.123', E126&amp;deg;22.123'&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Fddd&amp;deg;mm'ss.s&quot;&amp;nbsp;: [도분초] 표현법. 소수점 이하에 초(&quot;)단위를 사용하며, 소수 둘째 자리에서&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;반올림하여 소수 첫째 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;자리까지 표기. &lt;span style=&quot;color: #000000;&quot;&gt;s는 초(Second)를 의미.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1분(')를 60등분하면 1초(&quot;)의 각도 획득 가능.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;F는 북위(N), 남위(S), 동경(E), 서경(W)를 표현한 것.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;위도 0.1&quot; 차이는 3.1m 거리에 해당하며, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;경도 0.1&quot; 차이는 2.5m 거리에 해당.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ex) N050&amp;deg;25'23.5&quot;, E126&amp;deg;22'12.5&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp; 1-4. 위경도 포맷 간 변환&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- &lt;u&gt;[도분초] -&amp;gt; [도분]&lt;/u&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1) Fddd&amp;deg;mm'ss.s&quot;(도분초)의 ss.s를 60으로 나누고, 소수 넷째자리에서 반올림하여 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 소수 셋째자리까지 표기.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2) 소수 셋째자리까지 표기한 결과를 분단위인 mm에 더함.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ex) N037&amp;deg;25'12.5&quot; : 1) 12.5&quot; / 60 = 0.2083...' -&amp;gt; 0.208'&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2) 25' + 0.208' = 25.208' -&amp;gt; N037&amp;deg;25.208'&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- &lt;u&gt;[도분] -&amp;gt; [도]&lt;/u&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1)&amp;nbsp;Fddd&amp;deg;mm.mmm'(도분)의 mm.mmm를 60으로 나누고, 소수 여섯째자리에서 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 반올림해 소수 다섯자리까지 표기.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2) 소수 다섯째자리까지 표기한 결과를 도단위인 ddd에 더함.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ex) N037&amp;deg;25.208' : 1) 25.208' / 60 = 0.420133...&amp;deg; -&amp;gt; 0.42013&amp;deg;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2) 037&amp;deg; + 0.42013&amp;deg; = 37.42013&amp;deg; -&amp;gt; N037.42013&amp;deg;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- &lt;u&gt;[도] -&amp;gt; [도분]&lt;/u&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1) Fddd.ddddd&amp;deg;(도)의 .ddddd에 60을 곱하고, 소수 넷째자리에서 반올림하여&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 소수 셋째자리까지 표기.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2) Fddd&amp;deg;mm.mmm'(도분) 포맷의 mm.mmm에 계산 결과 대입.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ex) N037.42013&amp;deg; : 1) 0.42013&amp;deg; * 60 = 25.2078' -&amp;gt; 25.208'&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2) N037&amp;deg;mm.mmm에서 25.208'를 mm.mmm'에 대입 -&amp;gt; N037&amp;deg;25.208'&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- &lt;u&gt;[도분] -&amp;gt; [도분초]&lt;/u&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1) Fddd&amp;deg;mm.mmm'(도분)의 .mmm에 60을 곱하고, 소수 둘째자리에서 반올림하여&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 소수 첫째자리까지 표기.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2) Fddd&amp;deg;mm'ss.s&quot;(도분초) 포맷의 ss.s에 계산 결과 대입.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ex) N037&amp;deg;25.208'&amp;nbsp;: 1) 0.208'&amp;nbsp;* 60 = 12.48&quot; -&amp;gt; 12.5&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2) N037&amp;deg;25'ss.s&quot;에서 12.5&quot;를 ss.s&quot;에 대입 -&amp;gt; N037&amp;deg;25'12.5&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 참고자료(도분초 계산법) : &lt;a style=&quot;color: #000000;&quot; href=&quot;https://dhshin0407.tistory.com/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;dhshin0407.tistory.com/5&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>함정장비</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/95</guid>
      <comments>https://saack.tistory.com/95#entry95comment</comments>
      <pubDate>Tue, 3 Nov 2020 12:22:01 +0900</pubDate>
    </item>
    <item>
      <title>[배치파일] IF / ELSE</title>
      <link>https://saack.tistory.com/94</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;배치파일의 IF / ELSE 사용법&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;예시 1) 환경변수 사용&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SET VAL=&quot;ABC&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IF %VAL%==&quot;ABC&quot; (&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;) ELSE (&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;예시 2) 파일존재여부&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SET FILENAME=&quot;MEDIA&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IF EXIST %FILENAME% (&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;) ELSE (&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;예시 3) 사용자 입력변수와 비교&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;사용자 입력변수는 변수입력 순서에 따라 %1~%n 으로 지정된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예시명령 : Test.bat ABC EDF&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;Test.bat 파일&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IF &quot;%1&quot;==&quot;ABC&quot; (&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IF &quot;%2&quot;==&quot;DEF&quot; (&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;예시 4) 사용자 입력변수를 대소문자 없이 비교&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대소문자 없이 비교는 /i 키워드 사용&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예시명령 : Test.bat ABC EDF&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;Test.bat 파일&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IF /i &quot;%1&quot;==&quot;ABC&quot; (&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IF /i &quot;%2&quot;==&quot;DEF&quot; (&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;참고) IF문 사용 시 IF 다음에 (를 쓸 때 &quot;띄어쓰기&quot; 꼭 하세요. 아니면 에러. 끝.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>배치파일</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/94</guid>
      <comments>https://saack.tistory.com/94#entry94comment</comments>
      <pubDate>Thu, 2 Apr 2020 22:17:32 +0900</pubDate>
    </item>
    <item>
      <title>[함정장비] AIS</title>
      <link>https://saack.tistory.com/93</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;선박 기준의 AIS 이므로 기지국 또는 여타 AIS와는 상이할 수 있음.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;AIS 란?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;AIS(Automatic Identification System)는 선박 상호간 및 선박과 육상 간에 선박의 제원, 위치, 속력, 등 항해 관련 정보를&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상호 교환함으로써 해상에서 선박의 안전 항해를 도모하기 위해 도입한 시스템.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;CLASS A / CLASS B ?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;초기 AIS는 SOTDMA 프로토콜을 사용하였으나, 해당 프로토콜에 대한 특허권 문제가 발생하여&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SOLAS(SOTDMA) 선박용 AIS인 Class-A와 Non-SOLAS(Non-SOTDMA) 선박용 AIS인 Class-B로 분리 되었음.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;현재 SOLAS(SOTDMA)를 사용하는 Class-B 선박도 보급되어져 크게 &amp;ldquo;Class A, Class B(CS), Class B(SO)&amp;rdquo;로 구분됨&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;AIS 운용 모드&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-자율 모드 : 자신의 전송 스케줄 결정(기본 동작 모드)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-할당 모드 : 관리 기지국이 전송 스케줄 할당(Msg ID 16 &amp;rdquo;Assigned Mode Command&amp;rdquo; 사용)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-심문 모드 : 선박이나 관리 기지국과 질의 응답(Msg ID 15&amp;rdquo;Polled Mode Command&amp;rdquo; 사용)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;AIS 메시지 구분 및 목록&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 정적 정보 : 선명, MMSI, IMO, Callsign, 선박 길이 등 변경이 없는 정보&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 동적 정보 : 위/경도, 속력, 방위, 회전율 등 GPS 및 Gyro 등으로 부터 자동으로 입력되는 정보&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 항해 정보 : 목적지, 도착예정시간 등 운용 시마다 운용자가 수동으로 입력하는 정보&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 안전 정보 : 항해 경고나 기상 경고 등의 안전 정보&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(동적 정보) : ID 1/2/3/18/19&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(정적 정보) : ID 5/24&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(안전 정보) : ID 12/13/14&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ss04y/btqCEOVUqQZ/HoNFQ89mbgpRll8PHhbc7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ss04y/btqCEOVUqQZ/HoNFQ89mbgpRll8PHhbc7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ss04y/btqCEOVUqQZ/HoNFQ89mbgpRll8PHhbc7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fss04y%2FbtqCEOVUqQZ%2FHoNFQ89mbgpRll8PHhbc7K%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;AIS 동적정보 자동 전송 주기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;AIS 장비는 동적 정보 송신 시, 상황에 따라 전송 주기가 상이함. 전송 주기는 아래와 같음.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0cHHf/btqCy4TU91X/bP4n5cBkMfRKZKeXDCw7E1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0cHHf/btqCy4TU91X/bP4n5cBkMfRKZKeXDCw7E1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0cHHf/btqCy4TU91X/bP4n5cBkMfRKZKeXDCw7E1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0cHHf%2FbtqCy4TU91X%2FbP4n5cBkMfRKZKeXDCw7E1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;MMSI 란?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;해상이동업무식별부호(Maritime Mobile Service Identity)의 약자이며, 선박(AIS 기기를 기준)을 식별하기 위한&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Primary Key 정도로 인식하면 됨.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ITU-M585-8(201910) 문서 기준으로&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1) Assignment of identification to ship station&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2) Assignment of identification to coast station&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3) Assignment of identification to aircraft&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;4) Assignment of identification to automatic identification systems aids to navigation&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5) Assignment of identification to craft associated with a parent ship&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로 구분된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1) Assignment of identification to ship station&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;고유 선박 국 신원을 의미한다.&amp;nbsp;9자리의 MMSI로 이루어지며,&amp;nbsp;앞의 3자리는 국적을 나타내는 MID, 뒤의 6자리는 000000~999999(총 100만 대)의 선박 번호로 이루어진다. (ex : MID000000 ~ MID999999)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;해상식별 부호인 MID(Maritime Identification Digits)는 ITU에서 지정하며, ITU 홈페이지에서 Excel 형식으로 다운로드 가능하다. (참고로 한국은 440, 441)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;MMSI 번호로 선박 분류&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(ex. 한국을 예시로)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;-440XXX000 : 끝에서부터 3자리가 000으로 끝나는 선박은 &quot;국제항해&quot; 선박 의미&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;-440XXXX00 : 끝에서부터 2자리가 00으로 끝나는 선박은 &quot;국내항해&quot; 선박 의미&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;-440XXXXX0 : 끝에서부터 1자리가 0으로 끝나는 선박은 &quot;국내통신업무 종사&quot; 선박 의미&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Call Sign(호출부호) 란?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상대국을 식별하거나 호출하기 위해 사용되는 무선국 고유의 부호(MMSI&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;호출부호의 처음 1자 또는 2자는 무선국이 속한 국가를 나타내며, 우리나라의 경우 HL, DS가 대표적임.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;호출부호는 정보통신부 산하의 체신청에서 지역별로 지정.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;(참고문헌)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;lt;AIS 메시지 등 총 정의&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.itu.int/rec/R-REC-M.1371-5-201402-I/en&quot;&gt;https://www.itu.int/rec/R-REC-M.1371-5-201402-I/en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;lt;MMSI 설명&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;a href=&quot;https://www.itu.int/rec/R-REC-M.585-8-201910-I/en&quot;&gt;https://www.itu.int/rec/R-REC-M.585-8-201910-I/en&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://m.blog.naver.com/PostView.nhn?blogId=psdrake0320&amp;amp;logNo=220581269471&amp;amp;proxyReferer=https%3A%2F%2Fwww.google.com%2F&quot;&gt;https://m.blog.naver.com/PostView.nhn?blogId=psdrake0320&amp;amp;logNo=220581269471&amp;amp;proxyReferer=https%3A%2F%2Fwww.google.com%2F&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;lt;CallSign 설명&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://www.itu.int/en/ITU-R/terrestrial/fmd/Pages/call_sign_series.aspx&quot;&gt;https://www.itu.int/en/ITU-R/terrestrial/fmd/Pages/call_sign_series.aspx&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;lt;MID 설명&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.itu.int/en/ITU-R/terrestrial/fmd/Pages/mid.aspx&quot;&gt;https://www.itu.int/en/ITU-R/terrestrial/fmd/Pages/mid.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>함정장비</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/93</guid>
      <comments>https://saack.tistory.com/93#entry93comment</comments>
      <pubDate>Tue, 10 Mar 2020 19:09:32 +0900</pubDate>
    </item>
    <item>
      <title>[함정장비] 신규 카테고리를 창설하며...</title>
      <link>https://saack.tistory.com/92</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;해당 게시판에는 함정 장비 관련한 자료들을 기재할 예정입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기재되는 자료들은 공식적인 경로로 다운로드 가능 한 것과 인터넷에서 쉽게 검색되는 정보들에 한하며,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;비공식적인 문서 또는 정보들은 기재하지 않습니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>함정장비</category>
      <author>tislqhf</author>
      <guid isPermaLink="true">https://saack.tistory.com/92</guid>
      <comments>https://saack.tistory.com/92#entry92comment</comments>
      <pubDate>Tue, 10 Mar 2020 19:08:27 +0900</pubDate>
    </item>
  </channel>
</rss>