<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Dev 스토리지</title>
    <link>https://spidey.tistory.com/</link>
    <description>평생 개발하기 위한 저장소</description>
    <language>ko</language>
    <pubDate>Tue, 14 Jul 2026 07:26:54 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>스파이디</managingEditor>
    <image>
      <title>Dev 스토리지</title>
      <url>https://tistory1.daumcdn.net/tistory/4850843/attach/60877e715dbd4e2db307154e27614e89</url>
      <link>https://spidey.tistory.com</link>
    </image>
    <item>
      <title>브라우저 주소창에 URL 입력하면 어떻게 되나요?</title>
      <link>https://spidey.tistory.com/51</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;[ 1단계 - DNS ]&lt;br&gt;&quot;브라우저 캐시 → OS 캐시 → ISP DNS 순서로 IP를 조회하고,&lt;br&gt;캐시에 없으면 루트 DNS까지 올라가서 IP를 가져옵니다&quot;&lt;br&gt;&lt;br&gt;[ 2단계 - 서버 ]&lt;br&gt;&quot;해당 IP 웹서버에 HTTP 요청을 보내고,&lt;br&gt;서버는 DB에서 데이터를 조회해&lt;br&gt;HTML/CSS/JS 등 정적 리소스와 함께 응답합니다&quot;&lt;br&gt;&lt;br&gt;[ 3단계 - 렌더링 ]&lt;br&gt;&quot;브라우저는 HTML을 파싱해 DOM트리,&lt;br&gt;CSS를 파싱해 CSSOM트리를 만들고&lt;br&gt;둘을 합쳐 Render Tree를 구성합니다&lt;br&gt;이후 Layout → Paint → Composite 순으로&lt;br&gt;화면을 그려 사용자에게 제공합니다&quot;&lt;br&gt;&lt;br&gt;[보너스 ]&lt;br&gt;&quot;이 과정에서 JS파일은 메인스레드를 블로킹하기 때문에&lt;br&gt;defer 속성을 활용해 렌더링을 최적화할 수 있습니다&quot;&lt;/p&gt;</description>
      <category>WEB/JS</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/51</guid>
      <comments>https://spidey.tistory.com/51#entry51comment</comments>
      <pubDate>Tue, 7 Apr 2026 09:11:02 +0900</pubDate>
    </item>
    <item>
      <title>[코테/SQL/JS] 7일 완성</title>
      <link>https://spidey.tistory.com/49</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;sql_image.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UYv7s/btsL1zbwr5g/k6u9VPCPAMn0kYOSqc7z8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UYv7s/btsL1zbwr5g/k6u9VPCPAMn0kYOSqc7z8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UYv7s/btsL1zbwr5g/k6u9VPCPAMn0kYOSqc7z8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUYv7s%2FbtsL1zbwr5g%2Fk6u9VPCPAMn0kYOSqc7z8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;350&quot; data-filename=&quot;sql_image.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;학습 방법&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7일 플랜&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.55814%;&quot;&gt;Day 1&lt;/td&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;기본 데이터 정의 및 조작&lt;/td&gt;
&lt;td style=&quot;width: 70.814%;&quot;&gt;&lt;span&gt;테이블 생성 (CREATE TABLE)&lt;/span&gt;&lt;span&gt;, 데이터 삽입 (INSERT INTO)&lt;/span&gt;&lt;span&gt;, 데이터 조회 (SELECT)&lt;/span&gt;&lt;span&gt;, 데이터 수정 (UPDATE)&lt;/span&gt;&lt;span&gt;, 데이터 삭제 (DELETE)&lt;/span&gt;&lt;span&gt;, 기본 조건문 사용 (WHERE)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 7.09302%;&quot;&gt;초급&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.55814%;&quot;&gt;Day 2&lt;/td&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;SELECT 심화&lt;/td&gt;
&lt;td style=&quot;width: 70.814%;&quot;&gt;조건문(AND, OR), 정렬(ORDER BY), 중복 제거(DISTINCT), 기본 연산&lt;/td&gt;
&lt;td style=&quot;width: 7.09302%;&quot;&gt;초급~중급&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.55814%;&quot;&gt;Day 3&lt;/td&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;집계 함수와 그룹화&lt;/td&gt;
&lt;td style=&quot;width: 70.814%;&quot;&gt;COUNT, SUM, AVG, GROUP BY, HAVING&lt;/td&gt;
&lt;td style=&quot;width: 7.09302%;&quot;&gt;중급&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.55814%;&quot;&gt;Day 4&lt;/td&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;다중 테이블 조회&lt;/td&gt;
&lt;td style=&quot;width: 70.814%;&quot;&gt;JOIN (INNER, LEFT, RIGHT), 서브쿼리&lt;/td&gt;
&lt;td style=&quot;width: 7.09302%;&quot;&gt;중급~상급&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.55814%;&quot;&gt;Day 5&lt;/td&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;데이터베이스 설계 및 쿼리 최적화&lt;/td&gt;
&lt;td style=&quot;width: 70.814%;&quot;&gt;인덱스 사용법, 쿼리 실행 계획 (EXPLAIN)&lt;/td&gt;
&lt;td style=&quot;width: 7.09302%;&quot;&gt;상급&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.55814%;&quot;&gt;Day 6&lt;/td&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;실전 SQL 문제&lt;/td&gt;
&lt;td style=&quot;width: 70.814%;&quot;&gt;복잡한 JOIN, 서브쿼리, 집계, 최적화 문제&lt;/td&gt;
&lt;td style=&quot;width: 7.09302%;&quot;&gt;상급&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.55814%;&quot;&gt;Day 7&lt;/td&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;모의 테스트 및 약점 보완&lt;/td&gt;
&lt;td style=&quot;width: 70.814%;&quot;&gt;실전 문제 풀이 및 복습&lt;/td&gt;
&lt;td style=&quot;width: 7.09302%;&quot;&gt;중급~상급&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1일차: 환경설정 &amp;amp; 기초&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;코딩 테스트 환경 설정&lt;/b&gt;: 실제 시험과 동일한 환경에서 연습할 수 있도록 준비.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기초 문제 풀이&lt;/b&gt;: 간단한 문제를 풀어보며 감각을 익히기.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유형:&lt;/b&gt; 배열, 문자열, Set, 해시맵, 탐색&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2일차: 탐색 &amp;amp; 정렬&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;유형&lt;/b&gt;: 정렬, 이분 탐색, 투 포인터, 슬라이딩 윈도우.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;난이도&lt;/b&gt;: 쉬움 ~ 중간.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;목표&lt;/b&gt;: 효율적인 탐색 방법과 기본 정렬 알고리즘 익히기.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3일차: 재귀 &amp;amp; 백트래킹&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;유형&lt;/b&gt;: 재귀, 백트래킹(N-Queens, Subset Sum).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;난이도&lt;/b&gt;: 중간 ~ 어려움.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;목표&lt;/b&gt;: 트리 구조 탐색 및 상태 공간 탐색을 학습.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4일차: 동적 프로그래밍(DP)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;유형&lt;/b&gt;: DP(피보나치, 계단 오르기, 부분합).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;난이도&lt;/b&gt;: 중간 ~ 어려움.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;목표&lt;/b&gt;: 메모이제이션과 점화식 기반의 문제 해결 능력 향상.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5일차: 그래프 탐색&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;유형&lt;/b&gt;: 그래프 탐색(DFS, BFS), 최단 경로 알고리즘(Dijkstra, Floyd-Warshall).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;난이도&lt;/b&gt;: 중간 ~ 어려움.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;목표&lt;/b&gt;: 그래프 자료구조와 탐색 알고리즘 이해.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;6일차: 트리와 해시맵&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;유형&lt;/b&gt;: 트리 순회(DFS, BFS), 해시맵 응용.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;난이도&lt;/b&gt;: 중간 ~ 어려움.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;목표&lt;/b&gt;: 트리와 해시맵의 응용 문제 해결.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;7일차: 실전 모의 테스트&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;유형&lt;/b&gt;: 다양한 유형의 종합 문제.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;난이도&lt;/b&gt;: 중간 ~ 어려움.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;목표&lt;/b&gt;: 제한 시간 내 문제를 해결하며 실전 감각 익히기.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;환경&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;a href=&quot;https://sqliteonline.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://sqliteonline.com/&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category>알고리즘</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/49</guid>
      <comments>https://spidey.tistory.com/49#entry49comment</comments>
      <pubDate>Wed, 29 Jan 2025 17:04:40 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] 날짜 형식 변경 함수 (DATE_FORMAT)</title>
      <link>https://spidey.tistory.com/46</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Njpfs/btsJg5YuigG/MFadwjNf6Yas0HwCKvOyYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Njpfs/btsJg5YuigG/MFadwjNf6Yas0HwCKvOyYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Njpfs/btsJg5YuigG/MFadwjNf6Yas0HwCKvOyYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNjpfs%2FbtsJg5YuigG%2FMFadwjNf6Yas0HwCKvOyYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;350&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  날짜 및 시간 값 형식 변환&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DATE_FORMAT&lt;/b&gt;(값, &lt;b&gt;포맷&lt;/b&gt;)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;%Y-%m-d% :9999-09-09&lt;/li&gt;
&lt;li&gt;%H-%i : 00:00&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;년도&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;%Y : 4자리 연도 (예: 2024)&lt;/li&gt;
&lt;li&gt;%y : 2자리 연도 (예: 24)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;월&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;%m : 2자리 월 (01에서 12까지, 예: 08)&lt;/li&gt;
&lt;li&gt;%M : 전체 월 이름 (예: August)&lt;/li&gt;
&lt;li&gt;%b : 축약된 월 이름 (예: Aug)&lt;/li&gt;
&lt;li&gt;%c : 월 (1에서 12까지, 예: 8)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;일&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;%d : 2자리 일 (01에서 31까지, 예: 27)&lt;/li&gt;
&lt;li&gt;%e : 일 (1에서 31까지, 예: 27)&lt;/li&gt;
&lt;li&gt;%j : 1년 중의 일 (001에서 366까지, 예: 239)&lt;/li&gt;
&lt;/ul&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;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;%H : 24시간제 시 (00에서 23까지, 예: 14)&lt;/li&gt;
&lt;li&gt;%h : 12시간제 시 (01에서 12까지, 예: 02)&lt;/li&gt;
&lt;li&gt;%i : 분 (00에서 59까지, 예: 45)&lt;/li&gt;
&lt;li&gt;%s : 초 (00에서 59까지, 예: 30)&lt;/li&gt;
&lt;li&gt;%p : AM/PM (예: AM 또는 PM)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;요일&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;%W : 전체 요일 이름 (예: Monday)&lt;/li&gt;
&lt;li&gt;%a : 축약된 요일 이름 (예: Mon)&lt;/li&gt;
&lt;li&gt;%w : 요일 숫자 (0에서 6까지, 0은 일요일, 예: 1)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;시, 분, 초 포맷&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;%r : 12시간제 시간 (예: 02:45:30 PM)&lt;/li&gt;
&lt;li&gt;%T : 24시간제 시간 (예: 14:45:30)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/46</guid>
      <comments>https://spidey.tistory.com/46#entry46comment</comments>
      <pubDate>Tue, 27 Aug 2024 22:02:00 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] 반올림 / 버림 / 평균 함수</title>
      <link>https://spidey.tistory.com/45</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZV9cC/btsJh8mqp9c/wFYKct0mRrevxm1nWILYI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZV9cC/btsJh8mqp9c/wFYKct0mRrevxm1nWILYI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZV9cC/btsJh8mqp9c/wFYKct0mRrevxm1nWILYI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZV9cC%2FbtsJh8mqp9c%2FwFYKct0mRrevxm1nWILYI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;350&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; 반올림 함수&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ROUND&lt;/b&gt;(값)&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; 버림 함수&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TRUNCATE&lt;/b&gt;(값,&lt;b&gt; 남길 자리 수&lt;/b&gt;)&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; 평균 함수&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;AVG&lt;/b&gt;(값)&lt;/p&gt;</description>
      <category>알고리즘</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/45</guid>
      <comments>https://spidey.tistory.com/45#entry45comment</comments>
      <pubDate>Tue, 27 Aug 2024 21:46:36 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/JS] 분수의 덧셈</title>
      <link>https://spidey.tistory.com/44</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0niXU/btsJhjPHlle/Q9BXKmOJKF0fykdQocQC00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0niXU/btsJhjPHlle/Q9BXKmOJKF0fykdQocQC00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0niXU/btsJhjPHlle/Q9BXKmOJKF0fykdQocQC00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0niXU%2FbtsJhjPHlle%2FQ9BXKmOJKF0fykdQocQC00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;350&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; ️문제&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;첫&amp;nbsp;번째&amp;nbsp;분수의&amp;nbsp;분자와&amp;nbsp;분모를&amp;nbsp;뜻하는&amp;nbsp;numer1,&amp;nbsp;denom1,&amp;nbsp;두&amp;nbsp;번째&amp;nbsp;분수의&amp;nbsp;분자와&amp;nbsp;분모를&amp;nbsp;뜻하는&amp;nbsp;numer2,&amp;nbsp;denom2가&amp;nbsp;매개변수로&amp;nbsp;주어집니다.&amp;nbsp;&lt;b&gt;두&amp;nbsp;분수를&amp;nbsp;더한&amp;nbsp;값&lt;/b&gt;을&lt;b&gt;&amp;nbsp;기약&amp;nbsp;분수&lt;/b&gt;로&amp;nbsp;나타냈을&amp;nbsp;때&amp;nbsp;분자와&amp;nbsp;분모를&amp;nbsp;순서대로&amp;nbsp;담은&amp;nbsp;배열을&amp;nbsp;return&amp;nbsp;하도록&amp;nbsp;solution&amp;nbsp;함수를&amp;nbsp;완성해보세요.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; 풀이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#유클리드 알고리즘 #최대공약수(GCD)&lt;/p&gt;
&lt;pre id=&quot;code_1724758302423&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//최대 공약수
const gcd = (a,b) =&amp;gt; {
    while(b !== 0){
        [a, b] = [b, a % b]
    }
    return a
}

function solution(numer1, denom1, numer2, denom2) {    
    //분수 덧셈
    const denom  = denom1 * denom2
    const numer = numer1 * denom2 + numer2 * denom1
    
    //분자 분모의 최대 공약수
    const divisor = gcd(numer, denom)
    
    //기약 분수
    const minNumer = numer / divisor
    const minDenom = denom / divisor
    
    return [minNumer, minDenom];
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시간 복잡도: O(log min(numer, denom))&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; 키워드&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;유클리드 알고리즘&lt;/blockquote&gt;
&lt;pre id=&quot;code_1724761507202&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const gcd = (a, b) =&amp;gt; {
	while(b !== 0){
    	[a, b] = [b, a % b] 
    }
    return a
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;gcd 시간 복잡도: O(log min(a,b))&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;참고)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘/JavaScript</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/44</guid>
      <comments>https://spidey.tistory.com/44#entry44comment</comments>
      <pubDate>Tue, 27 Aug 2024 21:35:27 +0900</pubDate>
    </item>
    <item>
      <title>[JS] 몫 / 나머지 구하는 법 (feat. 정수)</title>
      <link>https://spidey.tistory.com/43</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y7RVv/btsJhl01chb/r356g9xATmw0pcbqc1K4r1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y7RVv/btsJhl01chb/r356g9xATmw0pcbqc1K4r1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y7RVv/btsJhl01chb/r356g9xATmw0pcbqc1K4r1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy7RVv%2FbtsJhl01chb%2Fr356g9xATmw0pcbqc1K4r1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;350&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; 몫 구하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Math.floor(&lt;/b&gt;number/number&lt;b&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소수값 버림&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; 나머지 구하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;number&lt;b&gt;%&lt;/b&gt;number&lt;/p&gt;</description>
      <category>알고리즘/JavaScript</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/43</guid>
      <comments>https://spidey.tistory.com/43#entry43comment</comments>
      <pubDate>Tue, 27 Aug 2024 21:07:55 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/JS] 평행</title>
      <link>https://spidey.tistory.com/42</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dTaz99/btsJieNAEsA/K966D0MZ62S6gRhBDOGmD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dTaz99/btsJieNAEsA/K966D0MZ62S6gRhBDOGmD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dTaz99/btsJieNAEsA/K966D0MZ62S6gRhBDOGmD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTaz99%2FbtsJieNAEsA%2FK966D0MZ62S6gRhBDOGmD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;350&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; ️문제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;점 네 개의 좌표를 담은 이차원 배열&amp;nbsp;&amp;nbsp;dots가 다음과 같이 매개변수로 주어집니다.&lt;br /&gt;&lt;b&gt;[[x1,&amp;nbsp;y1],&amp;nbsp;[x2,&amp;nbsp;y2],&amp;nbsp;[x3,&amp;nbsp;y3],&amp;nbsp;[x4,&amp;nbsp;y4]] &lt;/b&gt;&lt;br /&gt;주어진&amp;nbsp;네&amp;nbsp;개의&amp;nbsp;점을&amp;nbsp;두&amp;nbsp;개씩&amp;nbsp;이었을&amp;nbsp;때,&amp;nbsp;두&amp;nbsp;직선이&amp;nbsp;&lt;b&gt;평행&lt;/b&gt;이&amp;nbsp;되는&amp;nbsp;경우가&amp;nbsp;있으면&amp;nbsp;1을&amp;nbsp;없으면&amp;nbsp;0을&amp;nbsp;return&amp;nbsp;하도록&amp;nbsp;solution&amp;nbsp;함수를&amp;nbsp;완성해보세요.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; 풀이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#기하학 알고리즘&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;기울기 계산&lt;/li&gt;
&lt;li&gt;모든 조합 확인&lt;/li&gt;
&lt;/ol&gt;
&lt;pre id=&quot;code_1724758302423&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//기울기 비교(교차곱) 함수
const isParallel = (x1, y1, x2, y2, x3, y3, x4, y4) =&amp;gt; {
    return (x2 - x1) * (y4 - y3) === (y2 - y1) * (x4 - x3)
}

function solution(dots) {    
    const [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]= dots
    
    //모든 조합
    return (
        isParallel(x1, y1, x2, y2, x3, y3, x4, y4) || //(2-1)===(4-3)
        isParallel(x2, y2, x1, y1, x3, y3, x4, y4) || //(1-2)===(4-3)
        isParallel(x1, y1, x2, y2, x4, y4, x3, y3) || //(2-1)===(3-4)
        isParallel(x1, y1, x4, y4, x2, y2, x3, y3) || //(4-1)===(3-2)
        isParallel(x4, y4, x1, y1, x2, y2, x3, y3) || //(1-4)===(3-2)
        isParallel(x1, y1, x3, y3, x2, y2, x4, y4) || //(3-1)===(4-2)
        isParallel(x3, y3, x1, y1, x2, y2, x4, y4) //(1-3)===(4-2)
           ) ? 1 : 0   
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시간 복잡도: O(1)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;고정 상수 dots&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt; 키워드&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기울기 : (y2 - y1) / (x2 - x1)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;기울기 비교 = 교차 곱 = (y2 - y1) x (x4 - x3) === (x2 - x1) *&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;(y4 - y3)&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;참고)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&lt;/p&gt;</description>
      <category>알고리즘/JavaScript</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/42</guid>
      <comments>https://spidey.tistory.com/42#entry42comment</comments>
      <pubDate>Tue, 27 Aug 2024 20:59:52 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스/JS] 옹알이(1)</title>
      <link>https://spidey.tistory.com/40</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dU6L0O/btsJibQOZj1/yztddxvNMZODhYEuBSJoo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dU6L0O/btsJibQOZj1/yztddxvNMZODhYEuBSJoo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dU6L0O/btsJibQOZj1/yztddxvNMZODhYEuBSJoo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdU6L0O%2FbtsJibQOZj1%2FyztddxvNMZODhYEuBSJoo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;350&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; ️문제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;span style=&quot;text-align: left;&quot;&gt;머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 &lt;b&gt;&quot;aya&quot;, &quot;ye&quot;, &quot;woo&quot;, &quot;ma&quot;&lt;/b&gt; 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열&amp;nbsp;&lt;/span&gt;babbling&lt;span style=&quot;text-align: left;&quot;&gt;이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; 풀이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#문자열처리 #정규표현식&lt;/p&gt;
&lt;pre id=&quot;code_1724757555043&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(babbling) {
    var answer = 0;
    var regex = /^(aya|ye|woo|ma)+$/
    
    babbling.forEach((word)=&amp;gt;{if(regex.test(word)){answer++}})
    
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시간 복잡도: O(N * L)&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;N: babbling 길이&lt;/li&gt;
&lt;li&gt;L: 단어 길이&lt;/li&gt;
&lt;li&gt;정규표현식: 선형 시간 복잡도&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; 키워드&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;정규표현식(ReqEx)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;메서드&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;''.match(/정규표현식/g): 매칭 항목 배열 반환&lt;/li&gt;
&lt;li&gt;''.replace(/정규표현식/,'대채 문자열'): 조건 문지 대체&lt;/li&gt;
&lt;li&gt;정규표현식.test(''): 매칭되면 true, 아니면 false&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;플래그&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;g :전역 검색&lt;/li&gt;
&lt;li&gt;i :대소문자 구분X&lt;/li&gt;
&lt;li&gt;m :여러줄&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;옵션&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;\.*?+[{|()^$ 앞 백슬래시 사용 필수&lt;/li&gt;
&lt;li&gt;. : 모든 문자열&lt;/li&gt;
&lt;li&gt;* :0개 이상의 문자 시작&lt;/li&gt;
&lt;li&gt;&amp;amp; :문장&amp;nbsp;&lt;/li&gt;
&lt;li&gt;+ :한번 이상 반&lt;/li&gt;
&lt;li&gt;\d :숫자&lt;/li&gt;
&lt;li&gt;\D :숫자 제외&lt;/li&gt;
&lt;li&gt;\s :공백&lt;/li&gt;
&lt;li&gt;\S :공백 제외&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;패턴&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;| :or&lt;/li&gt;
&lt;li&gt;() :그룹 지정&lt;/li&gt;
&lt;li&gt;[] : (||)과 동일&lt;/li&gt;
&lt;li&gt;x{n} : x문자 b번 반&lt;/li&gt;
&lt;li&gt;&lt;span&gt;문자? : 문자 있거나 없거나&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;^문자열 :문장 시작&lt;/li&gt;
&lt;li&gt;문자열$ :문장 끝&lt;/li&gt;
&lt;li&gt;[^문자] :특정 문자 제외&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 128px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;숫자&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/[0-9]/g&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;영어 알파벳&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;a-zA-Z&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;한글 문&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ㄱ-ㅎ가-힣 &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;특정 문자&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/[찾을문자]/g&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;단어&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/찾을단어/g&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;단어 제외&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;\b(?!\b제외단어\b)\w+\b&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이메일&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;전화번호&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/^\d{3}-\d{3,4}-\d{4}$/&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;핸드폰 번호&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;/^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt; URL &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;^(https?):\/\/([^:\/\s]+)(:([^\/]*))?((\/[^\s/\/]+)*)?\/?([^#\s\?]*)(\?([^#\s]*))?(#(\w*))?$&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://hamait.tistory.com/342&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hamait.tistory.com/342&lt;/a&gt;&lt;/p&gt;</description>
      <category>알고리즘/JavaScript</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/40</guid>
      <comments>https://spidey.tistory.com/40#entry40comment</comments>
      <pubDate>Tue, 27 Aug 2024 20:23:34 +0900</pubDate>
    </item>
    <item>
      <title>[코테의정석/JS] 변수와 자료형</title>
      <link>https://spidey.tistory.com/36</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;코테 문제집 표지1.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlAeup/btsIcQtBrKW/C7bKOrsiPuUC6WPFLgONsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlAeup/btsIcQtBrKW/C7bKOrsiPuUC6WPFLgONsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlAeup/btsIcQtBrKW/C7bKOrsiPuUC6WPFLgONsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlAeup%2FbtsIcQtBrKW%2FC7bKOrsiPuUC6WPFLgONsK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;385&quot; data-filename=&quot;코테 문제집 표지1.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 변수 선언&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;개념설명&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;JavaScript에서 변수를 선언하는 방법에는 var, let, const가 있습니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;var&lt;/b&gt; 는 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;함수 범위&lt;/span&gt;를 가지며 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;재선언이 가능&lt;/span&gt;합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;let&lt;/b&gt; 은 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;블록 범위&lt;/span&gt;를 가지며 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;재선언이 불가&lt;/span&gt;하지만 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;재할당이 가능&lt;/span&gt;합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;const&lt;/b&gt; 는 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;블록 범위&lt;/span&gt;를 가지며 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;재선언 및 재할당이 불가&lt;/span&gt;합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;예제&lt;/h4&gt;
&lt;pre id=&quot;code_1719328944629&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var x = 10;
var y = 20;
const z = 30;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;연습문제&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#1 &lt;span style=&quot;background-color: #ffffff; color: #1a1918; letter-spacing: 0px;&quot;&gt;다음 코드의 출력 결과를 예측하세요.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1719329445669&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var a = 5;
var a = 10;
console.log(a); // ?&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;&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;var로 선언된 변수는 재선언이 가능하며, 마지막에 할당된 값이 출력됩니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&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;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;다음 코드에서 오류가 발생하는 부분을 찾고, 그 이유를 설명하세요.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1719329456172&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let b = 15;
let b = 25; // ?&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SyntaxError: Identifier 'b' has already been declared&lt;/p&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;let으로 선언된 변수는 같은 스코프 내에서만 재선언이 불가능합니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#3 &lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;다음 코드의 출력 결과를 예측하세요.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1719329536132&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const c = 30;
c = 40; // ?
console.log(c); // ?&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TypeError: Assignment to constant variable.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;풀이) const로 선언된 변수를 재할당이 불가능하므로 오류가 발생합니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 기본 자료형&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;JavaScript에는 여섯 가지 기본 자료형이 있습니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;String &lt;/b&gt;: &lt;span style=&quot;background-color: #f6e199;&quot;&gt;문자열&lt;/span&gt;을 나타냅니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Number &lt;/b&gt;: &lt;span style=&quot;background-color: #f6e199;&quot;&gt;숫자&lt;/span&gt;를 나타냅니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Boolean&lt;/b&gt;: &lt;span style=&quot;background-color: #f6e199;&quot;&gt;참 또는 거짓&lt;/span&gt;을 나타냅니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Null&lt;/b&gt;: &lt;span style=&quot;background-color: #f6e199;&quot;&gt;값이 없음&lt;/span&gt;을 명시적으로 나타냅니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Undefined&lt;/b&gt;: &lt;span style=&quot;background-color: #f6e199;&quot;&gt;변수가 선언&lt;/span&gt;되었으나 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;값이 할당되지 않음&lt;/span&gt;을 나타냅니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Symbol&lt;/b&gt;: &lt;span style=&quot;background-color: #f6e199;&quot;&gt;유일하고 변경 불가능한 값&lt;/span&gt;을 나타냅니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;예제&lt;/h4&gt;
&lt;pre id=&quot;code_1719329164250&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let name = &quot;Alice&quot;;
let age = 25;
let isStudent = true;
let emptyValue = null;
let notAssigned;
let sym = Symbol(&quot;id&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;연습문제&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#1 &lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;다음 변수들의 자료형을 적으세요.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1719329631466&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let a = &quot;Hello&quot;;
let b = 123;
let c = false;
let d = null;
let e;
let f = Symbol(&quot;example&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;정답)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;String&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;Num&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;ber&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;Boolean&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;Null&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;Undefined&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;Symbol&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;#2 &lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;다음 코드의 출력 결과를 예측하세요.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1719329652594&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let name = &quot;Alice&quot;;
let greeting = `Hi, ${name}!`;
console.log(greeting); // ?&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;정답)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;Hi Alice!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;풀이)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;템플릿 리터럴을 사용하여 문자열 내에 변수를 삽입하면, 변수의 값이 문자열에 포함됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;#3 &lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;다음 코드가 오류를 발생시키는 이유를 설명하세요.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1719329665746&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let num = 10;
num = &quot;ten&quot;; // ?&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;정답)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;오류 미발생&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;풀이)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;JavaScript는 동적 타이핑 언어이므로 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;같은 변수에 다른 자료형의 값을 할당&lt;/span&gt; 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&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;span style=&quot;color: #000000; background-color: #ffffff; letter-spacing: 0px;&quot;&gt;Boolean, Null, Undefined 자료형의 차이를 간단히 설명하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Boolean: 참(ture) 또는 거짓(false)을 나타냅니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Null: 값이 없음을 명시적으로 나타내는 자료형입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Undefined: 변수가 선언되었으나 값이 할당되지 않았음을 나타내는 자료형입니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 실전문제&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;다음 백준 온라인 저지의 문제들을 풀어보세요.&lt;br /&gt;이 문제들은 기본적인 입출력과 연산을 연습하는데 도움이 됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.acmicpc.net/problem/2557&quot;&gt;문제 2557 - Hello World&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.acmicpc.net/problem/1000&quot;&gt;문제 1000 - A+B&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.acmicpc.net/problem/1001&quot;&gt;문제 1001 - A-B&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.acmicpc.net/problem/10998&quot;&gt;문제 10998 - A&amp;times;B&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.acmicpc.net/problem/1008&quot;&gt;문제 1008 - A/B&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알고리즘/JavaScript</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/36</guid>
      <comments>https://spidey.tistory.com/36#entry36comment</comments>
      <pubDate>Wed, 26 Jun 2024 00:45:04 +0900</pubDate>
    </item>
    <item>
      <title>[웹 구조] ch5. 웹 이외의 시스템</title>
      <link>https://spidey.tistory.com/33</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;책 표지.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVnXJP/btsIb4FZDyl/pUwiMFYS0kSls45Gc4zkkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVnXJP/btsIb4FZDyl/pUwiMFYS0kSls45Gc4zkkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVnXJP/btsIb4FZDyl/pUwiMFYS0kSls45Gc4zkkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVnXJP%2FbtsIb4FZDyl%2FpUwiMFYS0kSls45Gc4zkkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;385&quot; data-filename=&quot;책 표지.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;웹 이외의 시스템&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;웹 전환하지 않은 시스템&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;온프레미스 시스템; on-premise Sysem&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;자사에서 관리하는 환경 내에서 설치하여 운용하는 형태&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;&lt;u&gt;외부 네트워크에 접속하지 않는 시스템&lt;/u&gt;은 웹화 될 필요 없음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;= 내부 네트워크에서만 사용&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;교통 기관의 시스템&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;운행 관리 시스템은 각 회사의 폐쇄망 네트워크 안에서 동작&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;사회 기반 인프라 시스템, 금융 시스템&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;미션 크리티컬 시스템(365일 24시간 가동)으로 응답 시간이 극히 짧아 웹화 어려움&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;웹 전환 X 클라우드 전환 시스템&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;의료 시스템&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;전자 진료 기록 카드시스템&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실시간 응답 요구 불필요, 전용 네트워크 불필요&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;웹 이외의 서버&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;클라우드 서버&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;클라우스 서버 = 가상서버 = Virtual Machine(VM) = 인스턴스&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;서비스 및 임대 서버의 가상 서버로 서비스 제공&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;메일 서버&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메일 서버(SMTP 서버 / POP서버) 동작&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pqVoc/btsjOo9WCXs/sWpwWDLXkfhJRuGRz3zKCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pqVoc/btsjOo9WCXs/sWpwWDLXkfhJRuGRz3zKCk/img.png&quot; data-origin-width=&quot;1610&quot; data-origin-height=&quot;1082&quot; data-is-animation=&quot;false&quot; id=&quot;kEditorPhotosEditingImage-0&quot; width=&quot;400&quot; height=&quot;269&quot; style=&quot;width: 46.8748%; margin-right: 10px;&quot; data-widthpercent=&quot;47.43&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pqVoc/btsjOo9WCXs/sWpwWDLXkfhJRuGRz3zKCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpqVoc%2FbtsjOo9WCXs%2FsWpwWDLXkfhJRuGRz3zKCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1610&quot; height=&quot;1082&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0MLoE/btsjO2Fn5ub/FqszYNIGCNIv5DoPb1Q5NK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0MLoE/btsjO2Fn5ub/FqszYNIGCNIv5DoPb1Q5NK/img.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;776&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;52.57&quot; id=&quot;kEditorPhotosEditingImage-1&quot; width=&quot;400&quot; height=&quot;242&quot; style=&quot;width: 51.9624%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0MLoE/btsjO2Fn5ub/FqszYNIGCNIv5DoPb1Q5NK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0MLoE%2FbtsjO2Fn5ub%2FFqszYNIGCNIv5DoPb1Q5NK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;776&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 97px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;기능&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;메일 송신&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;메일 수신&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 37px;&quot;&gt;서버&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 37px;&quot;&gt;SMTP(simple Mail Transfer Protocol) 서버&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 37px;&quot;&gt;POP3(Post Office Protocol Version 3) 서버&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;프로토콜&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;메일 송신 프로토콜 이용&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;메일 수신 프로토콜 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;서버 동작&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;1) 메일 주소의 @뒤 도메인 명 확인&lt;br /&gt;2) DNS(domain name system) 서버에 IP 주소 질의&lt;br /&gt;3) 확인된 IP 주소로 메일 송신&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;1) SMTP 서버간 데이터 송수신&lt;br /&gt;2) POP3 서버를 이용해 SMTP 데이터 가져옴&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;처리 방법&lt;/td&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;송신 명령 즉시 데이터 전송&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;메일 소프트웨어에 설정된 정기 간격으로 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소규모인 경우에 웹서버 안에 기능으로 메일 서버 구성&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;파일서버&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹서버와 내부 단말 접속 업무 시스템 분리&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 77px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;웹 서버 (외부 대상 시스템)&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;파일 서버 (내부대상 시스템)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 40px;&quot;&gt;외부 단말에서의 접속&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 40px;&quot;&gt;내부 단말에서의 접속&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;웹 서버의 기능&lt;br /&gt;+FTP 서버의 기능&lt;br /&gt;+메일 서버의 기능&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;파일 서버의 기능&lt;br /&gt;+업부 시스템 A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;인터넷 외 네트워크&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;799&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eqMbB6/btsjR8EiNsO/5gVA4ikU0HKeAttLWRboL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eqMbB6/btsjR8EiNsO/5gVA4ikU0HKeAttLWRboL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eqMbB6/btsjR8EiNsO/5gVA4ikU0HKeAttLWRboL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeqMbB6%2FbtsjR8EiNsO%2F5gVA4ikU0HKeAttLWRboL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;517&quot; height=&quot;270&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;799&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;LAN + WAN = 인트라넷&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;LAN (Local Area Network)&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;내부 네트워크의 기본&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 종 시스템과 서버, 네트워크 기기가 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;유선 LAN&lt;/span&gt;으로 연결되어 있어 아직 모든 시스템이 인터넷으로 전화되지 못함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;WAN (Wide Area Network)&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;거점 연결 통신망&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;VPN (Virtual Private Network)&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;외부에서의 접속&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;</description>
      <category>Review</category>
      <author>스파이디</author>
      <guid isPermaLink="true">https://spidey.tistory.com/33</guid>
      <comments>https://spidey.tistory.com/33#entry33comment</comments>
      <pubDate>Tue, 13 Jun 2023 20:58:33 +0900</pubDate>
    </item>
  </channel>
</rss>