<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>2mukee Lab</title>
    <link>https://2mukee.tistory.com/</link>
    <description>2mukee 연구소</description>
    <language>ko</language>
    <pubDate>Mon, 3 Aug 2026 22:31:49 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>2mukee</managingEditor>
    <image>
      <title>2mukee Lab</title>
      <url>https://tistory1.daumcdn.net/tistory/4186763/attach/36a19c5026164398878f08f6b947ed20</url>
      <link>https://2mukee.tistory.com</link>
    </image>
    <item>
      <title>정보보안기사에 대해 알아보자</title>
      <link>https://2mukee.tistory.com/1162</link>
      <description>&lt;h1&gt;정보보안기사 (Engineer Information Security)&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;국가기술자격&lt;/strong&gt; / 한국인터넷진흥원(KISA) 출제기준 기반 / 한국방송통신전파진흥원(KCA) 시행&lt;/li&gt;
&lt;li&gt;정보시스템 및 네트워크의 보안 위협을 예방하고 정보 자산을 안전하게 보호하기 위한 전문 인력을 인증하는 국가기술자격증&lt;/li&gt;
&lt;li&gt;보안 정책 수립부터 &lt;strong&gt;네트워크 보안, 시스템 보안, 암호학, 애플리케이션 보안, 침해사고 대응&lt;/strong&gt;까지 전반적인 정보보안을 다루며, 국내 대표 정보보안 자격증 중 하나&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1&gt;기본 정보&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;항목&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;내용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;자격명&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;정보보안기사&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;등급&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;기사&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;시행기관&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;한국방송통신전파진흥원(KCA)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;출제기준&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;한국인터넷진흥원(KISA)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;자격 종류&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;국가기술자격&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;응시 방식&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;필기 + 실기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;난이도&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;★★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;활용 분야&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;보안관제, 침해대응, 보안컨설팅, 개발보안, 시스템보안 등&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;응시 자격&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;다음 응시 자격 중 하나를 충족 해야함&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;응시 조건&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;관련학과 4년제 졸업(예정)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;전문대 졸업 + 실무 경력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;산업기사 취득 + 실무 경력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;동일·유사 직무 경력&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;시험 구성&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;구분&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;내용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;필기&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;객관식 4지선다&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;문항수&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;과목당 20문항 (총 100문항)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;합격 기준&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;과목별 40점 이상 + 평균 60점 이상&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;실기&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;필답형&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;출제 유형&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;서술형, 계산형, 단답형, 사례형&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;시험 시간&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;약 150분&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;필기 시험 과목&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;과목&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;주요 내용&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;자주 출제되는 내용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;시스템 보안&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;운영체제 구조, Linux, Windows, UNIX, 계정관리, 권한관리, 접근통제, 로그관리, 파일시스템, 프로세스, 메모리관리, 시스템 취약점&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SetUID, Sticky Bit, ACL, PAM, sudo, SELinux, Windows Registry, 서비스 관리, 프로세스 권한&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;네트워크 보안&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;TCP/IP, OSI 7계층, Routing, Switching, VLAN, NAT, VPN, Firewall, IDS, IPS, Proxy, Load Balancer&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;TCP 3-way / 4-way Handshake, SYN Flooding, Smurf, LAND, Ping of Death, DDoS, HTTP, HTTPS, FTP, SSH, SMTP, DNS, DHCP, SNMP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;애플리케이션 보안&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQL Injection, XSS, CSRF, SSRF, XXE, Command Injection, Directory Traversal, Session, Cookie, JWT, OAuth, Password Hash, Salt, MFA, OWASP Top 10&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;웹 취약점 및 인증 방식&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;정보보안 일반&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ISMS, ISO27001, 개인정보보호법, 전자서명법, 정보통신망법, 출입통제, CCTV, UPS, 생체인증, 위험분석, 자산관리, 위협, 취약점, 위험평가&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;관리적·물리적 보안 및 위험관리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;암호학&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;AES, DES, 3DES, SEED, ARIA, RSA, ECC, DH, SHA, SHA-2, SHA-3, MD5, SHA-1, PKI, 인증서, CA, OCSP, CRL&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;암호 알고리즘 및 전자서명&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;실기 시험&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;주요 출제 내용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;로그 분석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;네트워크 패킷 분석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;침해사고 대응&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;보안 정책 작성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;접근통제 정책&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;암호 방식 비교&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;공격 대응 절차&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;자주 나오는 공격&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;공격 기법&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQL Injection&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQL문을 조작하여 DB를 공격&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;XSS&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;웹 페이지에 악성 스크립트 삽입&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;CSRF&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;사용자의 권한을 이용한 요청 위조&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;Buffer Overflow&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;버퍼를 초과하여 메모리 변조&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;Race Condition&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;동시 접근으로 발생하는 오류&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;Directory Traversal&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;상위 디렉터리 접근 공격&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;Command Injection&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;운영체제 명령 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SSRF&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;서버가 다른 서버에 요청하도록 유도&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;보안 장비&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;장비&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;역할&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;Firewall&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;접근 제어&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;IDS&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;침입 탐지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;IPS&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;침입 차단&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;WAF&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;웹 공격 차단&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;VPN&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;암호화 통신&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;Proxy&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;중계 서버&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;UTM&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;통합 보안 장비&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SIEM&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;로그 통합 분석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;EDR&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;단말 보안&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;NDR&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;네트워크 탐지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;XDR&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;통합 위협 대응&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;반드시 암기해야 하는 포트 번호&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;서비스&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;포트&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;FTP&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;20, 21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SSH&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;Telnet&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SMTP&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;DNS&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;53&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;DHCP&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;67, 68&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;HTTP&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;POP3&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;110&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;IMAP&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;143&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;HTTPS&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;443&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SMB&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;445&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;RDP&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;3389&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;대표 암호 알고리즘&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;구분&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;대표 알고리즘&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;장점&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;단점&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;대칭키&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;AES, DES, 3DES, SEED, ARIA&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;빠른 속도&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;키 관리가 어려움&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;공개키&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;RSA, ECC, ElGamal&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;키 분배가 쉬움&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;처리 속도가 느림&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;Hash&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SHA-256, SHA-512, SHA-3, bcrypt, Argon2&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;복호화 불가능&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;보안 인증&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;인증&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;ISMS&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;정보보호 관리체계 인증&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;ISMS-P&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;정보보호 + 개인정보보호 인증&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;ISO 27001&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;국제 정보보안 관리체계&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;공부 비중 추천&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;과목&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;비중&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;시스템 보안&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;★★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;네트워크 보안&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;★★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;암호학&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;★★★★☆&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;애플리케이션 보안&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;★★★★☆&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;정보보호 관리&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;★★★☆☆&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;추천 공부 순서&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;순서&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;학습 내용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;운영체제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;네트워크&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;암호학&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;웹 보안&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;5&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;시스템 보안&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;법규 및 관리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;7&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;기출문제 반복&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;추천 공부법&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;순서&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;학습 방법&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;TCP/IP 완벽 이해&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Linux 명령어 암기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Windows 보안 이해&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;암호 알고리즘 비교&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;5&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;공격 기법 암기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;대응 방법 암기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;7&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;기출문제 최소 5~10회 반복&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;8&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;실기 서술형 답안 작성 연습&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
      <category>자격증/정보보안기사</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1162</guid>
      <comments>https://2mukee.tistory.com/1162#entry1162comment</comments>
      <pubDate>Sat, 11 Jul 2026 11:40:21 +0900</pubDate>
    </item>
    <item>
      <title>SQLP를 준비하는 mySQL 개발자를 위한 오라클 SQL와 mySQL의 차이</title>
      <link>https://2mukee.tistory.com/1161</link>
      <description>&lt;h1&gt;1. NULL 처리&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Oracle&lt;/th&gt;
&lt;th&gt;MySQL / MariaDB&lt;/th&gt;
&lt;th&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;NVL(expr1, expr2)&lt;/td&gt;
&lt;td&gt;IFNULL(expr1, expr2)&lt;/td&gt;
&lt;td&gt;NULL이면 다른 값 반환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NVL2(expr, value1, value2)&lt;/td&gt;
&lt;td&gt;IF(expr IS NULL, value2, value1)&lt;/td&gt;
&lt;td&gt;NULL 여부에 따라 반환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;COALESCE()&lt;/td&gt;
&lt;td&gt;COALESCE()&lt;/td&gt;
&lt;td&gt;동일 (표준 SQL)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT NVL(name, &amp;#39;Unknown&amp;#39;)
FROM member;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT IFNULL(name, &amp;#39;Unknown&amp;#39;)
FROM member;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;표준 SQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT COALESCE(name, &amp;#39;Unknown&amp;#39;)
FROM member;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;2. 조건문&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;DECODE(job,
       &amp;#39;MANAGER&amp;#39;, &amp;#39;관리자&amp;#39;,
       &amp;#39;SALESMAN&amp;#39;, &amp;#39;영업&amp;#39;,
       &amp;#39;기타&amp;#39;)&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;CASE job
    WHEN &amp;#39;MANAGER&amp;#39; THEN &amp;#39;관리자&amp;#39;
    WHEN &amp;#39;SALESMAN&amp;#39; THEN &amp;#39;영업&amp;#39;
    ELSE &amp;#39;기타&amp;#39;
END&lt;/code&gt;&lt;/pre&gt;&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;SQLP에서는 CASE를 더 많이 사용한다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr&gt;
&lt;h1&gt;3. 현재 날짜&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Oracle&lt;/th&gt;
&lt;th&gt;MySQL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;SYSDATE&lt;/td&gt;
&lt;td&gt;NOW()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CURRENT_DATE&lt;/td&gt;
&lt;td&gt;CURRENT_DATE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT SYSDATE
FROM dual;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT NOW();&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;4. 문자열 연결&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT first_name || last_name
FROM member;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT CONCAT(first_name, last_name)
FROM member;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;5. LIMIT&lt;/h1&gt;
&lt;h2&gt;Oracle (12c 이상)&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT *
FROM member
FETCH FIRST 10 ROWS ONLY;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT *
FROM member
LIMIT 10;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;6. OFFSET&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT *
FROM member
OFFSET 20 ROWS
FETCH NEXT 10 ROWS ONLY;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT *
FROM member
LIMIT 20,10;

-- 또는
LIMIT 10 OFFSET 20;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;7. ROWNUM&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT *
FROM member
WHERE ROWNUM &amp;lt;= 10;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;LIMIT 10;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;8. AUTO_INCREMENT&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;CREATE SEQUENCE member_seq;

INSERT INTO member
VALUES(member_seq.NEXTVAL,&amp;#39;Kim&amp;#39;);&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;id INT AUTO_INCREMENT PRIMARY KEY&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;9. DUAL 테이블&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SELECT SYSDATE
FROM dual;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;-- MySQL에서는 DUAL이 없어도 된다.
SELECT NOW();&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;10. 날짜 더하기&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SYSDATE + 1&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;DATE_ADD(NOW(), INTERVAL 1 DAY)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;11. 날짜 차이&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;SYSDATE - hire_date&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;DATEDIFF(NOW(), hire_date)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;12. 문자열 길이 (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;LENGTH(name)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;13. 대문자/소문자 (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;UPPER(name)

LOWER(name)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;14. 문자열 자르기 (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;SUBSTR(name,1,3)

-- MySQL에서는 아래 쿼리도 가능
SUBSTRING(name,1,3)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;15. 문자열 위치&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;INSTR(name,&amp;#39;A&amp;#39;)&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;LOCATE(&amp;#39;A&amp;#39;,name)

-- 또는
INSTR(name,&amp;#39;A&amp;#39;)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;16. REPLACE (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;REPLACE(name,&amp;#39;A&amp;#39;,&amp;#39;B&amp;#39;)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;17. TRIM (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;TRIM(name)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;18. ROUND (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;ROUND(salary)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;19. CEIL / FLOOR (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;CEIL()

FLOOR()&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;20. MOD (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;MOD(10,3)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;21. CAST (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;CAST(age AS CHAR)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;22. TO_CHAR&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;TO_CHAR(salary)&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;CAST(salary AS CHAR)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;23. TO_DATE&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;TO_DATE(&amp;#39;2025-01-01&amp;#39;,&amp;#39;YYYY-MM-DD&amp;#39;)&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;STR_TO_DATE(&amp;#39;2025-01-01&amp;#39;,&amp;#39;%Y-%m-%d&amp;#39;)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;24. TO_NUMBER&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;TO_NUMBER(&amp;#39;100&amp;#39;)&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;CAST(&amp;#39;100&amp;#39; AS SIGNED)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;25. 실행계획&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;EXPLAIN PLAN FOR
SELECT ...&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;EXPLAIN
SELECT ...&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;26. MERGE&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;MERGE INTO ...&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;INSERT ...
ON DUPLICATE KEY UPDATE&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;27. UPDATE JOIN&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;MERGE

-- 또는
UPDATE
(
    SELECT ...
)&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;UPDATE A
JOIN B
ON ...
SET ...&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;28. DELETE JOIN&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;DELETE
WHERE EXISTS(...)&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;DELETE A
FROM A
JOIN B&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;29. Sequence&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;member_seq.NEXTVAL

member_seq.CURRVAL&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;AUTO_INCREMENT&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;30. Window Function&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;ROW_NUMBER()

RANK()

DENSE_RANK()

LAG()

LEAD()&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;8 이상 부터 동일하게 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1&gt;31. Common Table Expression&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;WITH temp AS (...)&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;8 이상 부터 동일하게 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1&gt;32. EXISTS (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;WHERE EXISTS (...)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;33. IN (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;WHERE id IN (...)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;34. ANY / ALL (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; ANY()

&amp;gt; ALL()&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;35. 집계 함수 (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;SUM()

AVG()

COUNT()

MAX()

MIN()&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;36. GROUP BY (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;GROUP BY&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;37. HAVING (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;HAVING COUNT(*) &amp;gt; 10&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;38. JOIN (동일)&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;INNER JOIN

LEFT JOIN

RIGHT JOIN

FULL OUTER JOIN

-- FULL OUTER JOIN은 Oracle만 지원 (mySQL 미지원)&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;39. 계층형 조회&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;CONNECT BY

START WITH&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;WITH RECURSIVE&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;40. Pivot&lt;/h1&gt;
&lt;h2&gt;Oracle&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;PIVOT&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;MySQL&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;CASE&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1&gt;SQLP에서 반드시 익혀야 하는 Oracle 문법&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;NVL&lt;/li&gt;
&lt;li&gt;DECODE&lt;/li&gt;
&lt;li&gt;CASE&lt;/li&gt;
&lt;li&gt;ROWNUM&lt;/li&gt;
&lt;li&gt;FETCH FIRST&lt;/li&gt;
&lt;li&gt;DUAL&lt;/li&gt;
&lt;li&gt;TO_CHAR&lt;/li&gt;
&lt;li&gt;TO_DATE&lt;/li&gt;
&lt;li&gt;TO_NUMBER&lt;/li&gt;
&lt;li&gt;SEQUENCE&lt;/li&gt;
&lt;li&gt;CONNECT BY&lt;/li&gt;
&lt;li&gt;MERGE&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>자격증/SQLP</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1161</guid>
      <comments>https://2mukee.tistory.com/1161#entry1161comment</comments>
      <pubDate>Sat, 11 Jul 2026 11:23:13 +0900</pubDate>
    </item>
    <item>
      <title>SQLP에 대해 알아보자</title>
      <link>https://2mukee.tistory.com/1160</link>
      <description>&lt;h1&gt;SQLP (국가공인 SQL 전문가 / SQL Professional)&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;국가공인 민간자격&lt;/strong&gt; / 한국데이터산업진흥원(K-DATA) 시행&lt;/li&gt;
&lt;li&gt;데이터베이스 설계부터 SQL 최적화, 실행계획 분석, 인덱스 설계, 옵티마이저 및 성능 튜닝 능력을 검증하는 국내 최고 수준의 SQL 전문가 자격증&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1&gt;추천 대상&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;대상&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;DBA(Database Administrator)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;데이터 엔지니어&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;백엔드 개발자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;데이터베이스 성능 튜닝 담당자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;시니어 개발자&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;시험 정보&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;항목&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;내용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;자격명&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQLP (SQL Professional)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;주관&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;한국데이터산업진흥원(K-DATA)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;시행&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;데이터자격검정(DataQ)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;자격구분&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;국가공인 민간자격&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;응시자격&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQLD 보유 또는 학력·경력 요건 충족&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;시험방식&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;객관식 + 주관식(서술형)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;시험시간&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;180분 (3시간)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;응시료&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;100,000원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;시험횟수&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;연 2회&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;합격기준&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;총점 75점 이상 + 과목별 40% 이상&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;시험 구성&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;객관식은 문항당 1점이며, 주관식은 문항당 15점으로 부분점수가 인정&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;과목&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;객관식&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;주관식&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;배점&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;데이터 모델링의 이해&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;10문항&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;일부 포함&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;10점&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQL 기본 및 활용&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;20문항&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;-&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;20점&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQL 고급 활용 및 튜닝&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;40문항&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;-&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;40점&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;주관식(서술형)&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;-&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;2문항&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;30점&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;합계&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;70문항&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;2문항&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;100점&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;응시 자격&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;다음 조건 중 하나 이상을 충족해야함&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;응시 조건&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQLD(SQL 개발자) 자격증 보유&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;학사 학위 이상 + 관련 실무 경력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;전문학사 + 관련 실무 경력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;고등학교 졸업 + 관련 실무 경력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;기타 DataQ에서 정한 응시 자격 충족&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;시험 과목&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;과목&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;주요 학습 내용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;데이터 모델링의 이해&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;데이터 모델링, 데이터 독립성, ERD, 엔터티(Entity), 속성(Attribute), 관계(Relationship), 식별자(PK, FK), 정규화, 반정규화, 관계와 조인, 트랜잭션 모델링, CRUD Matrix, NULL 처리, Natural Key, Surrogate Key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;SQL 기본 및 활용&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;RDBMS, SELECT, WHERE, GROUP BY, HAVING, ORDER BY, JOIN, 표준 JOIN, 서브쿼리, 집합 연산, 그룹 함수, 윈도우 함수, Top-N Query, 계층형 질의, PIVOT, 정규표현식, DML, TCL, DDL, DCL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;SQL 고급 활용 및 튜닝&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQL 수행 구조(Parse, Execute, Fetch), 실행계획, Explain Plan, SQL Trace, TKPROF, 인덱스 튜닝, 조인 튜닝, 옵티마이저(CBO), Query Transformation, Cursor, Bind Variable, SQL Rewrite, Partitioning, Lock, Deadlock, Isolation Level, 동시성 제어&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;과목별 핵심 내용&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;과목&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;핵심 키워드&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;데이터 모델링&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ERD, 엔터티, 속성, 관계, PK/FK, 정규화, 반정규화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQL 기본&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SELECT, WHERE, JOIN, GROUP BY, HAVING, ORDER BY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQL 활용&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;서브쿼리, 집합연산, 윈도우 함수, 그룹 함수, PIVOT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQL 튜닝&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;실행계획, 인덱스, 옵티마이저, SQL Rewrite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;트랜잭션&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Lock, Deadlock, Isolation Level, 동시성 제어&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;출제 중요도&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;분야&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;중요도&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;비고&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;데이터 모델링&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;⭐⭐⭐&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;기본 이론&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQL 기본&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;필수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQL 활용&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;필수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;실행계획&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;핵심&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;인덱스&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;핵심&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;옵티마이저&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;핵심&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQL 튜닝&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;핵심&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;Join 튜닝&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;핵심&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;일반적인 준비 기간&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;대상&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;권장 준비 기간&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;SQLD 취득 후 실무 경험자&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;2~3개월&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;개발 경력 3년 이상&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;3~4개월&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;비전공자&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;6개월 이상&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;추천 공부 순서&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;순서&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;학습 내용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;데이터 모델링&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQL 기본 문법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;JOIN 및 서브쿼리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;윈도우 함수 및 그룹 함수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;5&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;실행계획(Explain Plan)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;인덱스 구조 및 튜닝&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;7&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;옵티마이저(CBO)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;8&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQL 튜닝 및 Rewrite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;9&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Lock, Transaction, 동시성 제어&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;10&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;기출문제 및 서술형 답안 작성&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;추천 공부법&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;순서&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;학습 방법&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQLD 내용을 완벽히 복습한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Oracle 실행계획(Explain Plan)을 반복 분석한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;B-Tree 인덱스 구조를 이해한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Nested Loop, Hash, Sort Merge Join의 차이를 익힌다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;5&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;옵티마이저(CBO) 동작 원리를 학습한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQL Rewrite 및 성능 개선 사례를 연습한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;7&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;기출문제를 반복 풀이한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;8&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;서술형 답안을 직접 작성하며 실전 감각을 익힌다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h1&gt;SQLP 난이도&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;항목&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;내용&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;난이도&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;★★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;추천 대상&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;DBA, 데이터 엔지니어, 백엔드 개발자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;특징&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;실행계획 분석, 옵티마이저, 인덱스 설계 및 SQL 튜닝 중심&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;핵심 과목&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;SQL 고급 활용 및 튜닝&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;합격 포인트&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;실행계획 해석, 인덱스 설계, 옵티마이저 이해, 조인 튜닝 능력&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description>
      <category>자격증/SQLP</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1160</guid>
      <comments>https://2mukee.tistory.com/1160#entry1160comment</comments>
      <pubDate>Sat, 11 Jul 2026 11:15:52 +0900</pubDate>
    </item>
    <item>
      <title>프리랜서 개발자에게 필요한 비개발 스킬 Top 10</title>
      <link>https://2mukee.tistory.com/1159</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 커뮤니케이션 능력&lt;/b&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;&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;b&gt;2. 일정 관리 능력&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 문서화 습관&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회의 내용, 작업 범위, 요청 변경사항을 기록 (AI를 활용)&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;&lt;b&gt;4. 질문하는 능력&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. 우선순위 판단력&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;모든 일을 완벽하게 하려 하기보다, 지금 가장 중요한 일을 먼저 처리하는 능력이 필요&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;&lt;b&gt;6. 협상력&lt;/b&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;&quot;안됩니다&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7. 관계 관리 능력&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;8. 문제 공유 타이밍&lt;/b&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;&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;b&gt;9. 자기 관리 능력&lt;/b&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;&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;b&gt;10. 브랜딩 감각&lt;/b&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;&quot;어떤 문제를 잘 해결하는 개발자인가&quot;를 명확하게 보여주는 능력이 필요&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;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;b&gt;Reference&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://okky.kr/spaces/freelancer-dev/1559499&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://okky.kr/spaces/freelancer-dev/1559499&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783690985575&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;프리랜서 개발자에게 필요한 비개발 스킬 Top 10 | OKKY 커뮤니티&quot; data-og-description=&quot;1. 커뮤니케이션 능력개발 역량만큼, 아니 어쩌면 그보다 더 중요한 기본 역량.일정, 이슈, 우선순위를 상대가 헷갈리지 않도록 명확하게 전달할 수 있어야 함.발주처와 팀이 개발자를 신뢰할 수&quot; data-og-host=&quot;okky.kr&quot; data-og-source-url=&quot;https://okky.kr/spaces/freelancer-dev/1559499&quot; data-og-url=&quot;https://okky.kr/spaces/freelancer-dev/1559499&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dsfxiY/dJMb8SpT0NE/BAGMangH86uJSHnIKakGfK/img.png?width=1672&amp;amp;height=941&amp;amp;face=765_506_845_594,https://scrap.kakaocdn.net/dn/FfDsV/dJMb8PGH9It/unHEIfPRKMNsqLFirIKvVK/img.png?width=1672&amp;amp;height=941&amp;amp;face=765_506_845_594,https://scrap.kakaocdn.net/dn/cLSoN1/dJMb8SpT0ND/kLTrfoWnRKmiPfkP4l6BFK/img.png?width=1500&amp;amp;height=1500&amp;amp;face=0_0_1500_1500&quot;&gt;&lt;a href=&quot;https://okky.kr/spaces/freelancer-dev/1559499&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://okky.kr/spaces/freelancer-dev/1559499&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dsfxiY/dJMb8SpT0NE/BAGMangH86uJSHnIKakGfK/img.png?width=1672&amp;amp;height=941&amp;amp;face=765_506_845_594,https://scrap.kakaocdn.net/dn/FfDsV/dJMb8PGH9It/unHEIfPRKMNsqLFirIKvVK/img.png?width=1672&amp;amp;height=941&amp;amp;face=765_506_845_594,https://scrap.kakaocdn.net/dn/cLSoN1/dJMb8SpT0ND/kLTrfoWnRKmiPfkP4l6BFK/img.png?width=1500&amp;amp;height=1500&amp;amp;face=0_0_1500_1500');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프리랜서 개발자에게 필요한 비개발 스킬 Top 10 | OKKY 커뮤니티&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. 커뮤니케이션 능력개발 역량만큼, 아니 어쩌면 그보다 더 중요한 기본 역량.일정, 이슈, 우선순위를 상대가 헷갈리지 않도록 명확하게 전달할 수 있어야 함.발주처와 팀이 개발자를 신뢰할 수&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;okky.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/Development</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1159</guid>
      <comments>https://2mukee.tistory.com/1159#entry1159comment</comments>
      <pubDate>Fri, 10 Jul 2026 22:49:14 +0900</pubDate>
    </item>
    <item>
      <title>37signals의 의사결정 가이드</title>
      <link>https://2mukee.tistory.com/1158</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;선요약&lt;/b&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;&quot;정말 결정이 필요한가&quot;, &quot;올바른 사람이 결정하는가&quot;처럼 결정의 전제 자체를 점검하는 38개 질문으로 구성&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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 회사와 의사 결정에 대한 관점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 결정의 필요성 자체 점검&lt;/b&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;애초에 틀린 결정이라는게 존재하기는 하는지&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;b&gt;3. 누가 결정해야 하는가&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 지연, 망설임, 타이밍&lt;/b&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;그 망설임이 무엇을 드러내는지&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 결정을 90일 전에 내렸다면 오늘 어디에 있을지&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;b&gt;5. 대안, 관점, 직감&lt;/b&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;주로 데이터 기반 결정인지, 직감 기반 결정인지 구분&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;b&gt;6. 규모, 가역성, 단순화&lt;/b&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;고려 대상에서 일부를 제거해 결정을 더 쉽게 만들 수 있는지&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;b&gt;7. 미래, 결과의 가시성&lt;/b&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;결정 후 기대되는 점과 두려운 점은 무엇인지&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;8. 영향, 파급효과, 업무량&lt;/b&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;외부의 누군가가 의존하는 사안인지, 자체적으로 만든 결정인지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고객에게 미치는 영향과 우리에게 미치는 영향을 비교&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;X,Y,Z를 고려하지 않으면 후회할 부분이 있는지&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;9. 근거, 원칙, 비용&lt;/b&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;노력 대비 보상이 그만한 가치가 있는지&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;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;b&gt;Reference&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://news.hada.io/topic?id=30872&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://news.hada.io/topic?id=30872&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783690434984&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;37signals의 의사결정 가이드 | GeekNews&quot; data-og-description=&quot;회사를 사람들의 집단과 결정의 집합이라는 두 가지로 정의, 그 사람들이 어떻게 결정하느냐가 곧 비즈니스를 운영하는 기술 매일, 온종일 반복하는 단 하나의 일이 결정이며, 이를 위한 일반 &quot; data-og-host=&quot;news.hada.io&quot; data-og-source-url=&quot;https://news.hada.io/topic?id=30872&quot; data-og-url=&quot;https://news.hada.io/topic?id=30872&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bBxRW4/dJMb8Z3DrfM/caAQTkKCOziCStS4r3SyQ1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/Yg7wO/dJMb88GgZz8/olVoeVXArERTGw0KRX0pkk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://news.hada.io/topic?id=30872&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://news.hada.io/topic?id=30872&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bBxRW4/dJMb8Z3DrfM/caAQTkKCOziCStS4r3SyQ1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/Yg7wO/dJMb88GgZz8/olVoeVXArERTGw0KRX0pkk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;37signals의 의사결정 가이드 | GeekNews&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;회사를 사람들의 집단과 결정의 집합이라는 두 가지로 정의, 그 사람들이 어떻게 결정하느냐가 곧 비즈니스를 운영하는 기술 매일, 온종일 반복하는 단 하나의 일이 결정이며, 이를 위한 일반&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;news.hada.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>데브옵스/DevOps</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1158</guid>
      <comments>https://2mukee.tistory.com/1158#entry1158comment</comments>
      <pubDate>Fri, 10 Jul 2026 22:42:42 +0900</pubDate>
    </item>
    <item>
      <title>extends가 진짜 의미하는 것</title>
      <link>https://2mukee.tistory.com/1157</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;선요약&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 타입스크립트의 모든 타입은 unknown부터 never까지 계층을 이루며, 좁은 타입에서 넓은 타입으로만 안전하게 할당됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 객체 타입은 이름이 아니라 구조를 기준으로 호환성을 판단하며, extends 역시 결국 &quot;할당 가능한가?&quot;를 검사하는 문법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Conditional Type, 제네릭 제약, 타입 좁히기는 모두 같은 타입 계층과 호환성 규칙 위에서 동작하는 개념&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;&lt;b&gt;unknown과 never&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타입 계층도의 맨 꼭대기에는 unknown이, 맨바닥에는 never가 위치&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;&lt;b&gt;unknown&lt;/b&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;어떤 값이든 unknown 타입 변수에 할당 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부 API로 부터 어떤 형태의 데이터가 들어올지 알 수 ㅇ벗는 상황에서 유용하게 사용&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;모든 값을 받아들일 수 있따는 점에서 any와 비슷해 보이지만,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;unknown 타입의 값은 다른 타입 변수에 할당 할 수 없음&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;&lt;b&gt;never&lt;/b&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;절대 존재할 수 없는 값을 나타내며, 어떤 값도 never 타입 변수에 할당할 수 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 never 타입이 되는 대표적인 경우는 항상 예외를 던지거나 무한 루프를 도는 함수의 반환 타입&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 never 자체는 모든&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;&lt;b&gt;any&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;any는 상하 관계로 설명할 수 있는 타입이 아닌, 타입 검사 자체를 우회하는 특별한 타입&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 타입에 할당 할 수 있고, 모든 타입으로 부터 할당받을 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;unknown과 never가 계층 규칙을 철저히 따르면서 안정성을 보장하는 반면, any는 그 규칙 자체를 비활성화함&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;any를 사용하면 타입 검사가 사실 상 무력화됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타입스크립트를 사용하는 가장 큰 이유가 타입 안정성인데, any는 안정성을 스스로 포기하는 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 가능한 한 unknown으로 대체하고 타입 좁히기를 통해 안전하게 사용함을 권장&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;&lt;b&gt;기본 타입들의 위치&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;unknown과 never 사이에는 string, number, boolean 같은 원시 타입이 존재하고,&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;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;b&gt;타입 호환성&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업 캐스팅&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다운 캐스팅&lt;/b&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;&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;&lt;b&gt;extends&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;extends는 주로 &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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Conditional Type의 extends&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1783690188717&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;type IsString&amp;lt;T&amp;gt; = T extends string ? true : false;&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;T가 string의 서브타입인가?를 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, T가 string에 할당 가능한가를 묻는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타입 계층도에서 T가 string 보다 더 좁은 위치에 있으면 참&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;hello&quot;가 true가 되는 이유는 리터럴 타입이 원시 타입의 서브타입이기 때문&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Exclude의 구현에도 같은 원리가 적용&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;b&gt;제네릭 제약 조건의 extends&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1783690320220&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function getLength&amp;lt;T extends { length: number }&amp;gt;(arg: T): number {
  return arg.length;
}&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;T는 { length: number }의 서브타입이어야 한다는 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;T가 최소한 length: number 프로퍼티를 가지고 있어야 한다는 의미&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;&lt;b&gt;Reference&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://yozm.wishket.com/magazine/detail/3807/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://yozm.wishket.com/magazine/detail/3807/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783689361215&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;타입 계층과 호환성, extends가 진짜 의미하는 것 | 요즘IT&quot; data-og-description=&quot;타입스크립트를 사용하다 보면 extends라는 키워드를 다양한 곳에서 만나게 됩니다. Conditional Type에서는 T extends U ? X : Y 형태로, 제네릭에서는 T extends string 같은 제약 조건으로 등장합니다. 두 경&quot; data-og-host=&quot;yozm.wishket.com&quot; data-og-source-url=&quot;https://yozm.wishket.com/magazine/detail/3807/&quot; data-og-url=&quot;https://yozm.wishket.com/magazine/detail/3807/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/q6T5s/dJMb9aKQTD2/nlxxHSY6HW7BlhZK23yax1/img.png?width=1645&amp;amp;height=956&amp;amp;face=0_0_1645_956,https://scrap.kakaocdn.net/dn/TibPo/dJMb83SuWOA/dZ4R9CQWoFOHDxxrYeuz30/img.png?width=1645&amp;amp;height=956&amp;amp;face=0_0_1645_956,https://scrap.kakaocdn.net/dn/brT5PR/dJMb82MO5vN/b8bcvGYH7j1Czx0W4FvKk0/img.png?width=1536&amp;amp;height=1024&amp;amp;face=0_0_1536_1024&quot;&gt;&lt;a href=&quot;https://yozm.wishket.com/magazine/detail/3807/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://yozm.wishket.com/magazine/detail/3807/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/q6T5s/dJMb9aKQTD2/nlxxHSY6HW7BlhZK23yax1/img.png?width=1645&amp;amp;height=956&amp;amp;face=0_0_1645_956,https://scrap.kakaocdn.net/dn/TibPo/dJMb83SuWOA/dZ4R9CQWoFOHDxxrYeuz30/img.png?width=1645&amp;amp;height=956&amp;amp;face=0_0_1645_956,https://scrap.kakaocdn.net/dn/brT5PR/dJMb82MO5vN/b8bcvGYH7j1Czx0W4FvKk0/img.png?width=1536&amp;amp;height=1024&amp;amp;face=0_0_1536_1024');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;타입 계층과 호환성, extends가 진짜 의미하는 것 | 요즘IT&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;타입스크립트를 사용하다 보면 extends라는 키워드를 다양한 곳에서 만나게 됩니다. Conditional Type에서는 T extends U ? X : Y 형태로, 제네릭에서는 T extends string 같은 제약 조건으로 등장합니다. 두 경&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;yozm.wishket.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript &amp;amp; TypeScript</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1157</guid>
      <comments>https://2mukee.tistory.com/1157#entry1157comment</comments>
      <pubDate>Fri, 10 Jul 2026 22:32:37 +0900</pubDate>
    </item>
    <item>
      <title>개발자가 글을 잘 쓴다고 판단할 수 있는 기준</title>
      <link>https://2mukee.tistory.com/1156</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 목적이 분명한가&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좋은 개발자 글은 왜 쓰는 글인지 바로 보임&lt;/p&gt;
&lt;pre id=&quot;code_1783688627559&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;나쁜 예:
로그인 관련해서 확인한 내용 공유드립니다.

좋은 예:
로그인 실패 시 오류 메시지가 표시되지 않는 문제가 있어 원인과 수정 방향을 공유드립니다.&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;
&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;b&gt;2. 독자가 바로 이해할 수 있는가&lt;/b&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;pre id=&quot;code_1783688676229&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;어떤 기능인가
어떤 화면인가
어떤 버전인가
어떤 조건에서 발생했는가
어떤 결과가 나왔는가
무엇을 확인해야 하는가&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;
&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;b&gt;3. 사실과 의견을 구분하는가&lt;/b&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;pre id=&quot;code_1783688710460&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;사실:
Android 빌드에서 로그인 실패 시 오류 팝업이 표시되지 않습니다.

의견:
현재 UX상 사용자가 실패 원인을 알기 어렵습니다.

추측:
클라이언트에서 실패 응답을 UI로 연결하지 않은 가능성이 있습니다.&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;
&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;b&gt;4. 애매한 표현을 구체적인 정보로 바꾸는가&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자의 글에서 가장 흔한 문제는 애매한 표현&lt;/p&gt;
&lt;pre id=&quot;code_1783688742553&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;나쁜 예:
게임이 느립니다.

좋은 예:
보스전에서 탄환이 500개 이상 생성되면 FPS가 60에서 32로 떨어집니다.

나쁜 예:
거의 완료했습니다.

좋은 예:
기본 이동과 공격 기능은 완료했고, 피격 처리와 사운드 연결이 남아 있습니다.&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;
&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;b&gt;5. 읽은 사람이 바로 행동할 수 있는가&lt;/b&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;README를 읽은 사람은 프로젝트를 실행할 수 있어야 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드 리뷰 코멘트를 읽은 사람은 무엇을 고쳐야하는지 알아야 한다&lt;/p&gt;
&lt;pre id=&quot;code_1783688818772&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;나쁜 예:
확인 부탁드립니다.

좋은 예:
Android 빌드에서 잘못된 비밀번호 입력 시 오류 팝업이 표시되는지 확인 부탁드립니다.&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;
&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;b&gt;6. 구조가 정리되어 있는가&lt;/b&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;pre id=&quot;code_1783688856528&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;제목
요약
발생 환경
재현 순서
기대 결과
실제 결과
로그
첨부 자료
추정 원인&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;- 기술 선택 문서에 좋은 구조&lt;/p&gt;
&lt;pre id=&quot;code_1783688871603&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;문제 상황
선택지
비교 기준
장점과 단점
최종 선택
선택 이유
위험 요소
후속 작업&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;
&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;b&gt;7. 제목만 봐도 핵심이 보이는가&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제목은 글의 입구&lt;/p&gt;
&lt;pre id=&quot;code_1783688897096&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;나쁜 예:
로그인 문제

좋은 예:
Android 빌드에서 로그인 실패 시 오류 팝업이 표시되지 않음

나쁜 예:
성능 개선 보고

좋은 예:
오브젝트 풀링 적용 후 보스전 FPS가 32에서 58로 개선됨&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;
&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;b&gt;8. 기술적 정확성이 있는가&lt;/b&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;pre id=&quot;code_1783688930660&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;엔진 버전
라이브러리 버전
API 이름
파일 경로
클래스 이름
메서드 이름
설정 위치
명령어
오류 메시지
수치
테스트 결과&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;
&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;b&gt;9. 필요한 만큼만 친절한가&lt;/b&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;기술 블로그라면 문제 해결 과정이 필요하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API 문서라면 예외 상황과 응답 형식이 중요하다&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;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;b&gt;10. 협업을 덜 꼬이게 만드는가&lt;/b&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;&quot;이 글이 협업을 더 쉽게 만드는가?&quot;&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;결국 개발자가 글을 잘쓴다는 평가는 &quot;글이 멋있다&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;&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;&lt;b&gt;개발자 글쓰기 평가표&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1783689283431&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;개발자 글쓰기 평가 기준

1. 목적
- 이 글이 왜 쓰였는지 바로 알 수 있는가?

2. 독자 이해
- 처음 읽는 사람도 핵심을 이해할 수 있는가?

3. 구체성
- 애매한 표현 대신 조건, 수치, 대상, 결과가 들어 있는가?

4. 정확성
- 버전, 경로, 코드, 로그, 수치가 정확한가?

5. 구조
- 글의 종류에 맞는 순서로 정리되어 있는가?

6. 행동 가능성
- 읽은 사람이 다음에 무엇을 해야 하는지 알 수 있는가?

7. 사실과 의견 구분
- 확인한 사실, 작성자의 판단, 추측이 구분되어 있는가?

8. 간결함
- 불필요한 문장과 반복 표현이 줄어 있는가?

9. 제목
- 제목만 보고 글의 핵심을 예상할 수 있는가?

10. 협업 효과
- 이 글이 질문, 오해, 재작업을 줄이는가?&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;
&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;b&gt;한 줄 요약&lt;/b&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;&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;&lt;b&gt;Reference&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://wikidocs.net/367737&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wikidocs.net/367737&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783688618639&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Chapter 07. 개발자가 글을 잘 쓴다고 판단할 수 있는 기준&quot; data-og-description=&quot;## 1. 목적이 분명한가 좋은 개발자 글은 왜 쓰는 글인지 바로 보입니다. 예를 들어 글의 목적이 다음 중 무엇인지 명확해야 합니다. &amp;#96;&amp;#96;&amp;#96;text 문제 공유 버그 재현 &amp;hellip;&quot; data-og-host=&quot;wikidocs.net&quot; data-og-source-url=&quot;https://wikidocs.net/367737&quot; data-og-url=&quot;https://wikidocs.net/367737&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dx0RSo/dJMb887kFXA/97xCKctxVKm7SvSzlXizCK/img.jpg?width=1086&amp;amp;height=1416&amp;amp;face=0_0_1086_1416&quot;&gt;&lt;a href=&quot;https://wikidocs.net/367737&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wikidocs.net/367737&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dx0RSo/dJMb887kFXA/97xCKctxVKm7SvSzlXizCK/img.jpg?width=1086&amp;amp;height=1416&amp;amp;face=0_0_1086_1416');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Chapter 07. 개발자가 글을 잘 쓴다고 판단할 수 있는 기준&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;## 1. 목적이 분명한가 좋은 개발자 글은 왜 쓰는 글인지 바로 보입니다. 예를 들어 글의 목적이 다음 중 무엇인지 명확해야 합니다. ```text 문제 공유 버그 재현 &amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wikidocs.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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>개발/Development</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1156</guid>
      <comments>https://2mukee.tistory.com/1156#entry1156comment</comments>
      <pubDate>Fri, 10 Jul 2026 22:15:12 +0900</pubDate>
    </item>
    <item>
      <title>AI와 함께 일하며 복리처럼 쌓아 성장하는 법</title>
      <link>https://2mukee.tistory.com/1155</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 컨텍스트를 인프라로 구축&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 코드를 ~/src에, 지식 작업을 ~/vault(projects/, notes/, kb/ 등)에 정리하면 모델이 grep이나 glob으로 컨텍스트를 검색하기 쉬워짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조직의 컨텍스트 (Slack, Drive, Mail 등)를 MCP로 모델에 연결 가능&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;새 세션마다 모델은 백지 상태에서 시작하므로, 프로젝트별 CLAUDE.md를 신입 온보딩 문서처럼 작성해야함&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; INDEX.md, TODOS.md 등 특정 주제 노트 순으로 읽기 순서를 지정&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;~/vault: 프로젝트 상태, 산출물, 도메인 지식 등 사실 정보 저장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;~/.claude (CLAUDE.md, skills/, guides/): 선호도, 워크플로, 개인 취향 등 설정 저장&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;&lt;b&gt;2. 취향을 설정으로 인코딩&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;~/.claude/CLAUDE.md 활용&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;&lt;b&gt;디렉터리 별 스코프 구분&lt;/b&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;레포 루트: 린팅, 네이밍, PR 컨벤션 등 레포별 규칙&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 디렉터리: 디렉터리 구조, 도메인 지식 등 프로젝트 특화 컨텍스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클로드 코드는 하위 디렉터리에서 시작하면 트리를 올라가며 각 CLAUDE.md를 로딩&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;b&gt;CLAUDE.md가 길어질 때의 분리 전략&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;긴 CLAUDE.md는 매 세션마다 전체를 로딩하는 컨텍스트 세금이됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;@import 대신 CLAUDE.md에 &quot;관련 시 읽기&quot; 형태로 가이드 파일 경로만 명시하여 lazy loading 구현&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;b&gt;주 1회 이상 반복 작업은 스킬로 전환&lt;/b&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;/polish, /write, /daily, SKILL.md&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;b&gt;스킬 부트스트래핑 방법&lt;/b&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;&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;b&gt;트랜스크립트를 통한 스킬 개선&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 버전은 원본 세션에 과적합(overfit) 되는 것이 정상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SKILL.md를 직접 편집하지 말고, 세션 내에서 교정하여 before-and,after 쌍이 트랜스크립트에 축적 되도록함&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;모든 작업에 이 컨텍스트가 필요한 것은 아님&lt;/b&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;&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;&lt;b&gt;3. 자율성을 위한 검증&lt;/b&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;브라우저 렌더링 출력이면 Claude in Chrome으로 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker 이미지 빌드 시 에러를 읽고 Dockerfile을 수정 후 재빌드&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;&lt;b&gt;4. 위임을 통한 확장&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;점점 더 큰 작업 단위를 위임&lt;/b&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;더 강력한 모델에는 의도, 제약 조건, 성공 기준을 사전에 설명하고 모델이 end-to-end로 실행하도록 위임해야함&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;&lt;b&gt;병렬 세션 운영과 병목 파악&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;큰 작업 위임으로 동시에 3~6개 세션 병렬 실행 가능&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;&lt;b&gt;Reference&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://news.hada.io/topic?id=29606&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://news.hada.io/topic?id=29606&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783686243005&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;AI와 함께 일하며 복리처럼 쌓아 성장하는 법 | GeekNews&quot; data-og-description=&quot;AI와의 협업에서 컨텍스트 제공, 취향 설정, 검증 자동화, 위임 확대, 피드백 루프라는 다섯 가지 원칙을 체계적으로 정리한 실무 가이드 모든 작업 산출물(코드, 문서, 분석, 결정)이 다음 세션의&quot; data-og-host=&quot;news.hada.io&quot; data-og-source-url=&quot;https://news.hada.io/topic?id=29606&quot; data-og-url=&quot;https://news.hada.io/topic?id=29606&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/YpLAm/dJMb85W5h3Y/1UowYGKEjkso6Jk4kjEKn1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bv0ADy/dJMb86PdF4Y/gkWz2hEpZecE97i8hWEgM0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://news.hada.io/topic?id=29606&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://news.hada.io/topic?id=29606&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/YpLAm/dJMb85W5h3Y/1UowYGKEjkso6Jk4kjEKn1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bv0ADy/dJMb86PdF4Y/gkWz2hEpZecE97i8hWEgM0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AI와 함께 일하며 복리처럼 쌓아 성장하는 법 | GeekNews&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AI와의 협업에서 컨텍스트 제공, 취향 설정, 검증 자동화, 위임 확대, 피드백 루프라는 다섯 가지 원칙을 체계적으로 정리한 실무 가이드 모든 작업 산출물(코드, 문서, 분석, 결정)이 다음 세션의&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;news.hada.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/AI</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1155</guid>
      <comments>https://2mukee.tistory.com/1155#entry1155comment</comments>
      <pubDate>Fri, 10 Jul 2026 21:35:14 +0900</pubDate>
    </item>
    <item>
      <title>바이브 코딩 관련 좋은 글 모음</title>
      <link>https://2mukee.tistory.com/1154</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.samsungsds.com/kr/insights/essential-vibe-coding-tools.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.samsungsds.com/kr/insights/essential-vibe-coding-tools.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783685909785&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;지능형 지식 생태계를 완성하는 바이브 코딩 도구 19선 | 인사이트리포트 | 삼성SDS&quot; data-og-description=&quot;정교한 문법 대신 &amp;lsquo;의도&amp;rsquo;와 &amp;lsquo;느낌&amp;rsquo;으로 앱을 구축하는 바이브 코딩의 시대가 열렸습니다. 비즈니스 아이디어를 즉시 현실로 구현하며 앱 개발의 민주화를 이끄는 19가지 혁신 도구를 살펴&quot; data-og-host=&quot;www.samsungsds.com&quot; data-og-source-url=&quot;https://www.samsungsds.com/kr/insights/essential-vibe-coding-tools.html&quot; data-og-url=&quot;https://www.samsungsds.com/kr/insights/essential-vibe-coding-tools.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Mrk7C/dJMb896fDZ2/pkmbpaZYYXKr4bpwEyJYS0/img.png?width=310&amp;amp;height=174&amp;amp;face=0_0_310_174&quot;&gt;&lt;a href=&quot;https://www.samsungsds.com/kr/insights/essential-vibe-coding-tools.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.samsungsds.com/kr/insights/essential-vibe-coding-tools.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Mrk7C/dJMb896fDZ2/pkmbpaZYYXKr4bpwEyJYS0/img.png?width=310&amp;amp;height=174&amp;amp;face=0_0_310_174');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;지능형 지식 생태계를 완성하는 바이브 코딩 도구 19선 | 인사이트리포트 | 삼성SDS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;정교한 문법 대신 &amp;lsquo;의도&amp;rsquo;와 &amp;lsquo;느낌&amp;rsquo;으로 앱을 구축하는 바이브 코딩의 시대가 열렸습니다. 비즈니스 아이디어를 즉시 현실로 구현하며 앱 개발의 민주화를 이끄는 19가지 혁신 도구를 살펴&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.samsungsds.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;a href=&quot;https://wikidocs.net/330866&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wikidocs.net/330866&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783685928866&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;04. 스킬(Skills) 시스템으로 기능 확장하기&quot; data-og-description=&quot;## 스킬(Skills) 시스템으로 기능 확장하기 [TOC] &amp;gt; **이 장에서 배울 것**: 커스텀 스킬 YAML을 작성하고, ClawHub에서 스킬을 검색&amp;middot;설치하며, 스킬 &amp;hellip;&quot; data-og-host=&quot;wikidocs.net&quot; data-og-source-url=&quot;https://wikidocs.net/330866&quot; data-og-url=&quot;https://wikidocs.net/330866&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/1pz1z/dJMb8Z3DqS3/sKR0d2HLQyrMmiMEtmH8Z1/img.jpg?width=426&amp;amp;height=553&amp;amp;face=0_0_426_553&quot;&gt;&lt;a href=&quot;https://wikidocs.net/330866&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wikidocs.net/330866&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/1pz1z/dJMb8Z3DqS3/sKR0d2HLQyrMmiMEtmH8Z1/img.jpg?width=426&amp;amp;height=553&amp;amp;face=0_0_426_553');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;04. 스킬(Skills) 시스템으로 기능 확장하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;## 스킬(Skills) 시스템으로 기능 확장하기 [TOC] &amp;gt; **이 장에서 배울 것**: 커스텀 스킬 YAML을 작성하고, ClawHub에서 스킬을 검색&amp;middot;설치하며, 스킬 &amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wikidocs.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;a href=&quot;https://wikidocs.net/366542&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wikidocs.net/366542&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783685951060&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;2-3. DESIGN.md 해부 &amp;mdash; 섹션별로 다듬기&quot; data-og-description=&quot;&amp;#96;omd:init&amp;#96;이 만들어준 DESIGN.md는 출발점입니다. 이번 장에서는 파일을 직접 열어 각 섹션이 실제 UI 작업에 어떻게 작용하는지 확인하고, 우리 서비스에 맞게 다듬&amp;hellip;&quot; data-og-host=&quot;wikidocs.net&quot; data-og-source-url=&quot;https://wikidocs.net/366542&quot; data-og-url=&quot;https://wikidocs.net/366542&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8Ldx7/dJMb9fZG8Wd/kMleIxKhwrmWnaLBzbghu0/img.jpg?width=598&amp;amp;height=780&amp;amp;face=0_0_598_780&quot;&gt;&lt;a href=&quot;https://wikidocs.net/366542&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wikidocs.net/366542&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8Ldx7/dJMb9fZG8Wd/kMleIxKhwrmWnaLBzbghu0/img.jpg?width=598&amp;amp;height=780&amp;amp;face=0_0_598_780');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;2-3. DESIGN.md 해부 &amp;mdash; 섹션별로 다듬기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;`omd:init`이 만들어준 DESIGN.md는 출발점입니다. 이번 장에서는 파일을 직접 열어 각 섹션이 실제 UI 작업에 어떻게 작용하는지 확인하고, 우리 서비스에 맞게 다듬&amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wikidocs.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;a href=&quot;https://brunch.co.kr/@hailey-kim/17&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://brunch.co.kr/@hailey-kim/17&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783685980182&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;요즘 디자이너들은 무슨 바이브코딩을 할까?&quot; data-og-description=&quot;디자이너의 바이브코딩 트렌드 4가지 | 요새 바이브코딩에 빠졌다. 시작은 작은 토이 프로젝트였다. 디자인 업무를 돕는 피그마 플러그인을 하나 바이브코딩으로 만들어서 사내에 배포해봤는데&quot; data-og-host=&quot;brunch.co.kr&quot; data-og-source-url=&quot;https://brunch.co.kr/@hailey-kim/17&quot; data-og-url=&quot;https://brunch.co.kr/@hailey-kim/17&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/KGdhI/dJMb87gira6/P2ZFgiLshkk0Y6YXofdHKk/img.jpg?width=1024&amp;amp;height=683&amp;amp;face=0_0_1024_683,https://scrap.kakaocdn.net/dn/xTfnu/dJMb87N8Knw/K5ra6CDPB9hMK1KFogCY1k/img.jpg?width=1024&amp;amp;height=683&amp;amp;face=0_0_1024_683,https://scrap.kakaocdn.net/dn/eT3Sy/dJMb8Qex9MQ/gYOEYimTuuDBEcxZpP7gG1/img.png?width=1200&amp;amp;height=620&amp;amp;face=0_0_1200_620&quot;&gt;&lt;a href=&quot;https://brunch.co.kr/@hailey-kim/17&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://brunch.co.kr/@hailey-kim/17&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/KGdhI/dJMb87gira6/P2ZFgiLshkk0Y6YXofdHKk/img.jpg?width=1024&amp;amp;height=683&amp;amp;face=0_0_1024_683,https://scrap.kakaocdn.net/dn/xTfnu/dJMb87N8Knw/K5ra6CDPB9hMK1KFogCY1k/img.jpg?width=1024&amp;amp;height=683&amp;amp;face=0_0_1024_683,https://scrap.kakaocdn.net/dn/eT3Sy/dJMb8Qex9MQ/gYOEYimTuuDBEcxZpP7gG1/img.png?width=1200&amp;amp;height=620&amp;amp;face=0_0_1200_620');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;요즘 디자이너들은 무슨 바이브코딩을 할까?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;디자이너의 바이브코딩 트렌드 4가지 | 요새 바이브코딩에 빠졌다. 시작은 작은 토이 프로젝트였다. 디자인 업무를 돕는 피그마 플러그인을 하나 바이브코딩으로 만들어서 사내에 배포해봤는데&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;brunch.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;a href=&quot;https://okky.kr/user/191669/articles/1558278&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://okky.kr/user/191669/articles/1558278&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783688404570&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;LLM의 작동원리 (How LLMs work) | OKKY&quot; data-og-description=&quot;이 글은 LLM이 어떻게 작동하는지 따라가는 walkthrough임.현대 LLM은 대체로 transformer block을 반복해서 쌓아 만듦.그래서 transformer의 핵심 기계를 이해하면 전체 구조 대부분을 따라갈 수 있음.현대 tr&quot; data-og-host=&quot;okky.kr&quot; data-og-source-url=&quot;https://okky.kr/user/191669/articles/1558278&quot; data-og-url=&quot;https://okky.kr/user/191669/articles/1558278&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mrFJI/dJMb8U85EqF/JPuH1mqQuSjBRlEdiv1c1k/img.jpg?width=1086&amp;amp;height=1448&amp;amp;face=0_0_1086_1448,https://scrap.kakaocdn.net/dn/qfi10/dJMb8ZvNmvw/NIAxQn2oR7VXLpYdhmKbvK/img.jpg?width=1086&amp;amp;height=1448&amp;amp;face=0_0_1086_1448,https://scrap.kakaocdn.net/dn/DRsrL/dJMb8Rkd4tZ/0IqSrExCm5QWYV5iqzC1fK/img.png?width=3000&amp;amp;height=387&amp;amp;face=0_0_3000_387&quot;&gt;&lt;a href=&quot;https://okky.kr/user/191669/articles/1558278&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://okky.kr/user/191669/articles/1558278&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mrFJI/dJMb8U85EqF/JPuH1mqQuSjBRlEdiv1c1k/img.jpg?width=1086&amp;amp;height=1448&amp;amp;face=0_0_1086_1448,https://scrap.kakaocdn.net/dn/qfi10/dJMb8ZvNmvw/NIAxQn2oR7VXLpYdhmKbvK/img.jpg?width=1086&amp;amp;height=1448&amp;amp;face=0_0_1086_1448,https://scrap.kakaocdn.net/dn/DRsrL/dJMb8Rkd4tZ/0IqSrExCm5QWYV5iqzC1fK/img.png?width=3000&amp;amp;height=387&amp;amp;face=0_0_3000_387');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;LLM의 작동원리 (How LLMs work) | OKKY&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 글은 LLM이 어떻게 작동하는지 따라가는 walkthrough임.현대 LLM은 대체로 transformer block을 반복해서 쌓아 만듦.그래서 transformer의 핵심 기계를 이해하면 전체 구조 대부분을 따라갈 수 있음.현대 tr&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;okky.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/AI</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1154</guid>
      <comments>https://2mukee.tistory.com/1154#entry1154comment</comments>
      <pubDate>Fri, 10 Jul 2026 21:19:57 +0900</pubDate>
    </item>
    <item>
      <title>플랫폼 엔지니어링의 모든 것</title>
      <link>https://2mukee.tistory.com/1153</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;플랫폼 엔지니어링이 존재하는 이유&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;과잉 일반화 늪 (Over-General Swamp)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라우드와 OSS가 큐, 오브젝트 스토어, 데이터베이스, CI 러너, 서비스 메시 등 무한한 프리미티브를 제공하면서 각 애플리케이션 팀이 서로 다른 선택을 하게 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 서비스가 자체 배포 파이프라인, 재시도 로직, 모니터링 관례, 미묘하게 잘못된 IAM 바인딩을 갖는 &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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;플랫폼 엔지니어링이 실제로하는 네 가지&lt;/b&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;개발자가 리눅스 커널 전문가가 되지 않고도 자신이 만든 것을 직접 운영할 수 있도록 지원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DevOps는 &quot;개발자가 운영을 소유하라&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;&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;b&gt;다섯가지 기둥&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;큐레이션된 제품 접근 (Curated Prodect Approach)&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;소프트웨어 기반 추상화 (Software-Based Abstractions)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플랫폼은 위키가 아닌 소프트웨어이며, 인터페이스는 API, CLI, SDK&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자가 작은 선언적 파일을 작성하는 것만으로 프로덕션급 서비스를 프로비저닝 할 수 있어야함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CNCF 산하 Score 프로젝트가 대표적 사례&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;워크로드 스펙 하나로 데이터베이스, 토픽, 서비스 계정, 배포를 자동 프로비저닝&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(개발자는 내부적으로 Cloud SQL, Pub/Sub, Cloud Run인지 알 필요 없음)&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;b&gt;OSS 커스터마이징과 메타데이터 레지스트리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바닐라 Argo CD나 Backstate를 그대로 쓰지않고, 조직에 맞는 플러그인, 기본 정책, 통합을 적용해 운영&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메타데이터 레지스트리 (서비스 카탈로그)가 없으면 누가 무엇을 소유하고, 의존 관계가 어떻고, 실제 무엇이 실행 중인지 파악 불가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Backstage가 이 레이어의 사실상 표준 OSS 프레임워크로, 270개 이상 프로덕션에서 운영&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;b&gt;광범위한 사용자 기반 서비스&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;파운데이션으로 운영&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플랫폼이 다운되면 회사가 다운되므로, 24/7 온콜, 실제 SLO, 실제 변경 관리, 지원 부담이 수반&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;&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;&lt;b&gt;시작 시기와 방법&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;플랫폼 팀을 너무 일찍 만들지 말 것&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엔지니어 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;&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;b&gt;기존 인프라 조직 전환&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인프라/SRE 팀을 플랫폼 조직으로 전환할 때 가장 어려운 부분은 기술이 아닌 문화&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;PM을 위에 뿌리고 끝내는 것이 가장 흔한 실패 모드이며, 이는 플랫폼이 아닌 연극을 만들어냄&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;&lt;b&gt;플랫폼 팀 구축&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;네 가지 역할&lt;/b&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;- Software Engineer&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API, SDK, 포털 등 플랫폼의 제품 표면 구축&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;- Systems Engineer&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;- Reliability Engineer&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운영 품질, 온콜, SLO, 관측성에 집중&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;- Systems Specialist&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;&lt;b&gt;채용&lt;/b&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;소프트웨어 역할에는 동일한 레벨 매트릭스를 쓰되, 시스템 스페셜리스트는 시장 가치와 스킬이 소프트웨어 엔지니어 래더에 깔끔하게 매핑되지 않으므로 유연한 직함 적용&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;b&gt;관리자 및 기타 역할&lt;/b&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;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;p data-ke-size=&quot;size16&quot;&gt;PM, 테크니컬 라이터, 개발자 애드보킷, 지원 엔지니어 모두 중요하지만 엔지니어링 팀이 충분히 성숙한 후에 채용&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;&lt;b&gt;실제 우선순위&lt;/b&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;지원 범위를 결정하고 문서화하며 방어 &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;2순위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위키가 아닌 소프트웨어 추상화에 투자 (Score, Crossplane, 자체 SDK 등 실제 API가 있는 소프트웨어) &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;3순위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메타데이터 레지스트리 구축 (Backstage 등으로 무엇이 어디서 실행되고 누가 소유하는지 파악) &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순위&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;5순위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SLO, 온콜, 지원 티어 등 운영을 일급 기능으로 취급 &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;6순위&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;7순위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;격주 성과&amp;middot;도전, 투명한 로드맵, 솔직한 이해관계자 관리 등 무자비한 소통 &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;8순위&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;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;&lt;b&gt;Reference&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://news.hada.io/topic?id=29603&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://news.hada.io/topic?id=29603&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783684810334&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;플랫폼 엔지니어링의 모든 것: 왜 필요하고, 어떻게 구축하며, 성공은 어떤 모습인가 | GeekNews&quot; data-og-description=&quot;내부 엔지니어를 사용자로 삼아 내부 제품을 구축&amp;middot;운영하는 조직적 규율로서, 단순히 DevOps 리브랜딩이나 Kubernetes 클러스터 관리와는 본질적으로 다른 영역 2025 DORA 보고서에 따르면 조직의 90%&quot; data-og-host=&quot;news.hada.io&quot; data-og-source-url=&quot;https://news.hada.io/topic?id=29603&quot; data-og-url=&quot;https://news.hada.io/topic?id=29603&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/pRerQ/dJMb8SpT0eL/xtWRVE7g5zFjF45qIMpSJk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cvj3aU/dJMb9cBTLHg/akdk0Nqj0VAjkXbsdw7V8k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://news.hada.io/topic?id=29603&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://news.hada.io/topic?id=29603&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/pRerQ/dJMb8SpT0eL/xtWRVE7g5zFjF45qIMpSJk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cvj3aU/dJMb9cBTLHg/akdk0Nqj0VAjkXbsdw7V8k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;플랫폼 엔지니어링의 모든 것: 왜 필요하고, 어떻게 구축하며, 성공은 어떤 모습인가 | GeekNews&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;내부 엔지니어를 사용자로 삼아 내부 제품을 구축&amp;middot;운영하는 조직적 규율로서, 단순히 DevOps 리브랜딩이나 Kubernetes 클러스터 관리와는 본질적으로 다른 영역 2025 DORA 보고서에 따르면 조직의 90%&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;news.hada.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/Development</category>
      <author>2mukee</author>
      <guid isPermaLink="true">https://2mukee.tistory.com/1153</guid>
      <comments>https://2mukee.tistory.com/1153#entry1153comment</comments>
      <pubDate>Fri, 10 Jul 2026 21:15:00 +0900</pubDate>
    </item>
  </channel>
</rss>