<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Rosy's Artificial Intelligence Blog</title>
    <link>https://rosypark.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 8 Aug 2026 18:42:30 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>RosyPark</managingEditor>
    <image>
      <title>Rosy's Artificial Intelligence Blog</title>
      <url>https://tistory1.daumcdn.net/tistory/3243557/attach/9d5a230c975b4d7b8552d668a4d6aa42</url>
      <link>https://rosypark.tistory.com</link>
    </image>
    <item>
      <title>[JAVA, JAVASCRIPT, PYTHON] Call by .....</title>
      <link>https://rosypark.tistory.com/571</link>
      <description>&lt;h2 id=&quot;call-by-뭐시기&amp;hellip;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;call by ..??&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;평가 전략&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #202122;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #202122;&quot;&gt;Evaluation Strategy&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #202122;&quot;&gt;)은 프로그래밍 언어에서 함수 호출의 아규먼트(argument)의 순서를 언제 결정하고 함수에 어떤 종류의 값을 통과시킬지 결정하는 것.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #202122;&quot;&gt;(참고)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #202122;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;- 아규먼트란? 전달값, 전달인자, 여기서 int a, int b를 의미&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1651534456125&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public void change(int a, int b){
	...
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #202122;&quot;&gt;1.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;값에 의한 호출(Call by value)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px; font-family: 'Noto Sans Light';&quot;&gt;- 함수를 호출시 단순히 값을 전달하는 형태의 함수 호출&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- JAVA의 경우 call by value&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;arguments로&amp;nbsp;&lt;b&gt;값&lt;/b&gt;이 넘어온다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;값이 넘어올 때&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;&lt;b&gt;복사된 값&lt;/b&gt;&lt;/span&gt;이 넘어온다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;caller(호출하는 녀석)가 인자를 복사해서 넘겨줬으므로 callee(호출당한 녀석)에서 변경하여도 caller는&amp;nbsp;&lt;b&gt;영향을 받지 않는다&lt;/b&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;원본의 내용을 함수 내부에서 변경하는 것이 불가능하다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre id=&quot;code_1651533641907&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public void change(int a, int b){
    System.out.println(System.identityHashCode(a)); // 969692468
    System.out.println(System.identityHashCode(b));  // 152018490
    a = 11;
    b = 12; 
    System.out.println(System.identityHashCode(a)); //398844024
    System.out.println(System.identityHashCode(b)); // 1006146619
    System.out.println(a); // 11
    System.out.println(b); // 12
}

public static void main(String[] args) {
    int a = 1;
    int b = 2;
    System.out.println(System.identityHashCode(a)); // 969692468
    System.out.println(System.identityHashCode(b)); // 152018490
    change(a,b);
    System.out.println(a); // 1
    System.out.println(b); // 2 
    return true;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;참조에 의한 호출(Call by reference)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;- 메모리의 접근에 사용되는 주소값을 전달하는 형태의 함수 호출&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;-&amp;nbsp; C++&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;arguments로 **reference(값에 대한 참조 주소, 메모리 주소를 담고있는 변수)**를 넘겨준다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;reference를 넘기다 보니&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;해당 reference가 가리기는 값을&amp;nbsp;&lt;b&gt;복사하지는 않는다&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;caller(호출하는 녀석)가 인자를 복사해서 넘기지 않았으므로 callee(호출당한 녀석)에서 변경하면 caller는 &lt;b&gt;영향을 받는다&lt;/b&gt;.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;원본의 내용을 함수 내부에서 변경하는 것이 가능하다.&amp;nbsp;&lt;/span&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;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;3. Call by Object&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;- Python &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;- Call by Value, Call by Reference가 아닌 Call by Object 즉, &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&amp;nbsp;객체 참조(Object Reference) 에 의한 호출을 의미한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1651533137052&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def change(a,b):
    a = 11
    b = 12
    print(f&quot;a:{a}, b:{b}&quot;) #a:11, b:12
    print(f&quot;a.id:{id(a)}, b.id:{id(b)}&quot;) #a.id:140316426895920, b.id:140316426895952

a = 1
b = 2
print(f&quot;a.id:{id(a)}, b.id:{id(b)}&quot;) # a.id:140316426895600, b.id:140316426895632
change(a,b);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;4. Call by Sharing&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;- javascript의 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;- 함수에 문자열, 숫자 등의 기본 형태의 인자를 넘기면 값을 복사한 지역변수로 사용 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;- 함수에 객체 형태의 인자를 넘기면 속성은 공유하지만, 새로 객체를 할당할 수는 없음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;b&gt;call by sharing is a hybrid of the &amp;ldquo;call by value&amp;rdquo; and &amp;ldquo;call by reference&amp;rdquo; evaluation strategies&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #3d4144;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;that are implemented by other languages.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1651534890144&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var change = function(a,obj1, obj2){
    a = 10;
    obj1.item = &quot;changed&quot;;
    obj2 = {item : &quot;changed&quot;};
}

let a = 1;
let obj1 = {item : &quot;unchanged&quot;};
let obj2 = {item : &quot;unchanged&quot;}; 
change(a, obj1, obj2)
console.log(a); // 1
console.log(obj1); // { item: 'changed' }
console.log(obj2); //  { item: 'unchanged' }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #202122; font-family: 'Noto Sans Light';&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;color: #202122; font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;코딩언어마다 immutable(불변)인지, mutable(가변)인지 확인을 잘 하여 코딩을 해야한다. &lt;span style=&quot;background-color: #ffffff; color: #202122;&quot;&gt;할당되는것에 따라 달라지기 떄문이다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #202122; font-family: 'Noto Sans Light';&quot;&gt;- mutable(가변)객체를 넘기면 &lt;b&gt;call by reference, 리스트와 딕셔너리는 변경이 가능하다. &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #202122; font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #202122; font-family: 'Noto Sans Light';&quot;&gt;- immutable(불변)객체를 넘기면 &lt;b&gt;call by value&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 59px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 19px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #202122;&quot;&gt;python&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;javascript&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;가변(mutable)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #212529; font-family: 'Nanum Gothic';&quot;&gt;list, set, dict&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;array, object, function RefExp, Map ...&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;불변(immutable)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #212529; font-family: 'Nanum Gothic';&quot;&gt;int, float, bool, tuple, string, unicode&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Number, String, Boolean, Symbol, null, undefined&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;불변을 유지하기 위해? spread연산자, immer라이브러리 사용&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;Python&lt;/b&gt;&amp;nbsp; 주소값 참조&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;값 복사&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;- 1차원 곱하기는 참조가 복사되지 않고 다른 주소값으로 만들어진다&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;b = [False] * 3  # False 를 10개 만든것
print(b); #[False, False, False]

b[0] = True;
print(b) #[True, False, False]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;- 하지만 2차원 리스트의 경우 리스트는 참조로 복사되어 a[0][0] = True로 값을 변경하면 a[0][0], a[1][0], a[2][0] 값이 다 똑같이 변하여 동일한 값을 가짐을 알 수 있다. * 주의해서 list를 만들어야 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;a = [[False] * 3] * 3  #&quot;동일한&quot; 리스트를 10개 만든것
print(a);  # [[False, False, False], [False, False, False], [False, False, False]]

a[0][0] = True;
print(a) #[[True, False, False], [True, False, False], [True, False, False]]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이를 방지하기 위해서 list comprehension을 사용해서 데이터를 만들어야 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;list comprehension으로 만들면 값이 살아 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;a = [[False for _ in range(3)] for _ in range(3)] # 다른 리스트를 10개 만든것 주소값을 다른 것으로 만든것
a[0][0] = True
print(a) #[[True, False, False], [False, False, False], [False, False, False]]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;출처&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;1. &lt;a href=&quot;https://perfectacle.github.io/2017/10/30/js-014-call-by-value-vs-call-by-reference/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://perfectacle.github.io/2017/10/30/js-014-call-by-value-vs-call-by-reference/&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1651534256041&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;(자알쓰) call by value vs call by reference&quot; data-og-description=&quot;자알쓰란?자바스크립트 알고 쓰자. (잘 쓰자는 의미도 담겨있다.)자바스크립트라는 언어 자체는 내 기준에서는 설계 상 미스가 참 많다.함수 단위의 스코프, 호이스팅, 동적 타입 등등자바와 같&quot; data-og-host=&quot;perfectacle.github.io&quot; data-og-source-url=&quot;https://perfectacle.github.io/2017/10/30/js-014-call-by-value-vs-call-by-reference/&quot; data-og-url=&quot;https://perfectacle.github.io/2017/10/30/js-014-call-by-value-vs-call-by-reference/index.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Kfjqn/hyOfblno9j/2xwTZQfKKWcK6D61kTU7Ok/img.png?width=600&amp;amp;height=304&amp;amp;face=0_0_600_304,https://scrap.kakaocdn.net/dn/LX4cX/hyOfcdxd4R/PU51kuv1WSlVQKiZq9LRNK/img.png?width=350&amp;amp;height=200&amp;amp;face=0_0_350_200,https://scrap.kakaocdn.net/dn/bsa4tI/hyOgnEvqP8/WBRbkC8kP44Kbb2Khk1foK/img.png?width=400&amp;amp;height=480&amp;amp;face=0_0_400_480,https://scrap.kakaocdn.net/dn/b8sChB/hyOff8951v/AFbkzCurSCR3s1K4woOgR0/img.png?width=600&amp;amp;height=304&amp;amp;face=0_0_600_304&quot;&gt;&lt;a href=&quot;https://perfectacle.github.io/2017/10/30/js-014-call-by-value-vs-call-by-reference/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://perfectacle.github.io/2017/10/30/js-014-call-by-value-vs-call-by-reference/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Kfjqn/hyOfblno9j/2xwTZQfKKWcK6D61kTU7Ok/img.png?width=600&amp;amp;height=304&amp;amp;face=0_0_600_304,https://scrap.kakaocdn.net/dn/LX4cX/hyOfcdxd4R/PU51kuv1WSlVQKiZq9LRNK/img.png?width=350&amp;amp;height=200&amp;amp;face=0_0_350_200,https://scrap.kakaocdn.net/dn/bsa4tI/hyOgnEvqP8/WBRbkC8kP44Kbb2Khk1foK/img.png?width=400&amp;amp;height=480&amp;amp;face=0_0_400_480,https://scrap.kakaocdn.net/dn/b8sChB/hyOff8951v/AFbkzCurSCR3s1K4woOgR0/img.png?width=600&amp;amp;height=304&amp;amp;face=0_0_600_304');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;(자알쓰) call by value vs call by reference&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;자알쓰란?자바스크립트 알고 쓰자. (잘 쓰자는 의미도 담겨있다.)자바스크립트라는 언어 자체는 내 기준에서는 설계 상 미스가 참 많다.함수 단위의 스코프, 호이스팅, 동적 타입 등등자바와 같&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;perfectacle.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;2.&lt;a href=&quot;https://www.pymoon.com/entry/Python-%EC%9D%80-callbyvalue-%EC%9D%BC%EA%B9%8C-callbyreference-%EC%9D%BC%EA%B9%8C&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.pymoon.com/entry/Python-%EC%9D%80-callbyvalue-%EC%9D%BC%EA%B9%8C-callbyreference-%EC%9D%BC%EA%B9%8C&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1651534258126&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Python 은 call-by-value 일까 call-by-reference 일까&quot; data-og-description=&quot;파이썬 call-by-value 일까 call-by-reference 일까 (Python call by value vs&amp;nbsp;call by reference) 결론부터 말하자면&amp;nbsp;passed by assignment 라고 한다. 즉, 어떤 값을 전달하느냐에 따라 달라지는 것이다. 파이..&quot; data-og-host=&quot;www.pymoon.com&quot; data-og-source-url=&quot;https://www.pymoon.com/entry/Python-%EC%9D%80-callbyvalue-%EC%9D%BC%EA%B9%8C-callbyreference-%EC%9D%BC%EA%B9%8C&quot; data-og-url=&quot;https://www.pymoon.com/entry/Python-%EC%9D%80-callbyvalue-%EC%9D%BC%EA%B9%8C-callbyreference-%EC%9D%BC%EA%B9%8C&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bTvuwi/hyOgviexOH/VXksgf7IN5GryUJWkMUIAk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bUsvZI/hyOe40QS0e/xB10HddP0fIjdYPEI9FCU1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bhKXKL/hyOgndq1MJ/TP6UkOKFLerVj3rv188qI1/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512&quot;&gt;&lt;a href=&quot;https://www.pymoon.com/entry/Python-%EC%9D%80-callbyvalue-%EC%9D%BC%EA%B9%8C-callbyreference-%EC%9D%BC%EA%B9%8C&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.pymoon.com/entry/Python-%EC%9D%80-callbyvalue-%EC%9D%BC%EA%B9%8C-callbyreference-%EC%9D%BC%EA%B9%8C&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bTvuwi/hyOgviexOH/VXksgf7IN5GryUJWkMUIAk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bUsvZI/hyOe40QS0e/xB10HddP0fIjdYPEI9FCU1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bhKXKL/hyOgndq1MJ/TP6UkOKFLerVj3rv188qI1/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Python 은 call-by-value 일까 call-by-reference 일까&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;파이썬 call-by-value 일까 call-by-reference 일까 (Python call by value vs&amp;nbsp;call by reference) 결론부터 말하자면&amp;nbsp;passed by assignment 라고 한다. 즉, 어떤 값을 전달하느냐에 따라 달라지는 것이다. 파이..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.pymoon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;a href=&quot;http://milooy.github.io/TIL/JavaScript/call-by-sharing.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://milooy.github.io/TIL/JavaScript/call-by-sharing.html&lt;/a&gt;​&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. &lt;a href=&quot;https://bambielli.com/til/2016-02-15-javascript-call-by-sharing/#:~:text=TIL%20that%20there%20is%20a,are%20implemented%20by%20other%20languages.&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://bambielli.com/til/2016-02-15-javascript-call-by-sharing/#:~:text=TIL%20that%20there%20is%20a,are%20implemented%20by%20other%20languages.&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5.&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/JAVA&amp;amp;JAVASCRIPT비교</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/571</guid>
      <comments>https://rosypark.tistory.com/571#entry571comment</comments>
      <pubDate>Tue, 6 Sep 2022 15:08:26 +0900</pubDate>
    </item>
    <item>
      <title>[React] 제어 컴포넌트&amp;amp; 비제어 컴포넌트  (controlled components &amp;amp; Uncontrolled Components )</title>
      <link>https://rosypark.tistory.com/645</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #6d6d6d;&quot;&gt;HTML 폼 엘리먼트는 폼 엘리먼트 자체가 내부 상태를 가지기 때문에, React의 다른 DOM 엘리먼트와 다르게 동작&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;사용자가 폼을 제출하면 새로운 페이지로 이동하는 기본 HTML 폼 동작을 수행&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;controlled-components&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;제어 컴포넌트 (Controlled Component)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;input&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;lt;textarea&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;lt;select&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;와 같은 폼 엘리먼트는 일반적으로 사용자의 입력을 기반으로 자신의 state를 관리하고 업데이트&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;React에서는 변경할 수 있는 state가 일반적으로 컴포넌트의 state 속성에 유지되며&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://ko.reactjs.org/docs/react-component.html#setstate&quot;&gt;setState()&lt;/a&gt;&lt;span style=&quot;color: #000000;&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;&amp;lt;input&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. type = &quot;text&quot;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662102392073&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; value={txtValue} onChange={(e) =&amp;gt; { setTxtValue(e.target.value); }} /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cf) defaultValue &amp;lt;- Uncontrolled Components&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662102687372&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; defaultValue={&quot;example&quot;} /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. checkbox&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662103179570&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type = &quot;checkbox&quot; checked = {checkValue} onChange = {(e) =&amp;gt; setCheckValue(e.target.checked)} /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cf) defaultValue?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Likewise,&amp;nbsp;&amp;lt;input&amp;nbsp;type=&quot;checkbox&quot;&amp;gt;&amp;nbsp;and&amp;nbsp;&amp;lt;input&amp;nbsp;type=&quot;radio&quot;&amp;gt;&amp;nbsp;support&amp;nbsp;defaultChecked,&amp;nbsp;and&amp;nbsp;&amp;lt;select&amp;gt;&amp;nbsp;and&amp;nbsp;&amp;lt;textarea&amp;gt;&amp;nbsp;supports&amp;nbsp;defaultValue.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. radio&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.1 radio (two)&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662105022645&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;radio&quot; name=&quot;radio1&quot; checked={checkRadio} onChange={(e) =&amp;gt; setCheckRadio(true)} /&amp;gt;
&amp;lt;input type=&quot;radio&quot; name=&quot;radio1&quot; checked={!checkRadio} onChange={(e) =&amp;gt; setCheckRadio(false)} /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.2. radio (more than three)&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662104664945&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; {radioTxt.map((radioTxt, index) =&amp;gt; (
      &amp;lt;div key={index}&amp;gt;
        &amp;lt;input
          id={&quot;radio_&quot; + (index + 1)}
          type=&quot;radio&quot;
          name=&quot;radio&quot;
          defaultChecked={radioValue}
          onChange={() =&amp;gt; setRadioValue(radioTxt)}
        /&amp;gt;
      &amp;lt;/div&amp;gt;
    ))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;textarea&amp;gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662102416189&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;textarea type=&quot;text&quot; maxLength={50} value={txtAreaValue} onChange={(e) =&amp;gt; { setTxtAreaValue(e.target.value); }} /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;비제어&amp;nbsp;&amp;nbsp;컴포넌트 (Controlled Component)&lt;/b&gt;&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #6d6d6d;&quot;&gt;대부분 경우에 폼을 구현하는데&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://ko.reactjs.org/docs/forms.html#controlled-components&quot;&gt;제어 컴포넌트&lt;/a&gt;&lt;span style=&quot;color: #6d6d6d;&quot;&gt;를 사용하는 것이 좋음&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #6d6d6d;&quot;&gt;대안인 비제어 컴포넌트는 DOM 자체에서 폼 데이터가 다루어짐&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &amp;lt;input type = &quot;text&quot; &amp;gt;의 defaultValue&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662105691117&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; defaultValue={&quot;example&quot;} /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &amp;lt;input type = &quot;file&quot;&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1662105668250&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;file&quot; ref={fileInput} /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체코드는 여기에&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/kind-mendel-ozub2m?autoresize=1&amp;amp;fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;a href=&quot;https://ko.reactjs.org/docs/forms.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ko.reactjs.org/docs/forms.html&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;a href=&quot;https://ko.reactjs.org/docs/uncontrolled-components.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ko.reactjs.org/docs/uncontrolled-components.html&lt;/a&gt;&lt;/p&gt;</description>
      <category>Programming/React</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/645</guid>
      <comments>https://rosypark.tistory.com/645#entry645comment</comments>
      <pubDate>Fri, 2 Sep 2022 16:04:07 +0900</pubDate>
    </item>
    <item>
      <title>[HTML] HTML 기본 코드/요소</title>
      <link>https://rosypark.tistory.com/207</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;b&gt;HTML&amp;nbsp;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- html을 잘 알아볼려면 무슨 사이트 참조? &lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTML&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Mozilla 사이트 참조&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;- &lt;b&gt;HTML&lt;/b&gt;(HyperText Markup Language)&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RlUeh/btqZegXuG5B/LRgtPaLI9lVXZgHmfyIhJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RlUeh/btqZegXuG5B/LRgtPaLI9lVXZgHmfyIhJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RlUeh/btqZegXuG5B/LRgtPaLI9lVXZgHmfyIhJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRlUeh%2FbtqZegXuG5B%2FLRgtPaLI9lVXZgHmfyIhJ0%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;807&quot; height=&quot;472&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;HTML 문서 기본 태그&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ImZ48/btqZdmcADLK/eyCKk3vSYyoHyYG5bMLHDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ImZ48/btqZdmcADLK/eyCKk3vSYyoHyYG5bMLHDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ImZ48/btqZdmcADLK/eyCKk3vSYyoHyYG5bMLHDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FImZ48%2FbtqZdmcADLK%2FeyCKk3vSYyoHyYG5bMLHDK%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;402&quot; height=&quot;188&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;188&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;!DOCTYPE&amp;nbsp;html&amp;gt; ~ &amp;lt;/html&amp;gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;-&amp;nbsp; 현재 문서가 HTML5 언어로 작성된 웹 문서&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;html&amp;gt; ~ &amp;lt;/html&amp;gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;meta charset = &quot;utf-8&quot;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- character set은 utf-8 사용, 현존하는 언어를 지원해줌&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;meta name = &quot;viewport&quot; content = &quot;width=device_width&quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- 전체 화면들을 보여주는 것&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;head&amp;gt; ~ &amp;lt;/head&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;- 웹 브라우저가 웹 문서를 해석하기 위해 필요한정보들을 입력하는 부분&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- 실제 문서 내용이 아니기 때문에, 문서 제목만 브라우저 창에 표시되고 나머지는 웹 브라우저 화면에 표시되지 않음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- 스타일 및 스크립트 등이 포함됨&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;body&amp;gt; ~ &amp;lt;/body&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;- 실제로 웹 브라우저 화면에 나타날 내용 = 사용자에게 보여지는 태그들을 의미&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- 대부분의 코드는 HTML 태그들은 &amp;lt;body&amp;gt;&amp;nbsp; 태그안에 들어감&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;HTML Element Reference&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;- Element Reference 링크&amp;nbsp;&amp;nbsp;&lt;/a&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;HTML Error 판독해주는 사이트&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;- &lt;a href=&quot;http://validator.w3.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;validator 사이트&amp;nbsp;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- url or file upload , direct로 input하여 판명할 수 도 있음&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;1175&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SSKRB/btqZhfRk5cP/CGdJ3rOhrVjHC6MxPqJUr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SSKRB/btqZhfRk5cP/CGdJ3rOhrVjHC6MxPqJUr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SSKRB/btqZhfRk5cP/CGdJ3rOhrVjHC6MxPqJUr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSSKRB%2FbtqZhfRk5cP%2FCGdJ3rOhrVjHC6MxPqJUr1%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;1175&quot; height=&quot;367&quot; data-origin-width=&quot;1175&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Document and website structure&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;website structure&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;843&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eqXNvp/btqZhgCGuhc/0KjlKDWTnN0kk50zJUssn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eqXNvp/btqZhgCGuhc/0KjlKDWTnN0kk50zJUssn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eqXNvp/btqZhgCGuhc/0KjlKDWTnN0kk50zJUssn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeqXNvp%2FbtqZhgCGuhc%2F0KjlKDWTnN0kk50zJUssn0%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;573&quot; height=&quot;843&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;843&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 웹사이트를 만들때 어떤식으로 만들어야 할지 나타내는 것&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 웹사이트에는 header / nav / aside / main / footer을 크게 나누어서 만듦&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- html에서 추천하는 방법 section tag를 사용해서 하는 것이 좋음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;279&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/W7znu/btqZefEiVyo/KN7o1aDtFqSP8bMB6njXP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/W7znu/btqZefEiVyo/KN7o1aDtFqSP8bMB6njXP1/img.png&quot; data-alt=&quot;about:blank&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/W7znu/btqZefEiVyo/KN7o1aDtFqSP8bMB6njXP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW7znu%2FbtqZefEiVyo%2FKN7o1aDtFqSP8bMB6njXP1%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;444&quot; height=&quot;279&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;279&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;about:blank&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;header -&amp;nbsp;&lt;/b&gt;&amp;nbsp;머리말을 나타내는 요소&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;nav -&amp;nbsp;&lt;/b&gt;&amp;nbsp;메뉴 부분을 나타내는 요소&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;article - &lt;/b&gt;개별 콘텐츠를 나타내는 요소&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;section -&amp;nbsp;&lt;/b&gt;&amp;nbsp;제목별로 나눌 수 있는 요소&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;aside -&amp;nbsp;&lt;/b&gt;&amp;nbsp;좌우측의 사이드바를 나타내는 요소&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;footer -&amp;nbsp;&lt;/b&gt;&amp;nbsp;제작자의 정보나 저작권의 정보를 나타내는 요소&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Box &amp;amp; Item&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style8&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Box&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Item&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span&gt;-&amp;nbsp;header &lt;br /&gt;- footer &lt;br /&gt;- nav &lt;br /&gt;- aside &lt;br /&gt;- main &lt;br /&gt;- section &lt;br /&gt;- article&amp;nbsp; &lt;br /&gt;- div &lt;br /&gt;- span &lt;br /&gt;- form&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;- a&lt;br /&gt;-&amp;nbsp;button &lt;br /&gt;- input &lt;br /&gt;- label &lt;br /&gt;- img &lt;br /&gt;- video &lt;br /&gt;- audio &lt;br /&gt;- map &lt;br /&gt;- canvas &lt;br /&gt;- table&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Block과 Inline의 차이&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Inline 태그는 공간이 허용되면 다른 태그가 됨&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Tag &amp;amp; Element&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt; =&amp;gt; Tag&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- My Cat is very grumpy =&amp;gt; Content&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;p&amp;gt; My Cat is very Grumpy &amp;lt;/p&amp;gt; =&amp;gt; Element&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614828276026&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt; My Cat is very grumpy &amp;lt;/p&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Attributes&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1614828551552&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p class = &quot;editor-note&quot;&amp;gt; My Cat is very grumpy &amp;lt;/p&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Tag 종류&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(1) h1 / button&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614828858286&quot; class=&quot;html xml&quot; style=&quot;display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;!--Box vs Item --&amp;gt; 
  &amp;lt;header&amp;gt; &amp;lt;/header&amp;gt;
  &amp;lt;footer&amp;gt; &amp;lt;/footer&amp;gt; 
  &amp;lt;section&amp;gt; &amp;lt;/section&amp;gt;
  &amp;lt;div&amp;gt; &amp;lt;/div&amp;gt;
  &amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;
  &amp;lt;h1&amp;gt;로지의 블로그&amp;lt;/h1&amp;gt; 
  &amp;lt;button&amp;gt; html 버튼입니다. &amp;lt;/button&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;234&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGRBGj/btqY7nQ61YH/YyuKd7KKkU53qdqSm02Bw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGRBGj/btqY7nQ61YH/YyuKd7KKkU53qdqSm02Bw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGRBGj/btqY7nQ61YH/YyuKd7KKkU53qdqSm02Bw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGRBGj%2FbtqY7nQ61YH%2FYyuKd7KKkU53qdqSm02Bw1%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;234&quot; height=&quot;123&quot; data-origin-width=&quot;234&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(2) a 태그&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1614829023218&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;!--a --&amp;gt;
  &amp;lt;a href = &quot;https://google.com&quot; target = _black&amp;gt;click&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Mozilla WebSite에 가면 Target에 관한 tag 정보들을 알 수 있음.. 새로운 창에 열것인가? 등등&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span&gt;하이퍼링크를 걸어주는 태그&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(3) Block vs Inline&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;- block? 한줄을 점유하고, 다음 태그는 무조건 줄바꿈 적용. 대표적 tag) &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- inline? text 크기만큼 공간을 점유하고 줄바꿈을 하지 않음. 대표적 tag)&amp;nbsp; &amp;lt;b&amp;gt;&amp;lt;/b&amp;gt; , &amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- inline-block? inline 속성의 특징과 block 속성 특징 , 기본적인 특징은 inline 속성과 비슷한데 inline에서 할 수 없었던 width/height 변경 및 line-height를 custom 적용할 수 있음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;p&amp;gt; &amp;lt;/p&amp;gt; -&amp;gt; 문단을 정의할 때 사용&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1614829155219&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;p&amp;gt; This is a sentence. &amp;lt;b&amp;gt;That&amp;lt;/b&amp;gt; is ..&amp;lt;/p&amp;gt; 
  &amp;lt;p&amp;gt; This is a sentence. &amp;lt;span&amp;gt;That&amp;lt;/span&amp;gt; is ..&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt; This is a sentence. &amp;lt;div&amp;gt; That&amp;lt;/div&amp;gt; is ..&amp;lt;/p&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;227&quot; data-origin-height=&quot;183&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEuviH/btqZefj3d9E/hxHMQ6gV6omFrUAcO1s1hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEuviH/btqZefj3d9E/hxHMQ6gV6omFrUAcO1s1hk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEuviH/btqZefj3d9E/hxHMQ6gV6omFrUAcO1s1hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEuviH%2FbtqZefj3d9E%2FhxHMQ6gV6omFrUAcO1s1hk%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;227&quot; height=&quot;183&quot; data-origin-width=&quot;227&quot; data-origin-height=&quot;183&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(4) &lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;ol&amp;gt; &amp;lt;ul&amp;gt; &lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 266px;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 49.8837%;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;태그&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;설명&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 49.8837%;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;li&amp;gt; 내용 &amp;lt;/li&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;li&amp;gt; 내용 &amp;lt;/li&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;/ul&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;순서없는 목록 만들기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 49.8837%;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;ol&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;li&amp;gt; 내용 &amp;lt;/li&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;li&amp;gt; 내용 &amp;lt;/li&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;/ol&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;순서있는 목록 만들기&amp;nbsp;&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;- ol&amp;gt;li*3 -&amp;gt; Tab키? 자동생성&lt;/p&gt;
&lt;pre id=&quot;code_1614831039248&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;   &amp;lt;ol&amp;gt;
     &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;/ol&amp;gt;
   
  &amp;lt;ol&amp;gt;
     &amp;lt;li&amp;gt;1&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;2&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;3&amp;lt;/li&amp;gt;
   &amp;lt;/ol&amp;gt;
  &amp;lt;br&amp;gt;
  &amp;lt;ul&amp;gt;
     &amp;lt;li&amp;gt;안녕하세요&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;감사합니다&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;또 만나요&amp;lt;/li&amp;gt;
   &amp;lt;/ul&amp;gt;  &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;165&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GiY0C/btqY8HBWuLI/65P6W1dUXjEn0ITJJaK0s1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GiY0C/btqY8HBWuLI/65P6W1dUXjEn0ITJJaK0s1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GiY0C/btqY8HBWuLI/65P6W1dUXjEn0ITJJaK0s1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGiY0C%2FbtqY8HBWuLI%2F65P6W1dUXjEn0ITJJaK0s1%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;165&quot; height=&quot;208&quot; data-origin-width=&quot;165&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(5) Input&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;공식문서&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;developer.mozilla.org/en-US/docs/Web/HTML/Element/input&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- label이나 input은 Inline Element 둘 다 한줄에 동시에 표기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- id에 고유한 id를 설정해줌&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- label의 for과 input의 id를 똑같이 해줌&lt;/p&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;lt;1&amp;gt; type = &quot;text&quot;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614831341785&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;!-- Input --&amp;gt; 
  &amp;lt;label for = &quot;input_name&quot;&amp;gt;Name : &amp;lt;/label&amp;gt;
  &amp;lt;input id = &quot;input_name&quot; type = &quot;text&quot;&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;74&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcXPeF/btqZfgJPQeP/kHXhsxIMKhJceH01sGzKq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcXPeF/btqZfgJPQeP/kHXhsxIMKhJceH01sGzKq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcXPeF/btqZfgJPQeP/kHXhsxIMKhJceH01sGzKq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcXPeF%2FbtqZfgJPQeP%2FkHXhsxIMKhJceH01sGzKq1%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;256&quot; height=&quot;74&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;74&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;2&amp;gt;&lt;/span&gt; type = &quot;file&quot;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1614831460576&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;!-- Input --&amp;gt; 
  &amp;lt;label for = &quot;input_name&quot;&amp;gt;Name : &amp;lt;/label&amp;gt;
  &amp;lt;input id = &quot;input_name&quot; type = &quot;file&quot;&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;69&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ea8494/btqZhgQl1Oi/ptfxVxkm5QTidtQNNKbSAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ea8494/btqZhgQl1Oi/ptfxVxkm5QTidtQNNKbSAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ea8494/btqZhgQl1Oi/ptfxVxkm5QTidtQNNKbSAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fea8494%2FbtqZhgQl1Oi%2FptfxVxkm5QTidtQNNKbSAK%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;247&quot; height=&quot;69&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;69&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;3&amp;gt;&lt;/span&gt;&amp;nbsp;type = &quot;password&quot;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614831573048&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;!-- Input --&amp;gt; 
  &amp;lt;label for = &quot;inputName&quot;&amp;gt;Password : &amp;lt;/label&amp;gt;
  &amp;lt;input id = &quot;inputName&quot; type = &quot;password&quot;&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3ntdT/btqY7oCzSxp/hBGaMf0t10CmbI3Fo05C70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3ntdT/btqY7oCzSxp/hBGaMf0t10CmbI3Fo05C70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3ntdT/btqY7oCzSxp/hBGaMf0t10CmbI3Fo05C70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3ntdT%2FbtqY7oCzSxp%2FhBGaMf0t10CmbI3Fo05C70%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;299&quot; height=&quot;70&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;4&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; type = &quot;radio&quot;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;example1 -&amp;gt; 일반 javascript&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;example2 -&amp;gt; jsx를 사용하는 React&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(6) span&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 내용이 있어야지 표기가 됨&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;태그처럼 특별한 기능을 갖고있지 않고, CSS와 함께 쓰임&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- display &lt;span&gt;속성이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;block&lt;span&gt;이 아닌,&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;inline&lt;span&gt;이라는 점&amp;nbsp;&lt;/span&gt;&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(7) &lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;i&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- icon Tag&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://fontawesome.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;- icon Site&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(8) Table&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;테이블 구성 요소&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;table&amp;gt; : 테이블을 만드는 태그&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;th&amp;gt; : 테이블의 헤더 부분을 만드는 태그&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;tr&amp;gt; : 테이블의 행을 만드는 태그&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;td&amp;gt; : 테이블의 열을 만드는 태그&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;1&amp;gt; 테이블 사용법&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqI4Mc/btqZhfjTwYs/ci2u4W5PlsFEk1cMwyBFkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqI4Mc/btqZhfjTwYs/ci2u4W5PlsFEk1cMwyBFkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqI4Mc/btqZhfjTwYs/ci2u4W5PlsFEk1cMwyBFkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqI4Mc%2FbtqZhfjTwYs%2Fci2u4W5PlsFEk1cMwyBFkk%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;501&quot; height=&quot;206&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;206&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;pre id=&quot;code_1614842587780&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&amp;gt;
  &amp;lt;title&amp;gt;Js Bin&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;label&amp;gt;
    &amp;lt;span&amp;gt;예제 입니다.&amp;lt;/span&amp;gt; &amp;lt;i&amp;gt; 예제 &amp;lt;/i&amp;gt;
  &amp;lt;/label&amp;gt; 
     &amp;lt;div&amp;gt;
      &amp;lt;table&amp;gt;
         &amp;lt;colgroup&amp;gt;
         &amp;lt;col width = &quot;30%&quot;/&amp;gt;
         &amp;lt;col width = &quot;70%&quot;/&amp;gt;
       &amp;lt;/colgroup&amp;gt;
       &amp;lt;tbody&amp;gt;
       &amp;lt;tr&amp;gt;
           &amp;lt;th&amp;gt; 제품명 &amp;lt;/th&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;text&quot; &quot;file&quot; placeholder = &quot;입력하세요&quot; /&amp;gt; &amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
        &amp;lt;tr&amp;gt;
           &amp;lt;th&amp;gt; 파일 선택&amp;lt;/th&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type =file /&amp;gt; &amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
       &amp;lt;tr&amp;gt;
           &amp;lt;th&amp;gt; Button &amp;lt;/th&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;button type = &quot;button&quot;/&amp;gt; 버튼입니다&amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
        &amp;lt;tr&amp;gt;
           &amp;lt;th&amp;gt; Text Area&amp;lt;/th&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;textarea type = &quot;text&quot;/&amp;gt; &amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
      &amp;lt;/tbody&amp;gt;
  &amp;lt;/table&amp;gt; 
  &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;2&amp;gt; 테이블 사용법&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7O8SA/btqZhfqJLhK/ZNBwaRa8LeL8iPeC6k33K0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7O8SA/btqZhfqJLhK/ZNBwaRa8LeL8iPeC6k33K0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7O8SA/btqZhfqJLhK/ZNBwaRa8LeL8iPeC6k33K0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7O8SA%2FbtqZhfqJLhK%2FZNBwaRa8LeL8iPeC6k33K0%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;786&quot; height=&quot;282&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1614844277416&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&amp;gt;
  &amp;lt;title&amp;gt;Js Bin&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
     &amp;lt;div&amp;gt;
      &amp;lt;table&amp;gt;
         &amp;lt;colgroup&amp;gt;
         &amp;lt;col width = &quot;20%&quot;/&amp;gt;
         &amp;lt;col width = &quot;10%&quot;/&amp;gt;
         &amp;lt;col width = &quot;10%&quot;/&amp;gt;
         &amp;lt;col width = &quot;25%&quot;/&amp;gt;  
         &amp;lt;col width = &quot;25%&quot;/&amp;gt; 
       &amp;lt;/colgroup&amp;gt;
       &amp;lt;tbody&amp;gt;
       &amp;lt;tr&amp;gt;
           &amp;lt;th&amp;gt; A (숫자 양수만 입력가능) &amp;lt;/th&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;checkbox&quot; /&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;number&quot;  min=&quot;0&quot; max=&quot;99999&quot; /&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
       &amp;lt;tr&amp;gt;
           &amp;lt;th rowsspan =&quot;3&quot; align = &quot;center&quot;&amp;gt; B &amp;lt;/th&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;checkbox&quot; /&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;number&quot; /&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
       &amp;lt;tr&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; 예제 1 &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;checkbox&quot; /&amp;gt;&amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
        &amp;lt;tr&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; 예제 2 &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;checkbox&quot; /&amp;gt;&amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
       &amp;lt;tr&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; 예제 3 &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;checkbox&quot; /&amp;gt;&amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
       &amp;lt;tr&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; 예제 4 &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;checkbox&quot; /&amp;gt;&amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;span&amp;gt;글자를 사용합니다  &amp;lt;/span&amp;gt; &amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;  
       &amp;lt;tr&amp;gt;
           &amp;lt;th&amp;gt; C (숫자 text를 사용하여) &amp;lt;/th&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;checkbox&quot;  /&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;text&quot; pattern = &quot;[0-9]+&quot; /&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;
       &amp;lt;tr&amp;gt;
           &amp;lt;th&amp;gt; D (글자 수 제한) &amp;lt;/th&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;checkbox&quot;  /&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;input type = &quot;text&quot; maxlength=&quot;5&quot;/&amp;gt; &amp;lt;/td&amp;gt;
           &amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;
       &amp;lt;/tr&amp;gt;       
      &amp;lt;/tbody&amp;gt;
  &amp;lt;/table&amp;gt; 
  &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;텍스트 관련 링크&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 238px;&quot; border=&quot;1&quot; data-ke-style=&quot;style13&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.6356%; height: 20px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;태그&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%; height: 20px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;설명&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%; height: 20px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;예시&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.6356%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;hn&amp;gt; ~ &amp;lt;/hn&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%; height: 20px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;제목 텍스트 heading,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;h1&amp;gt; , ... , &amp;lt;h6&amp;gt;&lt;br /&gt;Heading을 나타내줌&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.6356%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;p&amp;gt; ~ &amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;텍스트를 표시할 떄 사용 paragraph&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.6356%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;br&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%; height: 20px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;break&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;줄바꾸기&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.6356%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;hr&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;horizontal&amp;nbsp; 수평줄 삽입&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.6356%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;pre&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%; height: 20px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;preformat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;입력하는 그대로 화면에 표시하기&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 10px;&quot;&gt;
&lt;td style=&quot;width: 22.6356%; height: 10px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;blockquote&amp;gt; ~ &amp;lt;/blockquote&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%; height: 10px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;인용넣기&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%; height: 10px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 54px;&quot;&gt;
&lt;td style=&quot;width: 22.6356%; height: 54px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;strong&amp;gt; ~&amp;lt;/strong&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%; height: 54px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%; height: 54px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 54px;&quot;&gt;
&lt;td style=&quot;width: 22.6356%; height: 54px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;b&amp;gt; ~ &amp;lt;/b&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%; height: 54px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%; height: 54px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 22.6356%;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;em&amp;gt; ~ &amp;lt;/em&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 22.6356%;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;i&amp;gt; ~ &amp;lt;/i&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 22.6356%;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;q&amp;gt; ~ &amp;lt;/q&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 22.6356%;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;mark&amp;gt; ~ &amp;lt;/mark&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5194%;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.8449%;&quot;&gt;&amp;nbsp;&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;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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;이미지관련 링크&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&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;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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;폼관련 링크&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Form요소란?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1. 시맨틱 태그란?&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2. 시맨틱 태그로 레이아웃을 만들어야 하는 이유&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;3. 시맨틱 태그 종류&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;4. HTML 시맨틱 태그로 웹 표준에 맞는 문서 만들기&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;출처&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1. 엘리 드림 코딩&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Programming/HTML+css</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/207</guid>
      <comments>https://rosypark.tistory.com/207#entry207comment</comments>
      <pubDate>Fri, 2 Sep 2022 15:36:31 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] IntelliJ 설정과 빌드도구(Maven, Gradle)</title>
      <link>https://rosypark.tistory.com/521</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Eclipse와 IntelliJ의 차이&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;eclipse =&amp;gt; workspace 기준&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ&amp;nbsp; =&amp;gt; Project 그룹 기반&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;IntelliJ&amp;nbsp; Maven 프로젝트로 변경&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(1) Maven이란?&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트를 위해 작성한 Java코드나 여러 자원들(.xml, .jar, .properties)를 JVM이나 톰캣같은 WAS가 인식할 수 있도록 할 수 있는 과정 및 결과물&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Apache사에서 만든 build tool&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pom.xml 파일을 통해 정형화된 빌드 시스템으로 프로젝트 관리를 해줌&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정해진 Life Cycle을 통해 Project를 빌드함&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;i&gt;* (참조) 빌드도구란?&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 소스코드에서 어플리케이션 생성을 자동화 하기위한 프로그램&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 코드를 사용하거나 실행 가능한 형태로 compiling, linking, packaging 하는것을 포함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 빌드자동화? 정형화된 다양한 작업을 스크립팅하거나 자동화하는 행위 (종속성 다운로드, 소스코드를 바이너리코드로 컴파일, 바이너리 코드를 패키징, 테스트 실행, 프로덕션 시스템에 배포)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;i&gt;* 빌드도구의 역사&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1세대 Make&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2세대 Ant&amp;nbsp; - 범용성 높임 , JAVA + XML 도입&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3세대 Maven - 작성 효율 높임, 빌드 생명주기, 프로젝트 객체모델(POM) 개념도입&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4세대 Gradle - 스크립트 언어로 유연성 증대, Maven 보다 빠름, 다른 빌드도구와 호환가능&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(2) 변경 방법&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;Maven 프로젝트로 변경시 pom.xml이 자동적으로 생성&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;maven Module 추가 하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 마우스 오른쪽 클릭 -&amp;gt; New -&amp;gt; Module&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;727&quot; data-origin-height=&quot;96&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzRx54/btq81TTmuZi/ob6khXMOFRXRGWGkpW5v51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzRx54/btq81TTmuZi/ob6khXMOFRXRGWGkpW5v51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzRx54/btq81TTmuZi/ob6khXMOFRXRGWGkpW5v51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzRx54%2Fbtq81TTmuZi%2Fob6khXMOFRXRGWGkpW5v51%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;727&quot; height=&quot;96&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;96&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Maven -&amp;gt; Create from archetype 추가&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;Create From Archetype란? &lt;/b&gt;Create From Archetype&lt;/b&gt;&lt;span style=&quot;color: #202124;&quot;&gt;의 리스트들은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;Maven&lt;/b&gt;&lt;span style=&quot;color: #202124;&quot;&gt;이 미리 만들어놓은 프로젝트&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #202124;&quot;&gt;-&amp;gt; maven-archetype-quickstart 선택&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi7OaC/btq84gt4Vey/45qUE2DtRzD2bwGIAkz4Uk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi7OaC/btq84gt4Vey/45qUE2DtRzD2bwGIAkz4Uk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi7OaC/btq84gt4Vey/45qUE2DtRzD2bwGIAkz4Uk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi7OaC%2Fbtq84gt4Vey%2F45qUE2DtRzD2bwGIAkz4Uk%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;708&quot; height=&quot;223&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 다양한 구성 요소 선택 가능&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAuERS/btq810kWUvi/NWT3AOWj8aKyiN3nAMFmp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAuERS/btq810kWUvi/NWT3AOWj8aKyiN3nAMFmp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAuERS/btq810kWUvi/NWT3AOWj8aKyiN3nAMFmp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAuERS%2Fbtq810kWUvi%2FNWT3AOWj8aKyiN3nAMFmp0%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;715&quot; height=&quot;350&quot; data-origin-width=&quot;715&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;p data-ke-size=&quot;size16&quot;&gt;4. 이러한 구조로 JAVA 파일 생성 가능&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;358&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u9KnE/btq84vxJF5H/kboOkwfdIt8IoKbLR2LUF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u9KnE/btq84vxJF5H/kboOkwfdIt8IoKbLR2LUF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u9KnE/btq84vxJF5H/kboOkwfdIt8IoKbLR2LUF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu9KnE%2Fbtq84vxJF5H%2FkboOkwfdIt8IoKbLR2LUF0%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;784&quot; height=&quot;358&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;358&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;5. 빨간줄이 뜰때?&lt;b&gt; Add Maven Dependency&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;93&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAHzxx/btq810kXeYa/2xzKRIXVB8BOusqHjHmZG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAHzxx/btq810kXeYa/2xzKRIXVB8BOusqHjHmZG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAHzxx/btq810kXeYa/2xzKRIXVB8BOusqHjHmZG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAHzxx%2Fbtq810kXeYa%2F2xzKRIXVB8BOusqHjHmZG1%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;380&quot; height=&quot;93&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;93&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/do4Kiw/btq83i6L9P4/bBusHaF2HYlheK74AggHok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/do4Kiw/btq83i6L9P4/bBusHaF2HYlheK74AggHok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/do4Kiw/btq83i6L9P4/bBusHaF2HYlheK74AggHok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdo4Kiw%2Fbtq83i6L9P4%2FbBusHaF2HYlheK74AggHok%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;558&quot; height=&quot;186&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;186&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 업데이트 되지 않을 수도 있으니 업데이트도 필요&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;583&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KXxOg/btq81fiix20/4203gsmrDc6HcIKKvzUUp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KXxOg/btq81fiix20/4203gsmrDc6HcIKKvzUUp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KXxOg/btq81fiix20/4203gsmrDc6HcIKKvzUUp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKXxOg%2Fbtq81fiix20%2F4203gsmrDc6HcIKKvzUUp1%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;583&quot; height=&quot;72&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;72&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 다운로드 가능&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;213&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lC1mW/btq84ts4GdQ/PhGLxHKoUrWxziy68GF900/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lC1mW/btq84ts4GdQ/PhGLxHKoUrWxziy68GF900/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lC1mW/btq84ts4GdQ/PhGLxHKoUrWxziy68GF900/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlC1mW%2Fbtq84ts4GdQ%2FPhGLxHKoUrWxziy68GF900%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;728&quot; height=&quot;213&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;213&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 출처&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #555555;&quot;&gt;일반 Java프로젝트로 생성된 프로젝트를 maven프로젝트로 변경&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #555555;&quot;&gt;- 변경하고 Maven 프로젝트로 바꿀때 기존의 &quot;src&quot; 폴더는 지워줌&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #555555;&quot;&gt;-&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #555555;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://ifuwanna.tistory.com/298&quot;&gt;https://ifuwanna.tistory.com/298&lt;/a&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #555555;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;[IfUwanna IT]&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&amp;nbsp;IntelliJ에서 Lombok&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Lombok이란? Java에서 반복적으로 작성되는 getters/settes, toString, 생성자 관련 코드 소스들을 간결하게 만들어주는 라이브러리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- pom.xml에서 dependencies안에 mvnrepository에서 찾은 &amp;lt;dependency&amp;gt;를 넣어주면됨&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1634276154830&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;dependencies&amp;gt;
   &amp;lt;!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --&amp;gt;
    &amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;org.projectlombok&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;lombok&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;1.18.20&amp;lt;/version&amp;gt;
        &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
    &amp;lt;/dependency&amp;gt;
  &amp;lt;/dependencies&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;IntelliJ에서 Json 사용하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ에서 Json 사용하기 -&amp;gt;&amp;nbsp;&lt;a href=&quot;https://m.blog.naver.com/sssang97/221692323514&quot;&gt;https://m.blog.naver.com/sssang97/221692323514&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;IntelliJ에서 jar 파일 추가하기&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 원하는 jar 파일 구하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. File -&amp;gt; Project Structure&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;261&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bt7VMi/btq9Mt7WWes/NwAzPXaJCVKBpa9WAolqWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bt7VMi/btq9Mt7WWes/NwAzPXaJCVKBpa9WAolqWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bt7VMi/btq9Mt7WWes/NwAzPXaJCVKBpa9WAolqWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbt7VMi%2Fbtq9Mt7WWes%2FNwAzPXaJCVKBpa9WAolqWk%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;261&quot; height=&quot;232&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Project Settings -&amp;gt; Modules -&amp;gt; Dependencies -&amp;gt; + 버튼 클릭후 jar 파일 추가&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;835&quot; data-origin-height=&quot;258&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cC9omu/btq9NRBjW2i/ROnF7Zaixtihgdt7dMYlDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cC9omu/btq9NRBjW2i/ROnF7Zaixtihgdt7dMYlDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cC9omu/btq9NRBjW2i/ROnF7Zaixtihgdt7dMYlDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcC9omu%2Fbtq9NRBjW2i%2FROnF7Zaixtihgdt7dMYlDK%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;835&quot; height=&quot;258&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;258&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;IntelliJ에서 언어 팩 바꾸기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;한국어 -&amp;gt; 영어로 변경하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 설정 -&amp;gt; 플러그인에 들어가서 한국어 언어팩 삭제&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;IntelliJ 단축키&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp; Command + Option + L : 소스코드 정렬&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.&amp;nbsp; &lt;span&gt;ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;+ F (검색) / &lt;span&gt;ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;+ R (단어 바꾸기)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Shift 두번&amp;nbsp;&amp;nbsp;파일이나 디렉토리나 객체, 클레스 등 찾아줌&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; cf) 전체 찾기 ctrl + shift + F&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. shift + delete 한줄 지우기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. ctrl&amp;nbsp;+ Tab tab이동&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. ctrl&amp;nbsp;+ shift&amp;nbsp; + 키워드 전체 찾기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 같은 단어키 찾기 Alt&amp;nbsp;+&amp;nbsp;J&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;IntelliJ 프론트 &amp;amp; 서버 동시 진행 방법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Edit Configuration클릭 -&amp;gt; Compount 추가 -&amp;gt; 해당 Front와 SpringBoot 추가&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bgpark.tistory.com/59&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;(출처) Intellij&amp;nbsp;스프링&amp;nbsp;부트와&amp;nbsp;npm&amp;nbsp;커맨드&amp;nbsp;함께&amp;nbsp;실행하기&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처: &lt;a href=&quot;https://kkotkkio.tistory.com/65&quot;&gt;https://kkotkkio.tistory.com/65&lt;/a&gt; [KKOTKKIO'S CAVE:티스토리]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유용한글&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt;&amp;nbsp;&lt;a href=&quot;https://atoz-develop.tistory.com/entry/IntelliJ-Spring-Web-MVC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-%EB%B0%8F-%EC%84%B8%ED%8C%85-XML-%EC%84%A4%EC%A0%95-%EC%82%AC%EC%9A%A9&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[IntelliJ]&amp;nbsp;Spring&amp;nbsp;Web&amp;nbsp;MVC&amp;nbsp;프로젝트&amp;nbsp;생성&amp;nbsp;및&amp;nbsp;세팅&amp;nbsp;-&amp;nbsp;XML&amp;nbsp;설정&amp;nbsp;사용&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&lt;a href=&quot;https://velog.io/@changyeonyoo/Maven-%EC%9D%B4%EB%9E%80&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@changyeonyoo/Maven-%EC%9D%B4%EB%9E%80&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.&lt;/p&gt;</description>
      <category>Programming/JAVA</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/521</guid>
      <comments>https://rosypark.tistory.com/521#entry521comment</comments>
      <pubDate>Tue, 9 Aug 2022 18:39:34 +0900</pubDate>
    </item>
    <item>
      <title>[React] Webpack 실습</title>
      <link>https://rosypark.tistory.com/551</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Webpack? (Review)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;자바스크립트, HTML, CSS, 이미지와 같은 여러개의 assets (js, css,png,jpg 등)을 웹 브라우저가 이해할 수 있는 번들로 묶고 패킹할 수 있는 자바스크립트 모듈 번들러로 의존성이 있는 모듈을 취하여 해당모듈을 대표하는 정적 자산들을 생성&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;프로젝트 상단에 webpack.config.js만들기&amp;nbsp;&lt;/b&gt;&lt;/h3&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;webpack 번들링하는방법 2가지&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;옵션&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;--mode&lt;/td&gt;
&lt;td&gt;웹팩 실행모드, 현 포스팅에서는 개발버전인 dev or development를 지정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;--entry&lt;/td&gt;
&lt;td&gt;엔트리 포인트(시작점) 경로를 지정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;--output&lt;/td&gt;
&lt;td&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;1) webpack.config.js파일을 사용하여 번들 설정 관리하기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;webpack.config.js&lt;/p&gt;
&lt;pre id=&quot;code_1640844323171&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const path = require(&quot;path&quot;);
module.exports = {
  mode : 'development',
  entry: {
    main: &quot;./src/app.js&quot;
  },
  output: {
    filename: &quot;[name].js&quot;, 
    path: path.resolve(&quot;./dist&quot;)
  }
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;module.exports 내 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;context : webpack이 번들 빌드를 시작하는곳, context는 엔트리 파일을 포함하는 디렉터리에 대한 절대경로&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;name : webpack 이름&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;mode : development&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;entry : 입력파일 // 파일목록 적기&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;module : Loader 설정&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;plugins : 추가 작업 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;output : 출력 파일&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mode : 개발/운영 선택&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 순서대로 입력파일을 받아서 module(Loader)과 plugins을 적용하여 output을 만든다음 개발 혹은 운영에 배포함&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Development와&lt;span style=&quot;background-color: #ffffff; color: #2b3a42;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;production의&lt;span style=&quot;background-color: #ffffff; color: #2b3a42;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;빌드&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Development환경? 강력한 소스매핑, 라이브 리로딩, hot module replacement&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Production? 로드 시간을 줄이기 위해 번들 최소화, 가벼운 소스맵 및 애셋 최적화 초점&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Production &amp;amp; Development 중복 설정하기 위해 &quot;공통&quot;설정 필요 --&amp;gt; webpack-merge&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1656543212408&quot; class=&quot;fortran&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm install --save-dev webpack-merge&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;webpack.common.js&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1656546650790&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; const path = require('path');
 const HtmlWebpackPlugin = require('html-webpack-plugin');

 module.exports = {
   entry: {
     app: './src/index.js',
   },
   plugins: [
     new HtmlWebpackPlugin({
       title: 'Production',
     }),
   ],
   output: {
     filename: '[name].bundle.js',
     path: path.resolve(__dirname, 'dist'),
     clean: true,
   },
 };&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;webpack.dev.js&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1656546662215&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; const { merge } = require('webpack-merge');
 const common = require('./webpack.common.js');

 module.exports = merge(common, {
   mode: 'development',
   devtool: 'inline-source-map',
   devServer: {
     static: './dist',
   },
 });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;webpack.prod.js&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1656546681519&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; const { merge } = require('webpack-merge');
 const common = require('./webpack.common.js');

 module.exports = merge(common, {
   mode: 'production',
 });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;package.json:&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1640844350978&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &quot;scripts&quot;: {
    &quot;test&quot;: &quot;echo \&quot;Error: no test specified\&quot; &amp;amp;&amp;amp; exit 1&quot;,
    &quot;build&quot;: &quot;webpack&quot;
  },&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm script를 등록할때 노드 모듈의 명령어를 쓰지않고 webpack만 설정해도 프로그램에 있는 노드 모듈만 사용해도 찾음. 기본 config 파일인 webpack.config.js를 사용함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;webpack은 시작점을 찾아서 하나의 파일로 번들링해줌&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 매번 옵션으로 관리하기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;src/app.js&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640843659521&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import * as math from './math.js';
math.sum(1,2);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;src/math.js&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640843697705&quot; class=&quot;javascript&quot; style=&quot;display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export function sum(a,b){return a+b;}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640843651934&quot; class=&quot;bash&quot; style=&quot;display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ node_modules\.bin\webpack --mode development --entry .\src\app.js --output-path dist

Hash: b8db1036b79d90b2e7cd
Version: webpack 4.46.0
Time: 52ms
Built at: 2021. 12. 30. 오후 2:50:29
  Asset     Size  Chunks             Chunk Names
main.js  4.8 KiB    main  [emitted]  main
Entrypoint main = main.js
[0] multi ./src/app.js 28 bytes {main} [built]
[./src/app.js] 50 bytes {main} [built]
[./src/math.js] 39 bytes {main} [built]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;index.html&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640843718181&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;title&amp;gt;Document&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;script type=&quot;module&quot; src = &quot;./src/app.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 변화 모든 브라우저에서 다 돌아감&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640843796823&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script src = &quot;./dist/main.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;webpack help&lt;/p&gt;
&lt;pre id=&quot;code_1656542938589&quot; class=&quot;jboss-cli&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ node_modules\.bin\webpack --help&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;a href=&quot;https://webpack.kr/guides/production/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://webpack.kr/guides/production/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/React</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/551</guid>
      <comments>https://rosypark.tistory.com/551#entry551comment</comments>
      <pubDate>Thu, 30 Jun 2022 08:58:35 +0900</pubDate>
    </item>
    <item>
      <title>[React] Webpack이란?</title>
      <link>https://rosypark.tistory.com/549</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Webpack이란?&amp;nbsp;&lt;/b&gt;&lt;/h3&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: #2c3e50;&quot;&gt;웹 애플리케이션을 구성하는 몇십, 몇백개의 자원들을 하나의 파일로 병합 및 압축(js, 이미지,.scss, .hbs등등)&amp;nbsp; 해주는 동작을 모듈 번들링이 필요! &lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1223&quot; data-origin-height=&quot;631&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bah19q/btrpkvaqL0r/V1OrhDCsgnSn9jntKG7ph1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bah19q/btrpkvaqL0r/V1OrhDCsgnSn9jntKG7ph1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bah19q/btrpkvaqL0r/V1OrhDCsgnSn9jntKG7ph1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbah19q%2FbtrpkvaqL0r%2FV1OrhDCsgnSn9jntKG7ph1%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;1223&quot; height=&quot;631&quot; data-origin-width=&quot;1223&quot; data-origin-height=&quot;631&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;웹팩 등장이유&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 파일 단위의 자바 스크립트 모듈 관리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 자바의 유효 범위는 기본적으로 전역변수이기 때문에 편하게 관리할 수 있다는 장점도 있지만, 복잡한 애플리케이션을 개발할때는 변수의 이름을 모두 기억하지 않는 이상 중복선언하거나 의도치 않은 값을 할당 할 수 있음(Scope 문제)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기존에는 IIFE를 사용하여 스코프 오염을 막았으나 Common.js , export 모듈을 만들고 require를 불러와서 사용했으나 ES2015에서 표준모듈 등장 , export/ import로 모듈을 내보다고 가지고 옴&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 웹&amp;nbsp;개발&amp;nbsp;작업&amp;nbsp;자동화&amp;nbsp;도구&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 웹 서비스를 개발하기 위해서는 HTML, css, JS, 이미지 압축등 필요&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 웹&amp;nbsp;애플리케이션의&amp;nbsp;빠른&amp;nbsp;로딩&amp;nbsp;속도와&amp;nbsp;높은&amp;nbsp;성능&lt;/b&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;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;웹팩이 해결할 수 있는 문제&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 자바스크립트 변수 유효 범위 문제 -&amp;gt; ES6의 Modules 문법과 &lt;b&gt;웹팩의 모듈 번들링&lt;/b&gt;으로 해결&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 브라우저별 HTTP 요청 숫자의 제약 -&amp;gt; &lt;span style=&quot;background-color: #ffffff; color: #2c3e50;&quot;&gt;웹팩을 이용해 여러 개의 파일을 하나로 합치면 위와 같은 &lt;b&gt;브라우저별 HTTP 요청 숫자 제약을 피할 수 있음&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Dynamic Loading &amp;amp; Lazy Loading 미지원&amp;nbsp; -&amp;gt;&amp;nbsp; Webpack의 &lt;b&gt;Code Splitting 기능 사용&lt;/b&gt;하여 원하는 모듈을 원하는 타이밍에 로딩 가능&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;웹팩은 시작점(Entry Point)로부터 의존적인 모듈 전부 찾아내서 하나의 파일로 만든다.&amp;nbsp;&lt;/b&gt;&lt;/i&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;개발용 package -&amp;gt; devDependencies / 배포용 package -&amp;gt; dependencies&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1656542353750&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm install (plugin) --save //dependencies
$ npm install (plugin) --save-dev // devDependencies&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;모듈 번들러 없이 js 모듈들이 무수히 많이 생성된다면?&amp;nbsp; 하단과 같은 줄이 엄청 많아져서 불편&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Webpack 사용하면 main.js로 가능 &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1656547198445&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Webpack 사용전 
&amp;lt;body&amp;gt;
    &amp;lt;script type=&quot;module&quot; src = &quot;./src/setup.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script type=&quot;module&quot; src = &quot;./src/session1.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
     &amp;lt;script type=&quot;module&quot; src = &quot;./src/session2.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
      &amp;lt;script type=&quot;module&quot; src = &quot;./src/session3.js&quot;&amp;gt;&amp;lt;/script&amp;gt;.... 
&amp;lt;/body&amp;gt;

// Webpack 사용후 
&amp;lt;body&amp;gt;
	&amp;lt;script src = &quot;./dist/main.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;React에 Webpack 설정하기 (React Webpack)&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1656487058750&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npx create-react-app&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1656487203613&quot; class=&quot;gams&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm install -D webpack webpack-cli


// package.json
  &quot;dependencies&quot;: {
    &quot;react&quot;: &quot;^17.0.2&quot;
  },
  &quot;devDependencies&quot;: {
    &quot;webpack&quot;: &quot;^5.65.0&quot;,
    &quot;webpack-cli&quot;: &quot;^4.9.1&quot;
  }&lt;/code&gt;&lt;/pre&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;webpack: Webpack(웹팩) 라이브러리.&lt;/li&gt;
&lt;li&gt;webpack-cli: Webpack(웹팩)을 명령어로 조작하기 위한 라이브러리&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;babel-loader : &lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;Webpack(웹팩)에서 babel(바벨)을 다루기 위한 라이브러리&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;@babel/core : &lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;babel(바벨)로 컴파일할 예정&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;@babel/preset-env : &lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;babel(바벨)로 컴파일시 어떤 타겟으로 지정할지 설정하는 라이브러리&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;@babel/preset-react : &lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;React(리액트)를 babel(바벨)로 컴파일하기 위한 라이브러리&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;webpack-dev-server : &lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;Webpack(웹팩)으로 로컬에서 개발하기 위한 테스트 서버&lt;/span&gt;&lt;/span&gt;&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;a href=&quot;https://joshua1988.github.io/webpack-guide/&quot;&gt;&lt;span style=&quot;color: #2c3e50;&quot;&gt;웹팩 핸드북&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1656542410763&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;웹팩 핸드북&quot; data-og-description=&quot;&quot; data-og-host=&quot;joshua1988.github.io&quot; data-og-source-url=&quot;https://joshua1988.github.io/webpack-guide/&quot; data-og-url=&quot;https://joshua1988.github.io/webpack-guide/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://joshua1988.github.io/webpack-guide/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://joshua1988.github.io/webpack-guide/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;웹팩 핸드북&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;joshua1988.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;a href=&quot;https://webpack.kr/guides/production/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://webpack.kr/guides/production/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/React</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/549</guid>
      <comments>https://rosypark.tistory.com/549#entry549comment</comments>
      <pubDate>Thu, 30 Jun 2022 07:54:01 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js] npm 패키지 사용법</title>
      <link>https://rosypark.tistory.com/141</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Wbi2u/btqHgqLfhU8/McOvV07uRYWXHfBkTaAGZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Wbi2u/btqHgqLfhU8/McOvV07uRYWXHfBkTaAGZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Wbi2u/btqHgqLfhU8/McOvV07uRYWXHfBkTaAGZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWbi2u%2FbtqHgqLfhU8%2FMcOvV07uRYWXHfBkTaAGZ0%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;220&quot; height=&quot;86&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. npm (&lt;span&gt;Node Package Manager)&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;nbsp;자바스크립트&amp;nbsp;프로그래밍&amp;nbsp;언어를&amp;nbsp;위한&amp;nbsp;패키지&amp;nbsp;관리자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Node Package Manager의 약어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 노드가 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 해줌&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 패키지란? 업로드된 노드 모듈&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 모듈이 다른 모듈을 사용할 수 있는 것처럼, 파키지가 다른 패키지를 사용할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;프론트 엔드 개발에 Node.js가 필요한 이유?&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 최신 스펙으로 개발할 수 있음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 자바스크립트 스펙보다 브라우저의 지원속도는 항상 늦기 때문에, 여러가지 도구의 도움이 필요. 웹팩, NPM같은 노드 기술로 만들어진 환경이 필요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 빌드 자동화 기구&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 코딩 결과물을 바로 브라우져에 올리지 않고 파일을 압축하고, 코드를 난독화하고, 폴리필 추가하고.. 개발 이외에 작업을 거친후 배포하는데 Node.js가 필요. 라이브러리 의존성해결 및 각종 테스트 자동화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 개발환경 커스터마이징&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- React의 CRA(Creat-reat-app)가 대부분인데 이는 툴을 그대로 사용할 수 없는 경우도 빈번하기 때문에 직접 환경을 구축해야하는 상황이 있을 수 있음&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. npm 시작하기&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.1 npm 시작하기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- node.js 프로젝트를 시작하는 것&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640054477393&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm init&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;으로 바로 시작하게 되면 package.json을 다 관리해주는게 나오는데&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;이때! 그냥 엔터키 막 누르고 다음 껄 치면 package.json 관리가 자동적으로 된다. 그러니깐 엔터키만 쭉 누르기~&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;package.json&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1640833372952&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;name&quot;: &quot;sample&quot;,
  &quot;version&quot;: &quot;1.0.0&quot;,
  &quot;description&quot;: &quot;&quot;,
  &quot;main&quot;: &quot;index.js&quot;,
  &quot;scripts&quot;: {
    &quot;test&quot;: &quot;echo \&quot;Error: no test specified\&quot; &amp;amp;&amp;amp; exit 1&quot;
  },
  &quot;author&quot;: &quot;&quot;,
  &quot;license&quot;: &quot;ISC&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- scripts : 프로젝트를 자동화할 수 있는 shell script = 일종의 sample script&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640833476290&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm test // Error: no test specified\&quot; &amp;amp;&amp;amp; exit 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640834596884&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; &quot;scripts&quot;: {
    &quot;test&quot;: &quot;echo \&quot;Error: no test specified\&quot; &amp;amp;&amp;amp; exit 1&quot;,
    &quot;love&quot;: &quot;echo \&quot;you\&quot;&quot; 
  },&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1640834602120&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm run love // you&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm 명령어 확인하기&lt;/p&gt;
&lt;pre id=&quot;code_1640834359578&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm 


Usage: npm &amp;lt;command&amp;gt;

where &amp;lt;command&amp;gt; is one of:
    access, adduser, audit, bin, bugs, c, cache, ci, cit,
    clean-install, clean-install-test, completion, config,
    create, ddp, dedupe, deprecate, dist-tag, docs, doctor,
    edit, explore, fund, get, help, help-search, hook, i, init,
    install, install-ci-test, install-test, it, link, list, ln,
    login, logout, ls, org, outdated, owner, pack, ping, prefix,
    profile, prune, publish, rb, rebuild, repo, restart, root,
    run, run-script, s, se, search, set, shrinkwrap, star,
    stars, start, stop, t, team, test, token, tst, un,
    uninstall, unpublish, unstar, up, update, v, version, view,
    whoami

npm &amp;lt;command&amp;gt; -h  quick help on &amp;lt;command&amp;gt;
npm -l            display full usage info
npm help &amp;lt;term&amp;gt;   search for help on &amp;lt;term&amp;gt;
npm help npm      involved overview

Specify configs in the ini-formatted file:
    C:\Users\park\.npmrc
or on the command line via: npm &amp;lt;command&amp;gt; --key value
Config info can be viewed via: npm help config&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노드 버전 확인하기&lt;/p&gt;
&lt;pre id=&quot;code_1640840598480&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm run love // you&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;2.2 패키지 설치하기 &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm install 하는 방법은 &lt;b&gt;두가지&lt;/b&gt;가 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 첫번째는 패키지명을 명시해 특정 패키지를 설치하는 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하단의 경우 express package로 변경&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640057551202&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm install express&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 두번째는 패키지명을 명시하지 않고 package.json을 설치하는 동작&lt;/p&gt;
&lt;pre id=&quot;code_1640057630664&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm install&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 프로젝트 설치? npm install [모듈명]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 프로젝트에 전역설치? npm install -g [모듈명]&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유의적 버전&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;^15.12.0의 의미?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 프로젝트에서 사용하는 패키지의 버전을 엄격하게 제한하면 프로젝트를 버전업하는데 필요함&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- npm은 유의적버전(Sementic Version)에 따라서 패키지를 관리함&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 유의적버전(Sementic Version)은 &lt;i&gt;주(Major), 부(Minor), 수(Patch) 세가지 숫자를 조합해서 버전 관리&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- V16.12.0 -&amp;gt; 주버전이 16 / 부버전이 12 / 수 버전이 0&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; &amp;nbsp;(1) 주버전 (Major Version) : 기존 버전과 호환되지 않게 변경한 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;(2) 부버전 (Minor Version) : 기존 버전과 호환되면서 기능이 추가된 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;(3) 수버전 (Patch Version) : 기존 버전과 호환되면서 버그를 수정한 경우&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; 틸트(~)? 마이너 버전이 명시되어 있으면 패치 버전을 변경, ~1.2.3표기? 1.2.3~1.3.0미만까지&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 캐럿(^)? 정식버전에서 마이너와 패치 버전을 변경 ^1.2.3표기는 1.2.3부터 2.0.0미만까지&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;package.json // 모든 react version 명시&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640829836370&quot; class=&quot;shell&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm view react versions&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640828819330&quot; class=&quot;shell&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm install express socket.io --save&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라고 치면 설치시에 package.json의 dependencies 부분을 업데이트 해준다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 --save라는 옵션을 붙여주면 자동적으로 package.json을 업데이트 해주는 역할을 가진다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 하지만 npm 5부터는 --save 옵션을 기본옵션으로 적용하기 때문에 --save를 사용하지않아도 dependencies에 항목이 추가 됨&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;npm install expres&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*&amp;nbsp; npm install express 이후&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dMTyYP/btqB3XzyHyB/4OEISbVoPW3il16CmexdW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dMTyYP/btqB3XzyHyB/4OEISbVoPW3il16CmexdW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dMTyYP/btqB3XzyHyB/4OEISbVoPW3il16CmexdW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdMTyYP%2FbtqB3XzyHyB%2F4OEISbVoPW3il16CmexdW1%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;581&quot; height=&quot;104&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;104&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Folder&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) node_modules&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Express가 의존하는 패키지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 패키지 하나에 다른 여러 패키지에 의존하고, 그 패키지들은 또 다른 패키지에 의존&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) package.json&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기본적으로 key-value로 저장되는 단일 JSON객체&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- package.json에서는 버전 정보를 저장할떄 version range 사용&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 정확하게 package명을 명시하는것이 아니라 버그 수정이 이루어질때마다 버전 수정&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640053817676&quot; class=&quot;html xml&quot; style=&quot;display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &quot;dependencies&quot;: {
    &quot;@testing-library/jest-dom&quot;: &quot;^5.11.4&quot;,
    &quot;@testing-library/react&quot;: &quot;^11.1.0&quot;,
    &quot;@testing-library/user-event&quot;: &quot;^12.1.10&quot;,
    &quot;cors&quot;: &quot;^2.8.5&quot;,
    &quot;dotenv&quot;: &quot;^10.0.0&quot;,
    &quot;express&quot;: &quot;^4.17.1&quot;,
    &quot;helmet&quot;: &quot;^4.6.0&quot;,
    &quot;hpp&quot;: &quot;^0.2.3&quot;,
    &quot;moment&quot;: &quot;^2.29.1&quot;,
    &quot;mongoose&quot;: &quot;^5.13.5&quot;,
    &quot;react&quot;: &quot;^17.0.1&quot;,
    &quot;react-dom&quot;: &quot;^17.0.1&quot;,
    &quot;react-scripts&quot;: &quot;4.0.1&quot;,
    &quot;web-vitals&quot;: &quot;^0.2.4&quot;
  },
  
  ...
  
  
   &quot;devDependencies&quot;: {
    &quot;@babel/cli&quot;: &quot;^7.14.8&quot;,
    &quot;@babel/core&quot;: &quot;^7.14.8&quot;,
    &quot;@babel/node&quot;: &quot;^7.14.9&quot;,
    &quot;@babel/polyfill&quot;: &quot;^7.12.1&quot;,
    &quot;@babel/preset-env&quot;: &quot;^7.14.9&quot;,
    &quot;babel-loader&quot;: &quot;^8.2.2&quot;,
    &quot;morgan&quot;: &quot;^1.10.0&quot;,
    &quot;nodemon&quot;: &quot;^2.0.12&quot;
    
  }
  
 ...&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2-1) &lt;b&gt;dependencies&lt;/b&gt; =&amp;gt; &lt;span style=&quot;color: #222426;&quot;&gt;프로덕션 환경에서 응용 프로그램에 필요한 패키지 for 기술 스펙으로 사용되어야할것&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2-2) &lt;b&gt;devDependencies&amp;nbsp;&lt;/b&gt; =&amp;gt; &lt;span style=&quot;color: #222426;&quot;&gt;로컬 &lt;b&gt;개발 및 테스트&lt;/b&gt;에만 필요한 패키지 for 개발자&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://stackoverflow.com/questions/40143357/do-you-put-babel-and-webpack-in-devdependencies-or-dependencies&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;webpack / babel이 devDependencies에 있는 이유?&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;babel 및 webpack 패키지는 bundle.js 및 etc 파일의 banilla javascript에 코드를 변환하고 번들링할 때 에 사용되므로 devDependencies 섹션으로 이동합니다. 프로덕션에서 번들로 코드를 실행합니다.js 빌드/생성된 코드는 더 이상 이러한 종속성을 필요로 하지 않습니다.&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) package-lock.json&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- npm으로 패키지를 설치 수정, 삭제할때마다 내부 의존관계를 이 파일에 저장, 즉 npm이 node_modules나 package.json이 수정될때&lt;i&gt;&lt;b&gt; 자동으로 생성&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- package-lock.json이 존재할때는&lt;b&gt; package.json을 사용하여 node_modules를 생성하는것이 아니라 package-lock.json을 사용하여 node_modules를 생성함&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. npm 삭제 및 재설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.1 npm 재설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) package.json 삭제 + node_modules 폴더 삭제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) npm install&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;3.2 npm 삭제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 기본 삭제&lt;/p&gt;
&lt;pre id=&quot;code_1640841986703&quot; class=&quot;shell&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm uninstall [node_module]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* package.json파일에서 모듈 제거&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1640842006757&quot; class=&quot;shell&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm uninstall [node_module] --save&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;npm outdated&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 의존성 모듈에서 새로운 버전이 나오면 모듈을 일일이 확인하려운데, 업데이트가 필요한 모듈 확인 가능&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- current : 현재 설치된 버전 / wanted : package.json에 지정한 버전 범위로 설치되는 최대 범위 , npm update 설치&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;npm-check&amp;nbsp;&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 의존성 관리의 불편함을 덜어주는 cli 모듈&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- npm install -g npm-check 사용해서 전역으로 설치하면 사용가능&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- npm oudated보다&amp;nbsp; 더 풍부한 데이터가 나옴&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;* 모듈&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) npm version 확인하기&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1627817477695&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm -v&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2)&amp;nbsp;npm install ~&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1627817696689&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm i express cors dotenv hpp helmet&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- express : 서버 프레임 워크&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- cors: 크지 않은 규모의 경우 백엔드랑, 서버로 둬도 상관없지만 웹 페이지를 다른곳에서 자원을 가져와야되는 경우가 빈번하게 발생, 다른곳에서 자원을 가지고 오게되는 프레임워크, 원래는 그렇지 않지만 cals를 설치해주면 편함 , 자유롭게 자원을 가지고 올 수 있음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- dotenv : 외부에 공유를 하지 않기 위해서 특별하게 값들을 저장해놓고 자유롭게 쓸 수 있게 해주는 것&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- hpp, helmet : 서버 보안상 취약점을 보완해주는 기능&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;* .gitignore 사용법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) .gitignore 파일을 하나 만든다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) node_modules / .env를 기본적으로 쳐준다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dependencies만 있으면 자동적으로 쳐줌&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2021-08-01 오후 8.43.55.png&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdtCsd/btraVFk6O17/Gx1hTVRcgXdJFSMhvFkEx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdtCsd/btraVFk6O17/Gx1hTVRcgXdJFSMhvFkEx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdtCsd/btraVFk6O17/Gx1hTVRcgXdJFSMhvFkEx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdtCsd%2FbtraVFk6O17%2FGx1hTVRcgXdJFSMhvFkEx0%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;426&quot; height=&quot;206&quot; data-filename=&quot;스크린샷 2021-08-01 오후 8.43.55.png&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;206&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) db 사용하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm i mongoose moment&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- mongoose : 몽고db를 javascript에서 설치하게 만들어주는것&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- moment : mongoose는 시간을 국제 시간으로 따름 , 한국시간으로? 설정해주는것&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;node.js에서는 common.js라는 module 방식을 채택, 하지만 front 경우 일반적으로 es6라는 문법을 따름&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 통일성을 부여하기 위해 babel을 사용&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; babel? javascript는 문법이 빠르게 변화, 최신 문법을 사용하고 싶은데 브라우저는 옛날 문법을 사용하는 상황 간극을 작게 해주는 것이 바벨, 바벨은 자바스크립트를&amp;nbsp; 사용할때 사용하는 것이 필수&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(4) babel&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- -D 넣어주는 이유? 개발단계 &quot;devDependencies&quot;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1627818793155&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm i @babel/cli @babel/core @babel/node @babel/preset-env babel-loader @babel/polyfill -D&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;@babel/cli&lt;/p&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;@babel/core&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- es6같은 코드를 변환시켜주는 것&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;@babel/node&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;@babel/preset-env&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;babel-loader&lt;/p&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;@babel/polyfill&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- @babel/node로 실행하게 되면 최신 문법을 코드로 사용할 수 있게 해주는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- polyfill? 베개..? 여러가지 넣어서 어떠한 상황에서도 문법을 만들 수 있게 해주는 것&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(4)&amp;nbsp; npm i morgan nodemon&amp;nbsp; -D&lt;/p&gt;
&lt;pre id=&quot;code_1627820562615&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; npm i morgan nodemon  -D&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-morgan 서버에서 log기록을 보여주는것&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- nodemon 파일을 저장했을때 서버에 즉각적으로 반영시켜주게 하는 것&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cf) 이와 같은 과정은 당연히 개발단계에서만 필요하기 때문에 -D을 적어주기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.env 파일 생성하기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- node 프로젝트 개발을 하면 외부로는 알려지면 안될 민감 정보. 오픈소스 공개시 관련정보 유출위험&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) setting 방법&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 리눅스 -&amp;gt; export ~ / window -&amp;gt; set~&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;(2) setting 방법&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1627821916013&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install dotenv&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;---&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;prettier 이쁘게 저장&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;1404&quot; data-origin-height=&quot;382&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEnge8/btra35jFyVl/Xo9cH678LXukc3EDBN1zX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEnge8/btra35jFyVl/Xo9cH678LXukc3EDBN1zX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEnge8/btra35jFyVl/Xo9cH678LXukc3EDBN1zX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEnge8%2Fbtra35jFyVl%2FXo9cH678LXukc3EDBN1zX1%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;1404&quot; height=&quot;382&quot; data-origin-width=&quot;1404&quot; data-origin-height=&quot;382&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;---&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적인 sever 열기 - dev&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1628420924986&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm run dev&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;package.json&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1628421003492&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  ...
  &quot;scripts&quot;: {
    &quot;dev&quot;: &quot;nodemon ./server/server.js --exec babel-node&quot;,
    &quot;start&quot;: &quot;react-scripts start&quot;,
    &quot;build&quot;: &quot;react-scripts build&quot;,
    &quot;test&quot;: &quot;react-scripts test&quot;,
    &quot;eject&quot;: &quot;react-scripts eject&quot;
  },
  ....&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--------&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt; npm install morgan cookie-parser express-session&lt;/p&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;gt;&amp;gt; npm install --save-dev nodeman&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 소스패키지가 바뀔 때마다 자동으로 재실행해주는 패키지&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt; npm install --global rimraf&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 전역 패키지 설치하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt; rimraf node_module&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 지정한 파일이나 폴더를 지우는 명령&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 전역설치한 경우 사용가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt; npm install --save-dev rimraf&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt; npx rimraf node_modules&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 전역 설치 안하는 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;npm install (plugin) --save와 --save-dev 차이점3&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ithub.tistory.com/165&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ithub.tistory.com/165&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 javascript src 로딩하는것 만들기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. npm init 프로젝트 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;출처&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 5강 패키지 매니저, Node.js 교과서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/Node</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/141</guid>
      <comments>https://rosypark.tistory.com/141#entry141comment</comments>
      <pubDate>Wed, 29 Jun 2022 14:49:14 +0900</pubDate>
    </item>
    <item>
      <title>[css/React] 기본 코드와 응용</title>
      <link>https://rosypark.tistory.com/208</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;CSS란?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;b&gt;Cascading Style Sheet&lt;/b&gt;s로 HTML과 함께 웹 표준의 기본&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Cascading 뜻 ?&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 캐스케이딩 스타일 시트(CSS)뜻 ? &quot;위에서 아래로 흐르는 스타일 시트&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 텍스트 색사이나 크기, 이미지 크기나 위치, 표 색상, 배치 방법 등 웹 문서의 디자인 요소를 담당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;http://www.csszengarden.com/&quot;&gt;http://www.csszengarden.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1584942523050&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;CSS Zen Garden: The Beauty of CSS Design&quot; data-og-description=&quot;So What is This About? There is a continuing need to show the power of CSS. The Zen Garden aims to excite, inspire, and encourage participation. To begin, view some of the existing designs in the list. Clicking on any one will load the style sheet into thi&quot; data-og-host=&quot;www.csszengarden.com&quot; data-og-source-url=&quot;http://www.csszengarden.com/&quot; data-og-url=&quot;http://www.csszengarden.com/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;http://www.csszengarden.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://www.csszengarden.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;CSS Zen Garden: The Beauty of CSS Design&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;So What is This About? There is a continuing need to show the power of CSS. The Zen Garden aims to excite, inspire, and encourage participation. To begin, view some of the existing designs in the list. Clicking on any one will load the style sheet into thi&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.csszengarden.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;1237&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oO21o/btqCRzMEjLY/kp6DYtXMG1lVTxltKtWFcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oO21o/btqCRzMEjLY/kp6DYtXMG1lVTxltKtWFcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oO21o/btqCRzMEjLY/kp6DYtXMG1lVTxltKtWFcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoO21o%2FbtqCRzMEjLY%2Fkp6DYtXMG1lVTxltKtWFcK%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;1237&quot; height=&quot;720&quot; data-origin-width=&quot;1237&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Cascading&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 사용자가 지정하지 않는다면 Browser가 지정한 style로 지정됨&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Casacding을 끊어내는 것 -&amp;gt; &lt;b&gt;!important&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 가능하면 &lt;b&gt;!important을 쓰지 않는게 좋음 , Box대로 나누어야지 labeling이 쉬움&amp;nbsp;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Author style&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. User Style - 사용자가 지정한 것&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Browser - Browser가 지정한 Style&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;selectors&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 58.0233%; height: 116px;&quot; border=&quot;1&quot; data-ke-style=&quot;style8&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 99.9999%; text-align: center;&quot; colspan=&quot;3&quot;&gt;&lt;b&gt;Selectors&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Universial&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;*&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;모든 Tag 고르기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;type&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;Tag&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;Tag를 고르는것&lt;br /&gt;ex) &amp;lt;div&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;ID&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;#id&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;id만 고르기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;Class&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;.class&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;State&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;:&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;Attribute&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;[]&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&amp;nbsp;&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;margin -&amp;gt; &lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/CSS/margin&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;공식문서&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;component 한줄로 만들기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1655969967257&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;div{display : flex;}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;줄바꿈 방지&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1655969980857&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;div{white-space : nowrap;}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- normal : 기본값으로 글자 줄이 자동으로 바뀜, 콘텐츠가 너비를 초과할 경우 다음줄로 바뀜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- nowrap : 줄바꿈이 실행되지 않음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- pre : 줄바꿈과 기타 공백이 유지됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- inherit : 부묘 요소로부터 값을 상속 받음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;font 관련&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1655969990334&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;div{font-size : 1.1em;}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1655969993956&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;div{font-weight : 300;}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;css 사용예제 1&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;pre id=&quot;code_1614835548074&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&amp;gt;
  &amp;lt;title&amp;gt;CSS Demo&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;ol&amp;gt;
      &amp;lt;li id=&quot;special&quot;&amp;gt;First&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt; Second &amp;lt;/li&amp;gt;
    &amp;lt;/ol&amp;gt;
    &amp;lt;h1 id = &quot;special&quot;&amp;gt;Hello &amp;lt;/h1&amp;gt;
    &amp;lt;button&amp;gt; Button 1 &amp;lt;/button&amp;gt;
    &amp;lt;button&amp;gt; Button 2 &amp;lt;/button&amp;gt;
    &amp;lt;div class = &quot;red&quot;&amp;gt; 
      &amp;lt;button&amp;gt;&amp;lt;/button&amp;gt; 
    &amp;lt;/div&amp;gt;
    &amp;lt;div class = &quot;blue&quot;&amp;gt; &amp;lt;/div&amp;gt;
    &amp;lt;a href = &quot;naver.com&quot;&amp;gt;Naver &amp;lt;/a&amp;gt;
    &amp;lt;a href = &quot;google.com&quot;&amp;gt; Google &amp;lt;/a&amp;gt;
    &amp;lt;a&amp;gt; Empty &amp;lt;/a&amp;gt; 
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614835569778&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* selector { property : value ;} */

* { color : green;}
li{ color : blue;}
#special { color : pink; }
.red { width : 100px; height : 100px;  background : yellow;}
button:hover { color : red ; background : beige;}
a[href=&quot;naver.com&quot;] {color : red;}
a[href^=&quot;google.com&quot;]{color : purple;}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;253&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y5luW/btqZctwv6wi/s1k8DkOe8ddygCHPMn3Q4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y5luW/btqZctwv6wi/s1k8DkOe8ddygCHPMn3Q4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y5luW/btqZctwv6wi/s1k8DkOe8ddygCHPMn3Q4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy5luW%2FbtqZctwv6wi%2Fs1k8DkOe8ddygCHPMn3Q4K%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;253&quot; height=&quot;333&quot; data-origin-width=&quot;253&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;css 사용예제 2&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1614835766749&quot; class=&quot;css&quot; style=&quot;display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.red {
  width : 100px;
  height : 100px; 
  background : yellow;
  padding : 30px;
  padding-left : 100px;
  margin : 20px;
  border-width : 2px;
  border-style : solid; 
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;259&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nLUYT/btqZiVehjAP/ayeugPc5VAk4sI0NwTD5V0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nLUYT/btqZiVehjAP/ayeugPc5VAk4sI0NwTD5V0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nLUYT/btqZiVehjAP/ayeugPc5VAk4sI0NwTD5V0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnLUYT%2FbtqZiVehjAP%2FayeugPc5VAk4sI0NwTD5V0%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;259&quot; height=&quot;179&quot; data-origin-width=&quot;259&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;492&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coNbG0/btqZhfjLG8b/TBYVmdY6cNnT63ZuAWMdI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coNbG0/btqZhfjLG8b/TBYVmdY6cNnT63ZuAWMdI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coNbG0/btqZhfjLG8b/TBYVmdY6cNnT63ZuAWMdI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoNbG0%2FbtqZhfjLG8b%2FTBYVmdY6cNnT63ZuAWMdI1%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;649&quot; height=&quot;492&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;492&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;css 사용예제 3 - Display&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(1) step1&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기본적으로 span은 inline Style&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하지만 css에서 display를 block으로 바꿔주면 됨&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614836250339&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&amp;gt;
  &amp;lt;title&amp;gt;Js Bin&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;!-- Block Level --&amp;gt; 
    &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt; 
  
    &amp;lt;!-- Inline Level --&amp;gt;
    &amp;lt;span&amp;gt;1&amp;lt;/span&amp;gt;
    &amp;lt;span&amp;gt;2&amp;lt;/span&amp;gt;
    &amp;lt;span&amp;gt;3&amp;lt;/span&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614836273185&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* selector {   property : value ; } */
div, span{   width : 80px; height : 80px; margin : 20px;}
div{ background : red;}
span { background : Blue;}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;283&quot; data-origin-height=&quot;386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nMyGr/btqY9ZWO38n/D9Wo8ctCskiFLiiIy3dGs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nMyGr/btqY9ZWO38n/D9Wo8ctCskiFLiiIy3dGs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nMyGr/btqY9ZWO38n/D9Wo8ctCskiFLiiIy3dGs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnMyGr%2FbtqY9ZWO38n%2FD9Wo8ctCskiFLiiIy3dGs1%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;224&quot; height=&quot;306&quot; data-origin-width=&quot;283&quot; data-origin-height=&quot;386&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(2) step2&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- display 속성 : inline / block / inline-block으로 변경&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614836413504&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;div{
  background : red;
  display : inline-block;
}

span { 
  background : Blue; 
  display : block; 
  
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3uokj/btqZdmcUsQN/37YmCW8KTbkyqB4VXnqBX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3uokj/btqZdmcUsQN/37YmCW8KTbkyqB4VXnqBX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3uokj/btqZdmcUsQN/37YmCW8KTbkyqB4VXnqBX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3uokj%2FbtqZdmcUsQN%2F37YmCW8KTbkyqB4VXnqBX1%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;377&quot; height=&quot;602&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;602&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;css 사용예제 4 - Position&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1614836792114&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&amp;gt;
  &amp;lt;title&amp;gt;Js Bin&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;article class = &quot;container&quot;&amp;gt;
     &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
     &amp;lt;div class = &quot;box&quot;&amp;gt;I'm Box&amp;lt;/div&amp;gt;
     &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
     &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
     &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
     &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
     &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
     &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
     &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;position은 static으로 저장되어 있음 , relative로 변화하면 변화됨&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l5da5/btqY90Bv7my/nq8TA9Q4QvwkSNm4uzlwl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l5da5/btqY90Bv7my/nq8TA9Q4QvwkSNm4uzlwl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l5da5/btqY90Bv7my/nq8TA9Q4QvwkSNm4uzlwl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl5da5%2FbtqY90Bv7my%2Fnq8TA9Q4QvwkSNm4uzlwl1%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;329&quot; height=&quot;214&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1614838744916&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.container {
  background : yellow;
  left : 20px;
  top : 20px;
  position : relative; 
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;341&quot; data-origin-height=&quot;329&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blvZaq/btqZefYXHvQ/uymkmE3aAVpyWrys0zT5W1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blvZaq/btqZefYXHvQ/uymkmE3aAVpyWrys0zT5W1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blvZaq/btqZefYXHvQ/uymkmE3aAVpyWrys0zT5W1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblvZaq%2FbtqZefYXHvQ%2FuymkmE3aAVpyWrys0zT5W1%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;341&quot; height=&quot;329&quot; data-origin-width=&quot;341&quot; data-origin-height=&quot;329&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 원래 있어야할 자리에서 relative를 쓰면 움직일 수 있음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- position : absolute;를 쓰게 되면 가장 가까운 박스로 위치 변경이 이루어짐&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- position : fixed ; 웹 페이지 안에서 바뀌어가는것&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614838841238&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.container {
  background : yellow;
  left : 20px;
  top : 20px;
  position : relative; 
}

.box{
  background : blue; 
  left : 20px;
  top : 20px;
  position : relative;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;FlexBox 사용하기&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;float?&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이미지와 텍스트를 어떤식으로 배치할까 하는 목적 ex) &lt;b&gt;&amp;nbsp;float : left / float : center / float : right&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;FlexBox 속성&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Container&amp;nbsp; - 박스에 있는 속성값이 존재&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) display&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 보통 display : flex;로 설정&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;flex 레이아웃을 설정하기 위해 기본적으로 있어야 하는 속성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;display 직계 자손에게만 적용 (손자x,&amp;nbsp; 하려면 :nth-child(1)) 추가 필요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;종류 : flex , inline-flex&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;(2) flex-direction&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 방향 - 기본값은 왼쪽에서 오른쪽&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;- 종류 : row , row-reverse, column, column-reverse&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) flex-wrap&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 줄바꿈 속성&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기본값 nowrap&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 종류 : nowrap, wrap, wrap-reverse&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;wrap으로 하게 되면? 크기가 커지면 밑으로 내려감&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(4) flex-flow&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(5) justify-content&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(6) align-items&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- center - 열 맞추기&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;(7) lign-content&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. item&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- order&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- flex-grow&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- flex-shrink&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- flex&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- align-self&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;FlexBox 특징&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Main Axis와 Cross Axis가 존재&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;100% vs 100px vs 100vh&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;값의미기본값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;참고사이트&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Color Tools&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://material.io/resources/color/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;사이트&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;998&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPPu6D/btqZfgQRVtk/y0pGK6NhCVPrrTyxpypP60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPPu6D/btqZfgQRVtk/y0pGK6NhCVPrrTyxpypP60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPPu6D/btqZfgQRVtk/y0pGK6NhCVPrrTyxpypP60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPPu6D%2FbtqZfgQRVtk%2Fy0pGK6NhCVPrrTyxpypP60%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;395&quot; height=&quot;590&quot; data-origin-width=&quot;998&quot; data-origin-height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;CSS-Tricks&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&quot;&gt;css-tricks.com/snippets/css/a-guide-to-flexbox/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1614840162399&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;A Complete Guide to Flexbox | CSS-Tricks&quot; data-og-description=&quot;Our comprehensive guide to CSS flexbox layout. This complete guide explains everything about flexbox, focusing on all the different possible properties for the parent element (the flex container) and the child elements (the flex items). It also includes hi&quot; data-og-host=&quot;css-tricks.com&quot; data-og-source-url=&quot;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&quot; data-og-url=&quot;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dfOh45/hyJsf6xWcu/lmTwpT9xJgpucK4qCvuR7k/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/5DFDw/hyJsmR9Sx7/KE0WdteX7seZS9nSeKeNJk/img.jpg?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024&quot;&gt;&lt;a href=&quot;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&quot; data-source-url=&quot;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dfOh45/hyJsf6xWcu/lmTwpT9xJgpucK4qCvuR7k/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/5DFDw/hyJsmR9Sx7/KE0WdteX7seZS9nSeKeNJk/img.jpg?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;A Complete Guide to Flexbox | CSS-Tricks&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Our comprehensive guide to CSS flexbox layout. This complete guide explains everything about flexbox, focusing on all the different possible properties for the parent element (the flex container) and the child elements (the flex items). It also includes hi&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;css-tricks.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://flexboxfroggy.com/#ko&quot;&gt;flexboxfroggy.com/#ko&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1614840162400&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Flexbox Froggy&quot; data-og-description=&quot;A game for learning CSS flexbox&quot; data-og-host=&quot;flexboxfroggy.com&quot; data-og-source-url=&quot;https://flexboxfroggy.com/#ko&quot; data-og-url=&quot;https://flexboxfroggy.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/6qm7w/hyJshiZrD6/OWEOM3LsSNLs5RjLPQdfP0/img.png?width=2214&amp;amp;height=1142&amp;amp;face=0_0_2214_1142,https://scrap.kakaocdn.net/dn/envVqR/hyJskNyqMX/KoP69EFXNMbVrOec80lU70/img.png?width=2214&amp;amp;height=1142&amp;amp;face=0_0_2214_1142&quot;&gt;&lt;a href=&quot;https://flexboxfroggy.com/#ko&quot; data-source-url=&quot;https://flexboxfroggy.com/#ko&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/6qm7w/hyJshiZrD6/OWEOM3LsSNLs5RjLPQdfP0/img.png?width=2214&amp;amp;height=1142&amp;amp;face=0_0_2214_1142,https://scrap.kakaocdn.net/dn/envVqR/hyJskNyqMX/KoP69EFXNMbVrOec80lU70/img.png?width=2214&amp;amp;height=1142&amp;amp;face=0_0_2214_1142');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Flexbox Froggy&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A game for learning CSS flexbox&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;flexboxfroggy.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단축키&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;42&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsrrav/btqZjvNgdZ7/X8kbZfmZYJULJkB1AxH9aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsrrav/btqZjvNgdZ7/X8kbZfmZYJULJkB1AxH9aK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsrrav/btqZjvNgdZ7/X8kbZfmZYJULJkB1AxH9aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbsrrav%2FbtqZjvNgdZ7%2FX8kbZfmZYJULJkB1AxH9aK%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;275&quot; height=&quot;42&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;42&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;JAVASCRIPT 스타일과 스타일시트&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 스타일 주석 하는 방법 /* */&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 내부 스타일 시트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 안쓸거니깐 설명 간략하게 적겠음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;head&amp;gt; &amp;lt;style&amp;gt; section { width : 500px; padding :15; border : 5px solid gray&amp;nbsp; } &amp;lt;/style&amp;gt; &amp;lt;/head&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 외부 스타일 시트&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 웹 스타일을 만들때 하나의 웹 문서로 끝나는 경우는 거의 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 사이트를 제작할 때 여러 웹 문서에서 사용할 스타일을 별도 파일로 저장해놓고 필요할때마다 파일에서 가져와 사용함&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;link rel = &quot;stylesheet&quot; href = &quot;외부 스타일 파일 경로&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- h2와 p에 이러한 스타일을 적용하겠다~&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1614823845064&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;h2{
    font-size : 20px;
    color : orange;
}
p{
    color : blue;

}&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position: relative !important; overflow: auto;&quot;&gt;&amp;nbsp;&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;b&gt;* 특정 부분에 요소 적용&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 간단한 스타일 정보일경우 스타일 시트를 사용하지 않고 스타일을 적용할 대상에 직접 표시&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;nbsp; css파일을 만들어서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- head에 연결 =&amp;gt; &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;link&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;rel&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;&quot;stylesheet&quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;href&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;&quot;css/style.css&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;h1&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span&gt;&quot;pinktext&quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;이쁜&amp;nbsp;사람&amp;nbsp;목록&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;h1&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;221&quot; data-origin-height=&quot;51&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oRunz/btqCUc37IRN/Po8k7kxR4hZmoCZwAVgq8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oRunz/btqCUc37IRN/Po8k7kxR4hZmoCZwAVgq8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oRunz/btqCUc37IRN/Po8k7kxR4hZmoCZwAVgq8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoRunz%2FbtqCUc37IRN%2FPo8k7kxR4hZmoCZwAVgq8k%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;221&quot; height=&quot;51&quot; data-origin-width=&quot;221&quot; data-origin-height=&quot;51&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position: relative !important; overflow: auto;&quot;&gt;
&lt;pre id=&quot;code_1614822760111&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.pinktext{
    color : pink;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;* 특정 클래스에 스타일 적용&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;lt;p&amp;gt; 특정 클래스에 스타일 &lt;b&gt;&amp;lt;span class = &quot;pinktext&quot;&amp;gt;&lt;/b&gt; 적용 &amp;lt;/span&amp;gt; &amp;lt;br&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mSOF2/btqCSgsESRE/crj1q3knQNWKrfdMZnMGa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mSOF2/btqCSgsESRE/crj1q3knQNWKrfdMZnMGa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mSOF2/btqCSgsESRE/crj1q3knQNWKrfdMZnMGa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmSOF2%2FbtqCSgsESRE%2Fcrj1q3knQNWKrfdMZnMGa0%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;202&quot; height=&quot;30&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;30&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* id 스타일 적용&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- #아이디명 {스타일}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- id 선택자도 클래스 선택자와 마찬가지로 웹 문서안의 특정 부분에 스타일을 지정할때 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 클래스 선택자와 id 선택자의 가장 큰 차이?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--&amp;gt; 클래스 선택자가 문서 안에서 여러번 적용할 수 있는 스타일이지만,&amp;nbsp; id 선택자는 문서 안에서 한번만 적용할 수 있음&amp;nbsp; 즉! 중복해서 사용할수 없기 때문에 주로 문서의 레이아웃과 관련된 스타일을 지정하거나 자바 스크립트 프로그램에서 웹 요소들을 구별&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1614822989880&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; #container {
            width :600px;
            padding : 15px;
            border : 1px dotted gray; 
 }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;출처&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. flexbox - &lt;a href=&quot;https://thrillfighter.tistory.com/489&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;thrillfighter.tistory.com/489&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;a href=&quot;https://heropy.blog/2018/11/24/css-flexible-box/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;heropy.blog/2018/11/24/css-flexible-box/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 엘리 드림코딩&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4.&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position: relative !important; overflow: auto;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category>Programming/HTML+css</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/208</guid>
      <comments>https://rosypark.tistory.com/208#entry208comment</comments>
      <pubDate>Thu, 23 Jun 2022 16:42:23 +0900</pubDate>
    </item>
    <item>
      <title>[Cloud 관련] MicroService Architecture와 Service Mesh</title>
      <link>https://rosypark.tistory.com/540</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;Mirco Service Architecture (MSA)&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애플리케이션의 확장을 용이하게 하고 개발 속도를 앞당겨 혁신을 실현하고 새로운 기능의 출시 시간 단축 가능&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완전히 독립적으로 배포가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 기술이 사용가느아도록 단일 사업 영역에 초점&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Monolithic Architecture(MA)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 개발시? 웹 프로그램을 개발하기 위해 모듈별 개발, 하나의 결과물로 패키징하여 배포 하지만 한계가 존재&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Monolithic Architecture(MA) vs Mirco Service Architecture (MSA)&amp;nbsp;&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccQrZE/btrhfTcHVLK/BrhCx5kW09Q5CILqSJP7a0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccQrZE/btrhfTcHVLK/BrhCx5kW09Q5CILqSJP7a0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccQrZE/btrhfTcHVLK/BrhCx5kW09Q5CILqSJP7a0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccQrZE%2FbtrhfTcHVLK%2FBrhCx5kW09Q5CILqSJP7a0%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;491&quot; height=&quot;301&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;301&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Monolithic Architecture 아키텍쳐의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Service Mesh&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;a href=&quot;https://aws.amazon.com/ko/microservices/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://aws.amazon.com/ko/microservices/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;a href=&quot;https://wooaoe.tistory.com/57&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://wooaoe.tistory.com/57&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4.&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/Cloud</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/540</guid>
      <comments>https://rosypark.tistory.com/540#entry540comment</comments>
      <pubDate>Fri, 17 Jun 2022 11:41:08 +0900</pubDate>
    </item>
    <item>
      <title>[C#] Thread (3) - Async, Await</title>
      <link>https://rosypark.tistory.com/625</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;[C#]&amp;nbsp;Thread&amp;nbsp;(3)&amp;nbsp;-&amp;nbsp;Async,&amp;nbsp;Await&lt;/p&gt;</description>
      <category>Programming/C#</category>
      <author>RosyPark</author>
      <guid isPermaLink="true">https://rosypark.tistory.com/625</guid>
      <comments>https://rosypark.tistory.com/625#entry625comment</comments>
      <pubDate>Sun, 22 May 2022 11:05:14 +0900</pubDate>
    </item>
  </channel>
</rss>