<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>yeseo_52.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 29 Apr 2026 04:42:38 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>yeseo_52.log</title>
            <url>https://velog.velcdn.com/images/yeseo_052/profile/f61ab689-8d73-4535-ae35-90b1c47faa9c/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. yeseo_52.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/yeseo_052" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[TIL Spring 최종정리]]></title>
            <link>https://velog.io/@yeseo_052/TIL-ti5h5qkl</link>
            <guid>https://velog.io/@yeseo_052/TIL-ti5h5qkl</guid>
            <pubDate>Wed, 29 Apr 2026 04:42:38 GMT</pubDate>
            <description><![CDATA[<p><strong>Spring Framework란?</strong></p>
<ol>
<li>자바 기반 응용 프로그램 개발 프레임워크</li>
<li>2003년 6월 Rod Johnson 발표</li>
<li>모든 Java 애플리케이션 개발 이용 ㄱㄴ</li>
<li>Java EE 기반 웹 애플리케이션 개발</li>
</ol>
<table>
<thead>
<tr>
<th></th>
<th>스프링프레임워크</th>
<th>스프링부트</th>
</tr>
</thead>
<tbody><tr>
<td>특징</td>
<td>IOC, DI, AOP</td>
<td>auto/내장서버</td>
</tr>
<tr>
<td>복잡도</td>
<td>설정 복잡</td>
<td>최소한의 설정</td>
</tr>
<tr>
<td>프젝go</td>
<td>수동으로 설정</td>
<td>initalizer 프젝 생성</td>
</tr>
<tr>
<td>배포</td>
<td>외부서버 배포</td>
<td>내장서버 인한 단독 실행 가능</td>
</tr>
</tbody></table>
<p>⇒ Spring Framework는 기반 기술, Spring Boot는 Spring을 더 쉽고 빠르게 쓰게 해주는 도구다. </p>
<hr>
<h4 id="spring-framework">Spring Framework</h4>
<ul>
<li><p>경량 컨테이너</p>
</li>
<li><p>POJO 방식</p>
</li>
<li><p><strong>IoC 지원 (제어의 역전) &lt;개념&gt;</strong></p>
<ul>
<li><p>객체생성이나 관리 그런 부분이 Spring이 다 해줌. 개발자는 그걸 요청하는 코딩만 하면 되는 것. (예전에는 객체생성이나 관리까지 개발자가 함)</p>
</li>
<li><p>제어의 역전</p>
</li>
<li><p>스프링 컨테이너 객체 생성</p>
</li>
<li><p>개발 효율성(up) 유지보수 용이</p>
</li>
<li><p>*&lt;주요 특징&gt;**</p>
<p>→ 객체 생성, 초기화 자동 관리</p>
<p>→ 의존 관계를 자동으로 연결 편리 제공</p>
<p>→ 유연한 구조로 설정 변경 용이</p>
<p>→ 낮은 결합도로 유지보수 용이</p>
<p>⇒IoC는 매니저(소속사)가 있다는 느낌 (직접스케줄관리X)</p>
</li>
</ul>
</li>
<li><p>DI 지원 (의존성 주입)</p>
<p>  <strong>1)</strong> 생성자 <strong>DI (Constructor DI)
  2) setterDI</strong></p>
</li>
<li><p>AOP 지원</p>
<p>  공통으로 들어가는 것을 (횡단관심)
  횡단관심은 : 공통기능 → spring이 관리함
  필요한 핵심 기능 (종단관심)
  종단관심: 핵심기능 → 개발자가 관리함.</p>
</li>
</ul>
<hr>
<h2 id="다형성">다형성</h2>
<p>자바에서의 모든 객체는 부모클 참조변수나 구현한 인터페이스 변수에 담을 수 있다. ⇒ 이러한 참조변수를 통해 메서드를 호출하면 오버라이딩된 메서드가 호출된다.</p>
<p>Spring Framework 장점</p>
<ul>
<li>코드량 감소</li>
<li>생산성 향상</li>
<li>유지보수 쉬움</li>
<li>의존성 관리 편함 (DI)</li>
<li>재사용성 높음</li>
</ul>
<hr>
<h2 id="빌드도구">빌드도구</h2>
<ul>
<li>소스코드를 컴파일부터 배포까지의 전 과정을 자동으로 실행시켜주는 도구*</li>
</ul>
<ol>
<li>빌드 자동화는 소프트웨어 개발의 효율성을 높이는 중요한 과정</li>
<li>필요한 라이브러리를 다운로드 </li>
<li>코드 컴파일, 자동으로 테스트 실행 후</li>
<li>실행 파일을 생성, 배포
5<strong>. Maven(pom.xml) / gradle (build.gradle)</strong></li>
</ol>
<p>스프링은 요리사 개발자는 사장넴</p>
<p><strong>spring application에 필요한 라이브러리: spring-context</strong></p>
<p>스프링의 maven 라이브러리들이 모아져 있는 곳에서 다운받아야함.</p>
<p><strong>Java에서 class 에서 활용되는 get set이 Spring에서는 getBean()이런 느낌으로 활용이 된다.</strong></p>
<hr>
<h3 id="maven-핵심-한-줄">Maven 핵심 한 줄</h3>
<p> XML 기반으로 프로젝트 빌드와 라이브러리를 자동 관리하는 도구</p>
<ul>
<li>자바 프로젝트 <strong>빌드 자동화 도구</strong></li>
<li><strong>XML</strong>로 설정을 관리한다</li>
<li>라이브러리를 <strong>자동으로 다운로드</strong>한다</li>
<li>프로젝트 <strong>라이프사이클 관리</strong> 가능</li>
<li><strong>Apache(아파치)</strong>에서 개발</li>
</ul>
<table>
<thead>
<tr>
<th></th>
<th>Maven</th>
<th>Grable</th>
</tr>
</thead>
<tbody><tr>
<td>비유</td>
<td>공공기관 메뉴얼식 운명</td>
<td>스타트업식 자동화</td>
</tr>
<tr>
<td>특징</td>
<td>정해진 규칙</td>
<td>자유도 높음</td>
</tr>
<tr>
<td>설정</td>
<td>XML</td>
<td>Groovy/ Kotilin</td>
</tr>
<tr>
<td>속도</td>
<td>보통</td>
<td>빠름</td>
</tr>
</tbody></table>
<p><strong>IoC 컨테이너</strong> : 객체 생성과 의존성 관리를 수행하는 스프링의 핵심 구성 요소</p>
<ul>
<li><strong>IoC(Inversion of Control)</strong> : 객체 생성과 관리의 제어권이 개발자가 아닌 프레임워크에 있는 것</li>
<li>개발자가 객체를 직접 생성하지 않고, 프레임워크가 생성한 객체를 주입받아 사용한다.</li>
<li>스프링에서는 IoC 컨테이너가 객체 생성과 의존성 주입을 담당한다.</li>
</ul>
<p><strong>POJO Class</strong></p>
<ul>
<li>POJO (Plain Old Java Object) : 자바 모델이나, 기능, 프레임워크 등에 따르지 않고 홀로 독립적이며 단순한 기능만을 가진 객체들을 의미한다.</li>
<li>자바에서는 이러한 객체들을 Bean이라고 부른다.</li>
<li>단순히, 데이터의 저장기능만 있다.</li>
</ul>
<p>Spring Bean 객체 생성</p>
<ul>
<li>Spring에서는 사용할 Bean 객체를 configuration file에 정의를 하고, 필요할 때 객체를 가져와 사용하는 방법을 이용한다.</li>
<li>bean 태그 : 사용할 Bean을 정의하는 태그</li>
</ul>
<hr>
<p>인터페이스</p>
<ol>
<li>다형성(polymorphism) 
부모의 참조변수로 자식객체를 생성한다.</li>
</ol>
<ul>
<li>코드 수정이 용이하다.</li>
</ul>
<ol start="2">
<li>상수</li>
<li>추상메서드</li>
</ol>
<hr>
<p>MVC(Model,View,Controller)</p>
<ol>
<li>Model(모델): 데이터 (주로 데이터베이스에 있는 데이터)</li>
<li>View : 사용자에게 보여주는 것(UI)<pre><code>  - 템플릿 엔진을 사용해서 예쁘게 꾸며준다. (타임리프 사용)</code></pre></li>
<li>Controller : 실제 일을 하는 애 (비즈니스 로직 처리)</li>
</ol>
<p>*** dispatcher Servlet: 모든 요청을 받아서 적절한 controller에 보내는 애</p>
<p>MVC 장점 </p>
<p>분업화: 요리사(모델)가 바뀌어도 서빙 방식(컨트롤러)은 그대로 유지</p>
<p>유지보수: &quot;접시만 바꾸고 싶어(뷰 수정)&quot; 할 때 요리 방법(모델)을 건드릴 필요가 없음</p>
<p>유연성: 같은 요리(데이터)를 접시에도 담을 수 있고, 포장 박스(다양한 뷰)에도 담을 수 있음</p>
<hr>
<ul>
<li><strong>@SpringBootApplication:</strong> 컴포넌트 스캔 + 자동 설정을 포함한 핵심 어노테이션</li>
<li><strong>@Component:</strong> 컨테이너에 빈(Bean) 객체로 자동 등록</li>
<li><strong>@Autowired:</strong> 타입에 맞춰 의존성을 자동으로 주입<ul>
<li>기본형(@Value)은 아니고, <strong>참조형에만 적용됨</strong></li>
<li>타입을 보고 자동주입</li>
</ul>
</li>
<li><strong>@Qualifier(”이름”)</strong><ul>
<li>같은 클래스의 객체를 여러 개 만들 수 있다</li>
</ul>
</li>
<li><strong>static / templates:</strong> 정적 파일(JS, CSS)과 타임리프(HTML) 템플릿 보관 폴더</li>
</ul>
<hr>
<p>@SpringBootApplication</p>
<ol>
<li>@component-scan : 클래스들을 스캔해서 반으로 만들어서 컨테이너에 보관</li>
</ol>
<hr>
<p>사용자가 입력한 데이터를 받아오는 방법</p>
<ol>
<li>HttpsServletRequest</li>
<li>WebRequest</li>
<li>@RequestParam : 1개씩 변수를 받는다.</li>
<li>@PathVariable : restAPI에서 사용. 폴더가 아니라 데이터로 인식하고 싶을 때 사용한다.</li>
<li>@ModelAttribute :  + dto가 있어야 함(POJO 클래스 : 멤버변수+set/get만 있는 거) 
클래스의 멤버변수 이름 :  요청되는 변수명하고 반드시 일치해야함.</li>
</ol>
<p>@ResponseBody이란? 
return “abc”;
⇒ abc.html파일로 인식하는 것이 아니라, 단순 문자열로 인식하여 그대로 브라우저에 실행</p>
<hr>
<p>springboot 주요 파일</p>
<ul>
<li>static 폴더: 정적파일 보관(html, css,js, image)</li>
<li>templates: 타임리프 파일이 존재하는 폴더</li>
</ul>
<hr>
<p>@springbooApplication (1+2번을 포함하는 어노테이션)</p>
<ol>
<li><p>&lt;context:component-scan basePackgages=“kr.hs.study.beans”/&gt; 
kr.hs.study.beans패키지아래에 있는 클래스들을 스캔해서 어노테이션을 분석한 후, 객체 생성하고, 컨테이너에 보관해라!</p>
</li>
<li><p>프로젝트 실행에 필요한 기본적인 bean 들을 생성한 후, 객체에 보관해라</p>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[TIL spring 정리]]></title>
            <link>https://velog.io/@yeseo_052/TIL-spring-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@yeseo_052/TIL-spring-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Mon, 27 Apr 2026 14:32:40 GMT</pubDate>
            <description><![CDATA[<p>Spring Framework란?</p>
<ol>
<li>자바 기반 응용 프로그램 개발 프레임워크</li>
<li>2003년 6월 Rod Johnson 발표</li>
<li>모든 Java 애플리케이션 개발 이용 ㄱㄴ</li>
<li>Java EE 기반 웹 애플리케이션 개발</li>
</ol>
<table>
<thead>
<tr>
<th></th>
<th>스프링프레임워크</th>
<th>스프링부트</th>
</tr>
</thead>
<tbody><tr>
<td>특징</td>
<td>IOC, DI, AOP</td>
<td>auto/내장서버</td>
</tr>
<tr>
<td>복잡도</td>
<td>설정 복잡</td>
<td>최소한의 설정</td>
</tr>
<tr>
<td>프젝go</td>
<td>수동으로 설정</td>
<td>initalizer 프젝 생성</td>
</tr>
<tr>
<td>배포</td>
<td>외부서버 배포</td>
<td>내장서버 인한 단독 실행 가능</td>
</tr>
</tbody></table>
<p>⇒ Spring Framework는 기반 기술, Spring Boot는 Spring을 더 쉽고 빠르게 쓰게 해주는 도구다. </p>
<h4 id="spring-framework">Spring Framework</h4>
<ul>
<li><p>경량 컨테이너</p>
</li>
<li><p>POJO 방식</p>
</li>
<li><p><strong>IoC 지원 (제어의 역전)</strong></p>
<ul>
<li><p>객체생성이나 관리 그런 부분이 Spring이 다 해줌. 개발자는 그걸 요청하는 코딩만 하면 되는 것. (예전에는 객체생성이나 관리까지 개발자가 함)</p>
</li>
<li><p>제어의 역전</p>
</li>
<li><p>스프링 컨테이너 객체 생성</p>
</li>
<li><p>개발 효율성(up) 유지보수 용이</p>
<p>&lt;주요 특징&gt;</p>
<p>→ 객체 생성, 초기화 자동 관리</p>
<p>→ 의존 관계를 자동으로 연결 편리 제공</p>
<p>→ 유연한 구조로 설정 변경 용이</p>
<p>→ 낮은 결합도로 유지보수 용이</p>
<p>⇒IoC는 매니저(소속사)가 있다는 느낌</p>
</li>
</ul>
</li>
<li><p>DI 지원</p>
</li>
<li><p>AOP 지원</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[TIL C# 구조이해]]></title>
            <link>https://velog.io/@yeseo_052/TIL-C-%EA%B5%AC%EC%A1%B0%EC%9D%B4%ED%95%B4</link>
            <guid>https://velog.io/@yeseo_052/TIL-C-%EA%B5%AC%EC%A1%B0%EC%9D%B4%ED%95%B4</guid>
            <pubDate>Thu, 23 Apr 2026 16:56:32 GMT</pubDate>
            <description><![CDATA[<h3 id="등록-버튼-로직-btnregister_click">등록 버튼 로직 (btnRegister_Click)</h3>
<h4 id="입력값-가져오기">입력값 가져오기</h4>
<pre><code>string name = txtName.Text;
string studentId = txtStudentId.Text;
string phone = txtPhone.Text;</code></pre><p>TextBox는 무조건 .Text</p>
<h4 id="유효성-검사">유효성 검사</h4>
<pre><code>if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(studentId))</code></pre><p>null 또는 빈 문자열 체크</p>
<h4 id="messagebox-자주-나옴">MessageBox (자주 나옴)</h4>
<pre><code>MessageBox.Show(&quot;메시지&quot;, &quot;제목&quot;, MessageBoxButton.OK, MessageBoxImage.Warning);</code></pre><p>구성</p>
<ul>
<li>내용</li>
<li>제목</li>
<li>버튼 종류</li>
<li>아이콘</li>
</ul>
<h4 id="combobox-값-가져오기">ComboBox 값 가져오기</h4>
<pre><code>if (cmbDepartment.SelectedItem is ComboBoxItem seleted)
{
    dept = seleted.Content.ToString();
}</code></pre><p>선택된 항목 → SelectedItem
실제 값 → Content</p>
<h4 id="datepicker-값-처리">DatePicker 값 처리</h4>
<pre><code>string birth = dpBirthday.SelectedDate?.ToString(&quot;yyyy-MM-dd&quot;) ?? (&quot;미등록&quot;);</code></pre><p>SelectedDate → nullable(DateTime?)
?. → 값 있으면 실행
?? → null이면 대체값</p>
<p>날짜 있으면 → 포맷 변환
없으면 → &quot;미등록&quot;</p>
<h3 id="초기화-버튼-btnreset_click">초기화 버튼 (btnReset_Click)</h3>
<pre><code>txtName.Text = &quot;&quot;;
cmbDepartment.SelectedIndex = -1;
dpBirthday.SelectedDate = null;</code></pre><p>TextBox → &quot;&quot;
ComboBox → -1 (선택 해제)
DatePicker → null</p>
<h4 id="포커스-이동">포커스 이동</h4>
<pre><code>txtName.Focus(); //커서를 이름칸으로 이동</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[TIL xaml 화면 기능]]></title>
            <link>https://velog.io/@yeseo_052/TIL-xaml-%ED%99%94%EB%A9%B4-%EA%B8%B0%EB%8A%A5</link>
            <guid>https://velog.io/@yeseo_052/TIL-xaml-%ED%99%94%EB%A9%B4-%EA%B8%B0%EB%8A%A5</guid>
            <pubDate>Thu, 23 Apr 2026 14:53:41 GMT</pubDate>
            <description><![CDATA[<p>수행공부 겸! 
x:Name은 코드에서 컨트롤을 직접 접근하기 위한 이름. 
즉, UI&lt;-&gt;코드 연결해주는 역할.</p>
<ol>
<li>TextBlock 문자열을 시각적으로 보여줌.</li>
<li>TextBox 문자열 입력 할 수 있는 Box &lt;입력값&gt;</li>
<li>ComboBox 여러 선택지 중 하나선택! &lt;선택값&gt;</li>
<li>DatePicker 날짜 입력 전용 &lt;날짜&gt;</li>
</ol>
<p>초기화 버튼 핵심</p>
<pre><code>.Text = &quot;&quot;;
.SelectedIndex = -1;
.SelectedDate = null;</code></pre><p>다음에는 C#부분도 해보겠습니당</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0421 TIL]]></title>
            <link>https://velog.io/@yeseo_052/d</link>
            <guid>https://velog.io/@yeseo_052/d</guid>
            <pubDate>Tue, 21 Apr 2026 14:59:38 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yeseo_052/post/e1a9091c-40b0-4560-aa66-cd7ef0976c3d/image.png" alt="">
오늘은 MyJob이라는 프로젝트의 기획서를 작성해보았다.
오랜만에 기획서를 작성하니 잠깐의 추억이....&gt;&lt;</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[코딩테스트][Python] 세로 읽기 - (Level 0)]]></title>
            <link>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8Python-%EC%84%B8%EB%A1%9C-%EC%9D%BD%EA%B8%B0-Level-0</link>
            <guid>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8Python-%EC%84%B8%EB%A1%9C-%EC%9D%BD%EA%B8%B0-Level-0</guid>
            <pubDate>Mon, 20 Apr 2026 14:54:06 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yeseo_052/post/e6619dc6-41a1-4c5e-a874-dd43a51e7dd2/image.png" alt="">
문제 : 문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.</p>
<p>Python 소스 답 : </p>
<pre><code>def solution(my_string, m, c):
    answer = &#39;&#39;
    for i in range(c-1,len(my_string),m) :
        answer+=my_string[i]
    return answer</code></pre><p>m: 간격(열 개수 느낌)
c: 몇 번째 열인지</p>
<p>range(c-1, len(my_string), m)
→ (c-1)부터 시작해서 m씩 건너뛰면서 인덱스 선택합니다! 끄읕!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[코딩테스트][Go] 숫자 비교하기 & 각도기 - (Level 0)]]></title>
            <link>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8Go-%EC%88%AB%EC%9E%90-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0-%EA%B0%81%EB%8F%84%EA%B8%B0-Level-0</link>
            <guid>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8Go-%EC%88%AB%EC%9E%90-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0-%EA%B0%81%EB%8F%84%EA%B8%B0-Level-0</guid>
            <pubDate>Fri, 17 Apr 2026 04:37:22 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yeseo_052/post/4a8fc986-7411-46e6-a9ca-66e5ffbe708b/image.png" alt=""></p>
<p>Go 소스 답 : =</p>
<pre><code>func solution(num1 int, num2 int) int {
    if num1 == num2{
        return 1;
    }else{
        return -1;
    }
}</code></pre><p>num1과 num2가 같다면 1을 return 아니라면 -1로 return 한다.</p>
<p><img src="https://velog.velcdn.com/images/yeseo_052/post/d8f833b0-3f2b-4c86-990c-b9ed8ea0e9ee/image.png" alt=""></p>
<p>Go 소스 답 :=</p>
<pre><code>func solution(angle int) int {
    if angle&gt;0 &amp;&amp; angle&lt;90{
        return 1
    }else if angle==90{
        return 2
    }else if angle&gt;90 &amp;&amp; angle&lt;180 {
        return 3
    }else{
        return 4
    }
}</code></pre><p>신기하게도 else if angle == 180으로 return 4를 하면 에러가 생기더라구요? else if로 하고 싶다면? 조건문 바깥에도 return 0을 해주셔야 합니다!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[GoLang If else 활용]]></title>
            <link>https://velog.io/@yeseo_052/TIL-pdg077tp</link>
            <guid>https://velog.io/@yeseo_052/TIL-pdg077tp</guid>
            <pubDate>Wed, 15 Apr 2026 14:58:19 GMT</pubDate>
            <description><![CDATA[<p>GoLang Type을 공부해봤으니 이번에는 조건문을 사용해보도록 하겠슴다.</p>
<h1 id="ifelse">if/else</h1>
<p><img src="https://velog.velcdn.com/images/yeseo_052/post/e0f29544-dca6-42e7-83b6-61152d1f0e04/image.png" alt=""></p>
<h3 id="1-if-다음에-조건문은-boolean식으로-표현해야-한다-0-and-1-사용불가-error">1. if 다음에 (조건문)은 Boolean식으로 표현해야 한다. (0 and 1 사용불가 error)</h3>
<p><strong>안</strong>되는 조건
ex) </p>
<pre><code>if 1 {
    // 에러 발생
}</code></pre><p>Go는 이걸 안 해줌니다...</p>
<pre><code>x := 10

if x {   // ❌ 에러
    fmt.Println(&quot;실행&quot;)
}
</code></pre><p>에러 이유 :
  ㅣ x는 int인데, if는 bool만 받습니다.
그럼 어떻게 해야하나?
-&gt; 직접 비교해서 bool을 만들어야 합니다.</p>
<pre><code>x := 10
if x&gt; 0{
    fmt.Println(&quot;실행&quot;)
}</code></pre><p>되는 조건문
ex)</p>
<pre><code>if true {
    fmt.Println(&quot;항상 실행&quot;)
}</code></pre><p>여기서 Print문이 궁금할 수 있는데 fmt는 java로 비유하자면 System.out 과 비슷한 느낌입니다! Go는 fmt 패키지의 함수 사용을 하는겁니당!</p>
<p><strong>Go에서는 if 안에 무조건 true/false가 나오는 식만 써야 한다</strong></p>
<h3 id="2-을-안-쓰지만-는-무조건-써줌">2. ()을 안 쓰지만 {}는 무조건 써줌.</h3>
<p>if (조건문bool) { } &lt;- 조건문 bool은 ()바깥에다가 작성해도 된다. but 꼭 {} 안에 넣어야 한다.</p>
<h3 id="else-if-혹은-else를-쓸-때-반드시-전-조건의">else if 혹은 else를 쓸 때 반드시 전 조건의</h3>
<p>올바른 예시</p>
<pre><code>if(){
}else{
}</code></pre><p>but Go는 줄바꿈이나 ;붙여버리면 문장이 끝났다고 생각해 error가 발생한다.
error 예시 </p>
<pre><code>}
(줄바꿈)
else</code></pre><pre><code>};
else</code></pre><h4 id="알면좋은거">알면좋은거...?</h4>
<p>Go의 if는 이렇게 쓸 수 있다.</p>
<pre><code>if 초기문; 조건문{
    //실행
}</code></pre><p>초기문 -&gt; 선택
조건문 -&gt; 반드시 bool</p>
<p>&lt;소스 해석&gt;</p>
<ol>
<li>초기문 -&gt; 먼저 실행됨</li>
<li>조건문 -&gt; 조건 검사</li>
<li>true면 실행</li>
</ol>
<p>but 초기문은 if문 안에서만 살아있는 변수다. 바깥에서 불러오면 error(범위 밖)가 발생한다.</p>
<p>❔❔초기문; &lt;- ; 왜 쓰는 건가요?</p>
<blockquote>
<p>조건문과 초기문을 구별하기 위해서임!</p>
</blockquote>
<p>진짜 핵심만 다시 딱 요약하자면?
if 조건 {} → 기본
if 실행문; 조건 {} → 고급 (근데 엄청 자주 씀)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[코딩테스트][Go] 나이 출력 & 두 수의 나눗셈 - (Level 0)]]></title>
            <link>https://velog.io/@yeseo_052/TIL-fulhwdj0</link>
            <guid>https://velog.io/@yeseo_052/TIL-fulhwdj0</guid>
            <pubDate>Tue, 14 Apr 2026 14:31:41 GMT</pubDate>
            <description><![CDATA[<p>저번에 공부한 Go를 쉬운문제로 활용해보겠습니다!
<img src="https://velog.velcdn.com/images/yeseo_052/post/56d2501f-378a-496e-9947-829eb6095dd3/image.png" alt="">
Go 답코드</p>
<pre><code>func solution(age int) int {
    return 2023-age
}</code></pre><p>년도에다가 그냥 빼는 문제라 빠르게 풀었숩니다 :)</p>
<h2 id="두-수의-나눗셈">두 수의 나눗셈</h2>
<p><img src="https://velog.velcdn.com/images/yeseo_052/post/16036f00-7105-40b9-9860-62bcf5dfab15/image.png" alt=""></p>
<pre><code>func solution(num1 int, num2 int) int {
    return int(float64(num1) / float64(num2) * 1000)
}</code></pre><p>처음에는 그냥 (num1/num2)*1000을 했는데 그러면 소수점은 스킵해서 원하는 출력값이 안 나와서 보니 float64로 소수점까지 계산을 하게 한 후 int()으로 변경하는 방식이었숩니다!! </p>
<p>Go를 type지정 하는 것 밖에 잘 몰랐는데 뭔가 쉬운문제로 활용해보니 더 기억에 남을 것 같습니다!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[TIL]]></title>
            <link>https://velog.io/@yeseo_052/TIL-bw98e298</link>
            <guid>https://velog.io/@yeseo_052/TIL-bw98e298</guid>
            <pubDate>Mon, 13 Apr 2026 14:53:48 GMT</pubDate>
            <description><![CDATA[<p>한 번 바이브코딩으로 하기전에! 그래도 Go 언어도 알며 써야한다!라고 생각해 기초 문법을 정리해보았습니다</p>
<p><strong>변수 선언</strong>
var (변수명) (type) = (초기값)</p>
<pre><code>var a int = 1</code></pre><p>const는 var 대신 const를 붙이면 되고, 여러개를 묶어서 지정도 가능하다.</p>
<pre><code>const (
    a = &quot;A&quot;
    b = &quot;B&quot;
)</code></pre><p>Go는 파이썬처럼 불편하게 +=1을 굳이 하지 않아도 됨니다.
var p *int
var q ^int
var k int = 10</p>
<p>보다보니...뇌정지가 많이 와서..차근차근 배우도록 하겠습니다!!! ㅎㅎㅎ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[코딩테스트][Mysql] 여러 기준으로 정렬하기 - (Level 1)]]></title>
            <link>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8Mysql-%EC%97%AC%EB%9F%AC-%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0-Level-1</link>
            <guid>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8Mysql-%EC%97%AC%EB%9F%AC-%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0-Level-1</guid>
            <pubDate>Sun, 12 Apr 2026 14:08:33 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yeseo_052/post/bffce079-48a0-4910-81b7-755914b8d967/image.png" alt=""></p>
<p>정답 SQL쿼리</p>
<pre><code>SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME ASC, DATETIME DESC;</code></pre><p>아이디와 이름, 보호 시작일을 조회하라고 했으니 SELCET 다음에 아이디, 이름, 보호 시작일을 넣고 ANIMAL_INS 테이블을 호출한다. </p>
<p>그리고 가장 중요한 것!!
테이블에서 SELECT로 데이터를 조회할 때, ORDER BY를 추가하여 지정된 컬럼을 기준으로 정렬 할 수 있습니다.</p>
<p>오름차순은 </p>
<blockquote>
<p>ASC</p>
</blockquote>
<p>내림차순은</p>
<blockquote>
<p>DESC</p>
</blockquote>
<p>더 오름차순과 내림차순 정렬 조회가 궁금하시다면
<a href="https://extbrain.tistory.com/51">https://extbrain.tistory.com/51</a> &lt;- 꼭 참고해보십시오!! <del>저도 이거 보고 했어요 ㅎㅎ</del></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[코딩테스트][python] 팩토리얼 - (Level 0)]]></title>
            <link>https://velog.io/@yeseo_052/TIL-6trdjyde</link>
            <guid>https://velog.io/@yeseo_052/TIL-6trdjyde</guid>
            <pubDate>Thu, 09 Apr 2026 14:53:51 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yeseo_052/post/8f2c1522-b901-4994-9e11-16031d1073ef/image.png" alt=""></p>
<p>Python 정답</p>
<pre><code>def solution(n):
    fact = 1
    i = 1

    while True:
        fact *= i

        if fact &gt; n:
            return i - 1

        i += 1</code></pre><p>이번 소스는 “팩토리얼을 누적하다가 n을 넘기기 직전의 i를 찾는다” 그래서 return값이 저렇게 풀이된다.! <del>졸려서 설명이 작아졌어요..ㅎ</del></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[코딩테스트][python] 최빈값 구하기 - (Level 0)]]></title>
            <link>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8python-%EC%B5%9C%EB%B9%88%EA%B0%92-%EA%B5%AC%ED%95%98-Level-0</link>
            <guid>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8python-%EC%B5%9C%EB%B9%88%EA%B0%92-%EA%B5%AC%ED%95%98-Level-0</guid>
            <pubDate>Wed, 08 Apr 2026 15:41:15 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yeseo_052/post/2d666490-0faa-49e7-b8af-20f499f3831a/image.png" alt="">
python풀이</p>
<pre><code>def solution(array):
    count = [0] * (max(array) + 1)

    for i in array:
        count[i] += 1

    max_count = max(count)

    if count.count(max_count) &gt; 1:
        return -1

    return count.index(max_count)</code></pre><p>사실 오류가 많이 생겨서 ai랑 함께 풀어보았습니다,,,,,
array의 max값만큼 배열을 만들어서 for문으로 count 배열에다가 횟수추가를 합니다!
but 최빈값이 여러개라면? -1으로 return하는 로직으로 구현하였습니다!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[TIL]]></title>
            <link>https://velog.io/@yeseo_052/TIL-t43pbqxg</link>
            <guid>https://velog.io/@yeseo_052/TIL-t43pbqxg</guid>
            <pubDate>Wed, 08 Apr 2026 13:13:56 GMT</pubDate>
            <description><![CDATA[<p>오! 늘! 도! 소스해석!</p>
<p><img src="https://velog.velcdn.com/images/yeseo_052/post/68bebf56-201e-43d8-9a5a-d16e20c16b2c/image.png" alt="">
먼저 이 함수는 총 가격을 계산하는 로직입니다!</p>
<pre><code>document.querySelectorAll(&#39;.placed-sticker&#39;).forEach(sticker =&gt; {
  const price = parseInt(sticker.dataset.price) || 0;
  total += price;
});</code></pre><p>.placed-sticker 클래스를 가진 모든 요소를 가져옴
각 요소의 data-price 값을 읽어서 숫자로 변환
parseInt(...) || 0 → 값이 없거나 NaN이면 0 처리
total에 계속 더함</p>
<p><strong>즉, 화면에 놓인 스티커들의 가격을 모두 더하는 부분</strong></p>
<pre><code>document.getElementById(&#39;totalPrice&#39;).textContent = total;</code></pre><p>id=&quot;totalPrice&quot; 요소에 총합을 텍스트로 출력</p>
<pre><code>const btn = document.getElementById(&#39;completeBtn&#39;);</code></pre><p>완료 버튼 가져오기</p>
<pre><code>if (total &gt; currentPoints) {
  btn.disabled = true;
  btn.textContent = &#39;완료 (포인트 부족)&#39;;
}</code></pre><p>총 가격이 현재 보유 포인트(currentPoints)보다 크면</p>
<p>버튼 비활성화
텍스트: &quot;완료 (포인트 부족)&quot;</p>
<pre><code>else {
  btn.disabled = false;
  btn.textContent = &#39;완료&#39;;
}</code></pre><p>포인트가 충분하면</p>
<p>버튼 활성화
텍스트: &quot;완료&quot;</p>
<p>return total; 총 가격을 반환합니다!! 끄읕</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[TIL]]></title>
            <link>https://velog.io/@yeseo_052/TIL</link>
            <guid>https://velog.io/@yeseo_052/TIL</guid>
            <pubDate>Tue, 07 Apr 2026 14:42:24 GMT</pubDate>
            <description><![CDATA[<p>오늘은 JobFit이라는 웹사이트를 만들어보려고 기획하고 있었다.
역할분담으로 더 좋은 아이디어를 주셨다.
웹 크롤링, 분류, 템플릿 &amp; 이력서, 지원 담당을 정해서 구성을 하라고 하셔서 
처음으로 웹 크롤링을 하게되었다...아직 시작은 안 했지만 쫌 걱정이 많이된다. <del>가장 쉽다는데 난 잘 모르겟다....</del></p>
<h3 id="소스-해석">소스 해석</h3>
<p><img src="https://velog.velcdn.com/images/yeseo_052/post/d9609eb9-cc0f-460c-a952-cd01e3c448e4/image.png" alt=""></p>
<pre><code>document.addEventListener(&#39;DOMContentLoaded&#39;, () =&gt; {</code></pre><p>HTML 문서가 다 로드된 뒤에 코드 실행</p>
<pre><code>const container = document.getElementById(&#39;imageContainer&#39;);</code></pre><p>imageContainer라는 id를 가진 요소(이미지 영역)를 가져옴</p>
<pre><code>container.addEventListener(&#39;click&#39;, (e) =&gt; {</code></pre><p>컨테이너를 클릭하면 아래 로직 실행</p>
<pre><code>if (e.target.classList.contains(&#39;placed-sticker&#39;) ||
    e.target.classList.contains(&#39;resize-handle&#39;)) {
  return;
}</code></pre><p>이미 배치된 스티커(placed-sticker)
또는 크기 조절 핸들(resize-handle)
👉 이걸 클릭한 경우는 스티커 추가를 하지 않고 종료</p>
<p>but!! if는 사용자가 스티커를 선택하지 않았다면? alert로 경고표시하기</p>
<pre><code>const rect = container.getBoundingClientRect();
const x = ((e.clientX - rect.left) / rect.width) * 100;
const y = ((e.clientY - rect.top) / rect.height) * 100;</code></pre><p>rect = 컨테이너의 위치와 크기 정보
clientX, clientY = 클릭한 화면 좌표
(좌표 - 컨테이너 시작점) / 크기
👉 <strong>클릭 위치를 0~100% 비율 값으로 변환</strong></p>
<pre><code>addSticker(selectedSticker, x, y, 1.0);</code></pre><p>선택된 스티커를
(x, y) 위치에
크기 1.0으로 추가</p>
<p>=&gt; 정리
스티커를 선택하고
이미지 영역을 클릭하면
클릭 위치에 스티커가 추가됨</p>
<p>프로젝트와 더 다양한 소스가 궁금하다면?
=&gt; <a href="https://github.com/Yeseo0502/np_mypic">https://github.com/Yeseo0502/np_mypic</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Supabase 알아가기]]></title>
            <link>https://velog.io/@yeseo_052/Supabase-%EC%95%8C%EC%95%84%EA%B0%80%EA%B8%B0</link>
            <guid>https://velog.io/@yeseo_052/Supabase-%EC%95%8C%EC%95%84%EA%B0%80%EA%B8%B0</guid>
            <pubDate>Mon, 06 Apr 2026 14:40:33 GMT</pubDate>
            <description><![CDATA[<p>오늘은 짧게! 한 소스만 해석해보겠숩니다 <del>어제 저녁에 이력서 포폴을 수정했더니 너무 졸려요ㅠ</del></p>
<p><img src="https://velog.velcdn.com/images/yeseo_052/post/a57fac62-a877-42b1-8b8a-ee879093e2af/image.png" alt="">
function 먼저 MygetMember()은 그룹의 구성원을 관리하는 메소드 입니다.
groupId에 속한 그룹 멤버 목록 조회 함수 (MygetMember)</p>
<p><strong>.from(&#39;필요한 테이블명 작성&#39;)</strong> =&gt; 위에 소스로는 조회할 테이블은 group_members</p>
<p>.<strong>select**</strong>(&#39;테이블 안에 있는 필요한 애들 가져오기)**
*<em>but *</em> profiles 테이블과 관계(join)된 nickname도 같이 가져옴
.eq() 같을 때만 true로 반환.!
error라면? 성공실패 or error 메시지를 반환해줍니다.</p>
<p>but 성공이라면? members 사용자의 id값과 이름을 저장합니다!
return으로는 성공, members를 가져와서 반환해줍니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[TypeScipt 기초]]></title>
            <link>https://velog.io/@yeseo_052/TypeScipt-%EA%B8%B0%EC%B4%88</link>
            <guid>https://velog.io/@yeseo_052/TypeScipt-%EA%B8%B0%EC%B4%88</guid>
            <pubDate>Thu, 02 Apr 2026 15:22:13 GMT</pubDate>
            <description><![CDATA[<p>먼저 딱 요약하자면&#39;</p>
<h4 id="타입----설명-">타입    설명 :</h4>
<p>number    숫자    10, 3.14
string    문자열    &quot;hello&quot;
boolean    참/거짓    true, false
any    모든 타입 허용 (권장 X)    자유롭게 사용</p>
<h3 id="2-조건문-if">2. 조건문 (if)</h3>
<p>조건에 따라 코드 실행을 분기할 때 사용한다.</p>
<p>기본 문법</p>
<pre><code>if (조건) {
  // 실행 코드
} else if (조건) {
  // 다른 조건
} else {
  // 위 조건이 모두 아닐 때
}</code></pre><p>python처럼 if문 형태가 바뀌진 않아서 좋네오!!</p>
<h3 id="3-반복문-for">3. 반복문 (for)</h3>
<p>특정 코드를 반복 실행할 때 사용한다.</p>
<pre><code>for (초기값; 조건; 증감식) {
  // 반복 실행 코드
}</code></pre><blockquote>
<p>처음 공부하는 언어라 형태가 많이 달라서 어려울까봐 걱정 많이 했는데 생각보다 js랑 유사해서 좋았습니다&gt;&lt;</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[코딩테스트][python] 문자열이 몇 번 등장하는지 세기 - (Level 0)]]></title>
            <link>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8python-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%B4-%EB%AA%87-%EB%B2%88-%EB%93%B1%EC%9E%A5%ED%95%98%EB%8A%94%EC%A7%80-%EC%84%B8%EA%B8%B0-Level-0</link>
            <guid>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8python-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%B4-%EB%AA%87-%EB%B2%88-%EB%93%B1%EC%9E%A5%ED%95%98%EB%8A%94%EC%A7%80-%EC%84%B8%EA%B8%B0-Level-0</guid>
            <pubDate>Wed, 01 Apr 2026 17:17:44 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yeseo_052/post/7540ce9b-7a09-4d26-bc8d-dfe7ab60b385/image.png" alt="">
Python 풀이 소스</p>
<pre><code>def solution(myString, pat):
    answer = 0
    for i in range(len(myString) - len(pat) +1) :
        if myString[i:i+len(pat)] == pat:
            answer+=1
    return answer</code></pre><p>핵심 반복문
pat 길이만큼 잘라야 하니까
끝까지 가면 안 되고 자를 수 있는 마지막 위치까지만 반복</p>
<p>if문은 현재 위치 i부터 pat 길이만큼 잘라서 비교하는 로직으로 만들었습니당!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[코딩테스트][python] 잘라서 배열로 저장하기 - (Level 0)]]></title>
            <link>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8python-%EC%9E%98%EB%9D%BC%EC%84%9C-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0-Level-0</link>
            <guid>https://velog.io/@yeseo_052/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8python-%EC%9E%98%EB%9D%BC%EC%84%9C-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0-Level-0</guid>
            <pubDate>Tue, 31 Mar 2026 16:08:43 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yeseo_052/post/d662d8b2-9d6a-4fb9-9058-daa48df55d8e/image.png" alt="">
Python 풀이 소스</p>
<pre><code>def solution(my_str, n):
    answer = []
    for i in range(0,len(my_str),n) :
        answer.append(my_str[i:(i+n)])
    return answer</code></pre><p>난이도가 낮은 문제라도 완료한 사람이 적으면 괜히 도전하기가 망설여졌는데,
이번 &quot;잘라서 배열로 저장하기&quot; 문제는 직접 시도해보니 생각보다 어렵지 않았다.</p>
<p>위에는 i값으로 0부터 my_str의 길이값을 n값씩 더하며 반복하는 for문이다.
append 안에 있는 것은 my_str의 문장의 길이들을 i에서 i+n값 까지 출력해 answer배열에다가 넣는 설계를 해보았다.</p>
<h4 id="error-발생">&lt;error 발생&gt;</h4>
<p>JavaScript에서 push()를 사용하던 습관 때문에 Python에서도 push를 사용했는데 오류가 발생했다. Python에서는 리스트에 값을 추가할 때 <strong>append()</strong>를 사용해야 한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[프로세스 수행평가...]]></title>
            <link>https://velog.io/@yeseo_052/C</link>
            <guid>https://velog.io/@yeseo_052/C</guid>
            <pubDate>Mon, 30 Mar 2026 14:39:20 GMT</pubDate>
            <description><![CDATA[<p>오늘 프로세스 스케줄링 수행을 했는데,,,,,
 <img src="https://velog.velcdn.com/images/yeseo_052/post/f4e40992-6fa8-4dab-9d9b-ace73be133e0/image.png" alt=""></p>
<h3 id="-아니-글쎄-문제로-프로세스가-p1p6까지-있는거에오">??????? 아니 글쎄 문제로 프로세스가 P1~P6까지 있는거에오</h3>
<p>아닣ㅎ 뭐 FCFS나 우선순위는 괜찮았지만... <del>안 괜찮았어요</del>
라운드로빈을 하려니 진짜 진땀이 나더라구요,,,,
프로세스가 p1~p6이 있어도 숫자가 크지 않으면 풀 수 있다고 생각했는데</p>
<h2 id="실행시간-p1-20ms-p2-7ms-p3-30ms-">실행시간 P1: 20(ms) P2: 7(ms) P3: 30(ms) ....</h2>
<p><img src="https://velog.velcdn.com/images/yeseo_052/post/6677aa31-5800-4bd1-8d4c-7eab27f8c0f4/image.png" alt="">
네...? 저 수학 못해요...(집중력도 안 좋음)
하하 그렇다고 수행을 포기할 순 없어서 풀이 과정을 쓰며 하고 있는데 
처음에는 우선순위로 그래프 그리기 이런 거라 집중력만 좋으면 척척 수월하게 풀어갈 수 있었어요...
다행히 <strong>도착시간은 다 0ms</strong>로 끝나서 평균 대기 값 구하는 것도 수월할 수 있었어요&gt;&lt;</p>
<h3 id="아직-남았다-라운드로빈">아직 남았다. 라운드로빈</h3>
<p>하핳하 6ms로 할당 시간값을 가지고 풀어나가는데 6개나 되니까 뭔 그래프가....ㅎㅋㅎㅋ
<img src="https://velog.velcdn.com/images/yeseo_052/post/55b55478-1725-49ac-ad17-623165ac7275/image.gif" alt="">
진짜 정신이 하나도 없고 하나라도 실수하면 끝이기에....너무 힘들었던 시간인 것 같습니다..ㄴ..네...</p>
<h2 id="시간이-남았다면">시간이 남았다면</h2>
<p>열심히 풀어 검토할 시간이 있었는데 진짜...문제 꼼꼼히 보시고...공부도 꾸준히 해야 한다는 걸 깨달았습니다. 전 4번 문제 있는 줄도 모르고 제출하고... 프로세스 대기 값도 라운드로빈 쪽 잘 못 계산해서 망했습니다!!!!하하하핳 <del>부분점수 많이 주세요....제발</del></p>
<blockquote>
<p>다들 꼼꼼히 보는 하루가 되시길....Good Bye</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>