<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>easypeasy</title>
        <link>https://velog.io/</link>
        <description>참 쉽죠? #개발계의 밥아저씨를 꿈꿉니다⋆⁺₊⋆ ☾⋆⁺₊⋆</description>
        <lastBuildDate>Mon, 16 Dec 2024 07:30:11 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>easypeasy</title>
            <url>https://velog.velcdn.com/images/nahyun_log/profile/76c1b661-986a-4d0c-9406-cb92c3021449/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. easypeasy. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/nahyun_log" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[JS:  조건문3]]></title>
            <link>https://velog.io/@nahyun_log/JS-%EC%A1%B0%EA%B1%B4%EB%AC%B83</link>
            <guid>https://velog.io/@nahyun_log/JS-%EC%A1%B0%EA%B1%B4%EB%AC%B83</guid>
            <pubDate>Mon, 16 Dec 2024 07:30:11 GMT</pubDate>
            <description><![CDATA[<pre><code>const age = parseInt(prompt(&quot;&quot;How old are you?));


if(isNaN(age)){ #여기에 붙여넣기 -여기가 true or false가 될 것이다.
  console.log(&quot;Please write a number&quot;); #이렇게 할 수 있다.
  #조건문을 사용하는 방법
  } else {
    console.log(&quot;Thank you for writing your age.&quot;);
  }

 #조건이 하나 </code></pre><p>많은 경우 if는 하나 이상 필요할 수 있어 
그래서 else를 하는 대신 
else if로 연결해 볼 거다. -if가 false일 때 한 가지 조건condition을 더 사용할 수 있게 해준다.</p>
<pre><code>const age = parseInt(prompt(&quot;&quot;How old are you?));

if(isNaN(age)){
  console.log(&quot;Please write a number&quot;);
  } else if (age &lt; 18) {
    console.log(&quot;You are too young.&quot;);
  } else if (age &gt;=18 &amp;&amp; age &lt;= 50) {
    console.log(&quot;You can drink.&quot;); 
  # &amp;&amp;은 and 연산자, 둘 다 true여야 작동하는 것  
  # ||(shift+enter위 자판)은 or 연산자,둘 중 하나만 true여도 작동하는 것
  +둘 다 trure여도 작동 하는 것 
  -&gt;하나만 true여도 작동 한다
  } else {
      console.log(&quot;You can drink&quot;);
  }
  #else는 else위의 조건들이 모두 false여야 작동한다.

 #많은 conditional을 연결시킬 수 있다.
 #조건이 3개</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[코드업 python 문제집100개 막바지를 향해 가는중🚗]]></title>
            <link>https://velog.io/@nahyun_log/%EC%BD%94%EB%93%9C%EC%97%85-python-%EB%AC%B8%EC%A0%9C%EC%A7%91100%EA%B0%9C-%EB%A7%89%EB%B0%94%EC%A7%80%EB%A5%BC-%ED%96%A5%ED%95%B4-%EA%B0%80%EB%8A%94%EC%A4%91</link>
            <guid>https://velog.io/@nahyun_log/%EC%BD%94%EB%93%9C%EC%97%85-python-%EB%AC%B8%EC%A0%9C%EC%A7%91100%EA%B0%9C-%EB%A7%89%EB%B0%94%EC%A7%80%EB%A5%BC-%ED%96%A5%ED%95%B4-%EA%B0%80%EB%8A%94%EC%A4%91</guid>
            <pubDate>Thu, 12 Dec 2024 17:47:29 GMT</pubDate>
            <description><![CDATA[<p>힘을내요
81번 이에요 🎶 하하</p>
<h2 id="16진수는-또-뭐람">16진수는 또 뭐람</h2>
<p>16진수는 숫자와 문자를 사용하여 수를 표현하는 방법
일반적인 10진수는 0부터 9</p>
<p>16진수에서는 0부터 9까지의 숫자와 A(10), B(11), C(12), D(13), E(14), F(15)까지 사용</p>
<p>예를 들어, 10진수 15는 16진수로 F이고, 10진수 16은 16진수로 10이 됩니다. 컴퓨터에서 색상 코드나 메모리 주소 등을 표현할 때 자주 사용돼요.</p>
<h2 id="16진수에서-16은-10">16진수에서 16은 &quot;10&quot;</h2>
<h4 id="일반적으로-사용되는-진수-체계-4가지">일반적으로 사용되는 진수 체계 4가지</h4>
<p>*<em>2진수 (Binary) 0,1 *</em>
컴퓨터 내부에서 데이터를 표현하는 데 사용</p>
<p><strong>8진수 (Octal) 0, 1, 2, 3, 4, 5, 6, 7</strong>
0부터 7까지의 숫자
주로 UNIX 파일 권한 표현에 사용</p>
<p><strong>10진수 (Decimal) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9</strong>
0부터 9까지의 숫자
우리가 일상생활에서 가장 많이 사용하는 진수</p>
<p><strong>16진수 (Hexadecimal) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F</strong> (대문자와 소문자 모두 가능)
0부터 9까지와 A(10)부터 F(15)까지의 숫자
주로 컴퓨터 프로그래밍과 메모리 주소 표현에 많이 쓰임</p>
<h2 id="strip-함수">strip() 함수</h2>
<p>문자열에서 양쪽 끝의 공백이나 특정 문자를 제거하는 메서드</p>
<p>예시1</p>
<pre><code>text = &quot;   Hello, World!   &quot;
clean_text = text.strip() #공복제거 

#결과: &quot;Hello, World!&quot;
</code></pre><p>예시2</p>
<pre><code>text = &quot;***Hello, World!***&quot;
clean_text = text.strip(&#39;*&#39;)  #특정문자 제거 

#결과: &quot;Hello, World!&quot;
</code></pre><p>주의
<strong>strip()은 문자열의 앞과 뒤에서만 문자를 제거합니다.</strong> 
중간에 있는 공백이나 문자는 제거하지 않습니다.
이 함수는 사용자 입력을 받을 때, 불필요한 공백을 제거하여 깨끗한 데이터를 얻기 위해 자주 사용됩니다.</p>
<h4 id="💡중간에-있는-공백이나-문자까지-제거-하려면"><strong>💡중간에 있는 공백이나 문자까지 제거 하려면?</strong></h4>
<h2 id="replace함수">replace()함수</h2>
<pre><code>text = &quot;  Hello,   World!  &quot;
clean_text = text.replace(&quot; &quot;, &quot;&quot;)  

# 결과: &quot;Hello,World!&quot;
</code></pre><h2 id="split과-join-함수">split()과 join() 함수</h2>
<pre><code>text = &quot;  Hello,   World!  &quot;
clean_text = &#39;&#39;.join(text.split())  

# 결과: &quot;Hello,World!&quot;
</code></pre><p>replace(): 특정 문자를 다른 문자로 바꾸는 메서드
split(): 문자열을 공백 기준으로 나누어 리스트로 반환하는 메서드
join(): 리스트의 요소들을 하나의 문자열로 합치는 메서드</p>
<p>**
함수(function)vs메서드(method)**
&quot;함수&quot;는 <strong>독립적으로 존재할 수 있는 코드 블록</strong>
&quot;메서드&quot;는 특정 객체나 <strong>클래스의 일부로 정의된 함수</strong></p>
<pre><code># 입력받기
hex_input = input().strip() &lt;-strip함수는 없어도됨

# 16진수 문자를 10진수로 변환
n = int(hex_input, 16)

# 1부터 F까지 곱하기
for i in range(1, 16):  # 1부터 15까지
    result = n * i
    print(f&#39;{hex_input}*{i:X}={result:X}&#39;)

    {i:X}는 i를 16진수로 변환하여 출력
    {result:X}는 계산된 결과인 result를 16진수로 변환하여 출력 </code></pre><p>아 어렵다!!!!!! 🤯🤯🤯🤯🤯🤯🤯🤯</p>
<p>16진수 
A(10), B(11), C(12), D(13), E(14), F(15)
괄호안의 값은 10진수 값이구나.</p>
<p>헷갈려 죽겠네</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[코드업 python 문제집100개 막바지를 향해 가는중🚗]]></title>
            <link>https://velog.io/@nahyun_log/%EC%BD%94%EB%93%9C%EC%97%85-python-%EB%AC%B8%EC%A0%9C%EC%A7%91</link>
            <guid>https://velog.io/@nahyun_log/%EC%BD%94%EB%93%9C%EC%97%85-python-%EB%AC%B8%EC%A0%9C%EC%A7%91</guid>
            <pubDate>Thu, 12 Dec 2024 17:34:26 GMT</pubDate>
            <description><![CDATA[<p><del>_(이포스팅 누가볼까봐 무섭😓)
_</del>
82번</p>
<p>친구들과 함께 3 6 9 게임을 하던 영일이는 잦은 실수 때문에 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 369 마스터 프로그램을 작성해 보자.</p>
<p>** 3 6 9 게임은?
여러 사람이 순서를 정한 후, 순서대로 수를 부르는 게임이다.
만약 3, 6, 9 가 들어간 수를 자신이 불러야 하는 상황이라면, 수를 부르는 대신 &quot;박수(X)&quot; 를 쳐야 한다.
33과 같이 3,6,9가 두 번 들어간 수 일때, &quot;짝짝&quot;과 같이 박수를 두 번 치는 형태도 있다. </p>
<p>참고 </p>
<pre><code>...
for i in range(1, n+1) :
  if i%10==3 :
    print(&quot;X&quot;, end=&#39; &#39;)    #출력 후 공백문자(빈칸, &#39; &#39;)로 끝냄
...</code></pre><pre><code>입력
30 보다 작은 정수 1개가 입력된다.
(1 ~ 29)

출력
1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데,
3 또는 6 또는 9가 포함 되어있는 수인 경우, 그 수 대신 영문 대문자 X 를 출력한다.

입력 예시   
9

출력 예시
1 2 X 4 5 X 7 8 X</code></pre><p>나의 답</p>
<pre><code>n=int(input()) 

for i in range(1, n+1) :
  if i%10==3 :
    print(&quot;X&quot;, end=&#39; &#39;)
  else:
    print(i, end=&#39; &#39;)


 출력 결과

 1 2 X 4 5 6 7 8 9 </code></pre><p>🤔 6과 9는 그대로 출력이 됬다. X로 출력이 되어야 하는데
직접 대입해서 생각해본다. 
9를 입력 했을 때</p>
<pre><code>for i in range(1, 10):
    if i%10 == 3:
      print(&quot;X&quot;, end=&#39;&#39;) --- 3 
     else:
      print(i, end=&#39;&#39;)  ---1 2 4 5 6 7 8 9

   3만 나머지가 3인게 당연하구나....#코드는 죄가 없습니다ㅠㅠ

</code></pre><p>1부터 10까지 10으로 나눈 나머지는 
1 ÷ 10 = 0, 나머지 1
2 ÷ 10 = 0, 나머지 2
3 ÷ 10 = 0, 나머지 3
4 ÷ 10 = 0, 나머지 4
5 ÷ 10 = 0, 나머지 5
6 ÷ 10 = 0, 나머지 6
7 ÷ 10 = 0, 나머지 7
8 ÷ 10 = 0, 나머지 8
9 ÷ 10 = 0, 나머지 9
10 ÷ 10 = 1, 나머지 0 </p>
<p>자신의 수다. </p>
<p>10보다 작은 숫자들은 자기 자신이 나머지로 남고,
10은 10으로 나누어 떨어져서 나머지가 0
*<em>1부터 9까지는 각각 자기 자신이 나머지 &lt;-산수시간
*</em>10은 나머지가 0</p>
<p>문제에서는 나머지가 3의 배수이어야한다.</p>
<pre><code>if i%10 == 3: 이게 아니라

if i%3 == 0: 이지 않을까</code></pre><p>또 틀림🤯</p>
<p>출력 결과
1 2 X 4 5 X 7 8 X 10 11 X 13 14 X 16 17 X 19 20 X 22 23 X 25 26 </p>
<p>26이 X로 출력되지 않았다.</p>
<p>왤까</p>
<p>아 3의 배수가 아니라 3,6,9라는 숫자가 들어가면 X 구나 💡&lt;-멍청 모먼트</p>
<pre><code>n=int(input())  9 

for i in range(1, n+1) : 1, 10
  if i%10==3 or 6 or 9 :  3
    print(&quot;X&quot;, end=&#39; &#39;)
  else:  1 2 4 5 
    print(i, end=&#39; &#39;)</code></pre><p>이렇게 해야 하나...</p>
<p>또 틀림(해탈)</p>
<p>출력 결과
X X X X X X X X X </p>
<p>결국 뤼튼에 물어봄.... </p>
<p>이 조건은 if (i % 10 == 3) or (6) or (9):와 같아서 6과 9는 항상 참으로 간주됩니다. &lt;-멍청모먼트2 </p>
<p>맞네..................</p>
<p>정확히</p>
<pre><code>if i % 10 == 3 or i % 10 == 6 or i % 10 == 9:</code></pre><p>이렇게 써줘야 함</p>
<h3 id="정답-⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️">정답<del>~</del> ⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️</h3>
<pre><code>n=int(input()) 

for i in range(1, n+1) :
  if i % 10 == 3 or i % 10 == 6 or i % 10 == 9:
    print(&quot;X&quot;, end=&#39; &#39;)
  else:  
    print(i, end=&#39; &#39;)</code></pre><p>하 😂</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[JS: NaN]]></title>
            <link>https://velog.io/@nahyun_log/JS</link>
            <guid>https://velog.io/@nahyun_log/JS</guid>
            <pubDate>Thu, 12 Dec 2024 01:06:00 GMT</pubDate>
            <description><![CDATA[<p>정신🍒자 </p>
<p>저번시간에는 string을 number로 바꿨다
가끔 불가능 --- NaN이 뜰때 NaN=Not a Number</p>
<h2 id="nan인지-판별하는-법">NaN인지 판별하는 법</h2>
<h3 id="isnan-이라는-함수">isNaN() 이라는 함수</h3>
<p>-Boolean으로 알려준다(return반환). --- true 또는 false</p>
<p>-하나의 인자를주면 number인지 아닌지 알려줄 것이다.</p>
<pre><code>const age = parseInt(prompt(&quot;How old are you?&quot;));

console.log(isNaN(age));

# age 인자를 넣어준다
# age는 number일 수 있다.
# 사용자가 입력하기에 따라 다르다.</code></pre><p>function isNaN(number: number): boolean
Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).</p>
<p>@param number — A numeric value.</p>
<pre><code>15를 입력했을 때
console창에는
false

숫자가 아니니?
아니야false -number가 아닌것이 아니란것 -&gt;숫자야 
</code></pre><pre><code>asdfasd를 입력했을 때
console창에는
true

숫자가 아닌게 true다.
NaN이다.</code></pre><p>----&gt;아주 유용한 방법이다. 왜?
조건문(conditional)에 넣으면 되기 때문</p>
<p>조건문은 if를 적고 조건condition을 적고 
그 조건이 참일 때 실행할 코드를 적으면 된다.</p>
<pre><code>if(condition){
    #condition === true  -조건이 참이면 이 코드 실행될 것이다.
} else {
    #condition === false -조건이 거짓이면 이 코드가 실행될 것이다.
}

# else {
    #condition === false -조건이 거짓이면 이 코드가 실행될 것이다.
}
이부분은 없어도 됨 </code></pre><pre><code>const age = parseInt(prompt(&quot;How old are you?&quot;));
# 14가 입력되면 parseInt(&quot;14&quot;);
# asdfwe가 입력되면 parseInt(&quot;asdfwe&quot;);
# parseInt함수는 string을 number로 변환한다

# 결과적으로 
# 숫자가 입력되면 const age = 14; &lt;-이상적
# 문자가 입력되면 const age = NaN; &lt;-number로 변환하지 못하고 NaN로 변환한다.



if(condition){
    #condition === true  -조건이 참이면 이 코드 실행될 것이다.
#한 가지 조건일 때만 설정하면 된다.
#조건이 true라면 이 코드를 실행할 것이고
#그렇지 않다면 아무 것도 하지 않을 것이다.
#condition은 boolean이여야 한다.(판별 가능 해야한다 true or false)
#true or false를 주던 게 바로 isNaN(age) 함수다.
</code></pre><pre><code>if(isNaN(age)){ #여기에 붙여넣기 -여기가 true or false가 될 것이다.
  console.log(&quot;Please write a number&quot;); #이렇게 할 수 있다.
  #조건문을 사용하는 방법
  }


  숫자를 입력했을때
  console에 아무것도 나타나지 않는다.
  문자를 입력했을때
  console에 Please write a number가 나타난다.</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[용어 정리]]></title>
            <link>https://velog.io/@nahyun_log/%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@nahyun_log/%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Mon, 09 Dec 2024 10:49:04 GMT</pubDate>
            <description><![CDATA[<h2 id="해시함수는">해시함수는</h2>
<p><strong>데이터를 *<em>임의의 크기로 입력받아 *</em>고정된 크기의 출력값을 생성</strong>하는 함수입니다.
이러한 개념은 해시 브라운의 감자를 잘게 쪼개 모양을 잡아 튀긴 음식과 유사합니다. </p>
<p>이와 같은 개념을 컴퓨터 과학에서 적용하여 데이터를 변환하고 압축하여 저장 및 검색하는 데 사용됩니다. 이 개념은 1950년대에 등장했지만, 그 역사는 더 오래되었습니다. 데이터를 변환하고 압축하는 함수들은 데이터의 효율적인 저장과 검색을 위해 사용되었고, 이후 암호학과 컴퓨터 과학에서 중요한 역할을 하게 되었습니다.</p>
<p>[출처] 해시함수란 무엇이며 블록체인에서 어떤 역할을 할까?|작성자 Shuffle by HUPAYX</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[토스 스타트업 서바이벌 FOUND를 보고 ..]]></title>
            <link>https://velog.io/@nahyun_log/%ED%86%A0%EC%8A%A4-%ED%86%A0%EC%8A%A4-%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EC%84%9C%EB%B0%94%EC%9D%B4%EB%B2%8C-FOUND%EB%A5%BC-%EB%B3%B4%EA%B3%A0-</link>
            <guid>https://velog.io/@nahyun_log/%ED%86%A0%EC%8A%A4-%ED%86%A0%EC%8A%A4-%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EC%84%9C%EB%B0%94%EC%9D%B4%EB%B2%8C-FOUND%EB%A5%BC-%EB%B3%B4%EA%B3%A0-</guid>
            <pubDate>Sat, 07 Dec 2024 17:05:51 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/nahyun_log/post/8464ad39-3749-4217-9965-c44a4c618026/image.png" alt="">
그냥 이 말 하나가 떠올랐다.</p>
<p><img src="https://velog.velcdn.com/images/nahyun_log/post/af3f05a3-579e-4a5c-b7d0-53b7ddcfa334/image.png" alt=""></p>
<blockquote>
<p>1 시장 규모 
2 시장에는 어떤 문제점을 갖고있었지?
3 어떻게 해결해주지?
4 해결 
5 숫자
6 성과 </p>
</blockquote>
<p>멋지다...는 말밖에 안나온다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[유니코드 ord()]]></title>
            <link>https://velog.io/@nahyun_log/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C-ord</link>
            <guid>https://velog.io/@nahyun_log/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C-ord</guid>
            <pubDate>Fri, 06 Dec 2024 06:44:55 GMT</pubDate>
            <description><![CDATA[<p>알파벳 대문자 A는 65 Z로 갈수록 숫자가 1씩 증가한다.
A 는 65
.
.
.
Z 는 90</p>
<p>a는 97
.
.
.
z는 122</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python : while]]></title>
            <link>https://velog.io/@nahyun_log/Python-while</link>
            <guid>https://velog.io/@nahyun_log/Python-while</guid>
            <pubDate>Mon, 02 Dec 2024 03:07:21 GMT</pubDate>
            <description><![CDATA[<pre><code>임의의 정수가 줄을 바꿔 계속 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.

0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.

예시
...
n = 1      #처음 조건 검사를 통과하기 위해 0 아닌 값을 임의로 저장
while n!=0 :
  n = int(input())
  if n!=0 :
    print(n)
...
</code></pre><p>n = 1      #처음 조건 검사를 통과하기 위해 0 아닌 값을 임의 
-난 이 부분이 어렵다. 이걸 생각해 내는게.</p>
<p>그래서 좀 더 gpt한테 설명을 부탁했더니 </p>
<h4 id="n--1로-시작하는-이유는-while-문에서-n--0-조건을-검사를-시작하기위해-임의의-값0이-아닌-값을-먼저-할당하기-위함입니다-이-값은-첫-번째-입력을-받을-때까지-조건-검사를-_통과_할-수-있도록-도와줍니다"><strong>n = 1로 시작하는 이유는 while 문에서 n != 0 조건을 <em>검사를 시작하기위해</em> 임의의 값(0이 아닌 값)을 먼저 할당하기 위함입니다. 이 값은 첫 번째 입력을 받을 때까지 조건 검사를 _통과_할 수 있도록 도와줍니다.</strong></h4>
<p>그 러 니 까 </p>
<p>while n != 0: 이 부분은 n이 0이 아닐 때 계속 반복된다는 조건입니다. 하지만 처음에 n이 0이라면, while 문이 실행되지 않으므로,** n = 1로 시작해서 첫 번째 입력을 받을 수 있게 합니다.**</p>
<p>바로 이해~</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python: 3항 연산]]></title>
            <link>https://velog.io/@nahyun_log/Python-3%ED%95%AD-%EC%97%B0%EC%82%B0</link>
            <guid>https://velog.io/@nahyun_log/Python-3%ED%95%AD-%EC%97%B0%EC%82%B0</guid>
            <pubDate>Sun, 01 Dec 2024 18:10:29 GMT</pubDate>
            <description><![CDATA[<p>캠프 초오오오오오기에 한거 같은데 
오랜만에 개념 정리를 해보자</p>
<pre><code>3개의 요소로 이루어지는 3항 연산은
&quot;x if C else y&quot; 의 형태로 작성이 된다.
- C : True 또는 False 를 평가할 조건식(conditional expression) 또는 값
- x : C의 평가 결과가 True 일 때 사용할 값
- y : C의 평가 결과가 True 가 아닐 때 사용할 값

조건식 또는 값이 True 이면 x 값이 사용되고, True가 아니면 y 값이 사용되도록 하는 코드이다.

예를 들어
0 if 123&gt;456 else 1
과 같은 표현식의 평가값은 123 &gt; 456 의 비교연산 결과가 False 이므로 1이 된다.

예시 코드에서
a&gt;=b 의 결과가 True(참) 이면 (a if (a&gt;=b) else b)의 결과는 a가 되고,
a&gt;=b 의 결과가 False(거짓)이면 (a if (a&gt;=b) else b)의 결과는 b가 된다.
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[SaaS "Software as a Service"]]></title>
            <link>https://velog.io/@nahyun_log/SaaS</link>
            <guid>https://velog.io/@nahyun_log/SaaS</guid>
            <pubDate>Fri, 29 Nov 2024 15:21:19 GMT</pubDate>
            <description><![CDATA[<h1 id="software-as-a-service">Software as a Service</h1>
<h1 id="서비스로서의-소프트웨어">서비스로서의 소프트웨어</h1>
<p>🤔?</p>
<p>사용자가 소프트웨어를 직접 설치하거나 관리하지 않고, 
인터넷을 통해 제공되는 소프트웨어를 이용하는 방식</p>
<p>클라우드 컴퓨팅의 한 유형</p>
<p>기업이나 개인이 구독형 서비스로 소프트웨어를 사용할 수 있도록 제공 </p>
<p>😮!</p>
<h2 id="클라우드-기반">클라우드 기반</h2>
<p>🤔?</p>
<p>소프트웨어가 클라우드 서버에 설치되어 있어 사용자는 인터넷만 연결하면 언제 어디서나 접근 가능
(소프트웨어를 설치하거나 업데이트할 필요 없이)</p>
<h2 id="구독-모델">구독 모델</h2>
<p>월간 또는 연간 구독료를 지불하는 방식이 일반적</p>
<h2 id="saas의-예시">SaaS의 예시</h2>
<p><strong>업무 및 생산성</strong></p>
<ul>
<li><p>Google Workspace
이메일(Gmail), 문서 작성(Google Docs), 스프레드시트(Google Sheets), 캘린더 등 클라우드 기반 협업 도구 제공.
사용 사례: 원격 근무 시 실시간 협업.</p>
</li>
<li><p>Microsoft 365
Word, Excel, PowerPoint 등의 클라우드 버전과 Microsoft Teams 같은 협업 도구 제공.
사용 사례: 기업의 프로젝트 관리 및 커뮤니케이션.</p>
</li>
<li><p>커뮤니케이션 및 협업
Slack
팀 간 실시간 메시지, 파일 공유 및 프로젝트 관리용 채팅 플랫폼.
사용 사례: 팀원 간 실시간 커뮤니케이션.
Zoom
화상회의와 웹 세미나 서비스
사용 사례: 온라인 회의 및 교육</p>
</li>
<li><p>고객 관계 관리 (CRM)
Salesforce
고객 데이터 관리, 마케팅 자동화, 판매 분석 등 CRM 도구 제공.
사용 사례: 영업 팀의 고객 데이터 관리 및 분석.
HubSpot
마케팅, 영업, 고객 서비스를 위한 CRM 플랫폼.
사용 사례: 고객 유지 및 이메일 마케팅.</p>
</li>
<li><p>전자상거래
Shopify
온라인 스토어를 손쉽게 구축하고 관리할 수 있는 플랫폼.
사용 사례: 소규모 기업의 온라인 상점 운영.
BigCommerce
대규모 전자상거래 솔루션 제공.
사용 사례: 대기업의 글로벌 온라인 상점 운영.</p>
</li>
<li><p>프로젝트 관리
Trello
카드 기반의 직관적인 프로젝트 관리 도구.
사용 사례: 팀 작업 계획 및 업무 추적.
Asana
프로젝트와 팀 작업 관리를 위한 플랫폼.
사용 사례: 팀원 간 작업 상태 공유 및 일정 관리.</p>
</li>
<li><p>인사 관리
Workday
인사관리(HR), 재무 관리, 인재 개발 도구 제공.
사용 사례: 대기업의 인사 및 재무 관리.
BambooHR
중소기업을 위한 인사 관리 플랫폼.
사용 사례: 직원 정보, 시간 추적, 채용 관리.</p>
</li>
<li><p>디자인 및 콘텐츠
Canva
그래픽 디자인 도구.
사용 사례: 비전문가도 쉽게 소셜 미디어 콘텐츠 제작.
Figma
클라우드 기반 UI/UX 디자인 도구.
사용 사례: 디자인 팀의 협업.</p>
</li>
<li><p>데이터 분석
Tableau
데이터를 시각화하고 분석할 수 있는 도구.
사용 사례: 비즈니스 인텔리전스 및 데이터 기반 의사 결정.
Google Analytics
웹사이트 트래픽 분석 도구.
사용 사례: 사용자 행동 분석 및 마케팅 최적화.</p>
</li>
</ul>
<h3 id="업무-및-생산성-도구">업무 및 생산성 도구</h3>
<p>Google Workspace(구 Google Docs, Sheets, Drive)
Microsoft 365 (Word, Excel, Teams 등)
CRM(Customer Relationship Management):
Salesforce
HubSpot</p>
<h3 id="협업-툴">협업 툴</h3>
<p>Slack
Asana
Trello</p>
<h3 id="전자상거래-플랫폼">전자상거래 플랫폼</h3>
<p>Shopify
Wix</p>
<h3 id="스트리밍-서비스">스트리밍 서비스</h3>
<p>넷플릭스(Netflix)</p>
<h2 id="saas는-어디에-적합할까">SaaS는 어디에 적합할까?</h2>
<ul>
<li><strong>스타트업</strong>이나 중소기업처럼 초기 비용을 줄이고 빠르게 서비스를 도입하고자 하는 경우.</li>
<li>소프트웨어 유지 관리에 리소스를 쓰지 않고 본업에 집중하려는 경우.</li>
<li>빠르게 확장하거나 축소해야 하는 비즈니스 환경에서 유용.</li>
</ul>
<p><strong>SaaS는 현대 IT 환경에서 핵심적인 비즈니스 모델로 자리 잡았으며, 많은 기업이 이를 통해 효율성을 높이고 있습니다.</strong></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[그로스 해킹적 사고방식 : 데이터 기반의 사고방식으로 기업의 성장을 극대화하는 접근법 ]]></title>
            <link>https://velog.io/@nahyun_log/%EA%B7%B8%EB%A1%9C%EC%8A%A4-%ED%95%B4%ED%82%B9%EC%A0%81-%EC%82%AC%EA%B3%A0%EB%B0%A9%EC%8B%9D-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B8%B0%EB%B0%98%EC%9D%98-%EC%82%AC%EA%B3%A0%EB%B0%A9%EC%8B%9D%EC%9C%BC%EB%A1%9C-%EA%B8%B0%EC%97%85%EC%9D%98-%EC%84%B1%EC%9E%A5%EC%9D%84-%EA%B7%B9%EB%8C%80%ED%99%94%ED%95%98%EB%8A%94-%EC%A0%91%EA%B7%BC%EB%B2%95</link>
            <guid>https://velog.io/@nahyun_log/%EA%B7%B8%EB%A1%9C%EC%8A%A4-%ED%95%B4%ED%82%B9%EC%A0%81-%EC%82%AC%EA%B3%A0%EB%B0%A9%EC%8B%9D-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B8%B0%EB%B0%98%EC%9D%98-%EC%82%AC%EA%B3%A0%EB%B0%A9%EC%8B%9D%EC%9C%BC%EB%A1%9C-%EA%B8%B0%EC%97%85%EC%9D%98-%EC%84%B1%EC%9E%A5%EC%9D%84-%EA%B7%B9%EB%8C%80%ED%99%94%ED%95%98%EB%8A%94-%EC%A0%91%EA%B7%BC%EB%B2%95</guid>
            <pubDate>Thu, 28 Nov 2024 20:38:28 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/nahyun_log/post/9074c2c0-ba24-4b71-ad00-b8b770f091c0/image.png" alt=""></p>
<h1 id="그로스-해킹적-사고방식">그로스 해킹적 사고방식</h1>
<ul>
<li>빠르게 성장할 수 있는 방법을 끊임없이 실험하고 찾아내는 방식</li>
<li>전통적인 마케팅 접근법과는 다르게 데이터, 창의성, 실험에 초점</li>
<li>특정 분야에 국한되지 않고, 제품, 사용자 경험, 그리고 비즈니스 모델 전반에서 성장을 추구한다.</li>
<li><strong>지속적인 성장에 대한 고민과 데이터 분석을 통해 이루어진다.</strong></li>
</ul>
<h1 id="그로스-해킹-과정">그로스 해킹 과정</h1>
<p>문제 정의: 비즈니스가 직면한 주요 문제를 데이터로 정의합니다.
예) &quot;사용자 등록 이후 7일 내 이탈율이 높다.&quot;</p>
<p>가설 수립: 문제를 해결하기 위한 실험 가능한 아이디어를 만듭니다.
예) &quot;온보딩 튜토리얼(사용자가 처음으로 제품이나 서비스를 사용할 때, 그 사용 방법을 쉽게 이해할 수 있도록 돕는 초기 안내 과정)을 추가하면 첫날 이탈율이 줄어들 것이다.&quot;</p>
<p>실행: 가설에 기반한 작은 실험을 시작합니다.
예) 튜토리얼 추가 후 1주일간 사용자 데이터를 비교합니다.</p>
<p>분석 및 학습: 실험 결과를 분석하고, 성공/실패 여부를 판단해 다음 단계를 설계합니다.</p>
<p>반복: 새로운 가설을 세우고 실험을 계속 반복하며 성장을 가속화합니다.</p>
<h1 id="그로스-해킹-중요-요소">그로스 해킹 중요 요소</h1>
<p><strong>1. 데이터 분석 능력, 데이터 기반 의사 결정</strong>: 고객의 행동 데이터를 분석하여 인사이트를 도출하는 능력이 필수적입니다.
데이터를 통해 가설을 세우고, 결과를 분석하며 개선점을 도출합니다.</p>
<p><strong>2.실험 문화</strong>
&quot;완벽한 계획&quot;을 세우기보다 작은 실험을 빠르게 실행하고, 피드백을 받아 다음 단계를 설계합니다.
&quot;<em>실패는 학습의 일부로 간주됩니다.</em>&quot;</p>
<p><strong>3.크로스팀 협업</strong>
마케팅, 제품 개발, 디자인, 데이터 분석 등 다양한 팀이 협력하여 성장을 위한 전략을 만듭니다.</p>
<p><strong>4.사용자 중심 사고</strong>
사용자의 문제를 깊이 이해하고, 사용자 여정의 각 단계(인지 → 획득 → 유지 → 추천)에서 성장을 도모합니다.</p>
<p><strong>5.효율성 중시</strong>
제한된 자원으로 최대의 효과를 내기 위해, 예산이나 시간 대비 ROI(Return on Investment)에 민감하게 접근합니다.</p>
<p>💡<strong>사고방식을 키우는 팁</strong>💡</p>
<ul>
<li><p>끊임없는 호기심:데이터를 보면 &quot;왜 이런 결과가 나왔을까?&quot;라고 질문하며 본질에 접근합니다.</p>
</li>
<li><p>실패를 두려워하지 않기:모든 아이디어가 성공적이지 않을 수 있다는 점을 받아들이고, 실패에서 배웁니다.</p>
</li>
<li><p>새로운 도구와 방법 탐구:데이터를 분석하거나 실험을 지원하는 새로운 기술과 트렌드에 항상 관심을 가집니다.</p>
</li>
</ul>
<h1 id="사례">사례</h1>
<blockquote>
<p><strong>스타트업에서 사용자 획득</strong>
<strong>문제</strong>: 사용자 수가 빠르게 늘지 않음.
<strong>그로스 해킹 접근</strong>: 사용자 획득을 위한 실험을 반복하며 최적의 방법을 찾음.</p>
</blockquote>
<ol>
<li><p>Dropbox
전략: Dropbox는 사용자에게 친구를 초대하면 추가 저장 공간을 제공하는 추천 프로그램을 도입했습니다. 이로 인해 사용자 수가 급격히 증가했습니다.
(입소문 마케팅과 사회적 증거를 결합)
결과: 이 전략을 통해 Dropbox는 사용자 수를 60% 증가시킬 수 있었습니다.</p>
</li>
<li><p>Airbnb
전략: Airbnb는 Craigslist의 사용자 기반을 활용하여 자신의 플랫폼에 트래픽을 유도했습니다. 사용자가 Airbnb에 숙소를 등록할 때 Craigslist에 자동으로 게시되도록 하여 더 많은 잠재 고객에게 노출되었습니다.
결과: 이 전략은 Airbnb의 초기 성장에 큰 기여를 했으며, 사용자 수가 급증했습니다.</p>
</li>
<li><p>Hotmail
전략: Hotmail은 이메일 하단에 &quot;이메일을 무료로 받으세요&quot;라는 메시지를 추가하여 사용자가 자신의 친구들에게 이메일을 전파하도록 유도했습니다.
결과: 이 간단한 전략으로 Hotmail은 사용자 수를 단기간에 1백만 명 이상 증가시킬 수 있었습니다.</p>
</li>
<li><p>LinkedIn
전략: LinkedIn은 사용자가 프로필을 업데이트할 때마다 자동으로 자신의 네트워크에 알림을 보내는 기능을 추가했습니다. 이를 통해 사용자 간의 연결을 촉진했습니다.
결과: 이 전략은 LinkedIn의 사용자 참여를 높이고, 네트워크 확장을 가속화하는 데 기여했습니다.</p>
</li>
</ol>
<blockquote>
<p><strong>소셜 미디어 앱의 사용자 유지</strong>
<strong>문제</strong>: 사용자들이 앱을 설치한 후 자주 사용하지 않음.
<strong>그로스 해킹 접근</strong>: 사용자 경험을 개선하고, 사용자들이 앱을 자주 사용할 수 있도록 유도.</p>
</blockquote>
<p>Instagram
전략: Instagram은 사용자가 사진을 공유할 때 해시태그를 사용하도록 유도하여 콘텐츠의 가시성을 높였습니다. 이를 통해 사용자들이 더 많은 사람들과 소통할 수 있도록 했습니다.
&quot;스토리&quot; 기능을 도입하여 사용자들이 더욱 자주 앱을 사용하도록 유도했습니다. 스토리는 사람들이 하루 동안의 일상을 빠르게 공유할 수 있는 방법으로, 사용자의 참여도를 높였고 앱 사용 시간을 증가시켰습니다.
결과: 해시태그 사용은 Instagram의 사용자 수와 참여도를 크게 증가시켰습니다.</p>
<p>Snapchat
전략: 사용자에게 매일 새로운 &quot;도전&quot;을 제시하는 기능을 도입하여 사용자가 앱에 자주 접속하도록 유도했습니다. 
이러한 도전 과제는 사용자가 콘텐츠를 더 자주 게시하고, 서로의 활동을 더 많이 관찰하게 만들었습니다.</p>
<blockquote>
<p>** 콘텐츠 기반 마케팅**
문제: 브랜드 인지도와 사용자 관심도가 낮음.
그로스 해킹 접근: <strong>콘텐츠를 통해 자연스럽게 사용자에게 접근하고 브랜드 인지도를 높임.</strong></p>
</blockquote>
<p>HubSpot
전략:무료 마케팅 리소스와 교육 콘텐츠를 제공하여 많은 잠재 고객을 끌어들였습니다. 예를 들어, 블로그 글, 온라인 강의, 전자책 등을 통해 인바운드 마케팅 전략을 전개했습니다. 
이를 통해 HubSpot은 시장에서 강력한 브랜드 인지도를 구축할 수 있었습니다.</p>
<p>Moz
전략:SEO(검색 엔진 최적화) 관련 블로그 콘텐츠와 도구들을 제공하면서 업계에서 권위 있는 존재로 자리잡았습니다. 
사용자들에게 실용적인 정보를 제공하면서 자연스럽게 제품에 대한 관심을 유도했습니다.</p>
<blockquote>
<p><strong>eCommerce 사이트의 전환율 향상</strong>
문제: 방문자는 많지만 실제 구매로 이어지지 않음.
그로스 해킹 접근: 구매 전환율을 높이는 실험을 실행하여 최적화함.</p>
</blockquote>
<p>Amazon
전략:&quot;1-Click 주문&quot;이라는 기능을 도입하여 결제 과정을 간소화하고, 사용자들이 더 쉽게 구매할 수 있도록 했습니다. 
이는 구매 전환율을 크게 향상시킨 예시입니다.</p>
<p>Shopify
전략:무료 체험 기간을 제공하고, 사용자가 직접 온라인 상점을 구축할 수 있는 툴을 제공하여 초기에 많은 사용자들을 유치했습니다. 
그런 후 사용자 행동을 분석하고 더 나은 상품 추천 알고리즘을 도입했습니다.</p>
<blockquote>
<p><strong>제품 개선을 통한 사용자 경험 향상</strong>
문제: 제품이 잘 팔리고 있지만 사용자 피드백을 통해 더 많은 개선이 필요함.
그로스 해킹 접근: 제품을 개선하여 사용자 경험을 향상시키고, 더 많은 추천을 받도록 유도.</p>
</blockquote>
<p>Slack
전략:초기 사용자들의 피드백을 적극적으로 수집하고, 그 피드백을 통해 제품을 개선했습니다. 
예를 들어, &quot;알림 시스템&quot;을 개선하거나, &quot;통합 기능&quot;을 추가하여 기업들이 Slack을 더욱 효율적으로 사용하도록 유도했습니다.</p>
<p>Spotify
전략:사용자의 듣기 패턴을 분석하여 맞춤형 추천 기능을 강화했고, &quot;Discover Weekly&quot;라는 맞춤형 플레이리스트를 도입하여 사용자들의 만족도를 크게 향상시켰습니다. 이로 인해 사용자들이 더 자주 Spotify를 이용하게 되었고, 그 결과 서비스의 활성화가 촉진되었습니다.</p>
<blockquote>
<p><strong>모바일 게임의 사용자 참여 유도</strong>
문제: 모바일 게임의 사용자 참여율이 저조.
그로스 해킹 접근: 게임 내 보상 시스템과 참여 유도를 통해 사용자를 지속적으로 유입.</p>
</blockquote>
<p>Candy Crush
전략:사용자들에게 게임의 각 레벨을 완료할 때마다 보상을 제공하며, 점차적으로 더 어려운 레벨을 제공하여 플레이어들이 게임에 더 많이 몰입하도록 유도했습니다. 
또한, 친구와의 경쟁 요소를 도입하여 사용자들 간의 경쟁을 촉진시켰습니다.</p>
<blockquote>
<p><strong>SaaS (서비스형 소프트웨어) 제품 확장</strong>
문제: 초기 사용자가 많지만 장기 사용자로 이어지지 않음.
그로스 해킹 접근: 사용자가 장기적으로 서비스를 계속 사용하도록 유도하고, 제품에 대한 충성도를 높임.</p>
</blockquote>
<p>Intercom
전략:고객 지원 및 커뮤니케이션을 위한 플랫폼으로, 사용자들에게 맞춤형 메시징과 도움을 제공하는 기능을 제공했습니다. 이를 통해 사용자가 서비스 내에서 더 많은 가치를 경험하도록 유도하고, 사용자 참여도를 높였습니다.</p>
<p>Zendesk
전략:고객 서비스 솔루션을 제공하는 SaaS 제품으로, 무료 체험 기간을 제공한 후, 실제 사용자들에게 이메일 마케팅을 통해 추가 기능을 홍보하며 장기적인 유료 사용자를 확보했습니다.</p>
<pre><code>                                |</code></pre><p>이러한 사례들은 그로스 해킹이 어떻게 다양한 산업에서 효과적으로 적용될 수 있는지를 보여줍니다.
각 기업은 고객의 행동을 분석하고, 그에 맞는 전략을 수립하여 성장을 이끌어냈습니다. 
그로스 해킹은 단순한 마케팅 기법이 아니라, </p>
<h3 id="데이터-기반의-사고방식으로-기업의-성장을-극대화하는-중요한-접근법입니다"><strong>데이터 기반의 사고방식으로 기업의 성장을 극대화하는 중요한 접근법입니다.</strong></h3>
<p><strong><em>세상에 전략이 아닌게 없구나..  인생은 전략이다!</em></strong></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[제로부터 시작하는 인스타그램 - 유튜브 영상보고 공부+따라하기]]></title>
            <link>https://velog.io/@nahyun_log/%EC%A0%9C%EB%A1%9C%EB%B6%80%ED%84%B0-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-%EC%9D%B8%EC%8A%A4%ED%83%80%EA%B7%B8%EB%9E%A8-%EC%9C%A0%ED%8A%9C%EB%B8%8C-%EC%98%81%EC%83%81%EB%B3%B4%EA%B3%A0-%EA%B3%B5%EB%B6%80%EB%94%B0%EB%9D%BC%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@nahyun_log/%EC%A0%9C%EB%A1%9C%EB%B6%80%ED%84%B0-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-%EC%9D%B8%EC%8A%A4%ED%83%80%EA%B7%B8%EB%9E%A8-%EC%9C%A0%ED%8A%9C%EB%B8%8C-%EC%98%81%EC%83%81%EB%B3%B4%EA%B3%A0-%EA%B3%B5%EB%B6%80%EB%94%B0%EB%9D%BC%ED%95%98%EA%B8%B0</guid>
            <pubDate>Thu, 28 Nov 2024 09:38:47 GMT</pubDate>
            <description><![CDATA[<p>[http코드] (<a href="https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C">https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C</a>) 
^ 링크 클릭</p>
<p>템플릿을 보여주기 위한 코드는 뷰가 한다
템플릿안에 .html파일을 
사용자한테 보여주고 싶어
뷰에서 처리를 해야한다 
사용자가 어떤 요청을 했을때
.html을 보여줘 라는걸 만들어야 됨
그러기 위해서는
url이라는 파일을 만들어야 한다
사용자가 어떤 url로 접속했을때 어떤 뷰에있는 함수를 실행시킬까 
어떤 html 파일을 보여줄까 선택할 수 있다</p>
<p>사용자의 흐름</p>
<p>브라우저의 웹페이지url에 뭘 입력하느냐에 따라서 
urls.py에 정의해놓은 리스트 중 하나를 골라서 
템플릿에 있는 .html 파일을 보여줄 수 있다.</p>
<p>가장 먼저 해야할것은 urls.py를 만드는 것</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[10진수(현실) 2진수(컴)... -과연 필요한가]]></title>
            <link>https://velog.io/@nahyun_log/10%EC%A7%84%EC%88%98%EC%8B%A4%EC%83%9D%ED%99%9C-2%EC%A7%84%EC%88%98%EC%BB%B4...-%EA%B3%BC%EC%97%B0-%ED%95%84%EC%9A%94%ED%95%9C%EA%B0%80</link>
            <guid>https://velog.io/@nahyun_log/10%EC%A7%84%EC%88%98%EC%8B%A4%EC%83%9D%ED%99%9C-2%EC%A7%84%EC%88%98%EC%BB%B4...-%EA%B3%BC%EC%97%B0-%ED%95%84%EC%9A%94%ED%95%9C%EA%B0%80</guid>
            <pubDate>Wed, 27 Nov 2024 14:37:18 GMT</pubDate>
            <description><![CDATA[<p>*2 를 계산한 값을 출력해도 되지만,
정수를 2배로 곱하거나 나누어 계산해 주는 비트단위시프트연산자 &lt;&lt;, &gt;&gt;를 이용할 수 있다.
컴퓨터 내부에는 2진수 형태로 값들이 저장되기 때문에,
2진수 형태로 저장되어 있는 값들을 왼쪽(&lt;&lt;)이나 오른쪽(&gt;&gt;)으로
지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 1/2로 줄어드는데,</p>
<p>왼쪽 비트시프트(&lt;&lt;)가 될 때에는 오른쪽에 0이 주어진 개수만큼 추가되고,
오른쪽 비트시프트(&gt;&gt;)가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가되고,
가장 오른쪽에 있는 1비트는 사라진다.</p>
<p>예시
n = 10
print(n&lt;&lt;1)  #10을 2배 한 값인 20 이 출력된다.
print(n&gt;&gt;1)  #10을 반으로 나눈 값인 5 가 출력된다.
print(n&lt;&lt;2)  #10을 4배 한 값인 40 이 출력된다.
print(n&gt;&gt;2)  #10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다.</p>
<h1 id="도-대-체">도 대 체</h1>
<p>무슨말을 하는지 모르겠다</p>
<p>chatgpt한테 물어봤다</p>
<p>몫이 0이 될 때까지 2로 계속 나누면서 나머지를 기록하는 게 <strong>10진수를 2진수로</strong> 변환하는 기본적인 방법입니다.</p>
<p>과정
현재 숫자를 2로 나눕니다.
몫과 나머지를 기록합니다.
<strong>몫이 0이 될 때까지</strong> 반복합니다.
<strong>나머지를</strong> 아래에서 위로(뒤집어서) 읽으면 2진수가 됩니다.
<img src="https://velog.velcdn.com/images/nahyun_log/post/b6135705-d156-468a-a552-48723c90e501/image.png" alt=""></p>
<h3 id="1-반드시-필요한-경우는-드물다">1. 반드시 필요한 경우는 드물다</h3>
<p>백엔드 개발은 대부분 고수준 언어(Django, Flask, Node.js 등)와 프레임워크를 사용해 업무 로직과 데이터 처리를 구현하는 일이 많습니다.
이런 환경에서는 비트 연산이나 진법을 직접 사용할 일이 많지 않습니다.
예를 들어:</p>
<p>데이터베이스 설계와 쿼리 작성
API 개발 및 인증 구현
서버 관리와 배포 작업
이런 작업에서는 비트 연산을 신경 쓰지 않아도 됩니다.</p>
<h3 id="2-그래도-알아두면-유용한-경우">2. 그래도 알아두면 유용한 경우</h3>
<p>(1) 최적화된 연산
백엔드에서 대규모 데이터 처리가 필요한 경우, 비트 연산을 활용하면 계산 속도를 높일 수 있습니다.</p>
<h1 id="비트-연산자">비트 연산자</h1>
<p><del>(드랍더비트)</del></p>
<ol>
<li>컴퓨터는 모든 정보를 <strong>0과 1</strong>로 이루어진 <strong>2진수</strong> 형태로 저장한다.
숫자뿐만 아니라 텍스트, 이미지, 소리, 비디오 등 모든 데이터가 결국엔 0과 1로 표현된다.
다만, 숫자와 다른 데이터는 저장 방식이 조금 다르다.</li>
</ol>
<p>💡<strong>숫자</strong>는 어떻게 저장되나요?
숫자는 본래 수학적 개념이라 컴퓨터에서 그대로 2진수로 변환됩니다.</p>
<p>예: 10 → <em>2진수로 변환</em> → 1010
음수는 특별히 부호를 붙여 표현합니다(예: 2의 보수 방식).</p>
<p>💡<strong>텍스트</strong>는 어떻게 저장되나요?
컴퓨터는 텍스트를 0과 1로 변환하기 위해 _문자 인코딩_을 사용합니다.</p>
<p>아스키 코드(ASCII):
알파벳, 숫자, 기호를 숫자로 매핑하여 저장합니다.
예: &#39;A&#39; → 65 → 2진수로 1000001</p>
<pre><code>아스키코드(ASCII)

범위: 0~127 (7비트, 총 128개 문자)
포함 문자:
영어 알파벳(AZ, az)
숫자(0~9)
몇 가지 기호(!, @, # 등)
제어 문자(줄 바꿈, 탭 등)
장점: 단순하고 저장 크기가 작음(1문자당 1바이트).
제한: 영어 외의 문자(한글, 일본어, 이모지 등)를 표현할 수 없음.

사용 상황:
영어로만 구성된 단순한 데이터를 다룰 때.
예: 오래된 시스템, 간단한 네트워크 프로토콜.
ASCII가 기본값인 파일 포맷(예: 초기 HTML, 일부 이메일 프로토콜).</code></pre><p>유니코드(UTF-8):
전 세계 모든 언어의 문자를 숫자로 매핑합니다.
예: &#39;가&#39; → 44032 → 2진수로 101011001100000</p>
<pre><code>유니코드(Unicode)

범위: 전 세계 모든 문자(언어, 기호, 이모지 등 포함).
UTF-8, UTF-16, UTF-32 같은 방식으로 인코딩.
포함 문자:
영어, 한글, 중국어, 아랍어 등 거의 모든 언어.
이모지(😊, 🚀 등)와 특수 기호도 포함.
장점: 전 세계 문자 지원.
제한: 다국어를 포함한 데이터에서 유용하지만, ASCII보다 저장 크기가 커질 수 있음(특히 UTF-16, UTF-32).

사용 상황:
다양한 언어가 필요한 경우.
예: 한글, 중국어, 일본어 등 다국어 웹사이트.
이모지나 특수 기호를 사용하는 경우.
최신 시스템, 데이터 교환(예: JSON, XML).
범용성과 국제화를 고려한 데이터.</code></pre><ul>
<li>🤔언제 아스키코드를쓰고 언제 유니코드를 쓰나?</li>
</ul>
<p>사용 상황은 데이터의 언어, 크기 제한, 그리고 범용성에 따라 결정
<img src="https://velog.velcdn.com/images/nahyun_log/post/0a564702-a06d-4d5e-a491-11c7d736c169/image.png" alt=""></p>
<p>💡<strong>이미지</strong>는 어떻게 저장되나요?
이미지는 픽셀(pixel)이라는 작은 점들의 집합으로 표현됩니다.</p>
<p>픽셀의 색상을 2진수로 저장합니다.
예: 빨간색 → RGB값 (255, 0, 0) → 2진수로 11111111 00000000 00000000
압축 방식(JPEG, PNG 등)을 적용해 데이터를 줄이기도 합니다.</p>
<p>💡<strong>소리</strong>는 어떻게 저장되나요?
소리는 아날로그 신호를 컴퓨터가 처리할 수 있는 디지털 신호로 변환하여 저장합니다.</p>
<p>샘플링: 소리를 일정 시간 간격으로 쪼개 숫자로 변환.
예: 1초간의 소리를 44,100번 샘플링 → 각 값을 2진수로 저장.</p>
<p>💡<strong>비디오</strong>는 어떻게 저장되나요?
비디오는 이미지와 소리의 조합입니다.</p>
<p>여러 개의 이미지를 초당 일정한 프레임으로 묶어서 저장합니다.
소리와 동기화하여 함께 재생되도록 합니다.</p>
<p>🤔10진수를 2진수로 빠르게 바꾸는 공식같은거 없나?</p>
<h2 id="파이썬에서는-내장-함수를-사용하여-간편하게-10진수를-2진수로-변환할-수-있다">파이썬에서는 내장 함수를 사용하여 간편하게 10진수를 2진수로 변환할 수 있다.</h2>
<pre><code>bin(13)  # 결과: &#39;0b1101&#39;

 &#39;0b&#39;는 2진수라는 것을 나타내는 접두사
</code></pre><h1 id="꼭-알아야-할-정도의-수준">꼭 알아야 할 정도의 수준</h1>
<h2 id="비트-연산자-----의-동작-방식">비트 연산자: &amp;, |, ^, &lt;&lt;, &gt;&gt;의 동작 방식</h2>
<p>진법 표기법: 2진수(0b), 8진수(0o), 16진수(0x)
간단한 활용: 비트를 활용한 플래그 관리</p>
<p>컴퓨터가 숫자를 0과 1로 이루어진 2진수로 저장한다는 것은 알고 있죠?
비트 연산자는 이 숫자들을 조작하는 도구입니다.
여기서 비트는 숫자를 이루는 0과 1 하나하나를 뜻해요.</p>
<p><strong>&amp;</strong> (AND)
두 숫자의 비트를 비교해서 둘 다 1일 때만 1로 만듭니다.
나머지는 0으로 만듭니다.
예:</p>
<pre><code>  1010  (10)
&amp; 1100  (12)
= 1000  (8)</code></pre><p><strong>|</strong> (OR)
두 숫자의 비트를 비교해서 하나라도 1이면 1로 만듭니다.
예:</p>
<pre><code>  1010  (10)
| 1100  (12)
= 1110  (14)</code></pre><p><strong>^</strong> (XOR)
두 숫자의 비트를 비교해서 둘이 다르면 1, 같으면 0으로 만듭니다.
예:</p>
<pre><code>  1010  (10)
^ 1100  (12)
= 0110  (6)</code></pre><p><strong>&lt;&lt;</strong> (왼쪽 비트 시프트)
숫자의 비트를 왼쪽으로 밀면서 0을 채워넣습니다.
왼쪽으로 한 번 밀면 숫자가 2배가 됩니다.
예:</p>
<pre><code>  1010  (10)
&lt;&lt; 1
= 10100 (20)</code></pre><p><strong>&gt;&gt;</strong> (오른쪽 비트 시프트)
숫자의 비트를 오른쪽으로 밀면서 빈자리를 0으로 채웁니다.
오른쪽으로 한 번 밀면 숫자가 1/2가 됩니다.</p>
<pre><code>  1010  (10)
&gt;&gt; 1
= 0101  (5)</code></pre><h2 id="진법-표기법">진법 표기법</h2>
<p>컴퓨터는 2진수, 8진수, 16진수를 사용합니다. Python에서는 숫자 앞에 특별한 기호를 붙여 어떤 진법인지 나타냅니다:</p>
<p>2진수: 0b 
8진수: 0o 
16진수: 0x </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[split() 메서드는 문자열에서만 사용할 수 있으며, 정수형에는 적용할 수 없습니다.]]></title>
            <link>https://velog.io/@nahyun_log/split-%EB%A9%94%EC%84%9C%EB%93%9C%EB%8A%94-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%97%90%EC%84%9C%EB%A7%8C-%EC%82%AC%EC%9A%A9%ED%95%A0-%EC%88%98-%EC%9E%88%EC%9C%BC%EB%A9%B0-%EC%A0%95%EC%88%98%ED%98%95%EC%97%90%EB%8A%94-%EC%A0%81%EC%9A%A9%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4</link>
            <guid>https://velog.io/@nahyun_log/split-%EB%A9%94%EC%84%9C%EB%93%9C%EB%8A%94-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%97%90%EC%84%9C%EB%A7%8C-%EC%82%AC%EC%9A%A9%ED%95%A0-%EC%88%98-%EC%9E%88%EC%9C%BC%EB%A9%B0-%EC%A0%95%EC%88%98%ED%98%95%EC%97%90%EB%8A%94-%EC%A0%81%EC%9A%A9%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4</guid>
            <pubDate>Tue, 26 Nov 2024 09:15:53 GMT</pubDate>
            <description><![CDATA[<pre><code>a, b = int(input()).split() 코드가 작동하지 않는 이유</code></pre><p>**
int(input())의 결과가 정수형이기 때문입니다. split() 메서드는 문자열에서만 사용할 수 있으며, 정수형에는 적용할 수 없습니다.**</p>
<p>input() 함수는 사용자로부터 입력을 받을 때 문자열로 입력을 받습니다. 만약 두 개의 숫자를 입력받고 싶다면, input()을 먼저 호출하여 문자열로 입력을 받고, 그 문자열을 split() 메서드를 사용하여 나눈 후, 각 부분을 정수로 변환해야 합니다.</p>
<p>정수 2개(a, b)를 입력받아 a에서 b를 뺀 차를 출력하는 프로그램을 작성해보자.</p>
<pre><code>a, b = input().split()
c = int(a) - int(b)
print(c)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[python 기초문제]]></title>
            <link>https://velog.io/@nahyun_log/python-%EA%B8%B0%EC%B4%88%EB%AC%B8%EC%A0%9C</link>
            <guid>https://velog.io/@nahyun_log/python-%EA%B8%B0%EC%B4%88%EB%AC%B8%EC%A0%9C</guid>
            <pubDate>Mon, 25 Nov 2024 08:29:16 GMT</pubDate>
            <description><![CDATA[<p>🧠알파벳과 숫자로 이루어진 단어 1개가 입력된다.
입력받은 단어의 각 문자를 한 줄에 한 문자씩 분리해 출력한다.</p>
<p>예시
s = input()
print(s[0])
print(s[1])
...</p>
<p>참고
s[0] 은 첫 번째 문자를 의미한다.</p>
<p>5개의 문자로 이루어진 단어 1개가 입력된다.</p>
<p>출력
각 문자를 한 줄에 한 문자씩 줄을 바꿔 출력한다.</p>
<p>입력 예시<br>Hello</p>
<p>출력 예시
H
e
l
l
o</p>
<p>나의 답</p>
<pre><code>s = input()
for i in s:
    print(i)</code></pre><p>와 한번에 정답
오예!! </p>
<p>🧠6자리 숫자로 이루어진 연월일(YYMMDD)이 입력된다.</p>
<p>년도(YY) 월(MM) 일(DD)을 공백으로 구분해 한 줄로 출력한다.</p>
<p>나의 답</p>
<pre><code>s = input()
print(s[0:2], &quot; &quot;,s[2:4], &quot; &quot;,s[4:])</code></pre><p>표현에러</p>
<p>, 쉼표는 안먹음</p>
<p>정답
s = input()
print(s[0:2]+&quot; &quot;+s[2:4]+&quot; &quot;+s[4:])</p>
<p>🧠시:분:초 형식으로 시간이 입력될 때 분만 출력해보자.</p>
<p>입력 예시<br>17:23:57</p>
<p>출력 예시
23</p>
<p>나의 답</p>
<pre><code>t = input()
print(t[3:4])</code></pre><p>이렇게하면 출력결과가 
2</p>
<pre><code>print(t[3:5]) </code></pre><p>하면 시간이 한자리수일때
6:00:00 이면 출력결과가 0: 
이렇게 나오므로 ...</p>
<p>🤔</p>
<p>정답은 </p>
<pre><code>t = input()
h, m, s = t.split(&#39;:&#39;)
print(m)</code></pre><p>해설:Python에서는 여러 변수를 한 번에 지정할 수 있다</p>
<p>나의 답</p>
<pre><code>a, b = input().split(&#39;\n&#39;)</code></pre><p>해설: input()은 줄바꿈 문자 없이 한 줄의 문자열만 반환하므로, split(&#39;\n&#39;)이 작동하지 않는다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[input() 함수의 인자에는 변수를 직접 사용할 수 없습니다.]]></title>
            <link>https://velog.io/@nahyun_log/input-%ED%95%A8%EC%88%98%EC%9D%98-%EC%9D%B8%EC%9E%90%EC%97%90%EB%8A%94-%EB%B3%80%EC%88%98%EB%A5%BC-%EC%A7%81%EC%A0%91-%EC%82%AC%EC%9A%A9%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4</link>
            <guid>https://velog.io/@nahyun_log/input-%ED%95%A8%EC%88%98%EC%9D%98-%EC%9D%B8%EC%9E%90%EC%97%90%EB%8A%94-%EB%B3%80%EC%88%98%EB%A5%BC-%EC%A7%81%EC%A0%91-%EC%82%AC%EC%9A%A9%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4</guid>
            <pubDate>Sat, 23 Nov 2024 08:10:01 GMT</pubDate>
            <description><![CDATA[<p>input() 함수는 문자열을 인자로 받아야한다</p>
<p>만약에 안에 변수를 쓰려면? </p>
<pre><code>name = &quot;나현&quot;
naming = input(f&#39;{name}님, 안녕하세요&#39;)</code></pre><p>공백있음</p>
<pre><code>s = input()
print(s, s, s) </code></pre><p>공백없음 하려면</p>
<pre><code>print(s, s, s, sep=&quot;&quot;)
또는
print(s * 3)
또는
print(s + s + s)
또는
print(f&quot;{s}{s}{s}&quot;)
또는
print(&quot;{}{}{}&quot;.format(s, s, s))
또는
print(&quot;&quot;.join([s] * 3))</code></pre><p>sep는 separator의 약자입니다. separator는 구분자라는 의미로, print() 함수에서 여러 값을 출력할 때 각 값들 사이에 어떤 문자를 넣을지 지정하는 데 사용됩니다.</p>
<pre><code>print(&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;, sep=&quot;, &quot;)




apple, banana, cherry


y, m, d = input().split(&#39;.&#39;)
print(d, m, y, sep=&#39;-&#39;)




d-m-y</code></pre><p>나의오답</p>
<pre><code>y, m, d = input().split(&#39;.&#39;)
print(d-m-y)
</code></pre><p>주민번호를 입력받아 형태를 바꿔 출력해보자</p>
<p>000907-1121112 -&gt; 0009071121112</p>
<p>나의 답</p>
<pre><code>a = input()
ymd = a.split(&quot;-&quot;)[0]
code = a.split(&quot;-&quot;)[1]
print(ymd+code)</code></pre><p>과연,,
헐 맞았다</p>
<p>헐ㄹ
ㄹ
ㄹ</p>
<p>ㄹ
ㄹ
ㄹ대박 </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[instagram 클론코딩]]></title>
            <link>https://velog.io/@nahyun_log/instagram-%ED%81%B4%EB%A1%A0%EC%BD%94%EB%94%A9</link>
            <guid>https://velog.io/@nahyun_log/instagram-%ED%81%B4%EB%A1%A0%EC%BD%94%EB%94%A9</guid>
            <pubDate>Fri, 22 Nov 2024 14:02:45 GMT</pubDate>
            <description><![CDATA[<p>cs내용)ip주소</p>
<p>127.0.0.1:8000/</p>
<p>127.0.0.1은 loop-back이라서 자기 자신을 가르킨다</p>
<p>포트번호는 서비스를 구분 
8000번은 장고 
8080번은 리액트
<img src="https://velog.velcdn.com/images/nahyun_log/post/be0a3742-8a3b-45a1-91f5-bfd37112e85b/image.png" alt=""></p>
<p>웹 서비스라면 당연히 80번 포트를 사용 
내부적인 서비스라면 임의로 정해서 포트번호를 쓸 수가 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[특수문자 출력 - 너무 헷갈리는데? - 알고보면 쉽다 쉬워]]></title>
            <link>https://velog.io/@nahyun_log/%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90-%EC%B6%9C%EB%A0%A5-%EB%84%88%EB%AC%B4-%ED%97%B7%EA%B0%88%EB%A6%AC%EB%8A%94%EB%8D%B0</link>
            <guid>https://velog.io/@nahyun_log/%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90-%EC%B6%9C%EB%A0%A5-%EB%84%88%EB%AC%B4-%ED%97%B7%EA%B0%88%EB%A6%AC%EB%8A%94%EB%8D%B0</guid>
            <pubDate>Fri, 22 Nov 2024 07:03:50 GMT</pubDate>
            <description><![CDATA[<pre><code>&quot;!@#$%^&amp;*()&#39;

print(&#39;&#39;&quot;!@#$%^&amp;*()&#39;&#39;&#39;) ??????</code></pre><h1 id="파이썬에서는-따옴표-안에-또-다른-따옴표를-넣을-때-이스케이프-문자인-백슬래시를-사용해야-합니다">파이썬에서는 따옴표 안에 또 다른 따옴표를 넣을 때 이스케이프 문자인 백슬래시()를 사용해야 합니다.</h1>
<p>&quot;는 큰따옴표를 출력하기 위해 사용</p>
<p>&#39;는 작은따옴표를 출력하기 위해 사용</p>
<p>다음 문장을 출력하시오.</p>
<p>&quot;!@#$%^&amp;*()&#39;
(단, 큰따옴표와 작은따옴표도 함께 출력한다.)</p>
<p>정답은</p>
<pre><code>print(&quot;\&quot;!@#$%^&amp;*()\&#39;&quot;)</code></pre><p>1 전체 문자열을 &quot;&quot; 로 감싸고
2 큰따옴표 출력을 위해 &quot; 
3 작은따옴표 출력을 위해 &#39;입력하였다.</p>
<p>🧐심화문제 </p>
<p>&quot;C:\Download&#39;hello&#39;.py&quot;
(단, 따옴표도 함께 출력한다.)</p>
<p>\도 안전하게 출력하려면 \를 사용하는 것이 좋다. &lt;-힌트같음</p>
<pre><code>print(&quot;\&quot;C:\Download\\\&#39;hello\&#39;.py\&quot;&quot;)</code></pre><p>오예! 한번에 맞았다!</p>
<p>야호<del>~</del></p>
<p>🧐심심화문제</p>
<p>print(&quot;Hello\nWorld&quot;)</p>
<p>위 코드를 정확히 그대로 출력하시오.(공백문자 주의)</p>
<p>print 명령 안에 서식 문자로 \n을 사용하면 줄 바꿈(new line) 문자로 사용된다.</p>
<p>그렇다면 \n을 화면에 그대로 출력하려면 어떻게 해야될까?</p>
<p>첫번째 오답</p>
<pre><code> print(&quot;print(&quot;Hello\\nWorld&quot;)&quot;)</code></pre><p>🤔
2 큰따옴표 출력을 위해 &quot;  이걸 잊음</p>
<p>정답은</p>
<pre><code>print(&quot;print(\&quot;Hello\\nWorld\&quot;)&quot;)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[db lock]]></title>
            <link>https://velog.io/@nahyun_log/db-lock</link>
            <guid>https://velog.io/@nahyun_log/db-lock</guid>
            <pubDate>Thu, 21 Nov 2024 13:10:13 GMT</pubDate>
            <description><![CDATA[<p>DB -&gt; 계산 / 낙관적 락 / 비관적 락 </p>
<p>서버에서 트래픽이 많이돌아오면 
ec2는 안죽음 </p>
<p>죽기전에 db가 먼저죽음 - 기존에 있던건 있고, 죽었던 시간동안은 조회,저장이 안됨 </p>
<p>쿼리최적화가 중요</p>
<p>보통은 서버보다 db 먼저 죽기때문에</p>
<p> 낙관적 락 / 비관적 락 </p>
<p> select_for_update() :db단에서 락거는것</p>
<p> 비관적락은 - 테이블/컬럼자체를 락</p>
<p>락거는거는 성능에안좋으므로 잘 안검 ---되게 중요한 데이터 같은 경우에는 테이블이랑 칼럼 자체를 락을 검-결제/예약/티켓팅</p>
<p>보통은 파이썬단에서 락을 거는게 --- 낙관적 락 </p>
<p>참고 글
<a href="https://techblog.yogiyo.co.kr/db-concurrency-%EC%96%B4%EB%94%94%EA%B9%8C%EC%A7%80-%EC%95%8C%EA%B3%A0-%EC%9E%88%EB%8B%88-559bfc4f59ee">https://techblog.yogiyo.co.kr/db-concurrency-%EC%96%B4%EB%94%94%EA%B9%8C%EC%A7%80-%EC%95%8C%EA%B3%A0-%EC%9E%88%EB%8B%88-559bfc4f59ee</a></p>
<p>like_count 의 정확성은 
장고계산 &lt; 디비에서 계산 &lt; 디비에서 락 걸고계산 순으로
높아짐 </p>
<p>type으로 빼다?</p>
<p>type. .name:</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[JS type변환]]></title>
            <link>https://velog.io/@nahyun_log/JS-type%EB%B3%80%ED%99%98</link>
            <guid>https://velog.io/@nahyun_log/JS-type%EB%B3%80%ED%99%98</guid>
            <pubDate>Mon, 11 Nov 2024 15:16:56 GMT</pubDate>
            <description><![CDATA[<p>js로 HTML을 수정하고, 변경하고
HTML을 상호작용이가능하게interactive 만드는 법 </p>
<h2 id="이제는-js로-html-페이지를-수정하는-과정을-배울-것이다">이제는 js로 HTML 페이지를 수정하는 과정을 배울 것이다!</h2>
<pre><code>const age = prompt(&quot;How old are you?&quot;);

console.log(typeof age);


string이 기본타입 </code></pre><p>type을 변경하는 방법을 배울 것이다.
&quot;15&quot; -&gt; 15</p>
<pre><code>parseInt() 

string을 number로 변환</code></pre><p>참고 NaN = Not a Number 참고</p>
<pre><code>const age = parseInt(prompt(&quot;How old are you?&quot;));

#두가지 function 사용함

첫번째 function prompt(&quot;How old are you?&quot;)
두번째 parseInt를 실행할 것이다.</code></pre><h3 id="function은-내부에서부터-외부로-실행된다">function은 내부에서부터 외부로 실행된다.</h3>
<p>다음시간
age가 NaN이 아니라면,</p>
]]></description>
        </item>
    </channel>
</rss>