<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>연두's 개발 일기 </title>
    <link>https://yeondusdevlog.tistory.com/</link>
    <description>yeondusdevlog 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Wed, 15 Jul 2026 02:49:25 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>|연두|</managingEditor>
    <item>
      <title>벡터의 내적, 외적 연습문제</title>
      <link>https://yeondusdevlog.tistory.com/11</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;게임을 만들다 보면 수학 개념이 많이 쓰인다는 것을 알 수 있다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;적의 시야처리, 빛 계산, 투사체 발사 등...&lt;br /&gt;&lt;br /&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;요즘은 GPT가 연습문제도 잘 만들어주고, 풀이도 잘 해주는 것 같지만 풀어보고 벡터 개념을 이해하는 데 도움이 되어서 아카이빙 겸 공유한다.&amp;nbsp;&lt;/p&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/ZPGJY/dJMcaglPqxk/QNJhZfW03ZVKpzAeEkMqqK/%EC%9C%A0%EB%8B%88%ED%8B%B0_%EB%B2%A1%ED%84%B0_%EC%97%B0%EC%8A%B5%EB%AC%B8%EC%A0%9C.pdf?attach=1&amp;amp;knm=tfile.pdf&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;유니티_벡터_연습문제.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.04MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/onna3/dJMcac4N6eV/j82ctZgI6t8TtqQ2T93fN1/%EC%9C%A0%EB%8B%88%ED%8B%B0_%EB%B2%A1%ED%84%B0_%EC%97%B0%EC%8A%B5%EB%AC%B8%EC%A0%9C_2%ED%9A%8C%EC%B0%A8.pdf?attach=1&amp;amp;knm=tfile.pdf&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;유니티_벡터_연습문제_2회차.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.04MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>게임수학</category>
      <category>게임수학</category>
      <category>내적</category>
      <category>벡터</category>
      <category>외적</category>
      <author>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/11</guid>
      <comments>https://yeondusdevlog.tistory.com/11#entry11comment</comments>
      <pubDate>Wed, 8 Jul 2026 20:14:12 +0900</pubDate>
    </item>
    <item>
      <title>버거몬스터 면접 후기</title>
      <link>https://yeondusdevlog.tistory.com/10</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;버거몬스터&amp;gt;는 쿡앱스 산하의 스튜디오였다가 최근에 자회사로 독립했다고 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 버거몬스터 신입 클라이언트 프로그래머로 지원했다. 주로 캐주얼, RPG, 디펜스 장르를 만드는 회사다. 대표 게임으로는 &amp;lt;포트리스사가&amp;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;386&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vkJEs/dJMcaiX22vy/5nko4q5KlqYcITtSoFJUpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vkJEs/dJMcaiX22vy/5nko4q5KlqYcITtSoFJUpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vkJEs/dJMcaiX22vy/5nko4q5KlqYcITtSoFJUpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvkJEs%2FdJMcaiX22vy%2F5nko4q5KlqYcITtSoFJUpK%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;386&quot; height=&quot;185&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;185&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서류 합격 연락은 매우 빨리 왔다. &lt;br /&gt;그 다음은 과제 전형이었다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;일주일의 시간이 주어졌고, 턴제 카드 배틀 게임을 만드는 과제였다. 기본 최소 기능 골자는 있었지만,&amp;nbsp; '재미'를 위해 기능과 연출을 추가하거나 콘텐츠를 늘리는 것은 추가 점수가 있다고 했다.&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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;최근 게임 제작 트렌드에 맞게 AI 도구를 적극적으로 활용하는 것을 권장!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 슈퍼센트도 AI 활용이 가능하며, 대신 모든 프롬프트를 제출해야한다는 과제를 줬다. 그러나 버거몬스터에서는 '적극적으로 활용을 권장'이라는 문구를 사용했다는 점에서 더 강력한 메시지가 전달되었다.&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;blockquote data-ke-style=&quot;style3&quot;&gt;최종 결과물의 완성도와 재미, 본인이 구현한 내용을 명확히 설명할 수 있을 것&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&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;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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;재미란 무엇인가.&amp;nbsp;&lt;/span&gt;&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;완성도는 그렇다치고, 재미가 평가기준이라고 하니 기능 구현이 아닌 기획적 고민이 필요했다. 기획을 잘 했다고 해도 어떻게 '재미'를 주지? 재미라는 것은 어떻게 보면 주관적인 것 아닌가. &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 data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;객관적이지 않거나 모호한 기준으로 느껴졌다. 그래서 어려웠다.&amp;nbsp;&lt;/span&gt; 구현 범위를 살펴보니 일주일 안에 모든 기능을 완성도 있게, 재미까지 줄 수 있도록 만드려면 AI를 생산성 도구로 정말 적극 활용할 수 밖에 없겠다는 생각이 들었다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR'; color: #333333; text-align: center;&quot;&gt;좋아. 해보자. AI 적극! 활용! &lt;br /&gt;&lt;br /&gt;근데 그렇게 하면 과연 나... 어디까지 할 수 있을까?&lt;/span&gt;&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;나는 처음으로 기획, 리소스 제작, 코드 생산, 유니티 MCP를 활용한 배치 전반에 AI를 적극활용했다. 일단 클로드 코드와 코덱스를 데스크톱으로 설치하고, 깃과 연동해주었다. Bezi를 설치해 유니티와 연결해주었다. Bezi는 유니티 엔진 내부에서 오브젝트를 생성하거나, 인스펙터에서 사람이 드래그 드롭 해줘야 하는 부분, 컴포넌트 부착, Hierarchy 구조도 설정해줄 수 있는 AI다. &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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;지금까지는 개인의 학습에 방해되지 않는 선에서 조심 조심 AI를 활용해 왔는 데(바보가 될까봐), 봉인이 풀린 사람처럼 전방위로 마음껏 사용해본다면(물론 구현 내용 파악은 필요하다, 구조를 잡는 것도 본인이 하는 게 좋다 왜냐면 그 이유를 설명할 수 있어야 하니까. 그리고 제어도 중요한 것 같다) 어느 정도로 생산성을 올릴 수 있을 까?&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;놀라울 정도로 생산성이 올라갔다! 완성도 또한 일주일(실은 6일)만에 제작한 것에 비해 나쁘지 않았다. &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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;나는 최소 기능에 더해 카드 수집 기능(컬랙션), 튜토리얼, 스토리 다이얼로그, 신규 타입 카드 추가 등의 기능까지 구현했다. 남는 시간에는 연출과 밸런스 그리고 재미 요소를 어떻게 줄지를 고민해서 완성도를 높일 수 있었다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;아무리 프로토타입이고 과제라고 해도, 전 게시글에서 말했듯 게임을 만들 때 중요한 것은 '구조'라고 생각한다. 확장성이 있고 유지 보수가 편한 구조를 잡아 놓아야 컨텐츠를 추가하고 코드를 수정할 때 품이 적게 든다. AI로 코드 전반을 생산한다고 했을 때, 이런 구조가 무너질 것을 가장 걱정했다.&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;기능들이 많아지고 구조가 복잡해지면, 기능은 구현이 되더라도 초기에 잡아 놓은 구조가 무너질 수 있다. 특히 AI로 코드 생성을 시켰을 때 별도의 하네스가 없으면 정말 엉망인 코드도 생성한다는 것을 느꼈었기 때문에 더 경계심이 들었다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이 부분을 해결하기 위해, AI 코드 생성 방법론을 AI에게 물었다.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;클로드는 나에게 다음과 같은 방법을 제시했다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;1. 전체 프로젝트의 어기면 안되는 규약이 담긴 내용을 CLAUD.md 파일로 넣어서 프로젝트 상단 루트에 배치한다.&amp;nbsp;&lt;br /&gt;2. 세부 로직의 규칙, 룰, 코드규약, 컨텐츠 내용은 각각 md 파일로 만들어 docs 폴더에 생성한다. &lt;br /&gt;3. 각 작업을 AI가 할 때 반드시 각 md파일을 읽고 참고할 것을 1번 CLAUD.md 파일에 명시한다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;클로드 코드는 세션을 시작할 때 자동으로 CLAUD.md 파일을 읽는다고 한다. 일종의 영구지침서다. 하지만 모든 규칙을 이 파일에 명시하게 되면 토큰 낭비가 심하고 속도도 느려질 것이다. 공식 가이드에 따르면, Claude가 코드를 읽어서 스스로 알 수 있는 파일 구조 등은 제외하고 &lt;b&gt;추측하기 어려운 정보 위주로 간결하게(200줄 이내) 작성&lt;/b&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;우선 전체적인 구조는 내가 잡았다. 카드 게임은 결국 UI 기반 게임이기에 데이터와 뷰를 분리하는 MVP패턴을 바탕으로 레이어 분리에 신경써서 구조를 잡았다. 연출과 게임 로직도 분리했다. 모델은 순수 C#으로 둘 것도 명시했다. 카드 데이터는 쉽게 추가, 생성이 쉽도록 ScriptableObject로 생성하는 원칙을 두었다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;계획한 구조는 클래스 다이어그램으로 시각화해서 내가 파악하기 좋게 했다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이렇게 계획하니, AI가 계획했던 구조에서 크게 벗어나지 않았다. 그리고 코드리뷰도 계획한 것을 토대로 진행했기 때문에, AI를 활용한다고 구조가 무너지는 일이 없었다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;유니티의 Assembly Definition 기능을 활용하면, 레이어마다 참조에 대한 설정도 아주 명확하게 강제해 줄 수 있었다. 그 이외에도 컴파일 속도도 단축된다고 하니 잘 쓰면 좋은 기능인 것 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s2JsY/dJMcafAln7b/Akq5aE2mhBKEhFm22lcZkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s2JsY/dJMcafAln7b/Akq5aE2mhBKEhFm22lcZkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s2JsY/dJMcafAln7b/Akq5aE2mhBKEhFm22lcZkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs2JsY%2FdJMcafAln7b%2FAkq5aE2mhBKEhFm22lcZkK%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;409&quot; height=&quot;391&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;&lt;br /&gt;과제 제출 후, 합격 연락과 함께 면접 일정을 잡았다. 채용 진행 과정 사이의 텀이 짧아서 좋았다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;면접은 1시간 정도 진행이 되었다. 모회사인 쿡앱스를 조사했을 때, 면접자들이 공통적으로 '재미'에 대한 질문을 받았다고 한다. 나는 재미란 '몰입해서 자발적으로 하게되는 무엇'이라고 생각했지만, 너무 철학 전공틱한 대답인 것 같아서 면접에서는 과제를 설명하면서 내가 생각하는 게임의 '재미'에 대해 풀어냈다. 그랬더니, 재미란 뭐라고 생각하는 지에 대한 질문은 받지 않았다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;과제에 대해 설명하는 요구도 있었고, 기술적인 부분은 매우 기초적인 부분(C#과 유니티 엔진에 관해), 그리고 최적화 기법을 많이 물어보셨다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;기억에 남는 건 &quot;요즘은 개발자가 아니라 기발자, 개획자라는 말을 쓰는 걸 아세요?&quot;라는 물음이었다. 요즘은 클라이언트 프로그래머라도 기획을 할 줄 알아야 하고, 그것이 게임 제작자라는 설명. 버거몬스터에서는 기존의 전통적인 프로그래머(개발자)와 게임 제작자를 나눠서 설명했다.&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;기존 프로그래머는 기획자가 요구한 내용을 잘 이해해서 구현만 해주면 되고, 잘 구현하고 최적화를 잘 하는 것이 덕목이었을 것이다. 하지만 버거몬스터에서 원하는 인재상은 시장 상황 파악, 트랜드를 파악할 수 있는 능력을 바탕으로 재미있는 게임을 기획할 수 있고, 빠르게 프로토타입으로 구현할 수 있는 &quot;게임 제작자&quot;였다.&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&gt;버거 몬스터 뿐만 아니라 앞으로 다른 회사들에서도 이런 인재상을 요구할 수도 있겠다는 생각이 들었다. AI을 발달로 인해, 직군의 경계는 더 허물어지고 무엇이 더 좋은 것인지 파악하는 안목과, 원론적인 질문을 파고들어 의미 있는 상업적 영역으로 연결하는 능력이 더 중요해지는 시대인 것 같다.&amp;nbsp;&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: center;&quot;&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;326&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WLdE6/dJMcabSbN42/bKlGCkZYvIaKz8hSb6Cse0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WLdE6/dJMcabSbN42/bKlGCkZYvIaKz8hSb6Cse0/img.png&quot; data-alt=&quot;버거몬스터의 게임 &amp;amp;lt;포트리스 사가&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WLdE6/dJMcabSbN42/bKlGCkZYvIaKz8hSb6Cse0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWLdE6%2FdJMcabSbN42%2FbKlGCkZYvIaKz8hSb6Cse0%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;326&quot; height=&quot;141&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;버거몬스터의 게임 &amp;lt;포트리스 사가&amp;gt;&lt;/figcaption&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>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/10</guid>
      <comments>https://yeondusdevlog.tistory.com/10#entry10comment</comments>
      <pubDate>Fri, 26 Jun 2026 00:48:07 +0900</pubDate>
    </item>
    <item>
      <title>넥셀론 면접 후기</title>
      <link>https://yeondusdevlog.tistory.com/9</link>
      <description>&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;1027&quot; data-origin-height=&quot;897&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K8xC1/dJMcacwQRAT/5cpfXK16kiN4z3yEreKoG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K8xC1/dJMcacwQRAT/5cpfXK16kiN4z3yEreKoG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K8xC1/dJMcacwQRAT/5cpfXK16kiN4z3yEreKoG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK8xC1%2FdJMcacwQRAT%2F5cpfXK16kiN4z3yEreKoG1%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;1027&quot; height=&quot;897&quot; data-origin-width=&quot;1027&quot; data-origin-height=&quot;897&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;유니티로 제작된 게임을 TypeScript로 포팅하는 업무.&amp;nbsp;&lt;br /&gt;&lt;br /&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;242&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHcAmq/dJMcahSotlY/eJnbXcgRQMukPXfxPJTF4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHcAmq/dJMcahSotlY/eJnbXcgRQMukPXfxPJTF4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHcAmq/dJMcahSotlY/eJnbXcgRQMukPXfxPJTF4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHcAmq%2FdJMcahSotlY%2FeJnbXcgRQMukPXfxPJTF4K%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;242&quot; height=&quot;137&quot; data-origin-width=&quot;242&quot; data-origin-height=&quot;137&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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;너무 아쉽다.&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;우선 나는 TypeScript를 모른다. 하지만 유니티로 게임 만드는 것에는 이제 어느정도 자신감이 있었다. TypeScript에 대해 찾아보니 정적타입을 명시할 수 있는 JavaScript라고 생각하면 될 것 같았다. 그런데 이 언어를 만든 사람이 C#을 만든 창시자 Anders Hejlsberg였다. 때문에 일부 문법들은 C#과 유사했다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;나는 생각했다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;C#이랑 비슷한 문법이고, 기존의 구조를 포팅하는 업무는 빠르게 언어를 배워서 하면 될 수도 있을 것 같은데? 지원이라도 해볼까?&lt;/span&gt;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;실제로 내가 C# 언어를 학습할 때 완전 기초부터 프로그래머스 레벨 2단계 정도까지 도달하는 데 4개월 정도 걸렸기 때문에, 이미 하나의 언어를 잘 알고 있는 상태에서는 더 빠르게 학습이 가능하다는 생각이 들었다.&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;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;그래서 나는 지원서를 내고, TypeScript에 대해 얼마나 알고 있냐는 사전 질문에 다음과 같은 내용으로 답했다.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;C# 숙련도가 높아 문법 구조가 유사한 TypeScript는 빠르게 학습 가능합니. 언어보다 중요한 '게임 루프 및 컴포넌트 아키텍처'에 대한 이해도는 이미 유니티 경험을 통해 검증되었습니다.&amp;nbsp; 게임 루프의 핵심인 델리게이트(Delegate)와 이벤트 처리, 메모리 관리(GC), 비동기 처리(Async/Await)개념은 C#에서 이미 마스터했습니다. 두 언어의 구조적 유사성이 높아 Update 루프나 프레임 관리 로직을 TypeScript 환경으로 정확히 이식할 수 있다고 생각합니다.&amp;nbsp;&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;큰 기대는 하지 않았는 데, 면접을 보러 오라고 연락이 왔다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세상에!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 되는 구나. 어쩌면 기세를 가지는 것도 중요할지도 모르겠다고 생각하며 급하게 TypeScript를 공부했다. C#과 유사한 부분도 있었지만, 어색한 문법도 많았다. &lt;b&gt;가장 큰 차이는 C#같은 정적 언어와 다르게 TypeScript는 동적 언어라는 것이었다.&amp;nbsp; &lt;/b&gt;사실 공부야 자신있지만 실제 업무를 맡는다면, 빠른 구현 속도와 생산성 그리고 정확도가 필요할 것이기에&amp;nbsp; AI를 어디까지 활용할 수 있는 지 물어보고 최대한 활용해봐야겠다고도 생각했다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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;br /&gt;&lt;br /&gt;현재 넥셀론은 모바일 시장에서 스팀 출시 게임으로 방향을 전환해보려 한다는 이야기를 들었다. 확실히 최근 게임 업계는 이분화가 진행되는 것 같다. 라이트 유저와 헤비유저만 남고, 중간 유입층은 매우 얇아지는 느낌이다. 그래서인지 최근 게임 업계도 캐주얼, 하이퍼 캐주얼 vs A급 이상의 콘솔 게임으로 갈라지고 있는 것 같다는 생각이 들었다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;면접을 봐주신 분들의 인상이 좋았고, 넥셀론에서 만든 게임들이 전부 취향저격이라서 호감이 가는 회사였는 데 아쉽게 다음날 탈락 문자를 받았다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;그런데 면접 연락과 면접, 탈락 문자까지 매우 빠르게 진행되고 탈락했더라도 문자를 주셨다는 점에서 오히려 좋은 회사라는 생각이 들었다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;개발자라면 확실히 폭넓은 기술스택과 경험이 필요할 것 같다는 생각이 드는 경험이었다.&amp;nbsp;&lt;br /&gt;나중에라 기회가 닿는 다면 함께 일해보고 싶은 회사였다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>면접 후기</category>
      <category>게임 회사 면접 후기</category>
      <category>기술면접 후기</category>
      <category>넥셀론</category>
      <author>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/9</guid>
      <comments>https://yeondusdevlog.tistory.com/9#entry9comment</comments>
      <pubDate>Thu, 25 Jun 2026 23:50:12 +0900</pubDate>
    </item>
    <item>
      <title>[슈퍼센트] Ad-Dev 과제, 1차, 2차 면접 후기</title>
      <link>https://yeondusdevlog.tistory.com/8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;결론적으로, 나는 2차 컬쳐핏 면접에서 불합격했다.&amp;nbsp;&lt;br /&gt;&lt;br /&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;특이한 것은 리소스 제작이나 과제 전반에 AI를 활용해도 되지만, 제작 과정에서 사용한 모든 프롬프트를 함께 제출해야 한다는 것이었다. 업계 선배들에게 들었던 내용과 현저히 달랐다. 물론 그때는 AI가 현업에서 이렇게 활발하게 사용되고 있지 않던 시기기 때문에 당연하겠지만.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1052&quot; data-origin-height=&quot;596&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCwP62/dJMcabSbLvA/pIKBRXvp6sjI1MngbR7bw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCwP62/dJMcabSbLvA/pIKBRXvp6sjI1MngbR7bw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCwP62/dJMcabSbLvA/pIKBRXvp6sjI1MngbR7bw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCwP62%2FdJMcabSbLvA%2FpIKBRXvp6sjI1MngbR7bw1%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;1052&quot; height=&quot;596&quot; data-origin-width=&quot;1052&quot; data-origin-height=&quot;596&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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;구조를 잘 짜는 게 중요하다&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 나를 가르쳐준 선생님도 하셨던 말이지만, 몇차례 게임 포트폴리오를 제작하고 2D 모바일 게임 &amp;lt;캣서바이벌&amp;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;일단 객체지향 원칙에 어긋나지 않는 기본 원리를 지키는 것이 중요한데, 유니티 엔진을 사용하면서 객체지향의 4대 특징, 5대 원칙을 엄격히 지키는 건 생각보다 쉽지 않다. 그래서 첫 설계가 중요한 것 같다.&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;그리고 내가 생각한 구조의 골조를 AI에 넣어 분석, 피드백을 받았고 브래인스토밍을 하며 전체적인 구조를 먼저 시각화 했다. 클래스 다이어그램을 AI가 매우 잘 그려서 머리속에 전체 구조를 먼저 개괄적으로 심어 두고 작업에 들어가니 구현하기 좋았다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;코드 생성은 개인적으로, AI에 맞기면 내 실력이 늘지 않는 다고 생각했기 때문에 최대한 혼자 구현해보려고 했다. 빠르게 트러블 슈팅을 해야하거나 물리 계산이 필요한 경우는 AI에게 예시 코드를 받았으나 한 줄도 내가 직접 치지 않은 코드는 없었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;&lt;i&gt;반성&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;그러나 지금 생각해보면, 이러한 부분이 슈퍼센트 또는 현재 캐주얼/하이퍼캐주얼 장르 회사들의 방향성과 맞지 않았을 수 도 있겠다는 생각이 들었다.&lt;br /&gt;빠른 제작과 구현, 데이터에 의한 검증. 높은 생산성을 위해 AI를 얼마나 도구로서 잘 활용하고 통제할 수 있는 지에 대한 증명. 이런 것들이 더 어필되면 좋았을 것 같다는 생각이 들었다.&amp;nbsp;&lt;br /&gt;프로그래머라면 기초 지식이 탄탄한 것은 당연하고, 개인의 성장을 위해 자기계발 하는 것 또한 당연한 소양일 것 같다. 현재 개발 프로세스에서 더 중요한 것은 위에서 말했던 능력인 것 같다. 나는 내가 '공부하는' 입장이라는 것에 너무 익숙해져 있어서 '내가 얼마나 빠르게, 생산성 도구로서 AI를 잘 활용해서 게임을 제작할 수 있는가'를 어필하는 데 약했던 것 같다.&amp;nbsp;&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;나의 경우 AI 활용은 다음과 같이 하였다.&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;1. 영상에서 나온 3D 모델링을 이미지로 캡쳐 후, Mesh AI를 통해 3D 모델링으로 리소스 제작.&lt;br /&gt;2. 영상에서 나온 버튼, 아이콘 등의 UI를 AI로 제작해 스프라이트로 사용.&lt;br /&gt;3. 코드 구조 시각화 피드백, 트러블슈팅(디버깅)&lt;br /&gt;&lt;br /&gt;결과는 과제 합격&amp;nbsp;&lt;br /&gt;&lt;br /&gt;그리고 바로 1차 테스트 + 면접을 준비해야 했다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;화상테스트+면접으로 이뤄졌고 30분은 문제를 풀고 30분은 면접으로 구성되어 있었다. 30분 면접은 문제에 대한 질의응답, 추가적인 기술 면접, 자기소개와 게임에 대한 관점을 물어봤다. 주로 기초가 얼마나 탄탄한지를 파악할 수 있는 문제로 구성되어 있었다. 풀지 못한 문제는 없었고, 전부 주관식이었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;면접에서 내가 제출한 AI프롬프트, 자소서와 포트폴리오 등의 자료를 꼼꼼히 읽어보셨다는 인상을 받았다. 압박 면접도 아니었고 매우 편한 분위기 였다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuzqwc/dJMcahx9XhW/377PyxYbe48IAZRzVclBPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuzqwc/dJMcahx9XhW/377PyxYbe48IAZRzVclBPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuzqwc/dJMcahx9XhW/377PyxYbe48IAZRzVclBPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcuzqwc%2FdJMcahx9XhW%2F377PyxYbe48IAZRzVclBPk%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;705&quot; height=&quot;210&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;선배들이 컬쳐핏은 정말 이상한 사람이 아니고서야, 또는 회사의 지향성과 아주 동떨어져 있는 게 아니면 붙는다고 해주셨다. 슈퍼센트에서 출시된 게임들을 10개는 해본 것 같다. 슈퍼센트라는 회사에 대해서도 조사했다. 하이퍼 캐주얼, 캐주얼 위주로 만들며 빠르게 프로토타입을 만들고 게임의 시장성 및 재미는 데이터로 검증해 디벨롭하는 문화를 가진 회사였다. 나는 개인적으로 캐주얼, 퍼즐, 하이퍼 캐주얼류 게임을 좋아하기 때문에 분석을 위함이기도 했지만 즐겁게 게임을 해보았다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;2차 면접은 CTO님과 1대 1 면접이었다.&amp;nbsp;&lt;br /&gt;30분 정도 진행이 되었는 데, 롯데타워 한 층을 통째로 쓰는 회사의 규모가 인상적이었다. 매우 크고 넓고 시설이 압도적으로 좋았다. 인사담당자분이 휴게 공간으로 안내해주셨는데, 휴게 공간도 한 군데가 아니었다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;컬쳐핏인데 CTO님과 진행하는 게 특이하다고 생각했다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;실제로 기술적인 부분과 견해를 물어보셨다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;AI를 코드 생성에도 사용했냐고 물어봤는 데, 이 부분에서 나는 실제로 너무 방어적이었던 것 같다. 공부에는 도움이 되지 않을 것 같아서 과제를 제작할 때나 개인 프로젝트를 할 때는 최대한 지양하려고 하고 더 좋은 구조를 위한 고민에 브레인스토밍을 할 때 쓰며 리소스 제작에 적극적으로 활용한다고 대답했다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;역질문으로 회사에서 AI를 활용하는 방향을 물어보았는데, 매우 적극적으로 장려하고 있다고 답변해주셨다. 이 부분에서 나와 컬쳐가 맞지 않는 다고 판단하셨을 수도 있겠다는 생각이 든다. AI도 사용해봐야 늘기 때문이고, 이제는 AI를 생산성 도구로서 활용하지 못하는 리스크가 훨씬 크다고 하시며 미래에는 AI라는 단어도 사라질 것이라고 답변하신 게 기억에 남는다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;AI가 너무 당연한 것이 되어서 그 단어가 필요 없어질 것이라는 답변, 그리고 이제는 AI를 활용해 사람들이 사용하는 서비스를 생산하는 '빌더'와 생산된 서비스를 사용하는 '유저'로 세상이 양분될 것 같다는 분석도 기억에 남았다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;2차에서 떨어지고 나니 매우 아쉬움이 컸지만, 부족하다고 생각되는 부분을 더 보완해서 도전할 것이다.&amp;nbsp;&lt;/p&gt;</description>
      <category>AI면접</category>
      <category>개발자면접</category>
      <category>게임 개발</category>
      <category>게임 개발자 면접 후기</category>
      <category>슈퍼센트</category>
      <category>슈퍼센트 2차 면접 후기</category>
      <category>슈퍼센트 면접 후기</category>
      <category>캐주얼 게임</category>
      <category>클라이언트 개발자 면접</category>
      <category>하이퍼 캐주얼 게임</category>
      <author>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/8</guid>
      <comments>https://yeondusdevlog.tistory.com/8#entry8comment</comments>
      <pubDate>Thu, 25 Jun 2026 23:16:26 +0900</pubDate>
    </item>
    <item>
      <title>캣서바이벌_개인정보처리방침</title>
      <link>https://yeondusdevlog.tistory.com/7</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;연두스튜디오(이하 '회사')는 사용자의 개인정보를 보호하고 관련 법규를 준수하기 위해 다음과 같은 개인정보 처리방침을 수립하고 공개합니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_11,l3Ilff_12&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_10/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBhAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;1. 수집하는 개인정보 항목&lt;/b&gt;&lt;br /&gt;회사는 사용자가 앱을 이용하는 과정에서 별도의 회원가입 없이도 서비스를 제공합니다. 다만, 서비스 이용 과정에서 아래와 같은 정보가 자동으로 생성되어 수집될 수 있습니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_17,l3Ilff_18&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_16/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIBxAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;수집 항목: 기기 식별자(광고 ID), 서비스 이용 기록, 접속 로그, 쿠키, 기기 정보(OS 버전, 모델명 등)&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_1d,l3Ilff_1e&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_1c/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICBAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;2. 개인정보의 수집 및 이용 목적&lt;/b&gt;&lt;br /&gt;회사는 수집한 정보를 다음의 목적을 위해 활용합니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_1j,l3Ilff_1k&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_1i/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;서비스 제공 및 운영: 앱 내 콘텐츠 제공 및 기능 수행&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICRAB&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;광고 게재: 구글 애드몹(AdMob) 등 제3자 광고 서비스를 통한 맞춤형 광고 제공&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICRAC&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;서비스 개선: 이용 통계 분석 및 오류 수정&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_1t,l3Ilff_1u&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_1s/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIChAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;3. 제3자 서비스 및 데이터 공유&lt;/b&gt;&lt;br /&gt;본 앱은 서비스 향상을 위해 아래와 같은 제3자 서비스 SDK를 포함하고 있으며, 해당 업체는 고유한 개인정보 처리방침을 가지고 있습니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_1z,l3Ilff_20&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_1y/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICxAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Google Play Services&lt;/b&gt;: 앱 운영 및 업데이트 지원&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICxAB&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Google AdMob&lt;/b&gt;: 광고 제공 및 분석 (광고 ID 수집)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEICxAC&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;Firebase&lt;/b&gt;: 서비스 분석 및 데이터 저장&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_2c,l3Ilff_2d&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_2b/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIDBAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;4. 개인정보의 보유 및 파기&lt;/b&gt;&lt;br /&gt;회사는 앱 서비스를 이용하는 동안에만 개인정보를 처리하며, 수집 목적이 달성되거나 앱을 삭제할 경우 해당 정보는 즉시 파기됩니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_2i,l3Ilff_2j&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_2h/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIDRAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;5. 이용자의 권리와 행사 방법&lt;/b&gt;&lt;br /&gt;사용자는 언제든지 앱을 삭제하거나 기기 설정(광고 설정 등)을 통해 개인정보 수집을 거부할 수 있습니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_2o,l3Ilff_2p&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_2n/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIDhAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;6. 개인정보 보호 책임자 및 연락처&lt;/b&gt;&lt;br /&gt;회사는 개인정보와 관련한 문의사항을 처리하기 위해 아래와 같이 연락처를 운영하고 있습니다.&lt;span data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_2u,l3Ilff_2v&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_2t/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIDxAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;개발자 이름: 연두스튜디오&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-sae=&quot;&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIDxAB&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;연락처:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;yeondustudio0406@gmail.com&lt;/b&gt;&lt;/span&gt;&lt;span data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;l3Ilff_33,l3Ilff_34&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-sae=&quot;&quot; data-wiz-attrbind=&quot;class=l3Ilff_32/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #56595e;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-complete=&quot;true&quot; data-hveid=&quot;CAEIEBAA&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;시행일자: 2026년 4월 20일&lt;/b&gt;&lt;/div&gt;</description>
      <category>캣서바이벌</category>
      <author>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/7</guid>
      <comments>https://yeondusdevlog.tistory.com/7#entry7comment</comments>
      <pubDate>Mon, 20 Apr 2026 22:13:49 +0900</pubDate>
    </item>
    <item>
      <title>C++ | 구조체, 배열, 셔플</title>
      <link>https://yeondusdevlog.tistory.com/6</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;구조체&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;이것도 게임 만들 때 필수인 문법인 것 같다&lt;br /&gt;
&lt;pre id=&quot;code_1752484565595&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

struct tagHero
{
	const char* name;	//영웅이름
	int hp;				//영웅체력
	int atk;			//영웅공격력
	float criPer;		//치확
	float criDam;		//치피
	bool isDead;		//사망여부
};

void main()
{
	tagHero mario;

	mario.name = &quot;마리오&quot;;
	mario.hp = 100;
	mario.atk = 100;
	mario.criPer = 10.0f;
	mario.criDam = 1000;
	mario.isDead = false;

	cout &amp;lt;&amp;lt; mario.name &amp;lt;&amp;lt; &quot;의 이름:&quot; &amp;lt;&amp;lt; mario.name &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; mario.name &amp;lt;&amp;lt; &quot;의 체력:&quot; &amp;lt;&amp;lt; mario.hp &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; mario.name &amp;lt;&amp;lt; &quot;의 공격력:&quot; &amp;lt;&amp;lt; mario.atk &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; mario.name &amp;lt;&amp;lt; &quot;의 치확:&quot; &amp;lt;&amp;lt; mario.criPer &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; mario.name &amp;lt;&amp;lt; &quot;의 치피:&quot; &amp;lt;&amp;lt; mario.criDam &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; mario.name &amp;lt;&amp;lt; &quot;의 생존여부:&quot; &amp;lt;&amp;lt; mario.isDead &amp;lt;&amp;lt; endl;


	tagHero jim;

	jim.name = &quot;짐 레이너&quot;;
	jim.hp = 200;
	jim.atk = 10;
	jim.criPer = 5;
	jim.criDam = 500;
	jim.isDead = false;

	

	while (jim.hp &amp;gt; 0 || mario.hp &amp;gt; 0)
	{
		jim.hp -= mario.atk;
		mario.hp -= jim.atk;
	}




}&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;배열&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;이후에 만들어볼 카드게임에 꼭 필요한 문법&lt;br /&gt;
&lt;pre id=&quot;code_1752484667436&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

void main()
{
	//배열
	//같은 변수의 연속적인 나열
	int bullet[5];

	for (int i = 0; i &amp;lt; 5; i++)
	{
		cout &amp;lt;&amp;lt; bullet[i] &amp;lt;&amp;lt; endl;
	}

	int bullet2[] = { 1, 2, 3, 4 };

	int num[5] = {1,2,3,4};

	for (int i = 0; i &amp;lt; 5; i++)
	{
		cout &amp;lt;&amp;lt; num[i] &amp;lt;&amp;lt; endl;
	}

	//이중배열
	int number[3][3];

	number[0][0];
	number[0][1];
	number[0][2];
	number[1][0];
	number[1][1];
	number[1][2];
	number[2][0];
	number[2][1];
	number[2][2];


	for (int i = 0; i &amp;lt; 3; i++)
	{
		for (int j = 0; j &amp;lt; 3; j++)
		{
			number[i][j];
		}
	}


}​&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;b&gt;셔플&lt;/b&gt;&lt;/b&gt;
&lt;pre id=&quot;code_1752484784409&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;time.h&amp;gt;

using namespace std;

void main()
{
	srand(time(NULL));

	int number[45];
	int dest, sour, temp;

	for (int i = 0; i &amp;lt; 45; i++)
	{
		number[i] = i + 1;
	}

	//40번 섞을 예정
	for (int i = 0; i &amp;lt; 40; i++)
	{
		dest = rand() % 45;
		sour = rand() % 45;

		temp = number[dest];
		number[dest] = number[sour];
		number[sour] = temp;
	}

	for (int i = 0; i &amp;lt; 45; i++)
	{
		cout &amp;lt;&amp;lt; number[i] &amp;lt;&amp;lt; endl;
	}



}&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;</description>
      <category>C++</category>
      <category>kdt</category>
      <category>개발자</category>
      <category>게임개발</category>
      <category>구조체</category>
      <category>국비지원</category>
      <category>배열</category>
      <category>셔플</category>
      <category>코딩</category>
      <author>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/6</guid>
      <comments>https://yeondusdevlog.tistory.com/6#entry6comment</comments>
      <pubDate>Mon, 14 Jul 2025 18:20:21 +0900</pubDate>
    </item>
    <item>
      <title>C++ | 공격으로 인한 체력 감소 로직을 구성해보자</title>
      <link>https://yeondusdevlog.tistory.com/5</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;게임을 하다보면 꼭 필요한 공격, 체력 감소&lt;br /&gt;&lt;br /&gt;게임을 할 때는 별 생각 없었는데 이제보니 이것도 전부 코드였다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;&lt;br /&gt;
&lt;pre id=&quot;code_1752482981717&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;
#include&amp;lt;time.h&amp;gt;

using namespace std;

void main()
{
	srand(time(NULL));

	int playerHP = 10000;
	int enemyHP = 10000;
	int playerATK, enemyATK;

	while (playerHP &amp;gt; 0 &amp;amp;&amp;amp; enemyHP &amp;gt; 0)
	{
		playerATK = rand() % 20;
		enemyATK = rand() % 20;

		playerHP -= enemyATK;
		enemyHP -= playerATK;

		cout &amp;lt;&amp;lt; &quot;플레이어가 적에게&quot; &amp;lt;&amp;lt; enemyATK &amp;lt;&amp;lt; &quot;만큼 데미지를 입어 체력이&quot; &amp;lt;&amp;lt; playerHP &amp;lt;&amp;lt; &quot;가 되었습니다&quot; &amp;lt;&amp;lt; endl;
		cout &amp;lt;&amp;lt; &quot;적이 플레이어에게&quot; &amp;lt;&amp;lt; playerATK &amp;lt;&amp;lt; &quot;만큼 데미지를 입어 체력이&quot; &amp;lt;&amp;lt; enemyHP &amp;lt;&amp;lt; &quot;가 되었습니다&quot; &amp;lt;&amp;lt; endl;

		if (playerHP &amp;lt;= 0 || enemyHP &amp;lt;= 0) break;
	}
}​&lt;/code&gt;&lt;/pre&gt;
&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;위에 올린 코드는 아주 단순하지만, 응용해보면 재밌는 걸 만들 수 있을 것 같아서 재밌었던 부분이다.&amp;nbsp;&lt;/p&gt;</description>
      <category>C++</category>
      <category>c++</category>
      <category>개발</category>
      <category>게임 개발</category>
      <category>코딩</category>
      <author>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/5</guid>
      <comments>https://yeondusdevlog.tistory.com/5#entry5comment</comments>
      <pubDate>Mon, 14 Jul 2025 17:50:39 +0900</pubDate>
    </item>
    <item>
      <title>C++| 숫자야구 게임 로직</title>
      <link>https://yeondusdevlog.tistory.com/4</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;숫자야구게임 로직&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;나를 혼란에 빠뜨렸던...숫자야구 게임 로직이다.&amp;nbsp;&lt;br /&gt;생각보다 논리 구성하는 게 어려웠다. &lt;br /&gt;&lt;br /&gt;대략적으로 필요한 것들은 떠올라도, 코드로 어떻게 표현할지 바로 떠오르지 않아서 힘들었던 것 같다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1752482829933&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;time.h&amp;gt;

using namespace std;

void main()
{
	srand(time(NULL));

	//변수 선언
	int pitcher1, pitcher2, pitcher3;		//컴퓨터 숫자용 변수
	int batter1, batter2, batter3;			//내가 입력할 변수
	int strike, ball;						//스트라이크, 볼 카운트
	int roundCount = 9;
	strike = ball = 0;


	//중복되지 않는 수를 선별하기 위한 반복문
	while (true)
	{
		pitcher1 = rand() % 10;

		if (pitcher1 == 0) continue;

		pitcher2 = rand() % 10;

		if (pitcher2 == pitcher1) continue;

		pitcher3 = rand() % 10;

		if (pitcher3 == pitcher1 || pitcher3 == pitcher2) continue;

		break;
	}

	cout &amp;lt;&amp;lt; pitcher1 &amp;lt;&amp;lt; pitcher2 &amp;lt;&amp;lt; pitcher3 &amp;lt;&amp;lt; endl;

	while (true)
	{
		cout &amp;lt;&amp;lt; &quot;첫번째 수 입력:&quot;;
		cin &amp;gt;&amp;gt; batter1;

		cout &amp;lt;&amp;lt; &quot;두번재 수 입력&quot;;
		cin &amp;gt;&amp;gt; batter2;

		cout &amp;lt;&amp;lt; &quot;세번째 수 입력&quot;;
		cin &amp;gt;&amp;gt; batter3;

		//볼인지, 스트라이크인지 연산한다
		if(pitcher1 == batter1) strike++;
		if(pitcher1 == batter2) ball++;
		if(pitcher1 == batter3) ball++;
		if(pitcher2 == batter1) ball++;
		if(pitcher2 == batter2) strike++;
		if(pitcher2 == batter3) ball++;
		if(pitcher3 == batter1) ball++;
		if(pitcher3 == batter2) ball++;
		if(pitcher3 == batter3) strike++;

		//결과에 대한 내용 출력
		if (strike &amp;gt; 0 &amp;amp;&amp;amp; ball &amp;lt; 1)
		{
			cout &amp;lt;&amp;lt; strike &amp;lt;&amp;lt; &quot; 스트라이크 &quot; &amp;lt;&amp;lt; endl;
		}
		else if (strike &amp;lt; 1 &amp;amp;&amp;amp; ball &amp;gt; 0)
		{
			cout &amp;lt;&amp;lt; ball &amp;lt;&amp;lt; &quot; 볼&quot; &amp;lt;&amp;lt; endl;
		}
		else
		{
			cout &amp;lt;&amp;lt; strike &amp;lt;&amp;lt; &quot; 스트라이크 &quot; &amp;lt;&amp;lt; ball &amp;lt;&amp;lt; &quot; 볼&quot; &amp;lt;&amp;lt; endl;
		}

		if (strike &amp;gt;= 3)
		{
			cout &amp;lt;&amp;lt; &quot;너의 승리&quot; &amp;lt;&amp;lt; endl;
			break;
		}

		roundCount--;
		cout &amp;lt;&amp;lt; roundCount &amp;lt;&amp;lt; &quot; 회 남았다&quot; &amp;lt;&amp;lt; endl;
		
		//사용했던 스트라이크, 볼 카운트는 초기화를 해야 또(?) 사용이 가능하다
		strike = ball = 0;

		if (roundCount &amp;lt; 0)
		{
			cout &amp;lt;&amp;lt; &quot;게임오버&quot; &amp;lt;&amp;lt; endl;
			cout &amp;lt;&amp;lt; pitcher1 &amp;lt;&amp;lt; pitcher2 &amp;lt;&amp;lt; pitcher3 &amp;lt;&amp;lt; endl;
			break;
		}

	}

}&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>
      <category>c++</category>
      <category>개발</category>
      <category>개발초보</category>
      <category>숫자야구게임</category>
      <author>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/4</guid>
      <comments>https://yeondusdevlog.tistory.com/4#entry4comment</comments>
      <pubDate>Mon, 14 Jul 2025 17:47:58 +0900</pubDate>
    </item>
    <item>
      <title>C++| 반복문과 업앤다운 게임 로직</title>
      <link>https://yeondusdevlog.tistory.com/3</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;for문&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;선생님께서 if문만 있으면 모든 게임을 만들 수 있다고 하셨다&lt;br /&gt;그런데 for문까지 있다면...?&lt;br /&gt;&lt;br /&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;&lt;/blockquote&gt;
&lt;pre id=&quot;code_1752475917466&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

void main()
{
	//반복문
	//뭔가 반복하는 앤가? (true)
	//조건이 true일때 동작한다

	int i;

	//1. for문
	for (int i = 0; i &amp;lt; 10; i++)
	{
		//cout &amp;lt;&amp;lt; &quot;비야 그치렴&quot; &amp;lt;&amp;lt; endl;
		//cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; endl;
	}

	for ( i = 10; i &amp;gt;= 0; i--)
	{
		cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; endl;
	}

	for ( i = 1; i &amp;lt; 10000; i *= 2)
	{
		cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; endl;
	}



	/*
	a++ 후치
	++a 전치

	int a = 3;
	a 변수의 값이 b에 넘어간 이후에 연산을 한다 (후치)
	int b = a++;
	연산한 후에 a의 변수 값이 b에 대입된다 (전치)
	b = ++a;

	cout &amp;lt;&amp;lt; b &amp;lt;&amp;lt; endl;

	당연히 --는 -1과 같다
	b--;
	--b;
	*/
	
    /*관습적으로 2중 for문까지는 쓰지만 3중 for문은 쓰지 않는다*/
    
    	for (int i = 1; i &amp;lt; 10; i++)
	{
		for (int j = 1; j &amp;lt; 10; j++)
		{
			cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot;x&quot; &amp;lt;&amp;lt; j &amp;lt;&amp;lt; &quot;=&quot; &amp;lt;&amp;lt; i * j &amp;lt;&amp;lt; endl;
		}
	}


}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&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;blockquote data-ke-style=&quot;style2&quot;&gt;while문&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;pre id=&quot;code_1752480901304&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	//2. while문
	//기본적으로 무한 반복
	//당연히 true일 때만
	
	while (true)
	{
		cout &amp;lt;&amp;lt; &quot;살려줘&quot; &amp;lt;&amp;lt; endl;
	}​&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
제어문&lt;br /&gt;
&lt;pre id=&quot;code_1752481114736&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//제어문
//break : 연산을 중지하고 빠져나간다
//continue : 연산을 건너뛴다
//return : 값을 반환하고 종료한다
//go to : 업계에선 약간 금기어..볼드모트


void main()
{
	for (int i = 0; i &amp;lt; 10; i++)
	{
		if (i == 3) continue;
		cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; endl;
	}

}​&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;업앤다운 게임 로직&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;직접 게임 로직을 짜보려고 하니, 간단한 게임도 생각보다 쉽지는 않았다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;역시 코드는 많이 쳐보는 게 좋은 것 같다.&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1752481871743&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;
#include&amp;lt;time.h&amp;gt;

using namespace std;

void main()

{
	srand(time(NULL));

		int cnumber = rand() % 100 + 1;
		int pnumber;
		int count = 9;

		while (true)
		{
			cout &amp;lt;&amp;lt; &quot;맞춰봐! 1~100까지 아무 숫자나 말하기.&quot; &amp;lt;&amp;lt; endl;
			cin &amp;gt;&amp;gt; pnumber;


			if (cnumber == pnumber)
			{
				cout &amp;lt;&amp;lt; &quot;정답!&quot; &amp;lt;&amp;lt; endl;
				break;
			}
			else if (cnumber &amp;gt; pnumber) cout &amp;lt;&amp;lt; &quot;업&quot; &amp;lt;&amp;lt; endl;
			else if (cnumber &amp;lt; pnumber) cout &amp;lt;&amp;lt; &quot;다운&quot; &amp;lt;&amp;lt; endl;

			cout &amp;lt;&amp;lt; count &amp;lt;&amp;lt; &quot;회 남았습니다&quot; &amp;lt;&amp;lt; endl;
			count--;

			if (count &amp;lt; 0)
			{
				cout &amp;lt;&amp;lt; &quot;패배입니다. 다음에 다시 시도하세요.&quot; &amp;lt;&amp;lt; endl;
				break;
			}
			if (count &amp;lt; 4)
			{
				cout &amp;lt;&amp;lt; &quot;신중하세요&quot; &amp;lt;&amp;lt;count&amp;lt;&amp;lt;&quot;번 남았음&quot; &amp;lt;&amp;lt; endl;
			}
		}


}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>C++</category>
      <category>kdt</category>
      <category>개발</category>
      <category>국비지원</category>
      <category>비전공자</category>
      <category>코딩</category>
      <author>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/3</guid>
      <comments>https://yeondusdevlog.tistory.com/3#entry3comment</comments>
      <pubDate>Mon, 14 Jul 2025 17:35:55 +0900</pubDate>
    </item>
    <item>
      <title>C++ |  연산자와 조건문 그리고 가위바위보 게임 로직</title>
      <link>https://yeondusdevlog.tistory.com/2</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;연산자 &amp;amp; 조건문&lt;br /&gt;&lt;br /&gt;연산자와 조건문을 배우니 할 수 있는 게 많아졌다. 아직 아는 것이라곤 변수와 연산자 밖에 없는데 랜덤으로 로또 번호 추천해주는 코드도 짜볼 수 있고, 아주 단순한 가위바위보 게임도 만들 수 있다!&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;pre id=&quot;code_1752474101614&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;time.h&amp;gt; //난수를 사용할 수 있는 라이브러리

using namespace std;

void main()
{
	//산술연산자
	// +    더하기
	// -	빼기
	// *	곱하기
	// /	나누기
	// %	나머지
	
	/*
	int playerHP = 100;
	int healRate = 10;
	int enemyAtk = 7;

	cout &amp;lt;&amp;lt; &quot;플레이어 체력: &quot; &amp;lt;&amp;lt; playerHP &amp;lt;&amp;lt; endl;

	playerHP = playerHP - enemyAtk;

	cout &amp;lt;&amp;lt; &quot;플레이어 체력: &quot; &amp;lt;&amp;lt; playerHP &amp;lt;&amp;lt; endl;

	playerHP -= enemyAtk;

	cout &amp;lt;&amp;lt; &quot;플레이어 체력: &quot; &amp;lt;&amp;lt; playerHP &amp;lt;&amp;lt; endl;

	playerHP += healRate;	//playerHP = playerHP + healRate

	cout &amp;lt;&amp;lt; 9 % 7 &amp;lt;&amp;lt; endl;
	*/
	//난수 초기화 시켜주는 명령어(?)
	srand(time(NULL));
	/*
	int num = rand();
	int num2 = rand();

	cout &amp;lt;&amp;lt; num &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; num2 &amp;lt;&amp;lt; endl;
	*/
	/*
	int dice = rand() % 6 + 1;

	cout &amp;lt;&amp;lt; &quot;주사위 값: &quot; &amp;lt;&amp;lt; dice &amp;lt;&amp;lt; endl;

	int result = rand() % 2;

	int lottoNum = rand() % 45 + 1;
	int lottoNum1 = rand() % 45 + 1;
	int lottoNum2 = rand() % 45 + 1;
	int lottoNum3 = rand() % 45 + 1;
	int lottoNum4 = rand() % 45 + 1;
	int lottoNum5 = rand() % 45 + 1;

	cout &amp;lt;&amp;lt; lottoNum &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; lottoNum1 &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; lottoNum2 &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; lottoNum3 &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; lottoNum4 &amp;lt;&amp;lt; endl;
	cout &amp;lt;&amp;lt; lottoNum5 &amp;lt;&amp;lt; endl;
	
	*/
	
	//관계연산자
	// A &amp;gt; B		A는 B보다 크다
	// A &amp;lt; B		A는 B보다 작다
	// A &amp;gt;= B		A는 B보다 같거나 크다
	// A &amp;lt;= B		A는 B보다 같거나 작다
	// A == B		A는 B와 같다

	//논리연산자
	// A &amp;amp;&amp;amp; B		A And B		A도 참이고 B도 참일때
	// A || B		A or B		A나 B 둘 중 하나가 참일때
	// !A			Not A		A가 거짓이면~
	

	//입력
	//cin &amp;gt;&amp;gt; 

	//사냥터 입장 조건 Lv 55이상 인데 초대장이 있어야한다
	/*
	int num;

	cin &amp;gt;&amp;gt; num;
    
    //IF문
	if (num &amp;gt; 100)
	{
		cout &amp;lt;&amp;lt; &quot;100보다 큼&quot; &amp;lt;&amp;lt; endl;
	}
	else if (num &amp;lt;= 100 &amp;amp;&amp;amp; num &amp;gt;= 90)
	{

	}
	else if (num &amp;lt;= 89 &amp;amp;&amp;amp; num &amp;gt;= 80)
	{

	}
	else if (num &amp;lt;= 79 &amp;amp;&amp;amp; num &amp;gt;= 70)
	{

	}
	else
	{

	}
	*/
	//

	//swtich문에는 정수만 사용할 수 있다 
	int number;

	cin &amp;gt;&amp;gt; number;

	switch (number)
	{
		case 0:
			cout &amp;lt;&amp;lt; &quot;0 입력햇네&quot; &amp;lt;&amp;lt; endl;
		break;

		case 1:
			cout &amp;lt;&amp;lt; &quot;1 입력햇네&quot; &amp;lt;&amp;lt; endl;
		break;

		case 2:
		
		break;

		default:
		
		break;
	}
	
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;오늘의 과제 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;오늘 배운 난수를 이용해서 가위바위보 게임을 만들어보자 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. 0 이면 주먹, 1이면 가위, 2면 보 라고 가정한다 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2. 플레이어는 입력받고, 컴퓨터는 난수를 이용해서 조건문으로&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3. 이겼는지, 비겼는지, 졌는지 출력해보자&lt;/span&gt;&lt;/span&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;뭔가 게임 다운 것들을 출력해볼 수 있으니 변수만 배웠을 때 보다 훨씬 재있다고 느꼈다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;가위바위보 게임 로직은 과제로 내주셨다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아주 단순한 게임이지만, 직접 생각해서 짜보려고 하니 약간 어렵기도 했다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 가위바위보 게임 로직이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1752474757029&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;time.h&amp;gt;

using namespace std;

void main()
{
	srand(time(NULL));

	int comNum = rand() % 3; //컴퓨터가 낼 숫자 0, 1, 2
	int playerNum; //내가 입력할 숫자

	cout &amp;lt;&amp;lt; &quot;뭘 낼래 (0 주먹, 1 가위, 2 보)&quot;;
	cin &amp;gt;&amp;gt; playerNum;
                                
	if (comNum == playerNum) cout &amp;lt;&amp;lt; &quot;비겼다&quot; &amp;lt;&amp;lt; endl;

	if (comNum == 0 &amp;amp;&amp;amp; playerNum == 1) cout &amp;lt;&amp;lt; &quot;졌다&quot; &amp;lt;&amp;lt; endl;
	else if (comNum == 0 &amp;amp;&amp;amp; playerNum == 2) cout &amp;lt;&amp;lt; &quot;이겼다&quot; &amp;lt;&amp;lt; endl;
	else if (comNum == 1 &amp;amp;&amp;amp; playerNum == 0) cout &amp;lt;&amp;lt; &quot;이겼다&quot; &amp;lt;&amp;lt; endl;
	else if (comNum == 1 &amp;amp;&amp;amp; playerNum == 2) cout &amp;lt;&amp;lt; &quot;졌다&quot; &amp;lt;&amp;lt; endl;
	else if (comNum == 2 &amp;amp;&amp;amp; playerNum == 0) cout &amp;lt;&amp;lt; &quot;졌다&quot; &amp;lt;&amp;lt; endl;
	else if (comNum == 2 &amp;amp;&amp;amp; playerNum == 1) cout &amp;lt;&amp;lt; &quot;이겼다&quot; &amp;lt;&amp;lt; endl;

}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;정말 몇줄 되지 않는 간단한 로직인데, 만들고 나면 뿌듯하다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;백지에서 생각해내는 게 어려운 것 같다.&amp;nbsp;&lt;/p&gt;</description>
      <category>C++</category>
      <category>c++</category>
      <category>kdt</category>
      <category>가위바위보로직</category>
      <category>국비지원</category>
      <category>비전공자개발</category>
      <category>코딩일기</category>
      <author>|연두|</author>
      <guid isPermaLink="true">https://yeondusdevlog.tistory.com/2</guid>
      <comments>https://yeondusdevlog.tistory.com/2#entry2comment</comments>
      <pubDate>Mon, 14 Jul 2025 15:34:11 +0900</pubDate>
    </item>
  </channel>
</rss>