<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>미즈에의 이것저것</title>
    <link>https://mizue-lee.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 17 May 2026 14:12:55 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>mizu</managingEditor>
    <item>
      <title>진짜 개난리 났음 에러 개판 (AWS EC2, VPC endpoint, S3)</title>
      <link>https://mizue-lee.tistory.com/78</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;사건의 개요 &lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;회사 업무의 요건 중 하나로&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;현행 S3 버켓에서 이행용 S3 버켓으로 데이터를&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;migration 해야 함&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;근데 이제 계정이 다른(크로스 어카운트)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;public internet을 경유하지 않고 vpc endpoint를 이용해서 데이터 migration을 진행&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;어제는 s3 access point를 가지고 검증하다가 이미 vpc endpoint가 있다길래 급선회&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;나는 좀,,, 저능한가? 같은 실수를 반복하니까 해결용으로 기록을 해야겠다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;281&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lifgI/btsKOmxm3iY/OCfKaaRjUo9FQwT6vhuKN1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lifgI/btsKOmxm3iY/OCfKaaRjUo9FQwT6vhuKN1/img.jpg&quot; data-alt=&quot;하하 개판이네&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lifgI/btsKOmxm3iY/OCfKaaRjUo9FQwT6vhuKN1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlifgI%2FbtsKOmxm3iY%2FOCfKaaRjUo9FQwT6vhuKN1%2Fimg.jpg&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; loading=&quot;lazy&quot; width=&quot;281&quot; height=&quot;180&quot; data-origin-width=&quot;281&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;하하 개판이네&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;무슨 일이 일어나고 있나요? &lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;b&gt;검증 환경&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;VPC 작성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 public subnet과 private subnet이 각각 하나씩 있는 vpc를 새로 작성했음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IGW와 NAT-GW도 함께 생성함&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1895&quot; data-origin-height=&quot;453&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wIIuY/btsKNvn73hN/X5BGNkLGaC1HAAyd8ZwUHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wIIuY/btsKNvn73hN/X5BGNkLGaC1HAAyd8ZwUHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wIIuY/btsKNvn73hN/X5BGNkLGaC1HAAyd8ZwUHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwIIuY%2FbtsKNvn73hN%2FX5BGNkLGaC1HAAyd8ZwUHk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1895&quot; height=&quot;453&quot; data-origin-width=&quot;1895&quot; data-origin-height=&quot;453&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;S3 버켓 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;S3는 원래 검증용으로 쓰던 테스트 버켓이 있어서 해당 버켓을 사용하기로 했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 버켓은 퍼블릭 접근을 모두 차단하는 버켓이고, security rule 준수를 위해 접근 가능한 ip 제한이 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;VPC 엔드포인트 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VPC 엔드포인트를 새로 생성함&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ofuOA/btsKMZJDRkV/jbSkFitEMZkBGQnB5vMZfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ofuOA/btsKMZJDRkV/jbSkFitEMZkBGQnB5vMZfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ofuOA/btsKMZJDRkV/jbSkFitEMZkBGQnB5vMZfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FofuOA%2FbtsKMZJDRkV%2FjbSkFitEMZkBGQnB5vMZfK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;655&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;/figure&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;AWS 서비스 연결 유형, 서비스는 S3, Gateway 방식으로 생성함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;찾아보니까 interface 유형은 public internet 경유라고 해서 gateway 유형으로 선택했음&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;routing table은 private subnet에 연결된 테이블을 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정책은 default로 모든 resource에 접근할 수 있게 되어있는데, 프로젝트 security rule 상 다른 버켓에 접근할 수 있는 것은 ng이므로 접근 제어를 위해 사용자 지정 정책을 설정했다&lt;/p&gt;
&lt;pre id=&quot;code_1731994719168&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
	&quot;Version&quot;: &quot;2008-10-17&quot;,
	&quot;Statement&quot;: [
		{
			&quot;Sid&quot;: &quot;Allow-access-to-specific-bucket&quot;,
			&quot;Effect&quot;: &quot;Allow&quot;,
			&quot;Principal&quot;: &quot;*&quot;,
			&quot;Action&quot;: [
				&quot;s3:ListBucket&quot;,
				&quot;s3:GetObject&quot;,
				&quot;s3:PutObject&quot;
			],
			&quot;Resource&quot;: [
				&quot;arn:aws:s3:::{target-bucket-name}&quot;,
				&quot;arn:aws:s3:::{target-bucket-name}/*&quot;
			]
		}
	]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 허용할 버켓, 허용할 액션을 최소한으로 allow 하는 정책을 작성.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;S3 버켓 폴리시 작성(수정)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1731994998150&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;Version&quot;: &quot;2012-10-17&quot;,
    &quot;Id&quot;: &quot;Policy2024082702&quot;,
    &quot;Statement&quot;: [
        {
            &quot;Sid&quot;: &quot;AllowAccessToSpecificIpOrUser&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Principal&quot;: &quot;*&quot;,
            &quot;Action&quot;: [
                &quot;s3:Put*&quot;,
                &quot;s3:Get*&quot;,
                &quot;s3:List*&quot;
            ],
            &quot;Resource&quot;: &quot;arn:aws:s3:::{target-bucket-name}/*&quot;,
            &quot;Condition&quot;: {
                &quot;StringEqualsIfExists&quot;: {
                    &quot;aws:SourceVpce&quot;: &quot;vpce-{vpceId}&quot;
                },
                &quot;IpAddress&quot;: {
                    &quot;aws:SourceIp&quot;: &quot;source-IP&quot;
                },
                &quot;ArnEquals&quot;: {
                    &quot;aws:PrincipalArn&quot;: &quot;arn:aws:iam::{accountId}:user/{userId}&quot;
                }
            }
        },
        {
            &quot;Sid&quot;: &quot;AllowConsoleAccess&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Principal&quot;: {
                &quot;AWS&quot;: &quot;arn:aws:iam::{accountId}:root&quot;
            },
            &quot;Action&quot;: &quot;s3:*&quot;,
            &quot;Resource&quot;: &quot;arn:aws:s3:::{target-bucket-name}/*&quot;,
            &quot;Condition&quot;: {
                &quot;StringEquals&quot;: {
                    &quot;aws:RequestedRegion&quot;: &quot;{target-bucket-region}&quot;
                },
                &quot;StringLike&quot;: {
                    &quot;aws:UserAgent&quot;: &quot;*AWSManagementConsole*&quot;
                }
            }
        }
    ]
}&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 ip제한/유저 제한만 두고 있었는데 vpc endpoint를 통한 접근도 추가로 허용해야 하기 때문에 vpce만 추가하기 쉬운데, 그렇게 되면 콘솔을 통한 접근을 할 수 없게 되어버린다(내가 루트 계정인데도!!!!)&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;그렇기 때문에 콘솔을 통한 접근을 추가로 허용해주는 statement도 붙여주어야 하는데 여기서 또 충돌이 한 번 일어났다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 작성했던 두번째 statement는 다음과 같았다&lt;/p&gt;
&lt;pre id=&quot;code_1731995169572&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;Sid&quot;: &quot;AllowConsoleAccess&quot;,
    &quot;Effect&quot;: &quot;Allow&quot;,
    &quot;Principal&quot;: &quot;*&quot;,
    &quot;Action&quot;: &quot;s3:*&quot;,
    &quot;Resource&quot;: &quot;arn:aws:s3:::{target-bucket-name}/*&quot;,
    &quot;Condition&quot;: {
        &quot;StringEquals&quot;: {
            &quot;aws:RequestedRegion&quot;: &quot;{target-bucket-region}&quot;
        },
        &quot;StringLike&quot;: {
            &quot;aws:UserAgent&quot;: &quot;*AWSManagementConsole*&quot;
        }
    }
}&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;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;User: arn:aws:iam::{accountId}:root is not authorized to perform: s3:PutBucketPolicy on resource: &quot;arn:aws:s3:::{target-bucket-name}&quot; because public policies are blocked by the BlockPublicPolicy block public access setting.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이유를 찾아보니, S3 버켓은 퍼블릭 접근을 모두 불허하고 있는데, 두번째 statement의 principal이 &quot;*&quot;로 설정되어서 충돌을 일으켰기 때문이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 이 계정에서는 모두가 콘솔을 통해 접근할 수 있도록 principal을 accountId 단위로 수정했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;EC2 인스턴스 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스는 public subnet에 bastion 서버, private subnet에 검증용 서버를 각각 한 대씩 실행했음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잠깐 검증만하고 닫을거니까 인스턴스 유형이나 ami는 따로 설정하지 않았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;872&quot; data-origin-height=&quot;119&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ddhVL9/btsKNwN9c0F/jRuaTXYsUtvSXWIXbPA3r0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ddhVL9/btsKNwN9c0F/jRuaTXYsUtvSXWIXbPA3r0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ddhVL9/btsKNwN9c0F/jRuaTXYsUtvSXWIXbPA3r0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FddhVL9%2FbtsKNwN9c0F%2FjRuaTXYsUtvSXWIXbPA3r0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;872&quot; height=&quot;119&quot; data-origin-width=&quot;872&quot; data-origin-height=&quot;119&quot;/&gt;&lt;/span&gt;&lt;/figure&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;세큐리티 그룹은 default를 붙였는데 ssh로 접근할 예정이기 때문에 22포트만 열어주는 것으로 수정했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;검증 시작&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;눈물의 ssh 접근... 여기서부터 무한의 에러계단을 뚜벅뚜벅 걸어오르게 되는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;흩날려라 천본앵이 아니고 무한의 에러 &lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;배스천 서버에 프라이빗 서버 접속용 공개키 파일 전송하기&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 배스천 서버에 프라이빗 서버 접근용 공개키를 옮겨놔야 했는데 여기서도 에러와 함께 하게 되었다 제발 멈춰&lt;/p&gt;
&lt;pre id=&quot;code_1731997252441&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt;scp -i key.pem key.pem ec2-user@{bastion-server-ip}:/etc
scp: dest open &quot;/etc/key.pem&quot;: Permission denied
scp: failed to upload file key.pem to /etc&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 에러는 target directory의 접근 권한 불일치 때문에 발생했음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;루트 디렉토리 바로 아래에 있는 etc 디렉토리에 옮기려고 했던게 문제였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 순순히 /home/ec2-user 아래에 key라는 디렉토리를 하나 작성하고 거기에 옮겼음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1731997543413&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#bastion 서버에서 ec2-user 유저로 접속하여 실행
&amp;gt;mkdir /home/ec2-user/key

#로컬 서버에서 실행
#scp -i[옵션] [ssh접속을 위한 키 경로] [원본 파일 경로] [접속할 유저이름]@[접속처 ip]:[파일을 보관할 경로]
&amp;gt;scp -i key.pem key.pem ec2-user@{bation-server-ip}:/home/ec2-user/key

#bastion 서버에서 파일이 잘 전송되었는지 확인
[ec2-user@{ip} /]$ ll /home/ec2-user/key
total 4
-rw-r--r--. 1 ec2-user ec2-user 1674 Nov 19 03:40 EC2-Tutorial.pem&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인해보니 잘 복사되었기 때문에 프라이빗 서버에 접속을 시도했다(에러 제발 멈춰!!!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1731997929865&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[ec2-user@ip key]$ ssh -i key.pem ec2-user@{private-server-ip}
The authenticity of host '{private-server-ip} ({private-server-ip})' can't be established.
ED25519 key fingerprint is SHA256:FuycXU6oc0nfxCC+GeXFmNh55anwT+ScLAjd4K+SHlA.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '{private-server-ip}' (ED25519) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for 'key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key &quot;key.pem&quot;: bad permissions
ec2-user@{private-server-ip}: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에도 역시 권한 때문에 막혔다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 too open 되어있기 때문에 막혔는데, 이것이 서버 접속용 인증키인데 권한이 644로 설정되어 있기 때문에 발생한 오류였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 600으로 권한을 변경해주고 접속을 시도함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1731998314325&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[ec2-user@ip /]$ chmod 600 /home/ec2-user/key/key.pem
[ec2-user@ip /]$ ll /home/ec2-user/key/key.pem
-rw-------. 1 ec2-user ec2-user 1674 Nov 19 03:40 /home/ec2-user/key/key.pem

[ec2-user@ip key]$ ssh -i key.pem ec2-user@{private-server-ip}
   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '-&amp;gt;
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;눈물의 몇번째인지 기억도 안 나는 트라이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;이제 s3 버켓 소통 확인을 위해 간단하게 ls 커맨드를 실행했고,,,&lt;/p&gt;
&lt;pre id=&quot;code_1731998588460&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[ec2-user@ip ~]$ aws s3 ls s3://{target-bucket-name}
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: User: arn:aws:sts::{accountId}:assumed-role/ec2-ssm-role/i-03f35e9bb5ce2e301 is not authorized to perform: s3:ListBucket on resource: &quot;arn:aws:s3:::{{target-bucket-name}}&quot; because no VPC endpoint policy allows the s3:ListBucket action&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래 이럴 줄 알았다 이제 놀랍지도 않아 한번에 되면 뭔가 이상한거겠지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에러를 잘 살펴보니 이번에도 권한 문제였음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜인지 기억이 안나지만 프라이빗 서버에 ssm용 iam 역할을 부착해놨는데, 내가 초기에 작성한 vpc 엔드포인트 폴리시에는 접속할 수 있는 사람을 제어하기 위해 userId를 조건으로 걸어놨었기 때문에 이 두개가 충돌하여 에러가 발동했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 vpc 엔드포인트 정책에서 누구나 가능하도록 principal 부분을 &quot;*&quot;로 수정하고 다시 시도했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1731999029333&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#target-bucket의 list
[ec2-user@ip ~]$ aws s3 ls s3://{target-bucket-name}
2024-11-18 08:24:35     753790 비자.pdf
2024-11-18 08:24:35     111067 재직증명서.pdf
2024-11-18 08:24:36      14914 재직증명서_한글.docx
2024-11-18 08:24:35      88473 재직증명서_한글.pdf

#target-bucket으로 등록하지 않은 bucket list 시도. deny되어야 함
[ec2-user@ip ~]$ aws s3 ls s3://{non-target-bucket-name}

An error occurred (AccessDenied) when calling the ListObjectsV2 operation: User: arn:aws:sts::{accountId}:assumed-role/ec2-ssm-role/i-03f35e9bb5ce2e301 is not authorized to perform: s3:ListBucket on resource: &quot;arn:aws:s3:::{non-target-bucket-name}&quot; because no VPC endpoint policy allows the s3:ListBucket action&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 무사히 된 것 같아요.. 호호호,,, 다행이에요...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머리가 나쁘면 손발이 고생한다. 절실히 느꼈따&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 몸이 좋으면 머리를 덜 써도 되잖어 &lt;/p&gt;</description>
      <category>머리굴리기/자습</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>linux</category>
      <category>S3</category>
      <category>VPC</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/78</guid>
      <comments>https://mizue-lee.tistory.com/78#entry78comment</comments>
      <pubDate>Tue, 19 Nov 2024 15:57:49 +0900</pubDate>
    </item>
    <item>
      <title>이제서야 작성하는 SCIT 국비 학원 후기</title>
      <link>https://mizue-lee.tistory.com/77</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;2023년도에 난 뭘 했나???&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적인 결심으로 무역협회에서 진행하는 일본 취직 웹 프로그래밍 국비학원에 다니기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일본어랑 프로그래밍 수업을 둘 다 하는 국비인데 일본 기업 취업박람회랑 연계가 되어있다고 해서 신청했음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;정말 너무 많은 일이 있었어...&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유니티 학원 다닐때는 안그랬던 것 같은데 이 학원은 무려 면접?? 이라는 것을 봐야 했음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;면접관??은 3명정도였고 지원자는 5명이였는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;수업시간은 9시부터 6시까지인데 8시 30분까지 교실에 도착해서 출석체크를 하고 오전에는 일본어 수업. 식사 1시간 자습 1시간 오후에 프로그래밍 수업을 진행하고 6시 이후에는 자율적으로 10시까지 자습을 하는 방식이였다. 주말 공휴일은 원하면 나와서 자습할 수 있었음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 집에서 다녔는데 길바닥에 버리는 시간이 너무 아까운 것도 있어서 중간에는 쉐어하우스로 옮겼다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 아침에 헬스장 가서 유산소 30분 뛰고 샤워하고 8시에 학원 도착해서 일찍 와 있는 아침식사 동기들(朝会 동기들)이랑 아침밥 먹으면서 수다를 떨고는 했고 저녁에는 정보처리기사를 같이 보는 동기들이랑 10시까지 스터디를 진행했음. 역시 가까운 곳에 사는게 짱인것 같음.&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;일본어는 실력에 따라서 고급 중급 초급으로 나누고 IT는 한 교실에서 다같이 수업을 듣는데 웹은 처음이다보니까 이 수업의 진도가 빠른지 느린지 모르겠었음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비전공자의 비율이 좀 높은 편이였는데 아예 처음 접하는 사람들은 빠르다고 느낀 것 같았음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 이 시기에 정보처리기사 시허을 같이 준비했는데 솔직히 미리 따뒀어야 했다고 생각했다 맙소사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비자요건이니 뭐니(나중에 가서는 성적 가산점 때문에) 다니는동안 정처산기 이상, JLPT N2이상을 취득해야 하는데 나는 JLPT를 학교 졸업요건 때문에 미리 따뒀어서 망정이지 둘 다 하는 사람들은 정신 나갔을 것 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 학원 수업도 따라가야 하는데 중간중간 계속해서 발생하는 시험과 몰아치는 과제가 사람들을 두배로 괴롭혔을 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 다행히도 일본어는 할 줄 알아서 적당히 스루했고 프로그래밍도 웹은 처음이지만 게임 프로그래밍을 배웠었던 탓에 어느정도 스루 할 수 있었는데 아닌 사람들은 토햇을 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3DTBn/btsKhPlr71R/hi9q9hC87h5w8KkOejpUT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3DTBn/btsKhPlr71R/hi9q9hC87h5w8KkOejpUT1/img.png&quot; data-alt=&quot;이 와중에 정신 못차리고 캐리비안베이 가겠다고 줄은 섬ㅋㅋ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3DTBn/btsKhPlr71R/hi9q9hC87h5w8KkOejpUT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3DTBn%2FbtsKhPlr71R%2Fhi9q9hC87h5w8KkOejpUT1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;606&quot; height=&quot;416&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이 와중에 정신 못차리고 캐리비안베이 가겠다고 줄은 섬ㅋㅋ&lt;/figcaption&gt;
&lt;/figure&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;솔직히 이렇게 뭐 하나가 끝나지도 않았는데 다른거 같이 하라고 하는거 좋지 못하다고 생각함. 적어도 이력서 작성은 팀플 끝나고 하게 해주세요 사람들이 미쳐가잖아.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리 기수의 경우에는 1차 2차로 나뉘었는데 몇몇 회사를 제외하고는 전부 웹 면접으로 진행되었고, 1차에서 합격한 사람은 2차를 참여할 수 없다고 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기간도 그렇게 길지는 않았지만 그 짧은 기간동안 아주 분위기가 살벌하고 기분이 한시간단위로 오락가락하는게 아주 끝내주는 기간이었음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다행히 나는 굉장히 빠르게 1지망 회사에서 내정을 받아서 빠르게 취업활동이 끝난 케이스였다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 여기서 환장과 대환장의 신입 생활을 하게 되는데 그것은 투 비 컨티뉴드.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 자세한 내용이 궁금하시면 댓글 혹은 귓말,,, 혹은 /찌르기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이제 뭘 할거냐?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;밀렸던 기술 블로그(라고 하면서 그냥 알아본 내용을 메모하는 수준인) 작성을 계속하지 않을까??&lt;/p&gt;</description>
      <category>학원 수업/웹</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/77</guid>
      <comments>https://mizue-lee.tistory.com/77#entry77comment</comments>
      <pubDate>Wed, 30 Oct 2024 18:32:54 +0900</pubDate>
    </item>
    <item>
      <title>회고 : 개인 프로젝트 하늘 나무</title>
      <link>https://mizue-lee.tistory.com/74</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;어쩌다 이렇게 되었는가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 내 개인프로젝트였던 하늘 나무는, 기출시 게임인 무한의 계단에서 모티브를 얻어서, 거기에 몬스터가 등장하는 방식으로 바리에이션을 얹어서 만들어 보려고 했었다. 몬스터가 나타나는 성을 올라가는 방식으로 해서 이름도 원래는 무한의 성 이었었고... 아 이 게임 무한의 계단에서 모티브를 얻었구나? 라는 느낌이 나는게 목표였었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bN0TH0/btrKdQe14h4/KkSV9USFKdAlqofbPEnVD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bN0TH0/btrKdQe14h4/KkSV9USFKdAlqofbPEnVD1/img.png&quot; data-alt=&quot;무한의 성ㅋㅋ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bN0TH0/btrKdQe14h4/KkSV9USFKdAlqofbPEnVD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN0TH0%2FbtrKdQe14h4%2FKkSV9USFKdAlqofbPEnVD1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;258&quot; height=&quot;57&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;무한의 성ㅋㅋ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;우리 이름 바꿔요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인 프로젝트에 아이디어를 준 건 (당시) 기획을 배우고 있었던 같은 학원 같은 반 황 모 님인데..(이후 황님) 에셋을 알아봐 주시다가 나무 에셋을 찾아주시고 이름을 바꾸자고 하셨다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;괜찮아보이는 탑 스프라이트 에셋이 없었던 것과 나무 스트라이트 에셋이 있어서 쏠랑 이름을 바꿨다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;254&quot; data-origin-height=&quot;50&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLRvwp/btrKbr8qR0d/YrER22EublFWXT81P74nW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLRvwp/btrKbr8qR0d/YrER22EublFWXT81P74nW0/img.png&quot; data-alt=&quot;이름도 바뀐 내 프로젝트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLRvwp/btrKbr8qR0d/YrER22EublFWXT81P74nW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLRvwp%2FbtrKbr8qR0d%2FYrER22EublFWXT81P74nW0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;254&quot; height=&quot;50&quot; data-origin-width=&quot;254&quot; data-origin-height=&quot;50&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이름도 바뀐 내 프로젝트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;게임 UI 정하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 기능구현은 어느정도 됐는데 그럼 UI와 이미지 등등을 골라야 할텐데.. 나에겐 소질이 없었다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 하얀 화면에 로고만 떡하니 박아놓는 방식으로 하기로 했다. 새하얀 배경은 눈이 아프니까 약간 회색을 넣어서&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;583&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/onWnZ/btrKkTBy9dX/2LGuRc4MZMKAWiyRUxCpx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/onWnZ/btrKkTBy9dX/2LGuRc4MZMKAWiyRUxCpx0/img.png&quot; data-alt=&quot;이렇게 구성된 메인 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/onWnZ/btrKkTBy9dX/2LGuRc4MZMKAWiyRUxCpx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FonWnZ%2FbtrKkTBy9dX%2F2LGuRc4MZMKAWiyRUxCpx0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;293&quot; height=&quot;583&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;583&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이렇게 구성된 메인 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;앱 빌드는 마쳤는데 진짜 출시해요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빌드도 성공적으로 하고(앱 빌드는 오랜만이라 좀 해멨는데 폭풍 구글링을 통해서 어떻게든 했다) 공기계로 테스트 플레이를 하면서 디버깅을 하던 어느날 황님이 디스코드로 급하게 연락을 했다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;머라구.png&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blHmkW/btrKgtqD598/4ooJdKYPw4M3Uedu4Rq2P0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blHmkW/btrKgtqD598/4ooJdKYPw4M3Uedu4Rq2P0/img.png&quot; data-alt=&quot;머라구?!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blHmkW/btrKgtqD598/4ooJdKYPw4M3Uedu4Rq2P0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblHmkW%2FbtrKgtqD598%2F4ooJdKYPw4M3Uedu4Rq2P0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;300&quot; data-filename=&quot;머라구.png&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;머라구?!&lt;/figcaption&gt;
&lt;/figure&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무슨 일인고 하니, 애드온을 붙이는 것 까지는 했는데 빌드에서 에러가 나서 밤새 시도해봤는데도 영 해결이 안된다는 것이다. Gradle 에러가 뜬다고 했다. 나도 깃허브 링크를 받아서 프로젝트 클론으로 빌드를 시도해봤고 그 결과는...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;필사의 구글링.png&quot; data-origin-width=&quot;657&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUIyxk/btrKi8sOtcO/Htpr3p41ZUuzlMkRHh9VUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUIyxk/btrKi8sOtcO/Htpr3p41ZUuzlMkRHh9VUK/img.png&quot; data-alt=&quot;필사의 구글링. 살려줘..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUIyxk/btrKi8sOtcO/Htpr3p41ZUuzlMkRHh9VUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUIyxk%2FbtrKi8sOtcO%2FHtpr3p41ZUuzlMkRHh9VUK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;657&quot; height=&quot;171&quot; data-filename=&quot;필사의 구글링.png&quot; data-origin-width=&quot;657&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;필사의 구글링. 살려줘..&lt;/figcaption&gt;
&lt;/figure&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;/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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 몰랐지. 여기가 제일 귀찮을 줄은..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;작업 너무 귀찮아요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론만 놓고 말하자면, 프로덕션은 현재 검토중이다. 일요일에 검토를 올려놔서 그렇겠지..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;처음 플레이 콘솔에 들어가면 개발자 계정을 만들어야 하는데, 이 과정에서 25달러가 필요했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자란 25달러와 기도 메타구나 (물론 농담ㅎ)&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;/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; 처리 방침(이건 외부 링크가 필요했는데, 개인정보 처리 방침 만들기 사이트에서 만들고 html을 다운받아 블로그에 게시했다. 나는 어떤 개인정보도 수집하지 않을거라 임의로만 하고 올렸다.) 등등등을 거치고 나면 마지막 관문으로 &lt;span&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-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1896&quot; data-origin-height=&quot;918&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xrYcm/btrKeuDlRaS/Ur2TLUzj3kOxIjU7xYVhI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xrYcm/btrKeuDlRaS/Ur2TLUzj3kOxIjU7xYVhI0/img.png&quot; data-alt=&quot;긴 여정이었다. 진심으로.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xrYcm/btrKeuDlRaS/Ur2TLUzj3kOxIjU7xYVhI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxrYcm%2FbtrKeuDlRaS%2FUr2TLUzj3kOxIjU7xYVhI0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1896&quot; height=&quot;918&quot; data-origin-width=&quot;1896&quot; data-origin-height=&quot;918&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;긴 여정이었다. 진심으로.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;앞으로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 아직 구글 애드온을 붙이지 않아서 문제없이 빌드를 할 수 있었던 것 같은데, 광고를 붙여서 빌드하는 것도 한번쯤은 경험치를 쌓고 싶어서 해야할 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;팝업광고 붙이는거나 앱 업데이트를 할 때 이것저것 설정 변경을 해야할 게 많던데 이 부분이 걱정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 할 수 있겠지?&lt;/p&gt;</description>
      <category>프로젝트/하늘 나무</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/74</guid>
      <comments>https://mizue-lee.tistory.com/74#entry74comment</comments>
      <pubDate>Mon, 22 Aug 2022 15:30:11 +0900</pubDate>
    </item>
    <item>
      <title>[하늘 나무] 개인정보 처리 방침</title>
      <link>https://mizue-lee.tistory.com/73</link>
      <description>    
    

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;ko&quot; lang=&quot;ko&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;


&lt;title&gt;개인정보처리방침&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;p&gt; &lt;p class=&quot;ls2 lh6 bs5 ts4&quot;&gt;&lt;em class=&quot;emphasis&quot;&gt;&lt; Mizue company &gt;('https://mizue-lee.tistory.com/'이하 '미즈에의 일상잡다')&lt;/em&gt;은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다.&lt;/p&gt;&lt;p class=&quot;ls2&quot;&gt;○ 이 개인정보처리방침은 &lt;em class=&quot;emphasis&quot;&gt;2022&lt;/em&gt;년 &lt;em class=&quot;emphasis&quot;&gt;9&lt;/em&gt;월 &lt;em class=&quot;emphasis&quot;&gt;21&lt;/em&gt;부터 적용됩니다.&lt;/p&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제1조(개인정보의 처리 목적)&lt;br/&gt;&lt;br/&gt;&lt;em class=&quot;emphasis&quot;&gt;&lt; Mizue company &gt;('https://mizue-lee.tistory.com/'이하  '미즈에의 일상잡다')&lt;/em&gt;은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot;list_indent2 mgt10&quot;&gt;&lt;p class=&quot;ls2&quot;&gt;1. 재화 또는 서비스 제공&lt;/p&gt;&lt;p class=&quot;ls2&quot;&gt;서비스 제공, 콘텐츠 제공을 목적으로 개인정보를 처리합니다.&lt;/p&gt;&lt;/br&gt;&lt;p class=&quot;ls2&quot;&gt;2. 마케팅 및 광고에의 활용&lt;/p&gt;&lt;p class=&quot;ls2&quot;&gt;인구통계학적 특성에 따른 서비스 제공 및 광고 게재 , 접속빈도 파악 또는 회원의 서비스 이용에 대한 통계 등을 목적으로 개인정보를 처리합니다.&lt;/p&gt;&lt;/br&gt;&lt;/ul&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제2조(개인정보의 처리 및 보유 기간)&lt;/strong&gt;&lt;/br&gt;&lt;/br&gt;① &lt;em class=&quot;emphasis&quot;&gt;&lt; Mizue company &gt;&lt;/em&gt;은(는) 법령에 따른 개인정보 보유·이용기간 또는 정보주체로부터 개인정보를 수집 시에 동의받은 개인정보 보유·이용기간 내에서 개인정보를 처리·보유합니다.&lt;/br&gt;&lt;/br&gt;② 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다.&lt;/p&gt;&lt;ul class='list_indent2 mgt10'&gt;&lt;li class='tt'&gt;1.&lt;재화 또는 서비스 제공&gt;&lt;/li&gt;&lt;li class='tt'&gt;&lt;재화 또는 서비스 제공&gt;와 관련한 개인정보는 수집.이용에 관한 동의일로부터&lt;6개월&gt;까지 위 이용목적을 위하여 보유.이용됩니다.&lt;/li&gt;&lt;li&gt;보유근거 : 표시/광고에 관한 기록&lt;/li&gt;&lt;li&gt;관련법령 : 표시/광고에 관한 기록 : 6개월&lt;/li&gt;&lt;li&gt;예외사유 : &lt;/li&gt;&lt;/ul&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제3조(처리하는 개인정보의 항목) &lt;/strong&gt;&lt;/br&gt;&lt;/br&gt; ① &lt;em class=&quot;emphasis&quot;&gt;&lt; Mizue company &gt;&lt;/em&gt;은(는) 다음의 개인정보 항목을 처리하고 있습니다.&lt;/p&gt;&lt;ul class='list_indent2 mgt10'&gt;&lt;li class='tt'&gt;1&lt; 재화 또는 서비스 제공 &gt;&lt;/li&gt;&lt;li&gt;필수항목 : 로그인ID, 성별, 생년월일, 서비스 이용 기록, 접속 로그, 쿠키, 접속 IP 정보, 결제기록&lt;/li&gt;&lt;li&gt;선택항목 : &lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;p class=&quot;lh6 bs4&quot;&gt;&lt;strong&gt;제4조(만 14세 미만 아동의 개인정보 처리에 관한 사항)&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;ls2&quot;&gt;&lt;br/&gt;&lt;br/&gt;① &lt;개인정보처리자명&gt;은(는) 만 14세 미만 아동에 대해 개인정보를 수집할 때 법정대리인의 동의를 얻어 해당 서비스 수행에 필요한 최소한의 개인정보를 수집합니다.&lt;/p&gt;&lt;p class='sub_p'&gt;• 필수항목 : 법정 대리인의 성명, 관계, 연락처&lt;/p&gt;&lt;p class='sub_p'&gt;② 또한, &lt;개인정보처리자명&gt;의 &lt;처리목적&gt; 관련 홍보를 위해 아동의 개인정보를 수집할 경우에는 법정대리인으로부터 별도의 동의를 얻습니다.&lt;/p&gt;&lt;p class='sub_p'&gt;③ &lt;개인정보처리자명&gt;은(는) 만 1 4세 미만 아동의 개인정보를 수집할 때에는 아동에게 법정대리인의 성명, 연락처와 같이 최소한의 정보를 요구할 수 있으며, 다음 중 하나의 방법으로 적법한 법정대리인이 동의하였는지를 확인합니다.&lt;/p&gt;&lt;p class='sub_p'&gt;• 동의 내용을 게재한 인터넷 사이트에 법정대리인이 동의 여부를 표시하도록 하고 개인정보처리자가 그 동의 표시를 확인했음을 법정대리인의 휴대전화 문자 메시지로 알리는 방법&lt;/p&gt;&lt;p class='sub_p'&gt;• 동의 내용을 게재한 인터넷 사이트에 법정대리인이 동의 여부를 표시하도록 하고 법정대리인의 신용카드·직불카드 등의 카드정보를 제공받는 방법&lt;/p&gt;&lt;p class='sub_p'&gt;• 동의 내용을 게재한 인터넷 사이트에 법정대리인이 동의 여부를 표시하도록 하고 법정대리인의 휴대전화 본인인증 등을 통해 본인 여부를 확인하는 방법&lt;/p&gt;&lt;p class='sub_p'&gt;• 동의 내용이 적힌 서면을 법정대리인에게 직접 발급하거나, 우편 또는 팩스를 통하여 전달하고 법정대리인이 동의 내용에 대하여 서명날인 후 제출하도록 하는 방법&lt;/p&gt;&lt;p class='sub_p'&gt;• 동의 내용이 적힌 전자우편을 발송하여 법정대리인으로부터 동의의 의사표시가 적힌 전자우편을 전송받는 방법&lt;/p&gt;&lt;p class='sub_p'&gt;• 전화를 통하여 동의 내용을 법정대리인에게 알리고 동의를 얻거나 인터넷주소 등 동의 내용을 확인할 수 있는 방법을 안내하고 재차 전화 통화를 통하여 동의를 얻는 방법&lt;/p&gt;&lt;p class='sub_p'&gt;• 그 밖에 위와 준하는 방법으로 법정대리인에게 동의 내용을 알리고 동의의 의사표시를 확인하는 방법&lt;/p&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제5조(개인정보의 제3자 제공에 관한 사항)&lt;/strong&gt;&lt;/br&gt;&lt;/br&gt; ① &lt;em class=&quot;emphasis&quot;&gt;&lt; Mizue company &gt;은(는) 개인정보를 제1조(개인정보의 처리 목적)에서 명시한 범위 내에서만 처리하며, 정보주체의 동의, 법률의 특별한 규정 등 「개인정보 보호법」 제17조 및 제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.&lt;/p&gt;&lt;p class=&quot;sub_p mgt10&quot;&gt;②  &lt;span class=&quot;colorLightBlue&quot;&gt;&lt; Mizue company &gt;&lt;/span&gt;은(는) 다음과 같이 개인정보를 제3자에게 제공하고 있습니다.&lt;/p&gt;&lt;ul class=&quot;list_indent2 mgt10&quot;&gt;&lt;li class=&quot;tt&quot;&gt;1. &lt;  &gt;&lt;/li&gt;&lt;li&gt;개인정보를 제공받는 자 : &lt;/li&gt;&lt;li&gt;제공받는 자의 개인정보 이용목적 : &lt;/li&gt;&lt;li&gt;제공받는 자의 보유.이용기간: &lt;/li&gt;&lt;/ul&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제6조(개인정보처리의 위탁에 관한 사항)&lt;/strong&gt;&lt;/br&gt;&lt;/br&gt; ① &lt;em class=&quot;emphasis&quot;&gt;&lt; Mizue company &gt;&lt;/em&gt;은(는) 원활한 개인정보 업무처리를 위하여 다음과 같이 개인정보 처리업무를 위탁하고 있습니다.&lt;/p&gt;&lt;ul class='list_indent2 mgt10'&gt;&lt;li class='tt'&gt;1. &lt;  &gt;&lt;/li&gt;&lt;li&gt;위탁받는 자 (수탁자) : &lt;/li&gt;&lt;li&gt;위탁하는 업무의 내용 : &lt;/li&gt;&lt;li&gt;위탁기간 : &lt;/li&gt;&lt;/ul&gt;&lt;p class='sub_p mgt10'&gt;②  &lt;span class='colorLightBlue'&gt;&lt; Mizue company &gt;&lt;/span&gt;은(는) 위탁계약 체결시 「개인정보 보호법」 제26조에 따라 위탁업무 수행목적 외 개인정보 처리금지, 기술적․관리적 보호조치, 재위탁 제한, 수탁자에 대한 관리․감독, 손해배상 등 책임에 관한 사항을 계약서 등 문서에 명시하고, 수탁자가 개인정보를 안전하게 처리하는지를 감독하고 있습니다.&lt;/p&gt;&lt;p class='sub_p mgt10'&gt;③ 위탁업무의 내용이나 수탁자가 변경될 경우에는 지체없이 본 개인정보 처리방침을 통하여 공개하도록 하겠습니다.&lt;/p&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제7조(개인정보의 파기절차 및 파기방법)&lt;em class=&quot;emphasis&quot;&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class='ls2'&gt;&lt;/br&gt;① &lt; Mizue company &gt; 은(는) 개인정보 보유기간의 경과, 처리목적 달성 등 개인정보가 불필요하게 되었을 때에는 지체없이 해당 개인정보를 파기합니다.&lt;/br&gt;&lt;/br&gt;② 정보주체로부터 동의받은 개인정보 보유기간이 경과하거나 처리목적이 달성되었음에도 불구하고 다른 법령에 따라 개인정보를 계속 보존하여야 하는 경우에는, 해당 개인정보를 별도의 데이터베이스(DB)로 옮기거나 보관장소를 달리하여 보존합니다.&lt;/br&gt;1. 법령 근거 :&lt;/br&gt;2. 보존하는 개인정보 항목 : 계좌정보, 거래날짜&lt;/br&gt;&lt;/br&gt;③ 개인정보 파기의 절차 및 방법은 다음과 같습니다.&lt;/br&gt;1. 파기절차&lt;/br&gt; &lt; Mizue company &gt; 은(는) 파기 사유가 발생한 개인정보를 선정하고, &lt; Mizue company &gt; 의 개인정보 보호책임자의 승인을 받아 개인정보를 파기합니다.&lt;/br&gt;&lt;/p&gt;&lt;p class='sub_p mgt10'&gt;2. 파기방법&lt;/p&gt;&lt;p class='sub_p'&gt;전자적 파일 형태의 정보는 기록을 재생할 수 없는 기술적 방법을 사용합니다&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p class=&quot;lh6 bs4&quot;&gt;&lt;strong&gt;제8조(미이용자의 개인정보 파기 등에 관한 조치)&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;ls2&quot;&gt;&lt;br/&gt;&lt;br/&gt;① &lt;개인정보처리자명&gt;은(는) 1년간 서비스를 이용하지 않은 이용자의 정보를 파기하고 있습니다. 다만, 다른 법령에서 정한 보존기간이 경과할 때까지 다른 이용자의 개인정보와 분리하여 별도로 저장·관리할 수 있습니다.&lt;/br&gt;② &lt;개인정보처리자명&gt;은(는) 개인정보의 파기 30일 전까지 개인정보가 파기되는 사실, 기간 만료일 및 파기되는 개인정보의 항목을 이메일, 문자 등 이용자에게 통지 가능한 방법으로 알리고 있습니다.&lt;/br&gt;③ 개인정보의 파기를 원하지 않으시는 경우, 기간 만료 전 서비스 로그인을 하시면 됩니다.&lt;br/&gt;&lt;br/&gt;&lt;p class=&quot;lh6 bs4&quot;&gt;&lt;strong&gt;제9조(정보주체와 법정대리인의 권리·의무 및 그 행사방법에 관한 사항)&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;ls2&quot;&gt;&lt;br/&gt;&lt;br/&gt;① 정보주체는 Mizue company에 대해 언제든지 개인정보 열람·정정·삭제·처리정지 요구 등의 권리를 행사할 수 있습니다.&lt;/p&gt;&lt;p class='sub_p'&gt;② 제1항에 따른 권리 행사는Mizue company에 대해 「개인정보 보호법」 시행령 제41조제1항에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 Mizue company은(는) 이에 대해 지체 없이 조치하겠습니다.&lt;/p&gt;&lt;p class='sub_p'&gt;③ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다.이 경우 “개인정보 처리 방법에 관한 고시(제2020-7호)” 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.&lt;/p&gt;&lt;p class='sub_p'&gt;④ 개인정보 열람 및 처리정지 요구는  「개인정보 보호법」  제35조 제4항, 제37조 제2항에 의하여 정보주체의 권리가 제한 될 수 있습니다.&lt;/p&gt;&lt;p class='sub_p'&gt;⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에서 그 개인정보가 수집 대상으로 명시되어 있는 경우에는 그 삭제를 요구할 수 없습니다.&lt;/p&gt;&lt;p class='sub_p'&gt;⑥ Mizue company은(는) 정보주체 권리에 따른 열람의 요구, 정정·삭제의 요구, 처리정지의 요구 시 열람 등 요구를 한 자가 본인이거나 정당한 대리인인지를 확인합니다.&lt;/p&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제10조(개인정보의 안전성 확보조치에 관한 사항)&lt;em class=&quot;emphasis&quot;&gt;&lt;/br&gt;&lt;/br&gt;&lt; Mizue company &gt;&lt;/em&gt;은(는) 개인정보의 안전성 확보를 위해 다음과 같은 조치를 취하고 있습니다.&lt;/strong&gt;&lt;/p&gt;&lt;p class='sub_p mgt10'&gt;1. 내부관리계획의 수립 및 시행&lt;/br&gt; 개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.&lt;/br&gt;&lt;/br&gt;2. 개인정보의 암호화&lt;/br&gt; 이용자의 개인정보는 비밀번호는 암호화 되어 저장 및 관리되고 있어, 본인만이 알 수 있으며 중요한 데이터는 파일 및 전송 데이터를 암호화 하거나 파일 잠금 기능을 사용하는 등의 별도 보안기능을 사용하고 있습니다.&lt;/br&gt;&lt;/br&gt;3. 접속기록의 보관 및 위변조 방지&lt;/br&gt; 개인정보처리시스템에 접속한 기록을 최소 1년 이상 보관, 관리하고 있으며,다만, 5만명 이상의 정보주체에 관하여 개인정보를 추가하거나, 고유식별정보 또는 민감정보를 처리하는 경우에는 2년이상 보관, 관리하고 있습니다.&lt;br/&gt;또한, 접속기록이 위변조 및 도난, 분실되지 않도록 보안기능을 사용하고 있습니다.&lt;/br&gt;&lt;/br&gt;4. 개인정보에 대한 접근 제한&lt;/br&gt; 개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.&lt;/br&gt;&lt;/br&gt;5. 비인가자에 대한 출입 통제&lt;/br&gt; 개인정보를 보관하고 있는 물리적 보관 장소를 별도로 두고 이에 대해 출입통제 절차를 수립, 운영하고 있습니다.&lt;/br&gt;&lt;/br&gt;&lt;/p&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class=&quot;lh6 bs4&quot;&gt;&lt;strong&gt;제11조(개인정보를 자동으로 수집하는 장치의 설치·운영 및 그 거부에 관한 사항)&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;ls2&quot;&gt;&lt;br/&gt;&lt;br/&gt;Mizue company 은(는) 정보주체의 이용정보를 저장하고 수시로 불러오는 ‘쿠키(cookie)’를 사용하지 않습니다.&lt;br/&gt;&lt;br/&gt;&lt;p class=&quot;lh6 bs4&quot;&gt;&lt;strong&gt;제12조(행태정보의 수집·이용·제공 및 거부 등에 관한 사항)&lt;/strong&gt;&lt;/p&gt;&lt;p class=&quot;ls2&quot;&gt;&lt;br/&gt;&lt;br/&gt;행태정보의 수집·이용·제공 및 거부등에 관한 사항&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;개인정보처리자명&gt;은(는) 온라인 맞춤형 광고 등을 위한 행태정보를 수집·이용·제공하지 않습니다.&lt;/p&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제13조(추가적인 이용·제공 판단기준)&lt;em class=&quot;emphasis&quot;&gt;&lt;/strong&gt;&lt;/br&gt;&lt;/br&gt;&lt; Mizue company &gt; 은(는) ｢개인정보 보호법｣ 제15조제3항 및 제17조제4항에 따라 ｢개인정보 보호법 시행령｣ 제14조의2에 따른 사항을 고려하여 정보주체의 동의 없이 개인정보를 추가적으로 이용·제공할 수 있습니다.&lt;br&gt; 이에 따라 &lt; Mizue company &gt; 가(이) 정보주체의 동의 없이 추가적인 이용·제공을 하기 위해서 다음과 같은 사항을 고려하였습니다.&lt;/br&gt;▶ 개인정보를 추가적으로 이용·제공하려는 목적이 당초 수집 목적과 관련성이 있는지 여부&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;▶ 개인정보를 수집한 정황 또는 처리 관행에 비추어 볼 때 추가적인 이용·제공에 대한 예측 가능성이 있는지 여부&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;▶ 개인정보의 추가적인 이용·제공이 정보주체의 이익을 부당하게 침해하는지 여부&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;▶ 가명처리 또는 암호화 등 안전성 확보에 필요한 조치를 하였는지 여부&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;※ 추가적인 이용·제공 시 고려사항에 대한 판단기준은 사업자/단체 스스로 자율적으로 판단하여 작성·공개함&lt;/p&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제14조(가명정보를 처리하는 경우 가명정보 처리에 관한 사항)&lt;em class=&quot;emphasis&quot;&gt;&lt;/br&gt;&lt;/br&gt;&lt; Mizue company &gt; 은(는) 다음과 같은 목적으로 가명정보를 처리하고 있습니다.&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;▶ 가명정보의 처리 목적&lt;/p&gt;&lt;p class='sub_p'&gt;- 직접작성 가능합니다. &lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;▶ 가명정보의 처리 및 보유기간&lt;/p&gt;&lt;p class='sub_p'&gt;- 직접작성 가능합니다. &lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;▶ 가명정보의 제3자 제공에 관한 사항(해당되는 경우에만 작성)&lt;/p&gt;&lt;p class='sub_p'&gt;- 직접작성 가능합니다. &lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;▶ 가명정보 처리의 위탁에 관한 사항(해당되는 경우에만 작성)&lt;/p&gt;&lt;p class='sub_p'&gt;- 직접작성 가능합니다. &lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;▶ 가명처리하는 개인정보의 항목&lt;/p&gt;&lt;p class='sub_p'&gt;- 직접작성 가능합니다. &lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;▶ 법 제28조의4(가명정보에 대한 안전조치 의무 등)에 따른 가명정보의 안전성 확보조치에 관한 사항&lt;/p&gt;&lt;p class='sub_p'&gt;- 직접작성 가능합니다. &lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p mgt30'&gt;&lt;strong&gt;제15조 (개인정보 보호책임자에 관한 사항) &lt;/strong&gt;&lt;/p&gt;&lt;p class='sub_p mgt10'&gt; ①  &lt;span class='colorLightBlue'&gt;Mizue company&lt;/span&gt; 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.&lt;/p&gt;&lt;ul class='list_indent2 mgt10'&gt;&lt;li class='tt'&gt;▶ 개인정보 보호책임자 &lt;/li&gt;&lt;li&gt;성명 :이경서&lt;/li&gt;&lt;li&gt;직책 :개인&lt;/li&gt;&lt;li&gt;직급 :개인&lt;/li&gt;&lt;li&gt;연락처 :없음, kyugnseolee0815@gmail.com, 없음&lt;/li&gt;&lt;/ul&gt;&lt;p class='sub_p'&gt;※ 개인정보 보호 담당부서로 연결됩니다.&lt;p/&gt; &lt;ul class='list_indent2 mgt10'&gt;&lt;li class='tt'&gt;▶ 개인정보 보호 담당부서&lt;/li&gt;&lt;li&gt;부서명 :&lt;/li&gt;&lt;li&gt;담당자 :이경서&lt;/li&gt;&lt;li&gt;연락처 :, kyugnseolee0815@gmail.com, &lt;/li&gt;&lt;/ul&gt;&lt;p class='sub_p'&gt;② 정보주체께서는 Mizue company 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. Mizue company 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.&lt;/p&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제16조(국내대리인의 지정)&lt;em class=&quot;emphasis&quot;&gt;&lt;/br&gt;&lt;/br&gt;정보주체는 ｢개인정보 보호법｣ 제39조의11에 따라 지정된 &lt; Mizue company &gt;의 국내대리인에게 개인정보 관련 고충처리 등의 업무를 위하여 연락을 취할 수 있습니다. &lt; Mizue company &gt;은(는) 정보주체의 개인정보 관련 고충처리 등 개인정보 보호책임자의 업무 등을 신속하게 처리할 수 있도록 노력하겠습니다. &lt;br/&gt;&lt;br/&gt;▶ &lt; Mizue company &gt; 은(는) ｢개인정보 보호법｣ 제39조의11에 따라 국내대리인을 지정하였습니다.&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;    - 국내대리인의 성명 : [대리인 성명_직접입력]  (법인의 경우 법인명, 대표자의 성명)&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;    - 국내대리인의 주소 : [대리인 주소_직접입력]  (법인의 경우 영업소 소재지)&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;    - 국내대리인의 전화번호 : [대리인 전화번호_직접입력]&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;    - 국내대리인의 전자우편 주소 : [대리인 전자우편_직접입력]&lt;/p&gt;&lt;p class='sub_p mgt30'&gt;&lt;strong&gt;제17조(개인정보의 열람청구를 접수·처리하는 부서)&lt;/br&gt; 정보주체는 ｢개인정보 보호법｣ 제35조에 따른 개인정보의 열람 청구를 아래의 부서에 할 수 있습니다.&lt;br/&gt;&lt; Mizue company &gt;&lt;/span&gt;은(는) 정보주체의 개인정보 열람청구가 신속하게 처리되도록 노력하겠습니다. &lt;/strong&gt;&lt;/p&gt;&lt;ul class='list_indent2 mgt10'&gt;&lt;li class='tt'&gt;▶ 개인정보 열람청구 접수·처리 부서 &lt;/li&gt;&lt;li&gt;부서명 : &lt;/li&gt;&lt;li&gt;담당자 : 이경서&lt;/li&gt;&lt;li&gt;연락처 : , kyugnseolee0815@gmail.com, &lt;/li&gt;&lt;/ul&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제18조(정보주체의 권익침해에 대한 구제방법)&lt;em class=&quot;emphasis&quot;&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;정보주체는 개인정보침해로 인한 구제를 받기 위하여 개인정보분쟁조정위원회, 한국인터넷진흥원 개인정보침해신고센터 등에 분쟁해결이나 상담 등을 신청할 수 있습니다. 이 밖에 기타 개인정보침해의 신고, 상담에 대하여는 아래의 기관에 문의하시기 바랍니다.&lt;br/&gt;&lt;br/&gt;



  1. 개인정보분쟁조정위원회 : (국번없이) 1833-6972 (www.kopico.go.kr)&lt;br/&gt;

  2. 개인정보침해신고센터 : (국번없이) 118 (privacy.kisa.or.kr)&lt;br/&gt;

  3. 대검찰청 : (국번없이) 1301 (www.spo.go.kr)&lt;br/&gt;

  4. 경찰청 : (국번없이) 182 (ecrm.cyber.go.kr)&lt;br/&gt;&lt;br/&gt;



「개인정보보호법」제35조(개인정보의 열람), 제36조(개인정보의 정정·삭제), 제37조(개인정보의 처리정지 등)의 규정에 의한 요구에 대 하여 공공기관의 장이 행한 처분 또는 부작위로 인하여 권리 또는 이익의 침해를 받은 자는 행정심판법이 정하는 바에 따라 행정심판을 청구할 수 있습니다.&lt;br/&gt;&lt;br/&gt;



※ 행정심판에 대해 자세한 사항은 중앙행정심판위원회(www.simpan.go.kr) 홈페이지를 참고하시기 바랍니다.&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제19조(영상정보처리기기 운영·관리에 관한 사항)&lt;/br&gt;①  &lt;em class='emphasis'&gt;&lt; Mizue company &gt;&lt;/em&gt;은(는) 아래와 같이 영상정보처리기기를 설치·운영하고 있습니다.&lt;/strong&gt;&lt;/p&gt;&lt;p class='sub_p mgt30'&gt;1.영상정보처리기기 설치근거·목적 : &lt;span class='colorLightBlue'&gt;&lt; Mizue company &gt;&lt;/span&gt;의 &lt;/p&gt;&lt;ul class='list_indent2 mgt10'&gt;&lt;li class='tt'&gt;2.설치 대수, 설치 위치, 촬영 범위 :&lt;/li&gt;&lt;li&gt;설치대수 :  대&lt;/li&gt;&lt;li&gt;설치위치 : &lt;/li&gt;&lt;li&gt;촬영범위 : &lt;/li&gt;&lt;/ul&gt;&lt;p class='sub_p mgt10'&gt;3.관리책임자, 담당부서 및 영상정보에 대한 접근권한자 : &lt;/p&gt;&lt;ul class='list_indent2 mgt10'&gt;&lt;li class='tt'&gt;4.영상정보 촬영시간, 보관기간, 보관장소, 처리방법 &lt;/li&gt;&lt;li&gt;촬영시간 :  시간&lt;/li&gt;&lt;li&gt;보관기간 : 촬영시부터 &lt;/li&gt;&lt;li&gt;보관장소 및 처리방법 : &lt;/li&gt;&lt;/ul&gt;&lt;p class='sub_p mgt10'&gt;5.영상정보 확인 방법 및 장소 : &lt;/p&gt;&lt;p class='sub_p mgt10'&gt;6.정보주체의 영상정보 열람 등 요구에 대한 조치 : 개인영상정보 열람.존재확인 청구서로 신청하여야 하며, 정보주체 자신이 촬영된 경우 또는 명백히 정보주체의 생명.신체.재산 이익을 위해 필요한 경우에 한해 열람을 허용함&lt;/p&gt;&lt;p class='sub_p mgt10'&gt;7.영상정보 보호를 위한 기술적.관리적.물리적 조치 : &lt;/p&gt;&lt;/br&gt;&lt;/br&gt;&lt;p class='lh6 bs4'&gt;&lt;strong&gt;제20조(개인정보 처리방침 변경)&lt;em class=&quot;emphasis&quot;&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;① 이 개인정보처리방침은 2022년 9월 21부터 적용됩니다.&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;② 이전의 개인정보 처리방침은 아래에서 확인하실 수 있습니다. &lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;예시 ) - 20XX. X. X ~ 20XX. X. X 적용   (클릭) &lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;예시 ) - 20XX. X. X ~ 20XX. X. X 적용   (클릭) &lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;&lt;/p&gt;&lt;p class='sub_p'&gt;예시 ) - 20XX. X. X ~ 20XX. X. X 적용   (클릭)&lt;/p&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bcdHUb/btrKbsrdGbk/2VfAUkdktdaGLERFkBMzF1/%ED%95%98%EB%8A%98%2B%EB%82%98%EB%AC%B4.html?attach=1&amp;amp;knm=tfile.html&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;하늘+나무.html&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.02MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로젝트/하늘 나무</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/73</guid>
      <comments>https://mizue-lee.tistory.com/73#entry73comment</comments>
      <pubDate>Sun, 21 Aug 2022 12:10:10 +0900</pubDate>
    </item>
    <item>
      <title>C# 유니티 강의 듣는 중</title>
      <link>https://mizue-lee.tistory.com/72</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;미로찾기_우수법.gif&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;399&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbgmaQ/btrJ3vuCHsE/l2xKR9Jn6WGdTS7VaUUhg1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbgmaQ/btrJ3vuCHsE/l2xKR9Jn6WGdTS7VaUUhg1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbgmaQ/btrJ3vuCHsE/l2xKR9Jn6WGdTS7VaUUhg1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/cbgmaQ/btrJ3vuCHsE/l2xKR9Jn6WGdTS7VaUUhg1/img.gif&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; loading=&quot;lazy&quot; width=&quot;404&quot; height=&quot;399&quot; data-filename=&quot;미로찾기_우수법.gif&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;399&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미로 찾기(우수법) 으로 움직이게 했는데 되게 재밌음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미로 랜덤생성도 신기함&lt;/p&gt;</description>
      <category>머리굴리기/자습</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/72</guid>
      <comments>https://mizue-lee.tistory.com/72#entry72comment</comments>
      <pubDate>Fri, 19 Aug 2022 00:09:54 +0900</pubDate>
    </item>
    <item>
      <title>[13강] 인터페이스</title>
      <link>https://mizue-lee.tistory.com/71</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;목차&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;의미와 역할&lt;br /&gt;특징&lt;br /&gt;형식&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;의미와 역할&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 접점, 접속하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;특징&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 인터페이스는 구현 없이 형식만 포함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 다중 상속이 가능하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 상속으로만 사용하고 생성은 불가능하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이벤트, 인덱서, 메서드, 속성을 포함(멤버 변수는 포함할 수 없다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기본 권한은 public이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;형식&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관례적으로 대문자 I를 인터페이스명에 붙임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;interface I인터페이스명&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;/p&gt;
&lt;pre id=&quot;code_1660317815436&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Practice
{
    static void Main(string[] args)
    {
        Test081302 test = new Test081302();
        test.Print();
    }
}

interface ITest081301
{
    void Print();
}

class Test081302 : ITest081301
{
    public void Print()
    {
        Console.WriteLine(&quot;Hello World!&quot;);
    }
}&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;/p&gt;
&lt;pre id=&quot;code_1660317951253&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Practice
{
    static void Main(string[] args)
    {
        Test081303 test = new Test081303();
        test.PrintA();
        test.PrintB();
    }
}

interface ITest081301
{
    void PrintA();
}

interface ITest081302
{
    void PrintB();
}

class Test081303 : ITest081301, ITest081302
{
    public void PrintA()
    {
        Console.WriteLine(&quot;Hello World!&quot;);
    }

    public void PrintB()
    {
        Console.WriteLine(&quot;Hello C#!&quot;);
    }
}&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/C#</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/71</guid>
      <comments>https://mizue-lee.tistory.com/71#entry71comment</comments>
      <pubDate>Sat, 13 Aug 2022 00:26:00 +0900</pubDate>
    </item>
    <item>
      <title>[12강] 상속</title>
      <link>https://mizue-lee.tistory.com/70</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;목차&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;의미&lt;br /&gt;형식&lt;br /&gt;상속 관계에서 생성자와 소멸자 호출&lt;br /&gt;base, sealed&lt;br /&gt;override와 overload에 대해서&lt;br /&gt;추상 클래스&lt;br /&gt;다형성&lt;br /&gt;박싱과 언박싱&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;상속&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체 지향적 프로그래밍의 꽃&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많은 양의 코드를 줄이고, 다 구현하지 않아도 되는 효과를 얻을 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;상속의 대상?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 클래스&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;상속의 목적?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 클래스의 재사용 -&amp;gt; 코드 양 줄이기&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;상속 클래스의 역할&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 부모 클래스 : 상속을 하는 클래스(base class, parent class, 상위 클래스)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 자식 클래스 : 상속을 받는 클래스(child class, derived class, 파생 클래스)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;의미&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뒤를 잇다.(서로 상相 이을 속屬)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 하나의 클래스가 있고, 또 다른 하나의 클래스를 만들어야 할 때, 이미 이 클래스에 만들어져 있는 것에 무엇인가를 추가하고 싶으나, 기존의 클래스를 훼손하고 싶지 않다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 기존 클래스를 부모로 두고 상속받아 필요한 것을 추가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;형식&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;상속 관계 표시 및 형식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Parent class&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;uarr;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Child class&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;class A { ... }&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class B : A { ... }&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;상속 접근 제한&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;상위 클래스 접근 제한&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class A&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;{&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; private&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; protected&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; public&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class B : A {}&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; B에서 접근할 수 있는 것 : protected, public&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; Main과 같은 외부에서 접근할 수 있는 것 : public&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상속 관계에서 생성자와 소멸자 호출&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;생성자 호출 순서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상위 클래스 생성자 호출 -&amp;gt; 하위 클래스 생성자 호출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상위 클래스가 먼저 생성되고 하위 클래스가 생성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;소멸자 호출 순서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하위 클래스 소멸자 호출 -&amp;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;/p&gt;
&lt;pre id=&quot;code_1660312041822&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Practice
{
    static void Main(string[] args)
    {
        Test081204 test = new Test081204();
    }
}

class Test081203
{
    public Test081203()
    {
        Console.WriteLine(&quot;Test081203 생성자&quot;);
    }

    ~Test081203()
    {
        Console.WriteLine(&quot;Test081203 소멸자&quot;);
    }
}

class Test081204 : Test081203
{
    public Test081204()
    {
        Console.WriteLine(&quot;Test081204 생성자&quot;);
    }

    ~Test081204()
    {
        Console.WriteLine(&quot;Test081204 소멸자&quot;);
    }
}&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;예시 코드 실행시 Console 출력&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Test081203 생성자 &lt;br /&gt;Test081204 생성자 &lt;br /&gt;Test081204 소멸자 &lt;br /&gt;Test081203 소멸자&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;base, sealed&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상속과 관련된 base 키워드&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&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;&amp;nbsp; 상위 클래스의 행성자 또는 멤버 변수 및 메서드 호출&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&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;&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상속과 관련된 sealed 키워드&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;sealed의 의미&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;size18&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;&amp;nbsp; 상속 불가에 대한 명시(멤버 변수, 메서드)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;sealed 사용 형식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;type 1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sealed class A { ... }&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;type 2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class A { sealed public void Print() }&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class B : A { }&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;override와 overload&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;override : 무시하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;C#에서의 override의 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 상위 메서드에 이미 구현되어 있는 내용을 무시하고 하위에서 재정의 하는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;override의 대상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 클래스 메서드 &amp;gt; 속성, 인덱서, 이벤트&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;override 사용 형식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 상위 클래스에서는 virtual 명시&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 하위 클래스에는 override 명시&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;overload : 과적하다. 과부하&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;overload의 역할&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 하나의 메서드명에 다양한 매개변수를 적용&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;장점&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 하나의 메서드로 다양한 값을 대입할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;형식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 메서드명만 동일하며, 매개변수는 임의로 적용할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;추상 클래스&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;상속의 개념, override의 개념이 있어야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;상위 클래스와 하위 클래스의 관계를 이야기 하며 어떤 식으로 구현할 것이고, 무시할 것인가?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&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;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;추상&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;뽑을 추抽, 코끼리 상象&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;abstract : 추상적인, 관념적인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;의미&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; 구현하려는 메서드의 형태만 존재하는 클래스&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;역할&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; 추상 클래스는 구현 형태만 제공, 실제 구현은 하위에서 구현&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;제한 사항&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; 추상 클래스는 상속으로만 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&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: #333333;&quot;&gt;&amp;nbsp; abstract가 있는 상위 메서드만 하위에서 모두 구현&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;용도&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; 제공되는 형식으로 메서들를 구성해야 하는 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; (팀을 이루어서 구현을 해야 할 경우. 구조가 단일화 되고 메서드가 동일해야 하는 경우)&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: #333333;&quot;&gt;예시 코드&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1660315476771&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Practice
{
    static void Main(string[] args)
    {
        Test081210 test = new Test081210();
        test.Print();
        test.PrintNumber();
    }
}

abstract class Test081209
{
    private int number = 3;
    public abstract void Print();

    public void PrintNumber()
    {
        Console.WriteLine(number);
    }
}

class Test081210 : Test081209
{
    public override void Print()
    {
        Console.WriteLine(&quot;abstract class&quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다형성 Polymorphism&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적 형태 : 상위에서 하위 호출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class A { public virtual void Print()&amp;nbsp; { ... } }&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class B : A { public override void Print() { ... } }&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;A test = new B();&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Test.Print();&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;B의 객채가 생성되어 있는데 A 클래스의 참조 변수로 해당 객체에 접근하겠다는 의미.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 참조 객체로 Print 메서드를 호출하면 B 클래스의 Print를 호출한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; override를 하여 상위 객체가 무시되었기 때문&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;다른 형태 : 일반적 형태 + cast형을 이용한 하위 참조 호출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시 코드&lt;/p&gt;
&lt;pre id=&quot;code_1660316147180&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Practice
{
    static void Main(string[] args)
    {
        Test081211 test1 = new Test081212();
        test1.Print();
        
        // cast형을 이용한 참조
        Test081212 test2 = new Test081212();
        Test081211 test3 = (Test081211) test2;
        test3.Print();
    }
}

class Test081211
{
    public virtual void Print()
    {
        Console.WriteLine(&quot;Test081211&quot;);
    }
}

class Test081212 : Test081211
{
    public override void Print()
    {
        Console.WriteLine(&quot;Test081212&quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;console에는 둘 다 하위클래스의 Print가 호출된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;박싱과 언박싱&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;박싱&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; 값 형식을 object형 변환&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; (int, double, float, 구조체...)&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;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언박싱&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; object형을 다시 값 형식으로 변환&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; cast를 사용하여 형을 명시&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;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;형식&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; int a = 7;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; object obj = a;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; int result = (int)obj;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; * 구조체도 값 형식이므로 박싱과 언박싱이 됨&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;/p&gt;
&lt;pre id=&quot;code_1660316882276&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Practice
{
    static void Main(string[] args)
    {
        int num = 3;
        object obj = num;
        int result = (int) obj;
        Console.WriteLine($&quot;{num} {result}&quot;);

        TestData test = new TestData(&quot;test&quot;, 3);
        object obj1 = test;
        TestData test1 = (TestData) obj1;
        Console.WriteLine($&quot;{test1.name} {test.number}&quot;);
    }
}

struct TestData
{
    public string name;
    public int number;

    public TestData(string name, int number)
    {
        this.name = name;
        this.number = number;
    }
}&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;클래스는 상속 관계에 있으므로 참조 변환이 된다.(Upcasting, Downcasting)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 박싱과 언박싱과 구별&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시 코드&lt;/p&gt;
&lt;pre id=&quot;code_1660317220952&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Practice
{
    static void Main(string[] args)
    {
        Test081214 test1 = new Test081214();
        //object obj = test1;
        //Test081213 test2 = (Test081213) obj;
        Test081213 test2 = test1;
        test1.PrintA();
        test1.PrintB();
        test2.PrintA();
    }
}

class Test081213
{
    public void PrintA()
    {
        Console.WriteLine(&quot;Hello&quot;);
    }
}

class Test081214 : Test081213
{
    public void PrintB()
    {
        Console.WriteLine(&quot;World&quot;);
    }
}&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/C#</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/70</guid>
      <comments>https://mizue-lee.tistory.com/70#entry70comment</comments>
      <pubDate>Sat, 13 Aug 2022 00:13:53 +0900</pubDate>
    </item>
    <item>
      <title>[오늘의 책] 조지 오웰, 동물농장</title>
      <link>https://mizue-lee.tistory.com/69</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&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;인문학이란 현대 사회에서는 많은 돈을 벌게 해 주지는 않으나, 사람이 &quot;인간&quot; 답게 살기 위한 가장 기본적인 교양이 아닐까.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;오늘의 책_20220721.jpg&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;1440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sDzgC/btrHSK2XryL/75CYDKxDBkAPUMlv9DW9Hk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sDzgC/btrHSK2XryL/75CYDKxDBkAPUMlv9DW9Hk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sDzgC/btrHSK2XryL/75CYDKxDBkAPUMlv9DW9Hk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsDzgC%2FbtrHSK2XryL%2F75CYDKxDBkAPUMlv9DW9Hk%2Fimg.jpg&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; loading=&quot;lazy&quot; width=&quot;862&quot; height=&quot;1440&quot; data-filename=&quot;오늘의 책_20220721.jpg&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/figure&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;/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;이 책에 제일 먼저 손이 간 이유는 &quot;인간&quot;과 &quot;인문학적 소양&quot;이라는 단어 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어릴 때 이 책을 읽으면서 가장 충격을 받았던 단어는 &quot;Human-being&quot;이라는 단어였다. 동물농장의 동물들이 인간을 지칭할 때 사용하는 단어인데, &quot;종족으로서의 인간&quot;을 가리키는 말이다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인간이 인간으로서 살아가기 위해서는 무엇이 필요한가(흔히 말하는 사람은 무엇으로 사는가. 같은 제목을 가진 책이 20년은 넘은 지금까지도 깊게 박혀 있는 것도 이 이유 때문일지도 모른다),&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;/p&gt;</description>
      <category>머리굴리기/인문학적 소양</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/69</guid>
      <comments>https://mizue-lee.tistory.com/69#entry69comment</comments>
      <pubDate>Thu, 21 Jul 2022 23:06:02 +0900</pubDate>
    </item>
    <item>
      <title>학원수업 : 게임 웹 프로그래밍 복습</title>
      <link>https://mizue-lee.tistory.com/68</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;배운 것들&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;웹&lt;br /&gt;C#&lt;br /&gt;유니티 네트워크&lt;br /&gt;위협과 공격&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;웹&lt;/h4&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; - HTTP 요청을 받아들이고 HTML 문서와 같은 웹페이지를 반환하는 컴퓨터 프로그램이나 컴퓨터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 기본적인 기능 : HTTP처리, 데이터 로깅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 추가적인 기능 : 인증, HTTPS, 콘텐츠 압축, 대역폭 스로틀링 등&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; HTML(Hypertext Markup Language)&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;&amp;nbsp; - 웹 콘텐츠의 의미와 구조를 정의할 때 사용한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 태그를 사용해 HTML 각 요소를 구분. &amp;lt;&amp;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;&amp;nbsp; - 웹 서버에서 이동하며 쌍방향으로 통신하고 HTML 문서나 파일을 출력하는 GUI 기반의 소프트웨어&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;&amp;nbsp; - 접속자의 디스플레이 해상도에 맞춰 크기를 자동으로 변&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;C#&lt;/h4&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;&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;&amp;nbsp; System.Net.Http&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - HTTP용 응용 프로그램의 프로그래밍 인터페이스를 제공하는 네임 스페이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - HttpClient : HTTP를 통한 리퀘스트를 요청하고 받는 클래스. 세션 역할을 한다.&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; System.Text.Json&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - JSon을 사용하는 응용 프로그램의 프로그래밍 인터페이스를 제공하는 네임 스페이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - JSonSerialize : C#객체와 JSon 문자열을 서로 변경하는 기능을 제공하는 클래스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - JSonDocument : JSON 문자열을 일부만 사용하기 위해 JSON Document Object Model로 사용할 수 있게 해 주는 클래스&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; System.Security.Cryptography&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; - 암호화 : AES, DES, RSA 등&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 해시 : HDS, SHA1, SHA256 등&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;유니티 네트워크&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; UNet&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; - UnityWebRequest&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; Netcode&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 지원 최소 사양 : Unity 2020.3 이상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 지원 플랫폼 : Windows, MacOS, Linux, iOS, Android&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; &amp;nbsp; - NetworkManager : 유니티에서 모든 네트워킹 관련 성정, 네트워크용 프리팸 진정, 씬에 핸들링도 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - EnableSceneManagement를 통해 네트워크에서 씬을 관리할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - NetworkSceneManager : 네트워크에서 씬을 관리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - NetworkObject : 네트워크를 통해 오브젝트를 리플리케이트 시키기 위한 컴포넌트. Spawn을 통해 생성 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - NetworkTranform : 네트워크를 통해 tranform을 실시간으로 동기화 시키고 싶을 떄 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - NetworkAnimator : 네트워크를 통해 애니메이션을 동기화 시키고 싶을 때 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;위협과 공격&lt;/h4&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;&amp;nbsp; - Zero day attack(제로 데이 공격) : 소프트웨어의 취약점이 공개되기 전에 해당 취약점을 공격하는 위협&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;&amp;nbsp; - 위협에 의해 손실이 발생하게 되는 자신의 약점&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - Buffer Overflow(버퍼 오버플로우) : 프로세스가 데이터를 버퍼에 저장할 때 데이터가 버퍼의 영역 바깥부분까지 저장하여 각종 문제의 근간이 되는 취약점&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;&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;&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;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; XSS(크로스 사이트 스크립팅)&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; SQL Injection(SQL 인젝션)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 코드 인젝션 공격 기법 중 하나로, ID와 비밀번호를 입력하는 란에 모든 조건을 참으로 만드는 SQL 쿼리문을 넣어 권한을 탈취하는 공격 방식&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; Two-factor authentication(두 요소 인증)&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;&amp;nbsp; One Time Password(OTP, 일회용 비밀번호)&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;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>학원 수업/게임 프로그래밍</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/68</guid>
      <comments>https://mizue-lee.tistory.com/68#entry68comment</comments>
      <pubDate>Thu, 7 Jul 2022 00:48:12 +0900</pubDate>
    </item>
    <item>
      <title>개인 프로젝트 중간점검</title>
      <link>https://mizue-lee.tistory.com/67</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;구현 목록&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기획 끌어내기&lt;/li&gt;
&lt;li&gt;플레이어 조작&lt;/li&gt;
&lt;li&gt;이동 구현&lt;/li&gt;
&lt;li&gt;카메라 조작&lt;/li&gt;
&lt;li&gt;계단 자동생성&lt;/li&gt;
&lt;li&gt;몬스터 구현&lt;/li&gt;
&lt;li&gt;공격 구현&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 아이템 구현중...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;중간점검 근황&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;갠플.gif&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;460&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xQVEz/btrFGmcqr5h/a7NqP77AFu43SnbfZOpEh1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xQVEz/btrFGmcqr5h/a7NqP77AFu43SnbfZOpEh1/img.gif&quot; data-alt=&quot;공격할 때 이펙트를 좀 더 넣어야할 것 같다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xQVEz/btrFGmcqr5h/a7NqP77AFu43SnbfZOpEh1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/xQVEz/btrFGmcqr5h/a7NqP77AFu43SnbfZOpEh1/img.gif&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; loading=&quot;lazy&quot; width=&quot;294&quot; height=&quot;460&quot; data-filename=&quot;갠플.gif&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;460&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;공격할 때 이펙트를 좀 더 넣어야할 것 같다&lt;/figcaption&gt;
&lt;/figure&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;</description>
      <category>머리굴리기/자습</category>
      <author>mizu</author>
      <guid isPermaLink="true">https://mizue-lee.tistory.com/67</guid>
      <comments>https://mizue-lee.tistory.com/67#entry67comment</comments>
      <pubDate>Mon, 27 Jun 2022 01:27:48 +0900</pubDate>
    </item>
  </channel>
</rss>