<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>sunk-dev.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 05 Feb 2025 05:45:28 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>sunk-dev.log</title>
            <url>https://velog.velcdn.com/images/sunk-dev/profile/f24857ef-a41d-4364-ba53-fbeb996815ae/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. sunk-dev.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sunk-dev" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Python: dictionary]]></title>
            <link>https://velog.io/@sunk-dev/Python-dictionary</link>
            <guid>https://velog.io/@sunk-dev/Python-dictionary</guid>
            <pubDate>Wed, 05 Feb 2025 05:45:28 GMT</pubDate>
            <description><![CDATA[<ul>
<li>딕셔너리란?
키와 값이 쌍을 이루는 자료형</li>
<li>딕셔너리 추가<pre><code class="language-python">a={1:&#39;a&#39;}
a[2]=&#39;b&#39;
&gt;&gt;&gt; a
{1:&#39;a&#39;,2:&#39;b&#39;}</code></pre>
</li>
<li>딕셔너리 요소 삭제
del 딕셔너리이름 [키이름]</li>
<li>주의점
딕셔너리 Key에는 리스트를 쓸수 없음<ul>
<li>관련함수
a.keys() : Key만모한 dict_keys 객체 리턴
a.values(): Value 만 모아 dic_values 객체 리턴
a.items() : Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 리턴
a.clear(): 딕셔너리안 모든 요소 삭제
a.get(키이름): 키가 존재하면 그에 대응되는 값을 없으면 Nome반환
a.ger(키이름,디폴트값): 키가 존재하면 그에 대응되는 값을, 없으면 디폴트값 반환</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[InteliJ + Tomcat 환경 설정]]></title>
            <link>https://velog.io/@sunk-dev/InteliJ-Tomcat-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@sunk-dev/InteliJ-Tomcat-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Tue, 03 Oct 2023 12:00:30 GMT</pubDate>
            <description><![CDATA[<h1 id="intro">INTRO</h1>
<p>이 환경설정은 학교에서 진행하는 교재에서 이클립스 환경으로 진행하던 프로젝트를 인텔리제이로 바꿔 진행하기 위해 설정해야하는 것들을 기록했다.</p>
<h2 id="교재-jsp-23--servlet-31">교재: JSP 2.3 &amp; Servlet 3.1</h2>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/bcafa932-bdd7-43d5-a161-c19e61b3b74d/image.png" alt=""></p>
<h2 id="1-tomcat-다운로드">1. TOMCAT 다운로드</h2>
<p><a href="https://tomcat.apache.org/download-90.cgi">https://tomcat.apache.org/download-90.cgi</a>
링크를 타고 들어가서 Tomcat을 다운로드 한다. 안정적인 tomcat9을 추천한다.
압축을 푼다. 이때, Tmcat 파일 위치를 기억하기 쉬운곳에 저장한다.</p>
<p>V 아래 형광펜 쳐놓은 파일을 다운로드해서 진행하면 편함.
<img src="https://velog.velcdn.com/images/sunk-dev/post/11350e76-2648-4e20-82cc-a4cd250bf638/image.png" alt=""></p>
<h2 id="2-sdk-다운-java-11-or-8">2. SDK 다운 JAVA 11 or 8</h2>
<p>자체적으로 sdk를 다운받아도 되지만
인텔리제이는 프로그램 자체에서 sdk를 다운받을 수 있게 해놓았다. 
편한쪽으로 진행하면 된다!</p>
<p>v 인텔리제이 내에서 다운받는건 아래 참고.
<a href="https://tychejin.tistory.com/328">https://tychejin.tistory.com/328</a></p>
<h2 id="3-catalina_home-환경변수-설정">3. CATALINA_HOME 환경변수 설정</h2>
<p>이걸 안하면 나중에 인텔리제이에서 서버를 돌릴때 에러가 발생할수 있으므로 환경변수를 설정해야한다.</p>
<p>V 마찬가지로 아래 사이트 참조!
<a href="https://hongeui.tistory.com/11">https://hongeui.tistory.com/11</a></p>
<h2 id="4-새-프로젝트-설정-java-intelij로-설정">4. 새 프로젝트 설정 JAVA+ InteliJ로 설정</h2>
<p>1) 프로젝트 -&gt; 새 프로젝트 클릭
<img src="https://velog.velcdn.com/images/sunk-dev/post/0a9fd663-7422-4f63-861e-fb188119ee3e/image.png" alt=""></p>
<p><strong>🌟2)🌟</strong> 새 프로젝트로 생성 -&gt; 아래 형광펜 표시한것 꼭 지켜서 설정!
<img src="https://velog.velcdn.com/images/sunk-dev/post/0ff9e7f8-36ed-46d9-a685-e2cc25122232/image.png" alt=""></p>
<h2 id="5-프로젝트-구조-라이브러리--패싯-아티팩트">5. 프로젝트 구조 라이브러리 + 패싯+ 아티팩트</h2>
<p>1)  파일 -&gt; 프로젝트파일 -&gt; 라이브러리에서 <code>+</code>버튼 누르고 Java 선택.
<img src="https://velog.velcdn.com/images/sunk-dev/post/d6a8d275-9ff1-4977-a4e0-cb5573307942/image.png" alt=""></p>
<p>2) 설치한 Tomcat 파일 아래  lib파일에서  jsp-api.jar,servlet-api.jar 파일 선택 후 확인 누르기
<img src="https://velog.velcdn.com/images/sunk-dev/post/08c1747a-5d0b-40bb-9ff7-4f3dd2291c85/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/d1614169-1b49-43b7-9be2-c45aeb420251/image.png" alt=""></p>
<p>3)  파일 -&gt; 프로젝트파일-&gt; 패싯에서 <code>+</code>버튼 누르고 web 선택.</p>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/b64077f5-89de-4e86-8158-90da7206fcb4/image.png" alt=""></p>
<p>4) 아래 형광펜 친 web 패싯 리소스가 아티팩트에 없습니다. 경고 문구가 보이면 옆에 있는 <code>아티팩트 생성</code>버튼 누르기
<img src="https://velog.velcdn.com/images/sunk-dev/post/dad8c4a1-3c68-40bf-b90f-6e1e3e88af95/image.png" alt=""></p>
<p>아래와 같이 아티팩트가 자동으로 생성된다
<img src="https://velog.velcdn.com/images/sunk-dev/post/7bf90613-fd99-4fbc-8267-60df1a48e5af/image.png" alt=""></p>
<p>적용버튼 누르고 확인 누르고 나가면 아래와 같이 web 폴더가 생성되어있는데 이것이 이클립스의  webContent 폴더 파일과 같다!
<img src="https://velog.velcdn.com/images/sunk-dev/post/62c057da-3062-4a92-9420-e527d27532a9/image.png" alt=""></p>
<h2 id="런-환경-톰캣-아티팩트-배포-주소-변경">런 환경 톰캣+ 아티팩트 배포 주소 변경</h2>
<p>1) 런환경 설정하기 -&gt; 현재파일 아래 구성편집 누르기
<img src="https://velog.velcdn.com/images/sunk-dev/post/29758f37-3041-4808-9b44-7d4bd81fff9e/image.png" alt=""></p>
<p>2) <code>+</code> 버튼 눌러서 새 구성추가 목록중에 Tomcat 서버 로컬선택
<img src="https://velog.velcdn.com/images/sunk-dev/post/6e61a1f7-62bf-444f-a031-0116d475ffa1/image.png" alt=""></p>
<p>3) 형광펜 친곳을 똑같이 설정
만약 애플리케이션 서버가 자동으로 인식 되어있지 않다면, 옆의 구성버튼을 눌러 Tomcat파일을 찾아주면 된다.
<img src="https://velog.velcdn.com/images/sunk-dev/post/c40d7633-781a-46bb-8b85-ee5f3e04a466/image.png" alt=""></p>
<p>4) 배포 메뉴를 눌러서 애플리케이션 컨텍스트를 <code>/</code>로 설정하기
<img src="https://velog.velcdn.com/images/sunk-dev/post/c6898926-7aa0-4892-a6d5-6b302e24ef18/image.png" alt=""></p>
<h2 id="실행">실행</h2>
<p>예시로 로그인창에 아이디와 비밀번호를 입력후 버튼을 누르면 아이디와 비번이 보여지는 파일을 작성해보았다.</p>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/b512e110-d0cc-4b12-a90c-8084e8e6f8bc/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/480c1fda-89a4-4543-9d9d-17ce03db30d7/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/2ca0f3de-6e94-49b1-95c6-4a644dd17039/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/721e9abe-4541-49c3-8a54-596ea6eb8a35/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/88055298-14ab-4c2d-beec-c1c4e864ed4e/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/9880dfed-edae-419f-bbc8-fb76cf9aff3f/image.png" alt=""></p>
<h2 id="이해-안가는-점공부하면서-하나하나-찾아서-추가할-예정">이해 안가는 점(공부하면서 하나하나 찾아서 추가할 예정)</h2>
<ul>
<li>원래 실행했었던 jakarta EE 제너레이터로 만들었을때는 왜 작동이 안될까.</li>
<li>패싯,아티팩트의 의미</li>
<li>시스템 빌드 Gradle, Maven의 의미.</li>
<li>🌟 새 파일을 만들때마다 일일이 프로젝트 구조와 패싯, 아티팩트, 서버를 설정해 주어야하는데 자동으로 심어지게 만드는 방법은 없을까.</li>
</ul>
<h2 id="참고자료">참고자료</h2>
<p><a href="https://sosopro.tistory.com/162">https://sosopro.tistory.com/162</a></p>
<p><a href="https://actually94.tistory.com/121">https://actually94.tistory.com/121</a></p>
<p><a href="https://velog.io/@jwo0o0/JSP-IntelliJ%EC%97%90%EC%84%9C-JSP-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-404-%EC%98%A4%EB%A5%98%EC%99%80-%ED%95%B4%EA%B2%B0">https://velog.io/@jwo0o0/JSP-IntelliJ%EC%97%90%EC%84%9C-JSP-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-404-%EC%98%A4%EB%A5%98%EC%99%80-%ED%95%B4%EA%B2%B0</a></p>
<p><a href="https://velog.io/@lukehongg/intellij-jsp-project">https://velog.io/@lukehongg/intellij-jsp-project</a></p>
<p><a href="https://velog.io/@max9106/JSP-intelliJ%EB%A1%9C-JSP-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-jek572fhfx">https://velog.io/@max9106/JSP-intelliJ%EB%A1%9C-JSP-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-jek572fhfx</a></p>
<p><a href="https://hhk1364.tistory.com/209">https://hhk1364.tistory.com/209</a></p>
<h2 id="new-servlet-추가">New Servlet 추가</h2>
<p><a href="https://admd13.tistory.com/43">https://admd13.tistory.com/43</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[.reverse() vs reversed()]]></title>
            <link>https://velog.io/@sunk-dev/.reverse-vs-reversed</link>
            <guid>https://velog.io/@sunk-dev/.reverse-vs-reversed</guid>
            <pubDate>Sat, 05 Aug 2023 04:54:41 GMT</pubDate>
            <description><![CDATA[<h1 id="reverse-vs-reversed">.reverse() vs reversed()</h1>
<h2 id="🧶가벼운-서론">🧶가벼운 서론</h2>
<p>파이썬 리스트 문제를 풀면서 항상 까먹었던 부분 중 하나.
정리를 해두지 않으니 문제 풀때만 기억하고 까먹고했었는데 이번에 백준 문제 10988문제를 풀면서 제대로 정리해 두고로 다짐 했다.</p>
<h2 id="🖱️listreverse란">🖱️List.reverse()란?</h2>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/48b0fc9b-a132-454f-a56c-e4e3062977a5/image.png" alt=""></p>
<ul>
<li><p>List 타입에서 제공하는 함수  &rarr; 오로지 List에서만 사용가능!</p>
</li>
<li><p>원본의 리스트의 값을 직접 바꿈.</p>
</li>
<li><p><strong>🎯주의사항</strong>: 위 그림에서도 볼 수 있듯 <code>None</code>을 반환. &rarr; 변수에 값을 할당 할수 없음.</p>
</li>
</ul>
<pre><code class="language-py"># .reverse()
li=[1,2,3,4]
li.reverse()

print(li.reverse()) #None반환
print(li) #[4,3,2,1]반환
</code></pre>
<h2 id="🖱️reversedlist란">🖱️reversed(List)란?</h2>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/4238f996-fd9e-465b-841b-1719144234f4/image.png" alt=""></p>
<ul>
<li><p>파이썬의 내장함수</p>
</li>
<li><p>리스트뿐 아니라, 다른 반복가능한 Iterable Object 시퀀스 자료형 (ex 튜플, 스트링,딕셔너리..)에도 사용 가능</p>
</li>
<li><p>** 🎯 iterator을 반환함 **</p>
<ol>
<li>원본 객체에 영향을 끼치지 않음.<ol start="2">
<li>자료형 변환 메서드 ( list(),tuple()..)를 사용해 사용하고 하는 타입의 객체로 변환해 주여야함.</li>
</ol>
</li>
</ol>
<pre><code class="language-py">#reversed()
li2=[1,2,3,4,5]
reversed_li2=list(reversed(li2))
print(li2) # [1,2,3,4,5]반환 값변화 없음
print(reversed_li2) #[5,4,3,2,1]
print(reversed(li2)) # 이터레이터 값 ex)&lt;list_reverseiterator object at 0x00000243DAE3D9C0&gt; 반환```

</code></pre>
</li>
</ul>
<h2 id="📌-정리">📌 정리</h2>
<table>
<thead>
<tr>
<th align="left"></th>
<th align="center">.reverse()</th>
<th align="center">reversed()</th>
</tr>
</thead>
<tbody><tr>
<td align="left">적용범위</td>
<td align="center">List</td>
<td align="center">Iterable Object Sequence 자료형</td>
</tr>
<tr>
<td align="left">반환값</td>
<td align="center">None</td>
<td align="center">Iterator</td>
</tr>
<tr>
<td align="left">특징</td>
<td align="center">원본 함수 변환</td>
<td align="center">자료형 메서드 이용해 새로운 변수에 할당</td>
</tr>
</tbody></table>
]]></description>
        </item>
        <item>
            <title><![CDATA[css :nth-child(n)]]></title>
            <link>https://velog.io/@sunk-dev/css-nth-childn</link>
            <guid>https://velog.io/@sunk-dev/css-nth-childn</guid>
            <pubDate>Mon, 31 Jul 2023 13:41:19 GMT</pubDate>
            <description><![CDATA[<h1 id="nth-childn란">:nth-child(n)란?</h1>
<ul>
<li>수도 선택자의 한 종류로 요소 중 n번째 요소를 선택한다.</li>
</ul>
<h2 id="수도-선택자란">수도 선택자란?</h2>
<h3 id="1-어원">1. 어원</h3>
<hr>
<p>처음에 딱 수도라는 말만 들으면 도시의 수도가 생각 날수도 있지만, 여기서 수도란,
&#39;persudo&#39; 를 그대로 발음 한 것이다. </p>
<h3 id="2-persudo의-뜻">2. persudo의 뜻</h3>
<hr>
<p>persudo</p>
<ol>
<li>형용사 허위의, 가짜의; 모조의</li>
<li>명사 구어 꾸며 보이는 사람, 사칭자 </li>
</ol>
<h3 id="3-수도persudo-선택자인-이유">3. 수도(persudo) 선택자인 이유</h3>
<hr>
<p>persudo의 첫번째뜻 처럼, 클래스가 부여되지 않은 요소에 <span style="color:green">허구의,가짜의</span> 클래스를 부여한다.</p>
<h3 id="4-종류">4. 종류</h3>
<ul>
<li><code>:first-child</code> :요소중 첫번째 요소</li>
<li><code>:last-child</code> : 요소중 마지막 요소</li>
<li><code>nth-child(n)</code>: 요소중 n번째 요소</li>
<li><code>nth-of-type(n)</code>: 같은 종류의 요소중 n번째 요소</li>
<li><code>not(selector)</code>:해당 선택자 빼고 선택</li>
<li><code>::before</code> :해당요소 앞에 가상요소 추가</li>
<li><code>::after</code> : 해당요소 뒤에 가상 요소 추가</li>
</ul>
<h2 id="nth-childn-작동-예시">.:nth-child(n) 작동 예시</h2>
<h3 id="ex-1">ex 1)</h3>
<p>section 아래 같은 형제 클래스 
<img src="https://velog.velcdn.com/images/sunk-dev/post/10344121-5168-4278-aee3-3f6a0d13f3f3/image.png" alt=""></p>
<pre><code class="language-css">   section .content:nth-child(2){
           border-bottom: 2px dashed #000;
   }</code></pre>
<h3 id="작동방식">작동방식</h3>
<ol>
<li>section 태그 인식</li>
<li>:nth-child(2) 를 인식하는 동시에 .content의 형제들을 탐색함.</li>
<li>.content가 형제들 중에서 2번째가 맞는지 확인 </li>
</ol>
<blockquote>
<ol start="4">
<li>section의 후손중에서 .content가 형제 중에서 두번째가 맞는가? </li>
</ol>
</blockquote>
<p>4번을 최종 확인 후 스타일을 적용한다!</p>
<h3 id="ex2-n키워드-적용시">ex2 n키워드 적용시</h3>
<ul>
<li>아래 css와 같이 nth-child() 괄호 안에 2n-1,2n과 같이 변수가 포함된 수식이 들어간다면, 그 안의 변수는 무조건 0부터 순서대로 대입된다.</li>
</ul>
<pre><code class="language-html">  &lt;ul id=&quot;fruites&quot;&gt;
      &lt;li class=&quot;strawberry&quot;&gt;딸기&lt;/li&gt;
      &lt;li&gt;바나나&lt;/li&gt;
      &lt;li&gt;포도&lt;/li&gt;
      &lt;li&gt;사과&lt;/li&gt;
      &lt;li&gt;배&lt;/li&gt;
      &lt;li&gt;자몽&lt;/li&gt;
      &lt;li class=&quot;orange&quot;&gt;오렌지&lt;/li&gt;
    &lt;/ul&gt;</code></pre>
<pre><code class="language-css">#fruites li:nth-child(2n){ //짝수번째 형제에게만 적용
        background: aqua;
      }
      #fruites li:nth-child(2n-1){//홀수 번째 형제에게만 적용
            background: rebeccapurple;
      }</code></pre>
<ul>
<li>결과</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sunk-dev/post/4993dc10-36f7-4a0c-88ce-83ec750a3d37/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Error Note 공지]]></title>
            <link>https://velog.io/@sunk-dev/Error-Note-%EA%B3%B5%EC%A7%80</link>
            <guid>https://velog.io/@sunk-dev/Error-Note-%EA%B3%B5%EC%A7%80</guid>
            <pubDate>Thu, 27 Jul 2023 14:00:36 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sunk-dev/post/8c4e2c39-3370-4b3c-bd59-0aceaf9c6f6c/image.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>