<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>거꾸로 바라본 세상</title><description>기술을 적어 봅시다.</description><link>https://pscheol.github.io/</link><language>ko</language><item><title>Spring AI</title><link>https://pscheol.github.io/posts/spring-ai/</link><guid isPermaLink="true">https://pscheol.github.io/posts/spring-ai/</guid><description>Spring AI의 ChatModel·ChatClient·Prompt·Advisor가 요청을 처리하는 흐름과 Kotlin API, 스트리밍, 운영 시 검증 기준을 살펴본다.</description><category>Spring AI</category><category>Spring AI</category><category>스프링 AI</category><category>Chat Model</category><category>채팅 모델</category></item><item><title>4. Agentic Engineering(에이전틱 엔지니어링) — AI 에이전트를 설계하고 조율하는 기술</title><link>https://pscheol.github.io/posts/4-agentic-engineering-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8B%B1-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-ai-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EB%A5%BC-%EC%84%A4%EA%B3%84%ED%95%98%EA%B3%A0-%EC%A1%B0%EC%9C%A8%ED%95%98%EB%8A%94-%EA%B8%B0%EC%88%A0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-agentic-engineering-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8B%B1-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-ai-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EB%A5%BC-%EC%84%A4%EA%B3%84%ED%95%98%EA%B3%A0-%EC%A1%B0%EC%9C%A8%ED%95%98%EB%8A%94-%EA%B8%B0%EC%88%A0/</guid><description>에이전트의 목표·상태·도구·종료 조건을 설계하고, 권한과 재시도 경계를 둔 뒤 단일·멀티 에이전트 구조를 평가하는 방법.</description><category>AI 엔지니어링</category><category>AI 엔지니어링</category><category>AI</category><category>AI 에이전트</category><category>에이전틱 엔지니어링</category><category>Agentic Engineering</category></item><item><title>하네스 엔지니어링으로 서비스 만들어보기</title><link>https://pscheol.github.io/posts/%ED%95%98%EB%84%A4%EC%8A%A4-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81%EC%9C%BC%EB%A1%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%ED%95%98%EB%84%A4%EC%8A%A4-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81%EC%9C%BC%EB%A1%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EA%B8%B0/</guid><description>작은 FAQ 서비스 예제로 요구 문서, 허용 작업 범위, Gradio UI, 테스트와 변경 검토를 연결하는 하네스 작업 순서.</description><category>AI 엔지니어링</category><category>AI 엔지니어링</category><category>AI</category><category>하네스 엔지니어링</category><category>Harness Engineering</category></item><item><title>머신러닝 : K-최근접 이웃 알고리즘</title><link>https://pscheol.github.io/posts/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-k-%EC%B5%9C%EA%B7%BC%EC%A0%91-%EC%9D%B4%EC%9B%83-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-k-%EC%B5%9C%EA%B7%BC%EC%A0%91-%EC%9D%B4%EC%9B%83-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</guid><description>도미와 빙어의 길이·무게 데이터로 K-최근접 이웃을 만들고, 거리·평가·스케일링을 해석한다.</description><category>기초</category><category>머신러닝</category><category>AI</category></item><item><title>최근접 이웃 알고리즘</title><link>https://pscheol.github.io/posts/%EC%B5%9C%EA%B7%BC%EC%A0%91-%EC%9D%B4%EC%9B%83-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%B5%9C%EA%B7%BC%EC%A0%91-%EC%9D%B4%EC%9B%83-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</guid><description>K-최근접 이웃의 거리 계산과 다수결을 숫자 예제로 이해하고, 붓꽃 분류의 전처리·평가·한계를 살펴본다.</description><category>기초</category><category>머신러닝</category><category>AI</category></item><item><title>훈련세트와 테스트 세트</title><link>https://pscheol.github.io/posts/%ED%9B%88%EB%A0%A8%EC%84%B8%ED%8A%B8%EC%99%80-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%84%B8%ED%8A%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%ED%9B%88%EB%A0%A8%EC%84%B8%ED%8A%B8%EC%99%80-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%84%B8%ED%8A%B8/</guid><description>훈련·검증·테스트 세트의 역할과 데이터 누수를 피하는 분할 방법을 예제로 정리한다.</description><category>기초</category><category>머신러닝</category><category>AI</category></item><item><title>WhisperX 음성 인식 품질 개선과 모델 파인튜닝</title><link>https://pscheol.github.io/posts/whisperx-%EC%9D%8C%EC%84%B1-%EC%9D%B8%EC%8B%9D-%ED%92%88%EC%A7%88-%EA%B0%9C%EC%84%A0%EA%B3%BC-%EB%AA%A8%EB%8D%B8-%ED%8C%8C%EC%9D%B8%ED%8A%9C%EB%8B%9D/</link><guid isPermaLink="true">https://pscheol.github.io/posts/whisperx-%EC%9D%8C%EC%84%B1-%EC%9D%B8%EC%8B%9D-%ED%92%88%EC%A7%88-%EA%B0%9C%EC%84%A0%EA%B3%BC-%EB%AA%A8%EB%8D%B8-%ED%8C%8C%EC%9D%B8%ED%8A%9C%EB%8B%9D/</guid><description>WhisperX 음성 인식 파이프라인의 코드 옵션 조정과 Whisper 모델 파인튜닝 흐름을 원본 백업의 예시로 정리합니다.</description><category>응용</category><category>WhisperX</category><category>음성 인식</category><category>파인튜닝</category><category>CTranslate2</category></item><item><title>엘라스틱 스택</title><link>https://pscheol.github.io/posts/%EC%97%98%EB%9D%BC%EC%8A%A4%ED%8B%B1-%EC%8A%A4%ED%83%9D/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%97%98%EB%9D%BC%EC%8A%A4%ED%8B%B1-%EC%8A%A4%ED%83%9D/</guid><description>Elasticsearch·Kibana·Beats·Logstash의 역할을 구분하고, 검색 매핑과 데이터 수집·색인·조회 흐름을 살펴본다.</description><category>Elasticsearch</category><category>Elasticsearch</category><category>엘라스틱 스택</category><category>Elastic Stack</category><category>검색 엔진</category><category>Search Engine</category></item><item><title>1.데이터의 이해</title><link>https://pscheol.github.io/posts/1-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-%EC%9D%B4%ED%95%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-%EC%9D%B4%ED%95%B4/</guid><description>데이터 유형과 속성을 구분하고, 주문 데이터 예제로 전처리·탐색적 분석과 데이터 누수를 피하는 방법을 살펴본다.</description><category>기초</category><category>데이터 과학</category><category>Data Science</category><category>데이터 분석</category><category>Data Analysis</category></item><item><title>2. MongoDB Query</title><link>https://pscheol.github.io/posts/2-mongodb-query/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-mongodb-query/</guid><description>MongoDB의 find·findOne과 필드 선택, 비교 조건을 예제로 익히고 누락된 필드와 느린 조회의 원인을 살펴본다.</description><category>MongoDB</category><category>MongoDB</category><category>몽고DB</category><category>쿼리</category><category>Query</category></item><item><title>3. RabbitMQ의 기본 비동기 메시지 전송</title><link>https://pscheol.github.io/posts/3-rabbitmq%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EB%B9%84%EB%8F%99%EA%B8%B0-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%A0%84%EC%86%A1/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-rabbitmq%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EB%B9%84%EB%8F%99%EA%B8%B0-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%A0%84%EC%86%A1/</guid><description>Spring AMQP로 RabbitMQ 큐와 송수신 코드를 구성하고, 메시지 전달 경로와 발행 확인·소비 확인 응답의 차이를 살펴본다.</description><category>RabbitMQ</category><category>RabbitMQ</category><category>비동기 메시징</category><category>Asynchronous Messaging</category><category>메시지 큐</category></item><item><title>2. 주요 용어와 Exchange의 이해</title><link>https://pscheol.github.io/posts/2-%EC%A3%BC%EC%9A%94-%EC%9A%A9%EC%96%B4%EC%99%80-exchange%EC%9D%98-%EC%9D%B4%ED%95%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-%EC%A3%BC%EC%9A%94-%EC%9A%A9%EC%96%B4%EC%99%80-exchange%EC%9D%98-%EC%9D%B4%ED%95%B4/</guid><description>RabbitMQ의 Producer·Exchange·Queue·Consumer 역할을 연결하고, 라우팅 키와 Exchange 유형별 메시지 전달 방식을 비교한다.</description><category>RabbitMQ</category><category>RabbitMQ</category><category>Exchange</category><category>래빗MQ</category><category>익스체인지</category><category>메시지 라우팅</category></item><item><title>1. RabbitMQ 개요</title><link>https://pscheol.github.io/posts/1-rabbitmq-%EA%B0%9C%EC%9A%94/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-rabbitmq-%EA%B0%9C%EC%9A%94/</guid><description>RabbitMQ를 활용한 비동기 메시징의 용도와 AMQP 라우팅 구조를 살펴보고, Mac 설치와 메시지 큐의 역할을 정리한다.</description><category>RabbitMQ</category><category>RabbitMQ</category><category>메시지 큐</category><category>Message Queue</category><category>메시징</category></item><item><title>1. 비즈니스 도메인 분석</title><link>https://pscheol.github.io/posts/1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%B6%84%EC%84%9D/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%B6%84%EC%84%9D/</guid><description>사업 목표를 하위 도메인으로 나누고, 차별화 가치에 따라 설계와 투자 우선순위를 정하는 방법</description><category>도메인 주도 설계</category><category>DDD</category><category>도메인 주도 설계</category><category>Domain-Driven Design</category><category>비즈니스 도메인</category></item><item><title>도메인 주도 설계(DDD : Domain-Driven Design)</title><link>https://pscheol.github.io/posts/%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%A3%BC%EB%8F%84-%EC%84%A4%EA%B3%84-ddd-domain-driven-design/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%A3%BC%EB%8F%84-%EC%84%A4%EA%B3%84-ddd-domain-driven-design/</guid><description>주문·결제·배송 예제로 유비쿼터스 언어, 바운디드 컨텍스트, 애그리거트의 역할과 전략·전술 설계의 연결을 설명한다.</description><category>도메인 주도 설계</category><category>DDD</category><category>도메인 주도 설계</category><category>Domain-Driven Design</category><category>전략적 설계</category><category>Strategic Design</category></item><item><title>Spring-Framework</title><link>https://pscheol.github.io/posts/spring-framework/</link><guid isPermaLink="true">https://pscheol.github.io/posts/spring-framework/</guid><description>Spring 컨테이너가 빈을 생성·주입하고 웹 요청으로 연결하는 흐름을 따라가며 싱글턴 수명과 요청 상태의 차이를 살펴본다.</description><category>Spring</category><category>Spring</category><category>스프링 프레임워크</category><category>Spring Framework</category><category>자바 프레임워크</category></item><item><title>네트워크 기초</title><link>https://pscheol.github.io/posts/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B8%B0%EC%B4%88/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B8%B0%EC%B4%88/</guid><description>네트워크의 노드와 링크, 처리량·대역폭·지연 시간의 차이를 파일 전송 예제로 정리한다.</description><category>기초</category><category>네트워크</category><category>Networking</category><category>처리량</category><category>Throughput</category><category>지연 시간</category><category>Latency</category></item><item><title>Terraform 소개</title><link>https://pscheol.github.io/posts/terraform-%EC%86%8C%EA%B0%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/terraform-%EC%86%8C%EA%B0%9C/</guid><description>Terraform은 인프라를 코드(IaC, Infrastructure as Code)로 관리할 수 있게 해주는 오픈소스 도구</description><category>Terraform</category><category>Terraform</category><category>테라폼</category><category>코드형 인프라</category><category>Infrastructure as Code</category></item><item><title>Kubernetes(쿠버네티스)</title><link>https://pscheol.github.io/posts/kubernetes-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kubernetes-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4/</guid><description>Kubernetes의 컨트롤 플레인과 워커 구조를 살펴보고, Pod·ReplicaSet·Deployment·Service·Ingress의 역할을 연결한다.</description><category>Kubernetes</category><category>Kubernetes</category><category>쿠버네티스</category><category>클러스터</category><category>Cluster</category><category>컨트롤 플레인</category></item><item><title>브루트포스(Brute Force)</title><link>https://pscheol.github.io/posts/%EB%B8%8C%EB%A3%A8%ED%8A%B8%ED%8F%AC%EC%8A%A4-brute-force/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%B8%8C%EB%A3%A8%ED%8A%B8%ED%8F%AC%EC%8A%A4-brute-force/</guid><description>후보 공간을 빠짐없이 만들고 중복 없이 검사하는 완전 탐색의 설계법을 조합·보글·짝짓기·보드 덮기로 익힌다.</description><category>이론</category><category>알고리즘</category><category>브루트포스</category><category>Brute Force</category></item><item><title>ECMAScript6</title><link>https://pscheol.github.io/posts/ecmascript6/</link><guid isPermaLink="true">https://pscheol.github.io/posts/ecmascript6/</guid><description>ECMAScript 2015의 스코프, 함수, 문자열, 객체 기능을 작은 예제로 연결하고 관련 글을 안내한다.</description><category>언어 기능</category><category>JavaScript</category><category>ES6</category><category>자바스크립트</category><category>ECMAScript 6</category></item><item><title>3. 반복문</title><link>https://pscheol.github.io/posts/3-%EB%B0%98%EB%B3%B5%EB%AC%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-%EB%B0%98%EB%B3%B5%EB%AC%B8/</guid><description>Kotlin의 for 범위·while·do-while을 종료 조건별로 비교하고 continue, 빈 컬렉션, 표준 입력 EOF 처리 예제를 살펴본다.</description><category>기초</category><category>Kotlin</category><category>코틀린</category><category>반복문</category><category>Loops</category></item><item><title>0. 코틀린</title><link>https://pscheol.github.io/posts/0-%EC%BD%94%ED%8B%80%EB%A6%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/0-%EC%BD%94%ED%8B%80%EB%A6%B0/</guid><description>코틀린의 정적 타입, val과 var, null 안전성, 함수와 컬렉션 처리를 짧은 예제로 살펴본다.</description><category>기초</category><category>Kotlin</category><category>코틀린</category><category>프로그래밍 언어</category><category>Programming Language</category></item><item><title>TypeScript 클래스(Class)</title><link>https://pscheol.github.io/posts/typescript-%ED%81%B4%EB%9E%98%EC%8A%A4-class/</link><guid isPermaLink="true">https://pscheol.github.io/posts/typescript-%ED%81%B4%EB%9E%98%EC%8A%A4-class/</guid><description>TypeScript 클래스의 필드 초기화, 메서드·readonly·implements 검사를 살펴보고 private와 JavaScript 비공개 필드의 차이를 설명한다.</description><category>언어 기능</category><category>TypeScript</category><category>클래스</category></item><item><title>9. RxJava 통지 데이터 변환 연산자</title><link>https://pscheol.github.io/posts/9-rxjava-%ED%86%B5%EC%A7%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%80%ED%99%98-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/9-rxjava-%ED%86%B5%EC%A7%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%80%ED%99%98-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>map, flatMap, concatMap, buffer를 출력 개수·순서·오류 처리 기준으로 비교한다.</description><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>8. RxJava Flowable과 Observable 생성 연산자</title><link>https://pscheol.github.io/posts/8-rxjava-flowable%EA%B3%BC-observable-%EC%83%9D%EC%84%B1-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/8-rxjava-flowable%EA%B3%BC-observable-%EC%83%9D%EC%84%B1-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava just·fromCallable·defer·interval 등 생성 연산자를 값 준비 시점, 구독 시점, 완료 신호와 배압 기준으로 비교한다.</description><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>Reactive Programming</title><link>https://pscheol.github.io/posts/reactive-programming/</link><guid isPermaLink="true">https://pscheol.github.io/posts/reactive-programming/</guid><description>리액티브 시스템과 Reactive Streams, RxJava의 범위를 구분하고 구독·배압·실패 처리 학습 순서를 안내한다.</description><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>Reactive Programming</category><category>비동기 프로그래밍</category><category>Asynchronous Programming</category></item><item><title>3. Harness Engineering(하네스 엔지니어링) — AI가 실수를 못하게 하기 위해 규칙과 울타리를 설계하는 기술</title><link>https://pscheol.github.io/posts/3-harness-engineering-%ED%95%98%EB%84%A4%EC%8A%A4-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-ai%EA%B0%80-%EC%8B%A4%EC%88%98%EB%A5%BC-%EB%AA%BB%ED%95%98%EA%B2%8C-%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%B4-%EA%B7%9C%EC%B9%99%EA%B3%BC-%EC%9A%B8%ED%83%80%EB%A6%AC%EB%A5%BC-%EC%84%A4%EA%B3%84%ED%95%98%EB%8A%94-%EA%B8%B0%EC%88%A0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-harness-engineering-%ED%95%98%EB%84%A4%EC%8A%A4-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-ai%EA%B0%80-%EC%8B%A4%EC%88%98%EB%A5%BC-%EB%AA%BB%ED%95%98%EA%B2%8C-%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%B4-%EA%B7%9C%EC%B9%99%EA%B3%BC-%EC%9A%B8%ED%83%80%EB%A6%AC%EB%A5%BC-%EC%84%A4%EA%B3%84%ED%95%98%EB%8A%94-%EA%B8%B0%EC%88%A0/</guid><description>규칙 문서, 코드로 강제하는 권한 경계, 검증·피드백 루프를 묶어 AI 작업을 재현 가능하게 만드는 하네스 설계 방법.</description><pubDate>Wed, 08 Apr 2026 06:32:24 GMT</pubDate><category>AI 엔지니어링</category><category>AI 엔지니어링</category><category>AI</category><category>하네스 엔지니어링</category><category>Harness Engineering</category></item><item><title>2. Context Engineering(컨텍스트 엔지니어링) — AI에게 필요한 정보를 적절하게 제공하는 기술</title><link>https://pscheol.github.io/posts/2-context-engineering-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-ai%EC%97%90%EA%B2%8C-%ED%95%84%EC%9A%94%ED%95%9C-%EC%A0%95%EB%B3%B4%EB%A5%BC-%EC%A0%81%EC%A0%88%ED%95%98%EA%B2%8C-%EC%A0%9C%EA%B3%B5%ED%95%98%EB%8A%94-%EA%B8%B0%EC%88%A0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-context-engineering-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-ai%EC%97%90%EA%B2%8C-%ED%95%84%EC%9A%94%ED%95%9C-%EC%A0%95%EB%B3%B4%EB%A5%BC-%EC%A0%81%EC%A0%88%ED%95%98%EA%B2%8C-%EC%A0%9C%EA%B3%B5%ED%95%98%EB%8A%94-%EA%B8%B0%EC%88%A0/</guid><description>검색 문서·대화 이력·도구 결과를 권한과 길이 제한 안에서 선별해 모델에 전달하는 방법과 검색 품질의 실패 지점을 설명한다.</description><pubDate>Wed, 08 Apr 2026 04:57:57 GMT</pubDate><category>AI 엔지니어링</category><category>AI 엔지니어링</category><category>AI</category><category>컨텍스트 엔지니어링</category><category>Context Engineering</category></item><item><title>1. Prompt Engineering(프롬프트 엔지니어링) — AI에게 일(말)을 잘 거는 기술</title><link>https://pscheol.github.io/posts/1-prompt-engineering-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-ai%EC%97%90%EA%B2%8C-%EC%9D%BC-%EB%A7%90-%EC%9D%84-%EC%9E%98-%EA%B1%B0%EB%8A%94-%EA%B8%B0%EC%88%A0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-prompt-engineering-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-ai%EC%97%90%EA%B2%8C-%EC%9D%BC-%EB%A7%90-%EC%9D%84-%EC%9E%98-%EA%B1%B0%EB%8A%94-%EA%B8%B0%EC%88%A0/</guid><description>프롬프트의 목표·입력·제약·출력 형식을 설계하고, 예시와 단계별 검증을 통해 실패 사례를 줄이는 방법을 정리한다.</description><pubDate>Wed, 08 Apr 2026 04:33:30 GMT</pubDate><category>AI 엔지니어링</category><category>AI 엔지니어링</category><category>AI</category><category>프롬프트</category><category>프롬프트 엔지니어링</category><category>Prompt Engineering</category></item><item><title>15. LLM 에이전트</title><link>https://pscheol.github.io/posts/15-llm-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/15-llm-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8/</guid><description>도구 호출 루프와 상태 관리, 권한 검증, 프롬프트 인젝션 방어를 환불 문의 처리 예제로 설명합니다.</description><pubDate>Thu, 22 Jan 2026 12:52:00 GMT</pubDate><category>응용</category><category>LLM</category><category>AI 에이전트</category></item><item><title>14. 멀티모달 LLM</title><link>https://pscheol.github.io/posts/14-%EB%A9%80%ED%8B%B0%EB%AA%A8%EB%8B%AC-llm/</link><guid isPermaLink="true">https://pscheol.github.io/posts/14-%EB%A9%80%ED%8B%B0%EB%AA%A8%EB%8B%AC-llm/</guid><description>이미지·오디오·비디오 입력의 처리 흐름과 영수증 추출 예제, 모달리티별 평가 항목을 살펴봅니다.</description><pubDate>Thu, 22 Jan 2026 12:51:00 GMT</pubDate><category>응용</category><category>LLM</category><category>멀티모달</category></item><item><title>13. LLM 운영하기</title><link>https://pscheol.github.io/posts/13-llm-%EC%9A%B4%EC%98%81%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/13-llm-%EC%9A%B4%EC%98%81%ED%95%98%EA%B8%B0/</guid><description>LLM 서비스의 모델·색인 버전 관리, 품질 평가, 추적 지표와 안전한 배포 절차를 정리합니다.</description><pubDate>Thu, 22 Jan 2026 12:50:00 GMT</pubDate><category>응용</category><category>LLM</category><category>대규모 언어 모델</category><category>LLM 운영</category><category>LLMOps</category></item><item><title>12. 벡터 데이터베이스로 확장하기 : RAG 구현하기</title><link>https://pscheol.github.io/posts/12-%EB%B2%A1%ED%84%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EB%A1%9C-%ED%99%95%EC%9E%A5%ED%95%98%EA%B8%B0-rag-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/12-%EB%B2%A1%ED%84%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EB%A1%9C-%ED%99%95%EC%9E%A5%ED%95%98%EA%B8%B0-rag-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0/</guid><description>pgvector 예제로 벡터 저장과 색인, 권한 필터, 근거 기반 답변까지 RAG 흐름을 구현합니다.</description><pubDate>Thu, 22 Jan 2026 12:49:00 GMT</pubDate><category>응용</category><category>LLM</category><category>RAG</category><category>벡터 데이터베이스</category><category>Vector Database</category><category>검색 증강 생성</category></item><item><title>11. 자신의 데이터에 맞춘 임베딩 모델 만들기 : RAG 개선하기</title><link>https://pscheol.github.io/posts/11-%EC%9E%90%EC%8B%A0%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%97%90-%EB%A7%9E%EC%B6%98-%EC%9E%84%EB%B2%A0%EB%94%A9-%EB%AA%A8%EB%8D%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0-rag-%EA%B0%9C%EC%84%A0%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/11-%EC%9E%90%EC%8B%A0%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%97%90-%EB%A7%9E%EC%B6%98-%EC%9E%84%EB%B2%A0%EB%94%A9-%EB%AA%A8%EB%8D%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0-rag-%EA%B0%9C%EC%84%A0%ED%95%98%EA%B8%B0/</guid><description>질문·문서 쌍으로 임베딩 모델을 미세 튜닝하고 RAG 검색과 답변 품질을 평가하는 방법을 정리합니다.</description><pubDate>Thu, 22 Jan 2026 12:48:00 GMT</pubDate><category>응용</category><category>LLM</category><category>RAG</category><category>임베딩</category></item><item><title>10. 임베딩 모델로 데이터 의미 압축하기</title><link>https://pscheol.github.io/posts/10-%EC%9E%84%EB%B2%A0%EB%94%A9-%EB%AA%A8%EB%8D%B8%EB%A1%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%98%EB%AF%B8-%EC%95%95%EC%B6%95%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/10-%EC%9E%84%EB%B2%A0%EB%94%A9-%EB%AA%A8%EB%8D%B8%EB%A1%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%98%EB%AF%B8-%EC%95%95%EC%B6%95%ED%95%98%EA%B8%B0/</guid><description>문장 임베딩과 코사인 유사도로 의미 검색을 구현하고, 청크 설계와 검색 평가 기준을 정리합니다.</description><pubDate>Thu, 22 Jan 2026 12:47:00 GMT</pubDate><category>응용</category><category>LLM</category><category>임베딩</category></item><item><title>9. LLM 애플리케이션 개발하기</title><link>https://pscheol.github.io/posts/9-llm-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B0%9C%EB%B0%9C%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/9-llm-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B0%9C%EB%B0%9C%ED%95%98%EA%B8%B0/</guid><description>검색 증강 생성으로 근거를 연결하고 권한, 출력 검증, 프롬프트 인젝션과 평가를 다루는 애플리케이션 구성법을 정리한다.</description><pubDate>Thu, 22 Jan 2026 12:46:00 GMT</pubDate><category>응용</category><category>LLM</category><category>대규모 언어 모델</category><category>AI 애플리케이션</category><category>AI Application</category></item><item><title>8. sLLM 서빙하기</title><link>https://pscheol.github.io/posts/8-sllm-%EC%84%9C%EB%B9%99%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/8-sllm-%EC%84%9C%EB%B9%99%ED%95%98%EA%B8%B0/</guid><description>sLLM을 API로 서빙할 때 필요한 모델 구성, 로컬 호출 예시, 지연 시간과 장애 점검 방법을 설명한다.</description><pubDate>Thu, 22 Jan 2026 12:45:00 GMT</pubDate><category>응용</category><category>LLM</category><category>모델 서빙</category><category>sLLM</category></item><item><title>7. 모델 가볍게 만들기</title><link>https://pscheol.github.io/posts/7-%EB%AA%A8%EB%8D%B8-%EA%B0%80%EB%B3%8D%EA%B2%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/7-%EB%AA%A8%EB%8D%B8-%EA%B0%80%EB%B3%8D%EA%B2%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>양자화, 지식 증류, 가지치기가 줄이는 자원을 비교하고 품질과 추론 속도를 함께 측정하는 방법을 정리한다.</description><pubDate>Thu, 22 Jan 2026 12:44:00 GMT</pubDate><category>응용</category><category>LLM</category><category>대규모 언어 모델</category><category>모델 경량화</category><category>Model Compression</category></item><item><title>6. sLLM 학습하기</title><link>https://pscheol.github.io/posts/6-sllm-%ED%95%99%EC%8A%B5%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/6-sllm-%ED%95%99%EC%8A%B5%ED%95%98%EA%B8%B0/</guid><description>작은 언어 모델의 과제를 정의하고 데이터를 분리한 뒤 LoRA로 미세 조정하고 평가하는 흐름을 설명한다.</description><pubDate>Thu, 22 Jan 2026 12:43:00 GMT</pubDate><category>응용</category><category>LLM</category><category>sLLM</category><category>소형 언어 모델</category><category>Small Language Model</category><category>모델 학습</category></item><item><title>5. GPU 효율적인 학습</title><link>https://pscheol.github.io/posts/5-gpu-%ED%9A%A8%EC%9C%A8%EC%A0%81%EC%9D%B8-%ED%95%99%EC%8A%B5/</link><guid isPermaLink="true">https://pscheol.github.io/posts/5-gpu-%ED%9A%A8%EC%9C%A8%EC%A0%81%EC%9D%B8-%ED%95%99%EC%8A%B5/</guid><description>GPU 학습 메모리의 사용처를 살펴보고 기울기 누적, 혼합 정밀도, 체크포인팅, LoRA의 선택 기준을 정리한다.</description><pubDate>Thu, 22 Jan 2026 12:42:00 GMT</pubDate><category>응용</category><category>LLM</category><category>GPU</category><category>GPU 학습</category><category>효율적 학습</category><category>Efficient Training</category></item><item><title>4. 말 잘 듣는 모델 만들기</title><link>https://pscheol.github.io/posts/4-%EB%A7%90-%EC%9E%98-%EB%93%A3%EB%8A%94-%EB%AA%A8%EB%8D%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-%EB%A7%90-%EC%9E%98-%EB%93%A3%EB%8A%94-%EB%AA%A8%EB%8D%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>지시 미세 조정과 선호 학습으로 모델의 답변 방식을 다듬고, 지시 준수와 사실성을 평가하는 방법을 정리한다.</description><pubDate>Thu, 22 Jan 2026 12:41:00 GMT</pubDate><category>응용</category><category>LLM</category><category>대규모 언어 모델</category><category>모델 정렬</category><category>Model Alignment</category></item><item><title>3. 트랜스포머 모델을 다루기 위한 허깅 페이스 트랜스포머 라이브러리</title><link>https://pscheol.github.io/posts/3-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8F%AC%EB%A8%B8-%EB%AA%A8%EB%8D%B8%EC%9D%84-%EB%8B%A4%EB%A3%A8%EA%B8%B0-%EC%9C%84%ED%95%9C-%ED%97%88%EA%B9%85-%ED%8E%98%EC%9D%B4%EC%8A%A4-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8F%AC%EB%A8%B8-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8F%AC%EB%A8%B8-%EB%AA%A8%EB%8D%B8%EC%9D%84-%EB%8B%A4%EB%A3%A8%EA%B8%B0-%EC%9C%84%ED%95%9C-%ED%97%88%EA%B9%85-%ED%8E%98%EC%9D%B4%EC%8A%A4-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8F%AC%EB%A8%B8-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/</guid><description>Transformers의 pipeline, 토크나이저, 모델을 연결해 텍스트 분류 추론이 이루어지는 과정을 살펴본다.</description><pubDate>Thu, 22 Jan 2026 12:40:00 GMT</pubDate><category>응용</category><category>LLM</category><category>트랜스포머</category><category>Hugging Face</category></item><item><title>2. LLM 중추, 트랜스포머 아키텍처 살펴보기</title><link>https://pscheol.github.io/posts/2-llm-%EC%A4%91%EC%B6%94-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8F%AC%EB%A8%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-llm-%EC%A4%91%EC%B6%94-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8F%AC%EB%A8%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0/</guid><description>토큰과 위치 표현부터 셀프 어텐션, 인코더·디코더, 인과 마스크까지 텐서 모양과 파이토치 예제로 살펴본다.</description><pubDate>Thu, 22 Jan 2026 12:39:00 GMT</pubDate><category>응용</category><category>LLM</category><category>트랜스포머</category></item><item><title>1. LLM 지도</title><link>https://pscheol.github.io/posts/1-llm-%EC%A7%80%EB%8F%84/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-llm-%EC%A7%80%EB%8F%84/</guid><description>딥러닝과 임베딩에서 언어 모델, 트랜스포머, RAG까지 LLM의 핵심 개념을 한 흐름으로 살펴보기</description><pubDate>Thu, 22 Jan 2026 12:38:00 GMT</pubDate><category>응용</category><category>LLM</category><category>대규모 언어 모델</category><category>딥러닝</category><category>Deep Learning</category></item><item><title>12. 생성 모델 미세 튜닝하기</title><link>https://pscheol.github.io/posts/12-%EC%83%9D%EC%84%B1-%EB%AA%A8%EB%8D%B8-%EB%AF%B8%EC%84%B8-%ED%8A%9C%EB%8B%9D%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/12-%EC%83%9D%EC%84%B1-%EB%AA%A8%EB%8D%B8-%EB%AF%B8%EC%84%B8-%ED%8A%9C%EB%8B%9D%ED%95%98%EA%B8%B0/</guid><description>지도 미세 튜닝 데이터와 LoRA 학습, 근거에 충실한 생성 답변의 평가 방법</description><pubDate>Thu, 22 Jan 2026 12:37:00 GMT</pubDate><category>개념</category><category>LLM</category><category>파인튜닝</category></item><item><title>11. 분류용 표현 모델 미세 튜닝하기</title><link>https://pscheol.github.io/posts/11-%EB%B6%84%EB%A5%98%EC%9A%A9-%ED%91%9C%ED%98%84-%EB%AA%A8%EB%8D%B8-%EB%AF%B8%EC%84%B8-%ED%8A%9C%EB%8B%9D%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/11-%EB%B6%84%EB%A5%98%EC%9A%A9-%ED%91%9C%ED%98%84-%EB%AA%A8%EB%8D%B8-%EB%AF%B8%EC%84%B8-%ED%8A%9C%EB%8B%9D%ED%95%98%EA%B8%B0/</guid><description>레이블 설계부터 인코더 미세 튜닝, 클래스별 평가와 오류 분석까지 살펴보기</description><pubDate>Thu, 22 Jan 2026 12:36:00 GMT</pubDate><category>개념</category><category>LLM</category><category>파인튜닝</category></item><item><title>10. 텍스트 임베딩 모델 만들기</title><link>https://pscheol.github.io/posts/10-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9E%84%EB%B2%A0%EB%94%A9-%EB%AA%A8%EB%8D%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/10-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9E%84%EB%B2%A0%EB%94%A9-%EB%AA%A8%EB%8D%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>질문과 문서를 벡터로 표현하고 대조 학습과 검색 지표로 임베딩 모델을 개선하는 방법</description><pubDate>Thu, 22 Jan 2026 12:35:00 GMT</pubDate><category>개념</category><category>LLM</category><category>임베딩</category></item><item><title>9. 멀티모달 대규모 언어 모델</title><link>https://pscheol.github.io/posts/9-%EB%A9%80%ED%8B%B0%EB%AA%A8%EB%8B%AC-%EB%8C%80%EA%B7%9C%EB%AA%A8-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/9-%EB%A9%80%ED%8B%B0%EB%AA%A8%EB%8B%AC-%EB%8C%80%EA%B7%9C%EB%AA%A8-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8/</guid><description>ViT의 이미지 토큰화부터 CLIP의 이미지·텍스트 정렬, BLIP-2의 시각 정보를 이용한 문장 생성까지</description><pubDate>Thu, 22 Jan 2026 12:34:00 GMT</pubDate><category>개념</category><category>LLM</category><category>멀티모달</category></item><item><title>8. RAG(검색 증강 생성: Retrieval Augmented Generation)</title><link>https://pscheol.github.io/posts/8-rag-%EA%B2%80%EC%83%89-%EC%A6%9D%EA%B0%95-%EC%83%9D%EC%84%B1-retrieval-augmented-generation/</link><guid isPermaLink="true">https://pscheol.github.io/posts/8-rag-%EA%B2%80%EC%83%89-%EC%A6%9D%EA%B0%95-%EC%83%9D%EC%84%B1-retrieval-augmented-generation/</guid><description>문서를 검색해 근거를 구성하고, 생성 답변의 출처와 한계를 검증하는 RAG의 전체 흐름</description><pubDate>Thu, 22 Jan 2026 12:33:00 GMT</pubDate><category>개념</category><category>LLM</category><category>RAG</category><category>검색 증강 생성</category><category>Retrieval-Augmented Generation</category></item><item><title>7. 고급 텍스트 생성 기술과 도구</title><link>https://pscheol.github.io/posts/7-%EA%B3%A0%EA%B8%89-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%83%9D%EC%84%B1-%EA%B8%B0%EC%88%A0%EA%B3%BC-%EB%8F%84%EA%B5%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/7-%EA%B3%A0%EA%B8%89-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%83%9D%EC%84%B1-%EA%B8%B0%EC%88%A0%EA%B3%BC-%EB%8F%84%EA%B5%AC/</guid><description>모델 호출, 프롬프트 체인, 대화 기록, 도구 호출을 데이터 흐름과 실패 사례로 이해하기</description><pubDate>Thu, 22 Jan 2026 12:32:00 GMT</pubDate><category>개념</category><category>LLM</category><category>대규모 언어 모델</category><category>텍스트 생성</category><category>Text Generation</category><category>LangChain</category></item><item><title>6. 프롬프트 엔지니어링</title><link>https://pscheol.github.io/posts/6-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81/</link><guid isPermaLink="true">https://pscheol.github.io/posts/6-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81/</guid><description>지시·예시·문맥·출력 형식을 설계하고 실제 출력의 근거와 형식을 검증하는 프롬프트 작성법</description><pubDate>Thu, 22 Jan 2026 12:31:00 GMT</pubDate><category>개념</category><category>LLM</category><category>프롬프트</category></item><item><title>5. 텍스트 클러스터링과 토픽 모델링</title><link>https://pscheol.github.io/posts/5-%ED%85%8D%EC%8A%A4%ED%8A%B8-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81%EA%B3%BC-%ED%86%A0%ED%94%BD-%EB%AA%A8%EB%8D%B8%EB%A7%81/</link><guid isPermaLink="true">https://pscheol.github.io/posts/5-%ED%85%8D%EC%8A%A4%ED%8A%B8-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81%EA%B3%BC-%ED%86%A0%ED%94%BD-%EB%AA%A8%EB%8D%B8%EB%A7%81/</guid><description>문서 임베딩, UMAP, HDBSCAN으로 비슷한 글을 묶고 각 군집의 대표 단어를 읽어 토픽을 해석하는 과정</description><pubDate>Thu, 22 Jan 2026 12:30:00 GMT</pubDate><category>개념</category><category>LLM</category><category>토픽 모델링</category></item><item><title>4. 텍스트 분류</title><link>https://pscheol.github.io/posts/4-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%B6%84%EB%A5%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%B6%84%EB%A5%98/</guid><description>영화 리뷰를 긍정·부정으로 분류하며 작업별 모델, 임베딩 분류기, 제로샷, 생성 모델을 같은 평가 기준으로 비교한다.</description><pubDate>Thu, 22 Jan 2026 12:29:00 GMT</pubDate><category>개념</category><category>LLM</category><category>텍스트 분류</category></item><item><title>3. 대규모 언어 모델 자세히 살펴보기</title><link>https://pscheol.github.io/posts/3-%EB%8C%80%EA%B7%9C%EB%AA%A8-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8-%EC%9E%90%EC%84%B8%ED%9E%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-%EB%8C%80%EA%B7%9C%EB%AA%A8-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8-%EC%9E%90%EC%84%B8%ED%9E%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0/</guid><description>프롬프트 입력부터 다음 토큰 선택, KV 캐시, 어텐션과 피드포워드 층까지 생성 모델의 계산 흐름을 따라간다.</description><pubDate>Thu, 22 Jan 2026 12:28:00 GMT</pubDate><category>개념</category><category>LLM</category><category>대규모 언어 모델</category><category>트랜스포머</category><category>Transformer</category></item><item><title>2. 토큰과 임베딩</title><link>https://pscheol.github.io/posts/2-%ED%86%A0%ED%81%B0%EA%B3%BC-%EC%9E%84%EB%B2%A0%EB%94%A9/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-%ED%86%A0%ED%81%B0%EA%B3%BC-%EC%9E%84%EB%B2%A0%EB%94%A9/</guid><description>같은 문장도 토크나이저에 따라 토큰 수가 달라진다. 토큰 ID가 문맥 벡터가 되기까지의 과정과 코드 출력의 의미를 살펴본다.</description><pubDate>Thu, 22 Jan 2026 12:27:00 GMT</pubDate><category>개념</category><category>LLM</category><category>임베딩</category></item><item><title>1. 대규모 언어 모델 소개</title><link>https://pscheol.github.io/posts/1-%EB%8C%80%EA%B7%9C%EB%AA%A8-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8-%EC%86%8C%EA%B0%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-%EB%8C%80%EA%B7%9C%EB%AA%A8-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8-%EC%86%8C%EA%B0%9C/</guid><description>BoW의 단어 빈도부터 문맥 임베딩, 어텐션, 트랜스포머까지: 언어를 숫자로 표현하고 생성하는 방식이 어떻게 달라졌는지 살펴본다.</description><pubDate>Thu, 22 Jan 2026 12:26:00 GMT</pubDate><category>개념</category><category>LLM</category><category>대규모 언어 모델</category><category>언어 모델</category><category>Language Model</category></item><item><title>11. LLM 애플리케이션 개발</title><link>https://pscheol.github.io/posts/11-llm-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B0%9C%EB%B0%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/11-llm-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B0%9C%EB%B0%9C/</guid><description>문서 기반 질문 응답 서비스를 예로 들어 문제 정의, RAG 그래프 구현, 인용 검증, 평가와 배포까지 연결하는 개발 절차.</description><pubDate>Thu, 22 Jan 2026 12:25:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>LLM</category><category>랭체인</category><category>LLM 애플리케이션</category></item><item><title>10. 테스트: 평가, 모니터링, 개선</title><link>https://pscheol.github.io/posts/10-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%8F%89%EA%B0%80-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EA%B0%9C%EC%84%A0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/10-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%8F%89%EA%B0%80-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EA%B0%9C%EC%84%A0/</guid><description>LLM 애플리케이션의 회귀 테스트, 오프라인 평가 데이터, 운영 추적과 실패 사례를 개선으로 연결하는 방법.</description><pubDate>Thu, 22 Jan 2026 12:24:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>랭체인</category><category>AI 평가</category><category>AI Evaluation</category><category>모니터링</category></item><item><title>9. AI 애플리케이션 배포</title><link>https://pscheol.github.io/posts/9-ai-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EB%B0%B0%ED%8F%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/9-ai-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EB%B0%B0%ED%8F%AC/</guid><description>LangGraph 애플리케이션을 서버로 실행할 때 필요한 구성, 상태 저장, 보안, 스트리밍, 배포 검증과 운영 절차.</description><pubDate>Thu, 22 Jan 2026 12:23:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>랭체인</category><category>AI 애플리케이션</category><category>AI Deployment</category></item><item><title>8. LLM 성능을 높이는 패턴</title><link>https://pscheol.github.io/posts/8-llm-%EC%84%B1%EB%8A%A5%EC%9D%84-%EB%86%92%EC%9D%B4%EB%8A%94-%ED%8C%A8%ED%84%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/8-llm-%EC%84%B1%EB%8A%A5%EC%9D%84-%EB%86%92%EC%9D%B4%EB%8A%94-%ED%8C%A8%ED%84%B4/</guid><description>프롬프트 연결, 라우팅, 병렬 실행, 평가-개선 루프를 언제 적용할지와 RAG 품질·지연 시간의 병목을 구분하는 방법.</description><pubDate>Thu, 22 Jan 2026 12:22:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>LLM</category><category>랭체인</category><category>LLM 성능</category><category>LLM Performance</category></item><item><title>7. 에이전트 아키텍처 II</title><link>https://pscheol.github.io/posts/7-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-ii/</link><guid isPermaLink="true">https://pscheol.github.io/posts/7-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-ii/</guid><description>성찰 루프와 서브그래프·슈퍼바이저 패턴을 상태 전달, 반복 상한, 결과 검증 관점에서 비교한다.</description><pubDate>Thu, 22 Jan 2026 12:21:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>AI 에이전트</category></item><item><title>6. 에이전트 아키텍처 I</title><link>https://pscheol.github.io/posts/6-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-i/</link><guid isPermaLink="true">https://pscheol.github.io/posts/6-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-i/</guid><description>LangGraph의 모델·도구 반복 그래프를 만들고, 우선 검색과 도구 선별이 실행 경로·비용·권한에 미치는 영향을 살펴본다.</description><pubDate>Thu, 22 Jan 2026 12:20:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>AI 에이전트</category></item><item><title>5. 랭그래프로 구현하는 인지 아키텍처</title><link>https://pscheol.github.io/posts/5-%EB%9E%AD%EA%B7%B8%EB%9E%98%ED%94%84%EB%A1%9C-%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94-%EC%9D%B8%EC%A7%80-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/5-%EB%9E%AD%EA%B7%B8%EB%9E%98%ED%94%84%EB%A1%9C-%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94-%EC%9D%B8%EC%A7%80-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98/</guid><description>LangGraph의 LLM 호출·체인·라우터를 상태와 실행 경로로 구성하고, 분기 결과와 실패 경계를 확인하는 방법을 다룬다.</description><pubDate>Thu, 22 Jan 2026 12:19:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>LangGraph</category><category>랭그래프</category><category>인지 아키텍처</category><category>Cognitive Architecture</category></item><item><title>4. 랭그래프를 활용한 메모리 기능</title><link>https://pscheol.github.io/posts/4-%EB%9E%AD%EA%B7%B8%EB%9E%98%ED%94%84%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B8%B0%EB%8A%A5/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-%EB%9E%AD%EA%B7%B8%EB%9E%98%ED%94%84%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B8%B0%EB%8A%A5/</guid><description>LangGraph 상태 그래프와 체크포인터로 대화 기록을 보존하고, 메시지 축약·필터링으로 컨텍스트를 관리하는 방법을 살펴본다.</description><pubDate>Thu, 22 Jan 2026 12:18:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>LangGraph</category><category>랭그래프</category><category>대화 메모리</category><category>Conversation Memory</category></item><item><title>3. RAG 2단계 : 데이터 기반 대화</title><link>https://pscheol.github.io/posts/3-rag-2%EB%8B%A8%EA%B3%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B8%B0%EB%B0%98-%EB%8C%80%ED%99%94/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-rag-2%EB%8B%A8%EA%B3%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B8%B0%EB%B0%98-%EB%8C%80%ED%99%94/</guid><description>인덱싱한 문서를 검색해 답변의 근거로 쓰고, 질의 재작성·다중 검색·라우팅으로 검색 품질을 개선하는 방법을 다룬다.</description><pubDate>Thu, 22 Jan 2026 12:17:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>RAG</category><category>검색 증강 생성</category><category>데이터 기반 대화</category><category>Grounded Conversation</category></item><item><title>2. RAG 1단계 : 데이터 인덱싱</title><link>https://pscheol.github.io/posts/2-rag-1%EB%8B%A8%EA%B3%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%B8%EB%8D%B1%EC%8B%B1/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-rag-1%EB%8B%A8%EA%B3%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%B8%EB%8D%B1%EC%8B%B1/</guid><description>RAG에 쓸 문서를 불러와 청크로 나누고 임베딩·벡터 저장소에 색인하는 과정과 문서 변경 추적 방법을 살펴본다.</description><pubDate>Thu, 22 Jan 2026 12:16:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>RAG</category><category>검색 증강 생성</category><category>데이터 인덱싱</category><category>Data Indexing</category></item><item><title>1. 랭체인을 위한 기초 AI 지식 및 기본 LLM 사용법</title><link>https://pscheol.github.io/posts/1-%EB%9E%AD%EC%B2%B4%EC%9D%B8%EC%9D%84-%EC%9C%84%ED%95%9C-%EA%B8%B0%EC%B4%88-ai-%EC%A7%80%EC%8B%9D-%EB%B0%8F-%EA%B8%B0%EB%B3%B8-llm-%EC%82%AC%EC%9A%A9%EB%B2%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-%EB%9E%AD%EC%B2%B4%EC%9D%B8%EC%9D%84-%EC%9C%84%ED%95%9C-%EA%B8%B0%EC%B4%88-ai-%EC%A7%80%EC%8B%9D-%EB%B0%8F-%EA%B8%B0%EB%B3%B8-llm-%EC%82%AC%EC%9A%A9%EB%B2%95/</guid><description>LangChain의 채팅 모델, 메시지, 프롬프트 템플릿과 Runnable 조합을 실습하고 출력 검증과 실패 사례를 살펴본다.</description><pubDate>Thu, 22 Jan 2026 12:15:00 GMT</pubDate><category>LangChain</category><category>LangChain</category><category>LLM</category><category>랭체인</category><category>대규모 언어 모델</category></item><item><title>1. MongoDB -기본</title><link>https://pscheol.github.io/posts/1-mongodb-%EA%B8%B0%EB%B3%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-mongodb-%EA%B8%B0%EB%B3%B8/</guid><description>MongoDB의 도큐먼트·컬렉션·BSON 구조를 이해하고, 데이터 생성·조회·수정·삭제의 기본 명령을 살펴본다.</description><pubDate>Tue, 10 Sep 2024 13:47:20 GMT</pubDate><category>MongoDB</category><category>MongoDB</category><category>몽고DB</category><category>NoSQL</category><category>문서형 데이터베이스</category></item><item><title>16. 그래프 최단경로(다익스트라, 벨만-포드)</title><link>https://pscheol.github.io/posts/16-%EA%B7%B8%EB%9E%98%ED%94%84-%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C-%EB%8B%A4%EC%9D%B5%EC%8A%A4%ED%8A%B8%EB%9D%BC-%EB%B2%A8%EB%A7%8C-%ED%8F%AC%EB%93%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/16-%EA%B7%B8%EB%9E%98%ED%94%84-%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C-%EB%8B%A4%EC%9D%B5%EC%8A%A4%ED%8A%B8%EB%9D%BC-%EB%B2%A8%EB%A7%8C-%ED%8F%AC%EB%93%9C/</guid><description>비음수 가중치에는 다익스트라, 음수 간선에는 벨만-포드를 적용하고 완화 불변식·음수 순환·도달 불가를 구분한다.</description><pubDate>Mon, 10 Jun 2024 15:30:57 GMT</pubDate><category>이론</category><category>알고리즘</category><category>그래프</category><category>최단 경로</category><category>Shortest Path</category><category>Dijkstra</category><category>Bellman-Ford</category></item><item><title>15. Spanning Tree</title><link>https://pscheol.github.io/posts/15-spanning-tree/</link><guid isPermaLink="true">https://pscheol.github.io/posts/15-spanning-tree/</guid><description>신장 트리의 연결·무순환 불변식을 바탕으로 크루스칼과 프림의 선택 과정을 코드와 비용으로 비교한다.</description><pubDate>Wed, 05 Jun 2024 15:15:15 GMT</pubDate><category>이론</category><category>알고리즘</category><category>트리</category><category>Spanning Tree</category><category>Tree</category></item><item><title>2. 연산자</title><link>https://pscheol.github.io/posts/2-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>Kotlin 산술·비트·포함·동등성 연산자와 when·try 표현식의 동작 및 경계 조건을 예제로 살펴본다.</description><pubDate>Tue, 22 Aug 2023 01:07:22 GMT</pubDate><category>기초</category><category>Kotlin</category><category>코틀린</category><category>연산자</category><category>Operators</category></item><item><title>1.변수(Variable)</title><link>https://pscheol.github.io/posts/1-%EB%B3%80%EC%88%98-variable/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-%EB%B3%80%EC%88%98-variable/</guid><description>Kotlin val·var의 재할당 차이, 타입 추론, 문자열 템플릿과 lateinit·lazy 초기화의 조건을 예제로 살펴본다.</description><pubDate>Mon, 21 Aug 2023 07:05:44 GMT</pubDate><category>기초</category><category>Kotlin</category><category>코틀린</category><category>변수</category><category>Variables</category><category>val</category><category>var</category></item><item><title>인터페이스(interface)</title><link>https://pscheol.github.io/posts/%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-interface/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-interface/</guid><description>TypeScript 인터페이스의 필수·선택·readonly 속성, 메서드와 함수 속성, extends를 살펴보고 런타임 검증과의 차이를 설명한다.</description><pubDate>Sun, 06 Aug 2023 23:29:35 GMT</pubDate><category>언어 기능</category><category>TypeScript</category><category>인터페이스</category></item><item><title>TypeScript 함수</title><link>https://pscheol.github.io/posts/typescript-%ED%95%A8%EC%88%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/typescript-%ED%95%A8%EC%88%98/</guid><description>TypeScript 함수의 필수·선택·기본 인자와 반환 타입, 나머지 인자, 함수 타입·튜플의 계약을 예제로 설명한다.</description><pubDate>Sun, 06 Aug 2023 23:27:38 GMT</pubDate><category>언어 기능</category><category>TypeScript</category><category>타입스크립트</category><category>함수</category><category>Functions</category></item><item><title>1. 타입시스템, 유니언과 리터럴</title><link>https://pscheol.github.io/posts/1-%ED%83%80%EC%9E%85%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%9C%A0%EB%8B%88%EC%96%B8%EA%B3%BC-%EB%A6%AC%ED%84%B0%EB%9F%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-%ED%83%80%EC%9E%85%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%9C%A0%EB%8B%88%EC%96%B8%EA%B3%BC-%EB%A6%AC%ED%84%B0%EB%9F%B4/</guid><description>TypeScript 타입 추론과 유니언·리터럴 타입, 내로잉과 판별 유니언으로 허용 상태를 표현하는 방법을 살펴본다.</description><pubDate>Sun, 06 Aug 2023 23:26:56 GMT</pubDate><category>언어 기능</category><category>TypeScript</category><category>유니언 타입</category></item><item><title>[SQLServer] 프로시저 및 함수 사용법</title><link>https://pscheol.github.io/posts/sqlserver-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EB%B0%8F-%ED%95%A8%EC%88%98-%EC%82%AC%EC%9A%A9%EB%B2%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/sqlserver-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EB%B0%8F-%ED%95%A8%EC%88%98-%EC%82%AC%EC%9A%A9%EB%B2%95/</guid><description>SQL Server 프로시저와 함수의 생성·실행·변경 방법을 살펴보고, OUTPUT 매개변수·반환 값·반환 코드를 구분한다.</description><pubDate>Sun, 06 Aug 2023 23:23:17 GMT</pubDate><category>SQL Server</category><category>SQL Server</category><category>저장 프로시저</category></item><item><title>14. 구간합</title><link>https://pscheol.github.io/posts/14-%EA%B5%AC%EA%B0%84%ED%95%A9/</link><guid isPermaLink="true">https://pscheol.github.io/posts/14-%EA%B5%AC%EA%B0%84%ED%95%A9/</guid><description>누적합의 불변식과 포함·배제 원리를 이용해 1차원 구간 및 2차원 직사각형 합을 상수 시간에 구한다.</description><pubDate>Tue, 18 Apr 2023 01:10:38 GMT</pubDate><category>이론</category><category>알고리즘</category><category>누적합</category><category>Prefix Sum</category><category>Range Sum</category></item><item><title>AOP(Aspect Oriented Programming)</title><link>https://pscheol.github.io/posts/aop-aspect-oriented-programming/</link><guid isPermaLink="true">https://pscheol.github.io/posts/aop-aspect-oriented-programming/</guid><description>Spring AOP의 프록시·조인 포인트·어드바이스를 호출 시간 측정 예제로 설명하고, 자기 호출과 공유 상태 문제를 짚는다.</description><pubDate>Thu, 30 Mar 2023 16:55:11 GMT</pubDate><category>Spring</category><category>Spring</category><category>AOP</category><category>스프링</category><category>관점 지향 프로그래밍</category></item><item><title>IOC/DI</title><link>https://pscheol.github.io/posts/ioc-di/</link><guid isPermaLink="true">https://pscheol.github.io/posts/ioc-di/</guid><description>주문 서비스 예제로 제어의 역전과 의존성 주입이 객체 생성·연결을 분리하는 방식을 살펴보고 테스트 경계를 확인한다.</description><pubDate>Wed, 29 Mar 2023 14:47:23 GMT</pubDate><category>Spring</category><category>Spring</category><category>의존성 주입</category><category>IoC</category></item><item><title>Nginx 소개</title><link>https://pscheol.github.io/posts/nginx-%EC%86%8C%EA%B0%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/nginx-%EC%86%8C%EA%B0%9C/</guid><description>Nginx의 요청 처리 구조, Ubuntu 설치, 정적 파일 제공과 역방향 프록시 설정을 검증 절차와 함께 설명한다.</description><pubDate>Thu, 19 Jan 2023 05:40:19 GMT</pubDate><category>Nginx</category><category>Nginx</category><category>엔진엑스</category><category>웹 서버</category><category>Web Server</category></item><item><title>0. 마이크로서비스와 Spring Cloud</title><link>https://pscheol.github.io/posts/0-microservice-%EC%99%80-spring-cloud/</link><guid isPermaLink="true">https://pscheol.github.io/posts/0-microservice-%EC%99%80-spring-cloud/</guid><description>마이크로서비스의 경계와 요청 흐름, SOA와의 관계, Spring Cloud가 제공하는 분산 시스템 도구와 운영 비용을 정리합니다.</description><pubDate>Thu, 19 Jan 2023 05:39:58 GMT</pubDate><category>Spring Cloud</category><category>Spring Cloud</category><category>마이크로서비스</category></item><item><title>3. Long Function(긴 함수)</title><link>https://pscheol.github.io/posts/3-long-function-%EA%B8%B4-%ED%95%A8%EC%88%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-long-function-%EA%B8%B4-%ED%95%A8%EC%88%98/</guid><description>주문 총액 함수에서 소계와 배송비 계산을 추출하는 과정을 통해 긴 함수의 판단 기준, 매개변수 정리, 동작 보존 테스트를 살펴본다.</description><pubDate>Thu, 19 Jan 2023 05:39:32 GMT</pubDate><category>리팩터링</category><category>리팩터링</category><category>Refactoring</category><category>긴 함수</category><category>Long Function</category></item><item><title>2. Duplicated Code(중복코드)</title><link>https://pscheol.github.io/posts/2-duplicated-code-%EC%A4%91%EB%B3%B5%EC%BD%94%EB%93%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-duplicated-code-%EC%A4%91%EB%B3%B5%EC%BD%94%EB%93%9C/</guid><description>영수증과 메일의 주문 소계 중복을 추출하는 예제로 공통 정책을 판별하고, 문장 이동과 메서드 올리기에서 동작이 달라질 위험을 설명한다.</description><pubDate>Thu, 19 Jan 2023 05:39:32 GMT</pubDate><category>리팩터링</category><category>리팩터링</category><category>Refactoring</category><category>중복 코드</category><category>Duplicated Code</category></item><item><title>1. Mysterious Name (이해하기 힘든 이름)</title><link>https://pscheol.github.io/posts/1-mysterious-name-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%ED%9E%98%EB%93%A0-%EC%9D%B4%EB%A6%84/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-mysterious-name-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%ED%9E%98%EB%93%A0-%EC%9D%B4%EB%A6%84/</guid><description>주문 소계 계산의 모호한 함수·필드 이름을 바꾸는 예제로 의도를 드러내는 명명, 호출부 갱신, 외부 데이터 계약의 호환성 문제를 살펴본다.</description><pubDate>Thu, 19 Jan 2023 05:39:32 GMT</pubDate><category>리팩터링</category><category>리팩터링</category><category>Refactoring</category><category>이해하기 힘든 이름</category><category>Mysterious Name</category></item><item><title>Kubernetes 테스트 환경 설정</title><link>https://pscheol.github.io/posts/kubernetes-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kubernetes-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95/</guid><description>VirtualBox와 Vagrant로 2노드 kubeadm 실습 환경을 만들고 containerd, Pod 네트워크, 워커 조인과 동작 검증까지 진행한다.</description><pubDate>Thu, 19 Jan 2023 05:39:15 GMT</pubDate><category>Kubernetes</category><category>Kubernetes</category><category>쿠버네티스</category><category>테스트 환경</category><category>Test Environment</category></item><item><title>Ubuntu k8s 설치</title><link>https://pscheol.github.io/posts/ubuntu-k8s-%EC%84%A4%EC%B9%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/ubuntu-k8s-%EC%84%A4%EC%B9%98/</guid><description>Ubuntu 24.04 두 대에 containerd와 kubeadm을 설치하고, Flannel 네트워크와 워커 조인을 거쳐 클러스터를 확인한다.</description><pubDate>Thu, 19 Jan 2023 05:39:15 GMT</pubDate><category>Kubernetes</category><category>Kubernetes</category><category>Ubuntu</category><category>쿠버네티스</category><category>우분투</category><category>클러스터 설치</category></item><item><title>컨테이너 인프라 환경</title><link>https://pscheol.github.io/posts/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%9D%B8%ED%94%84%EB%9D%BC-%ED%99%98%EA%B2%BD/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%9D%B8%ED%94%84%EB%9D%BC-%ED%99%98%EA%B2%BD/</guid><description>컨테이너의 빌드·배포·운영 과정에서 각 도구가 맡는 역할을 구분하고, 서비스 배포 흐름과 파이프라인의 검증 지점을 살펴본다.</description><pubDate>Thu, 19 Jan 2023 05:39:15 GMT</pubDate><category>Kubernetes</category><category>Kubernetes</category><category>컨테이너</category></item><item><title>쿠버네티스 이해</title><link>https://pscheol.github.io/posts/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%9D%B4%ED%95%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%9D%B4%ED%95%B4/</guid><description>쿠버네티스는 컨테이너 오케스트레이션을 위한 플랫폼이다. 여러 노드에서 실행되는 애플리케이션의 원하는 상태를 선언하고, 실제 상태가 그 상태에 가까워지도록 조정한다.</description><pubDate>Thu, 19 Jan 2023 05:39:15 GMT</pubDate><category>Kubernetes</category><category>Kubernetes</category><category>쿠버네티스</category><category>컨테이너 오케스트레이션</category><category>Container Orchestration</category></item><item><title>11. Docker Application 배포</title><link>https://pscheol.github.io/posts/11-docker-application-%EB%B0%B0%ED%8F%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/11-docker-application-%EB%B0%B0%ED%8F%AC/</guid><description>Docker 네트워크에 RabbitMQ와 메시지 소비자 앱을 배포하고 데이터 보존, 포트 노출, 자격 증명과 동작 확인까지 살펴본다.</description><pubDate>Thu, 19 Jan 2023 05:39:03 GMT</pubDate><category>Docker</category><category>Docker</category><category>도커</category><category>애플리케이션 배포</category><category>Application Deployment</category></item><item><title>애그리거트</title><link>https://pscheol.github.io/posts/%EC%95%A0%EA%B7%B8%EB%A6%AC%EA%B1%B0%ED%8A%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%95%A0%EA%B7%B8%EB%A6%AC%EA%B1%B0%ED%8A%B8/</guid><description>주문 총수량 10개 제한을 애그리거트 루트에서 지키는 과정을 따라가며 경계 크기, 외부 참조, 동시 수정 충돌을 어떻게 다룰지 살펴본다.</description><pubDate>Thu, 19 Jan 2023 05:38:49 GMT</pubDate><category>도메인 주도 설계</category><category>DDD</category><category>애그리거트</category></item><item><title>도메인 모델</title><link>https://pscheol.github.io/posts/%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%AA%A8%EB%8D%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%AA%A8%EB%8D%B8/</guid><description>배송지 변경 규칙을 가진 주문 예제로 엔티티와 값 객체의 차이를 설명하고, 애그리거트·리포지터리·도메인 서비스의 책임 경계를 짚는다.</description><pubDate>Thu, 19 Jan 2023 05:38:36 GMT</pubDate><category>도메인 주도 설계</category><category>DDD</category><category>도메인 모델</category></item><item><title>10. Docker Compose</title><link>https://pscheol.github.io/posts/10-docker-compose/</link><guid isPermaLink="true">https://pscheol.github.io/posts/10-docker-compose/</guid><description>Docker Compose는 여러 컨테이너들을 모아서 관리하기 위한 도구로써 docker-compose.yml라는 파일에 컨테이너 구성정보를 정의하여 동일 호스트 상의 여러 컨테이너를 일괄적으로 관리 할 수 있다.</description><pubDate>Fri, 23 Sep 2022 03:09:56 GMT</pubDate><category>Docker</category><category>Docker</category><category>Docker Compose</category><category>도커</category><category>도커 컴포즈</category><category>컨테이너 구성</category></item><item><title>9. Dockerfile</title><link>https://pscheol.github.io/posts/9-dockerfile/</link><guid isPermaLink="true">https://pscheol.github.io/posts/9-dockerfile/</guid><description>Dockerfile의 주요 명령과 빌드·실행 시점을 구분하고, 정적 웹 이미지 예제로 이미지 레이어와 캐시의 동작을 살펴본다.</description><pubDate>Fri, 23 Sep 2022 03:09:31 GMT</pubDate><category>Docker</category><category>Docker</category><category>Dockerfile</category><category>도커</category><category>도커파일</category><category>이미지 빌드</category></item><item><title>SPA(Single Page Application)</title><link>https://pscheol.github.io/posts/spa-single-page-application/</link><guid isPermaLink="true">https://pscheol.github.io/posts/spa-single-page-application/</guid><description>SPA의 화면 전환과 데이터 요청 흐름을 다루고, URL 복원·새로 고침 404·비동기 응답 순서 문제를 살펴본다.</description><pubDate>Fri, 19 Feb 2021 03:06:40 GMT</pubDate><category>Vue</category><category>Vue</category><category>SPA</category><category>단일 페이지 애플리케이션</category><category>뷰</category></item><item><title>v-for 반복문</title><link>https://pscheol.github.io/posts/v-for-%EB%B0%98%EB%B3%B5%EB%AC%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/v-for-%EB%B0%98%EB%B3%B5%EB%AC%B8/</guid><description>Vue 2의 v-for로 목록을 렌더링하고, 안정적인 key·필터·정렬을 통해 행 상태가 섞이는 문제를 방지한다.</description><pubDate>Fri, 19 Feb 2021 03:06:40 GMT</pubDate><category>Vue</category><category>Vue</category><category>Vue 디렉티브</category></item><item><title>구글차트 그리기</title><link>https://pscheol.github.io/posts/%EA%B5%AC%EA%B8%80%EC%B0%A8%ED%8A%B8-%EA%B7%B8%EB%A6%AC%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EA%B5%AC%EA%B8%80%EC%B0%A8%ED%8A%B8-%EA%B7%B8%EB%A6%AC%EA%B8%B0/</guid><description>Vue 2의 투표 데이터를 Google Charts 원그래프로 표시하고, 라이브러리 준비·데이터 갱신·재그리기 순서를 설명한다.</description><pubDate>Fri, 19 Feb 2021 03:06:40 GMT</pubDate><category>Vue</category><category>Vue</category><category>Google Charts</category><category>구글 차트</category><category>데이터 시각화</category><category>Data Visualization</category></item><item><title>데이터 변화 감지</title><link>https://pscheol.github.io/posts/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%80%ED%99%94-%EA%B0%90%EC%A7%80/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%80%ED%99%94-%EA%B0%90%EC%A7%80/</guid><description>Vue 2에서 원본 상태와 계산값을 분리하고, computed·watch의 역할과 감지되지 않는 변경 사례를 살펴본다.</description><pubDate>Fri, 19 Feb 2021 03:06:40 GMT</pubDate><category>Vue</category><category>Vue</category><category>뷰</category><category>Vue.js</category><category>반응성</category><category>Reactivity</category></item><item><title>3. 리액티브 오퍼레이션 적용</title><link>https://pscheol.github.io/posts/3-%EB%A6%AC%EC%95%A1%ED%8B%B0%EB%B8%8C-%EC%98%A4%ED%8D%BC%EB%A0%88%EC%9D%B4%EC%85%98-%EC%A0%81%EC%9A%A9/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-%EB%A6%AC%EC%95%A1%ED%8B%B0%EB%B8%8C-%EC%98%A4%ED%8D%BC%EB%A0%88%EC%9D%B4%EC%85%98-%EC%A0%81%EC%9A%A9/</guid><description>Flux·Mono의 생성, 조합, 변환, 검증 연산자를 실제 신호와 순서 관점에서 비교한다.</description><pubDate>Fri, 19 Feb 2021 03:06:11 GMT</pubDate><category>Spring WebFlux</category><category>Spring WebFlux</category><category>리액티브 프로그래밍</category></item><item><title>1. Spring Reactor 개요</title><link>https://pscheol.github.io/posts/1-spring-reactor-%EA%B0%9C%EC%9A%94/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-spring-reactor-%EA%B0%9C%EC%9A%94/</guid><description>Reactive Streams의 요청·취소·종료 신호를 통해 Reactor의 데이터 흐름과 배압, 스레드 사용을 이해한다.</description><pubDate>Fri, 19 Feb 2021 03:06:11 GMT</pubDate><category>Spring WebFlux</category><category>Spring WebFlux</category><category>Project Reactor</category><category>스프링 웹플럭스</category><category>리액터</category><category>리액티브 프로그래밍</category></item><item><title>0. EventListener를 사용한 발행-구독 패턴</title><link>https://pscheol.github.io/posts/0-eventlistener%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EB%B0%9C%ED%96%89-%EA%B5%AC%EB%8F%85-%ED%8C%A8%ED%84%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/0-eventlistener%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EB%B0%9C%ED%96%89-%EA%B5%AC%EB%8F%85-%ED%8C%A8%ED%84%B4/</guid><description>Spring ApplicationEvent와 MVC SseEmitter로 온도 알림을 만들고, 동기 이벤트·연결 종료·확장 한계를 살펴본다.</description><pubDate>Fri, 19 Feb 2021 03:06:11 GMT</pubDate><category>Spring WebFlux</category><category>Spring WebFlux</category><category>발행-구독</category></item><item><title>Spring Reactor 시작하기</title><link>https://pscheol.github.io/posts/spring-reactor-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/spring-reactor-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0/</guid><description>Reactor의 Flux·Mono를 생성하고 구독·취소·완료 신호를 확인하며, 파이프라인 조립과 실행 시점의 차이를 살펴본다.</description><pubDate>Fri, 19 Feb 2021 03:06:11 GMT</pubDate><category>Spring WebFlux</category><category>Spring WebFlux</category><category>Project Reactor</category><category>스프링 웹플럭스</category><category>리액터</category><category>리액티브 프로그래밍</category></item><item><title>gRPC</title><link>https://pscheol.github.io/posts/grpc/</link><guid isPermaLink="true">https://pscheol.github.io/posts/grpc/</guid><description>서비스 계약을 .proto로 정의하고 요청·응답을 주고받는 gRPC의 흐름, 네 가지 RPC 방식, 운영 시 확인할 점을 정리합니다.</description><pubDate>Fri, 19 Feb 2021 03:05:38 GMT</pubDate><category>gRPC</category><category>gRPC</category><category>원격 프로시저 호출</category><category>Remote Procedure Call</category><category>API</category></item><item><title>v-if 조건문</title><link>https://pscheol.github.io/posts/v-if-%EC%A1%B0%EA%B1%B4%EB%AC%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/v-if-%EC%A1%B0%EA%B1%B4%EB%AC%B8/</guid><description>Vue 2의 v-if로 로딩·실패·빈 목록·성공 화면을 분기하고, DOM 재생성과 입력 상태에 미치는 영향을 살펴본다.</description><pubDate>Fri, 27 Nov 2020 09:20:26 GMT</pubDate><category>Vue</category><category>Vue</category><category>Vue 디렉티브</category></item><item><title>v-on</title><link>https://pscheol.github.io/posts/v-on/</link><guid isPermaLink="true">https://pscheol.github.io/posts/v-on/</guid><description>Vue 2의 v-on으로 클릭·제출·키보드 이벤트를 처리하고, 기본 동작 제어와 중복 제출 문제를 짚는다.</description><pubDate>Wed, 25 Nov 2020 07:24:22 GMT</pubDate><category>Vue</category><category>Vue</category><category>Vue 디렉티브</category></item><item><title>v-model</title><link>https://pscheol.github.io/posts/v-model/</link><guid isPermaLink="true">https://pscheol.github.io/posts/v-model/</guid><description>Vue 2의 v-model이 폼 값과 상태를 연결하는 방식을 입력 종류별로 살펴보고, 수식자와 검증의 경계를 구분한다.</description><pubDate>Wed, 25 Nov 2020 03:58:34 GMT</pubDate><category>Vue</category><category>Vue</category><category>Vue 디렉티브</category><category>양방향 바인딩</category></item><item><title>8. 해싱(Hashing)</title><link>https://pscheol.github.io/posts/8-%ED%95%B4%EC%8B%B1-hashing/</link><guid isPermaLink="true">https://pscheol.github.io/posts/8-%ED%95%B4%EC%8B%B1-hashing/</guid><description>키를 버킷 주소로 바꾸는 해시 함수, 충돌 해결, 적재율과 Java HashMap의 선택 기준을 작은 예제로 설명한다.</description><pubDate>Wed, 29 Jul 2020 14:57:32 GMT</pubDate><category>자료구조</category><category>알고리즘</category><category>해시</category><category>자료구조</category><category>Hashing</category><category>Data Structure</category></item><item><title>[Java] Generic(제네릭)</title><link>https://pscheol.github.io/posts/java-generic-%EC%A0%9C%EB%84%A4%EB%A6%AD/</link><guid isPermaLink="true">https://pscheol.github.io/posts/java-generic-%EC%A0%9C%EB%84%A4%EB%A6%AD/</guid><description>Java 제네릭 클래스와 메서드, 상한·와일드카드의 읽기·쓰기 제약을 예제로 살펴보고 타입 소거 뒤의 런타임 경계를 설명한다.</description><pubDate>Fri, 03 Jul 2020 06:50:57 GMT</pubDate><category>기초</category><category>Java</category><category>제네릭</category></item><item><title>[BaekJoon-7562] 나이트의 이동</title><link>https://pscheol.github.io/posts/baekjoon-7562-%EB%82%98%EC%9D%B4%ED%8A%B8%EC%9D%98-%EC%9D%B4%EB%8F%99/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-7562-%EB%82%98%EC%9D%B4%ED%8A%B8%EC%9D%98-%EC%9D%B4%EB%8F%99/</guid><description>체스판의 칸을 정점으로 보고 나이트의 여덟 방향 이동을 BFS로 탐색한다. 시작점과 도착점이 같은 경우도 계산한다.</description><pubDate>Mon, 29 Jun 2020 03:55:07 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>그래프</category><category>BFS</category></item><item><title>[BaekJoon-7576] 토마토</title><link>https://pscheol.github.io/posts/baekjoon-7576-%ED%86%A0%EB%A7%88%ED%86%A0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-7576-%ED%86%A0%EB%A7%88%ED%86%A0/</guid><description>처음 익은 토마토를 모두 큐에 넣는 다중 시작점 BFS로 익는 날짜를 센다. 빈 칸과 도달하지 못한 토마토를 구분한다.</description><pubDate>Mon, 29 Jun 2020 03:44:17 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>그래프</category><category>BFS</category></item><item><title>[BaekJoon-2178] 미로탐색</title><link>https://pscheol.github.io/posts/baekjoon-2178-%EB%AF%B8%EB%A1%9C%ED%83%90%EC%83%89/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-2178-%EB%AF%B8%EB%A1%9C%ED%83%90%EC%83%89/</guid><description>이동 가능한 칸을 그래프 정점으로 보고 BFS 거리 배열로 최단 경로 길이를 구한다. 시작 칸과 방문 표시를 함께 처리한다.</description><pubDate>Thu, 25 Jun 2020 14:21:03 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>그래프</category><category>BFS</category><category>DFS</category></item><item><title>Vue.js 정리</title><link>https://pscheol.github.io/posts/vue-js-%EC%A0%95%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/vue-js-%EC%A0%95%EB%A6%AC/</guid><description>Vue 2의 상태·계산 속성·템플릿이 화면을 갱신하는 흐름을 예제로 살펴보고, 생명주기와 안전한 출력 방법을 다룬다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>Vue</category><category>Vue</category><category>뷰</category><category>Vue.js</category><category>프론트엔드</category><category>Frontend</category></item><item><title>13. 탐색: 순차 탐색, 이진 탐색, 탐색 트리</title><link>https://pscheol.github.io/posts/13-search-%EC%9E%91%EC%97%85%EC%A4%91/</link><guid isPermaLink="true">https://pscheol.github.io/posts/13-search-%EC%9E%91%EC%97%85%EC%A4%91/</guid><description>정렬 여부에 따라 순차·이진 탐색을 고르고 BST와 균형 트리에서 탐색 경로와 최악 비용을 비교한다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>이론</category><category>알고리즘</category><category>Algorithm</category><category>탐색</category><category>Search</category><category>이진 탐색</category><category>Binary Search</category></item><item><title>10. Divide and Conquer(분할정복)</title><link>https://pscheol.github.io/posts/10-divide-and-conquer-%EB%B6%84%ED%95%A0%EC%A0%95%EB%B3%B5/</link><guid isPermaLink="true">https://pscheol.github.io/posts/10-divide-and-conquer-%EB%B6%84%ED%95%A0%EC%A0%95%EB%B3%B5/</guid><description>병합 정렬과 거듭제곱·행렬 피보나치로 분할, 기저 사례, 결합 단계와 재귀식의 시간 비용을 이해한다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>이론</category><category>알고리즘</category><category>분할 정복</category><category>Divide and Conquer</category></item><item><title>Greedy Algorithm(탐욕 알고리즘)</title><link>https://pscheol.github.io/posts/greedy-algorithm-%ED%83%90%EC%9A%95-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/greedy-algorithm-%ED%83%90%EC%9A%95-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/</guid><description>지역 선택이 전역 최적해로 이어지는 조건을 거스름돈 반례와 구간 선택의 교환 논증으로 확인한다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>이론</category><category>알고리즘</category><category>탐욕 알고리즘</category><category>Greedy Algorithm</category></item><item><title>Sort(정렬)</title><link>https://pscheol.github.io/posts/sort-%EC%A0%95%EB%A0%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/sort-%EC%A0%95%EB%A0%AC/</guid><description>선택·삽입·버블·병합·퀵 정렬의 불변식과 복잡도를 비교하고 중간 피벗 구현의 무한 루프를 바로잡는다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>이론</category><category>알고리즘</category><category>정렬</category><category>Sorting</category></item><item><title>7. PriorityQueue(우선순위 큐)</title><link>https://pscheol.github.io/posts/7-priorityqueue-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/7-priorityqueue-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90/</guid><description>우선순위 큐를 최소 힙으로 구현하면서 삽입 시 위로 올리기, 삭제 시 아래로 내리기와 배열 인덱스 계산을 예제로 설명한다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>자료구조</category><category>알고리즘</category><category>우선순위 큐</category><category>Priority Queue</category><category>Data Structure</category></item><item><title>6. hash(해시)</title><link>https://pscheol.github.io/posts/6-hash-%ED%95%B4%EC%8B%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/6-hash-%ED%95%B4%EC%8B%9C/</guid><description>해시 함수가 키를 배열 인덱스로 바꾸는 과정, 충돌 해결, 적재율과 재해싱을 실제 코드로 살펴봅니다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>자료구조</category><category>알고리즘</category><category>해시</category><category>Hash</category><category>Data Structure</category></item><item><title>JavaScript class 문법</title><link>https://pscheol.github.io/posts/javascript-class-%EB%AC%B8%EB%B2%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/javascript-class-%EB%AC%B8%EB%B2%95/</guid><description>객체 리터럴, 생성자 함수와 프로토타입, JavaScript class로 같은 객체를 만드는 방법을 비교하고 메서드 공유와 상속을 설명한다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>클래스</category></item><item><title>객체 프로퍼티와 프로퍼티 속성</title><link>https://pscheol.github.io/posts/%EA%B0%9D%EC%B2%B4-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0%EC%99%80-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EC%86%8D%EC%84%B1/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EA%B0%9D%EC%B2%B4-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0%EC%99%80-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EC%86%8D%EC%84%B1/</guid><description>Object.defineProperty의 writable·enumerable·configurable 속성과 getter·setter를 통해 객체 프로퍼티의 변경 범위를 설명한다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>자바스크립트</category><category>객체 프로퍼티</category><category>Object Properties</category></item><item><title>프로토타입과 상속</title><link>https://pscheol.github.io/posts/%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85%EA%B3%BC-%EC%83%81%EC%86%8D/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85%EA%B3%BC-%EC%83%81%EC%86%8D/</guid><description>JavaScript의 프로토타입 체인, 생성자 prototype과 객체의 [[Prototype]] 차이, 속성 가리기와 상속 속성 순회를 예제로 설명한다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>프로토타입</category><category>상속</category></item><item><title>호이스팅(Hoisting)</title><link>https://pscheol.github.io/posts/%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85-hoisting/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85-hoisting/</guid><description>JavaScript 함수 선언과 var·let·const의 등록·초기화 시점 차이를 예제로 살펴보고 TDZ와 호출 오류가 생기는 이유를 설명한다.</description><pubDate>Thu, 25 Jun 2020 13:36:48 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>호이스팅</category></item><item><title>[BaekJoon-2667] 단지번호붙이기</title><link>https://pscheol.github.io/posts/baekjoon-2667-%EB%8B%A8%EC%A7%80%EB%B2%88%ED%98%B8%EB%B6%99%EC%9D%B4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-2667-%EB%8B%A8%EC%A7%80%EB%B2%88%ED%98%B8%EB%B6%99%EC%9D%B4%EA%B8%B0/</guid><description>격자의 집을 BFS로 묶어 단지별 크기를 세고 오름차순으로 출력한다. 방문 표시 시점과 고립된 집도 확인한다.</description><pubDate>Wed, 24 Jun 2020 08:08:37 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>그래프</category><category>BFS</category><category>DFS</category></item><item><title>[BaekJoon-1707] 이분그래프</title><link>https://pscheol.github.io/posts/baekjoon-1707-%EC%9D%B4%EB%B6%84%EA%B7%B8%EB%9E%98%ED%94%84/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1707-%EC%9D%B4%EB%B6%84%EA%B7%B8%EB%9E%98%ED%94%84/</guid><description>BFS로 인접 정점을 서로 다른 색으로 칠해 이분 그래프인지 판정한다. 분리된 요소와 홀수 길이 사이클도 검사한다.</description><pubDate>Wed, 24 Jun 2020 07:13:54 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>그래프</category><category>BFS</category><category>DFS</category></item><item><title>[BaekJoon-11724] 연결요소의 개수</title><link>https://pscheol.github.io/posts/baekjoon-11724-%EC%97%B0%EA%B2%B0%EC%9A%94%EC%86%8C%EC%9D%98-%EA%B0%9C%EC%88%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-11724-%EC%97%B0%EA%B2%B0%EC%9A%94%EC%86%8C%EC%9D%98-%EA%B0%9C%EC%88%98/</guid><description>미방문 정점마다 BFS를 시작해 무방향 그래프의 연결 요소를 센다. 고립 정점과 사이클에서도 중복 방문을 막는다.</description><pubDate>Wed, 24 Jun 2020 06:13:06 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>그래프</category><category>BFS</category><category>DFS</category></item><item><title>[BaekJoon-1260] DFS 와 BFS</title><link>https://pscheol.github.io/posts/baekjoon-1260-dfs-%EC%99%80-bfs/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1260-dfs-%EC%99%80-bfs/</guid><description>인접 정점을 오름차순으로 정렬한 뒤 DFS와 BFS의 방문 순서를 출력한다. 방문 표시 시점과 두 탐색의 차이를 추적한다.</description><pubDate>Wed, 24 Jun 2020 04:56:57 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>그래프</category><category>BFS</category><category>DFS</category></item><item><title>7. 그래프(Graph)</title><link>https://pscheol.github.io/posts/7-%EA%B7%B8%EB%9E%98%ED%94%84-graph/</link><guid isPermaLink="true">https://pscheol.github.io/posts/7-%EA%B7%B8%EB%9E%98%ED%94%84-graph/</guid><description>인접 행렬과 인접 리스트의 공간·탐색 비용을 비교하고, 방문 배열을 이용한 DFS·BFS의 순서와 적용 조건을 코드로 확인한다.</description><pubDate>Wed, 17 Jun 2020 15:48:35 GMT</pubDate><category>자료구조</category><category>알고리즘</category><category>그래프</category><category>Graph</category><category>Data Structure</category></item><item><title>6. 트리(Tree)</title><link>https://pscheol.github.io/posts/6-%ED%8A%B8%EB%A6%AC-tree/</link><guid isPermaLink="true">https://pscheol.github.io/posts/6-%ED%8A%B8%EB%A6%AC-tree/</guid><description>부모·자식 관계와 깊이·높이를 정의하고 일반 트리·수식 트리·이진 트리의 표현과 전위·중위·후위 순회를 코드로 따라간다.</description><pubDate>Wed, 17 Jun 2020 06:27:59 GMT</pubDate><category>자료구조</category><category>알고리즘</category><category>트리</category><category>Tree</category><category>Data Structure</category></item><item><title>[BaekJoon 2309] 일곱 난쟁이</title><link>https://pscheol.github.io/posts/baekjoon-2309-%EC%9D%BC%EA%B3%B1-%EB%82%9C%EC%9F%81%EC%9D%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-2309-%EC%9D%BC%EA%B3%B1-%EB%82%9C%EC%9F%81%EC%9D%B4/</guid><description>아홉 명의 키 합에서 제외할 두 명의 키를 찾아 100을 만든다. 중복 조합을 피하고 남은 일곱 명을 정렬해 출력한다.</description><pubDate>Wed, 10 Jun 2020 07:38:24 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Brute Force</category></item><item><title>[BaekJoon 1912] 연속합</title><link>https://pscheol.github.io/posts/baekjoon-1912-%EC%97%B0%EC%86%8D%ED%95%A9/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1912-%EC%97%B0%EC%86%8D%ED%95%A9/</guid><description>각 위치에서 끝나는 최대 연속합을 이전 합과 현재 값으로 갱신한다. 음수만 있는 수열과 전체 최댓값의 차이를 다룬다.</description><pubDate>Wed, 10 Jun 2020 06:31:05 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>동적 계획법</category><category>Baekjoon</category><category>Dynamic Programming</category><category>Maximum Subarray</category></item><item><title>[BaekJoon-15990] 1,2,3 더하기 5</title><link>https://pscheol.github.io/posts/baekjoon-15990-1-2-3-%EB%8D%94%ED%95%98%EA%B8%B0-5/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-15990-1-2-3-%EB%8D%94%ED%95%98%EA%B8%B0-5/</guid><description>마지막에 붙인 수를 DP 상태에 남겨 같은 수가 연속하지 않게 센다. 초기값과 큰 입력의 나머지 계산을 살핀다.</description><pubDate>Wed, 10 Jun 2020 04:16:34 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>동적 계획법</category><category>Baekjoon</category><category>Dynamic Programming</category></item><item><title>SU에서 EOF 사용시 내부 변수 처리 방법</title><link>https://pscheol.github.io/posts/su%EC%97%90%EC%84%9C-eof-%EC%82%AC%EC%9A%A9%EC%8B%9C-%EB%82%B4%EB%B6%80-%EB%B3%80%EC%88%98-%EC%B2%98%EB%A6%AC-%EB%B0%A9%EB%B2%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/su%EC%97%90%EC%84%9C-eof-%EC%82%AC%EC%9A%A9%EC%8B%9C-%EB%82%B4%EB%B6%80-%EB%B3%80%EC%88%98-%EC%B2%98%EB%A6%AC-%EB%B0%A9%EB%B2%95/</guid><description>su와 here-document를 함께 쓸 때 변수가 확장되는 셸을 구분하고, EOF 인용 여부와 이스케이프에 따른 결과를 비교한다.</description><pubDate>Tue, 02 Jun 2020 10:43:14 GMT</pubDate><category>Linux</category><category>Linux</category><category>리눅스</category><category>셸 스크립트</category><category>Shell Script</category><category>Here Document</category></item><item><title>백분율 변환</title><link>https://pscheol.github.io/posts/%EB%B0%B1%EB%B6%84%EC%9C%A8-%EB%B3%80%ED%99%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%B0%B1%EB%B6%84%EC%9C%A8-%EB%B3%80%ED%99%98/</guid><description>Java에서 부분값을 전체값의 백분율로 계산하고 0으로 나누기, 소수점 반올림, 로캘별 표시를 분리해 처리하는 방법을 설명한다.</description><pubDate>Wed, 27 May 2020 03:24:52 GMT</pubDate><category>기초</category><category>Java</category><category>자바</category><category>백분율</category><category>Percentage</category></item><item><title>바이트 단위 변환</title><link>https://pscheol.github.io/posts/%EB%B0%94%EC%9D%B4%ED%8A%B8-%EB%8B%A8%EC%9C%84-%EB%B3%80%ED%99%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%B0%94%EC%9D%B4%ED%8A%B8-%EB%8B%A8%EC%9C%84-%EB%B3%80%ED%99%98/</guid><description>바이트를 사람이 읽기 쉬운 이진 단위로 바꾸고, KB와 KiB의 차이 및 0·음수 입력을 처리한다.</description><pubDate>Wed, 27 May 2020 03:24:39 GMT</pubDate><category>기초</category><category>Java</category><category>자바</category><category>바이트 변환</category><category>Byte Conversion</category></item><item><title>[Baekjoon-10844] 쉬운 계단 수</title><link>https://pscheol.github.io/posts/baekjoon-10844-%EC%89%AC%EC%9A%B4-%EA%B3%84%EB%8B%A8-%EC%88%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-10844-%EC%89%AC%EC%9A%B4-%EA%B3%84%EB%8B%A8-%EC%88%98/</guid><description>길이와 마지막 자릿수를 DP 상태로 두고 이웃한 숫자에서 이어지는 계단 수를 센다. 0·9 경계와 나머지 연산을 다룬다.</description><pubDate>Fri, 01 May 2020 05:54:03 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>동적 계획법</category><category>Baekjoon</category><category>Dynamic Programming</category><category>Stair Numbers</category></item><item><title>[BaekJoon-11052] 카드 구매하기</title><link>https://pscheol.github.io/posts/baekjoon-11052-%EC%B9%B4%EB%93%9C-%EA%B5%AC%EB%A7%A4%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-11052-%EC%B9%B4%EB%93%9C-%EA%B5%AC%EB%A7%A4%ED%95%98%EA%B8%B0/</guid><description>마지막에 구매한 카드 팩의 크기로 경우를 나누어 최대 지불액 점화식을 만든다. 팩 조합과 계산 순서를 예제로 추적한다.</description><pubDate>Fri, 01 May 2020 05:03:12 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>동적 계획법</category><category>Baekjoon</category><category>Dynamic Programming</category><category>Card Buying</category></item><item><title>[BaekJoon-9095]-123 더하기</title><link>https://pscheol.github.io/posts/baekjoon-9095-123-%EB%8D%94%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-9095-123-%EB%8D%94%ED%95%98%EA%B8%B0/</guid><description>마지막에 더한 수가 1·2·3인 경우로 나누어 합의 가짓수 점화식을 만든다. 작은 수의 초기값부터 계산한다.</description><pubDate>Fri, 01 May 2020 04:27:47 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>동적 계획법</category><category>Baekjoon</category><category>Dynamic Programming</category></item><item><title>[BaekJoon-11727]-2xN 타일링 2</title><link>https://pscheol.github.io/posts/baekjoon-11727-2xn-%ED%83%80%EC%9D%BC%EB%A7%81-2/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-11727-2xn-%ED%83%80%EC%9D%BC%EB%A7%81-2/</guid><description>마지막 폭 2를 채우는 가로 타일 두 장과 정사각형 한 장을 따로 세어 점화식을 만든다. 작은 폭과 나머지 계산을 확인한다.</description><pubDate>Tue, 28 Apr 2020 06:06:20 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>동적 계획법</category><category>Baekjoon</category><category>Dynamic Programming</category><category>Tiling</category></item><item><title>[BaekJoon-11726]-2xN 타일링</title><link>https://pscheol.github.io/posts/baekjoon-11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81/</guid><description>마지막 타일이 세로 한 장인지 가로 두 장인지로 경우를 나누어 점화식을 만든다. 작은 폭을 추적하고 10007로 나눈다.</description><pubDate>Tue, 28 Apr 2020 06:00:53 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>동적 계획법</category><category>Baekjoon</category><category>Dynamic Programming</category><category>Tiling</category></item><item><title>[BaekJoon-1463] 1로 만들기</title><link>https://pscheol.github.io/posts/baekjoon-1463-1%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1463-1%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>작은 수의 최소 연산 횟수부터 채우는 DP로 1 빼기와 2·3으로 나누기를 모두 비교한다. 탐욕 선택의 반례도 확인한다.</description><pubDate>Tue, 28 Apr 2020 05:36:37 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>동적 계획법</category><category>Baekjoon</category><category>Dynamic Programming</category></item><item><title>5. 다이나믹 프로그래밍(Dynamic Programming)</title><link>https://pscheol.github.io/posts/5-%EB%8B%A4%EC%9D%B4%EB%82%98%EB%AF%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-dynamic-programming/</link><guid isPermaLink="true">https://pscheol.github.io/posts/5-%EB%8B%A4%EC%9D%B4%EB%82%98%EB%AF%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-dynamic-programming/</guid><description>중복 부분 문제를 저장하는 동적 계획법의 상태·점화식·계산 순서를 피보나치와 LCS로 익힌다.</description><pubDate>Tue, 28 Apr 2020 04:50:13 GMT</pubDate><category>이론</category><category>알고리즘</category><category>동적 계획법</category><category>Dynamic Programming</category></item><item><title>[BaekJoon-17087] 숨바꼭질 6</title><link>https://pscheol.github.io/posts/baekjoon-17087-%EC%88%A8%EB%B0%94%EA%BC%AD%EC%A7%88-6/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-17087-%EC%88%A8%EB%B0%94%EA%BC%AD%EC%A7%88-6/</guid><description>시작점에서 각 동생까지의 거리의 최대공약수를 구해 가능한 최대 보폭을 찾는다. 양방향 거리와 한 명인 경우를 다룬다.</description><pubDate>Thu, 02 Apr 2020 09:25:38 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Greatest Common Divisor</category></item><item><title>[BaekJoon-9613] GCD 합</title><link>https://pscheol.github.io/posts/baekjoon-9613-gcd-%ED%95%A9/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-9613-gcd-%ED%95%A9/</guid><description>서로 다른 두 입력 위치의 모든 쌍을 한 번씩 순회하며 GCD를 누적한다. 큰 합계의 정수형 범위도 확인한다.</description><pubDate>Thu, 02 Apr 2020 08:36:45 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Greatest Common Divisor</category></item><item><title>[BaekJoon-6588] 골드바흐의 추측</title><link>https://pscheol.github.io/posts/baekjoon-6588-%EA%B3%A8%EB%93%9C%EB%B0%94%ED%9D%90%EC%9D%98-%EC%B6%94%EC%B8%A1/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-6588-%EA%B3%A8%EB%93%9C%EB%B0%94%ED%9D%90%EC%9D%98-%EC%B6%94%EC%B8%A1/</guid><description>에라토스테네스의 체로 소수를 미리 구하고 작은 소수부터 짝을 시험한다. 첫 분해와 실패 출력 조건을 처리한다.</description><pubDate>Wed, 01 Apr 2020 12:35:16 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Goldbach Conjecture</category><category>Prime Numbers</category></item><item><title>[BaekJoon-1929] 소수구하기</title><link>https://pscheol.github.io/posts/baekjoon-1929-%EC%86%8C%EC%88%98%EA%B5%AC%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1929-%EC%86%8C%EC%88%98%EA%B5%AC%ED%95%98%EA%B8%B0/</guid><description>에라토스테네스의 체에서 소수의 제곱부터 배수를 지우고 M부터 N까지 남은 수를 출력한다. 1과 범위 경계를 다룬다.</description><pubDate>Wed, 01 Apr 2020 09:31:13 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Prime Numbers</category><category>Sieve of Eratosthenes</category></item><item><title>[BaekJoon-2609] 최대공약수와 최소공배수</title><link>https://pscheol.github.io/posts/baekjoon-2609-%EC%B5%9C%EB%8C%80%EA%B3%B5%EC%95%BD%EC%88%98%EC%99%80-%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-2609-%EC%B5%9C%EB%8C%80%EA%B3%B5%EC%95%BD%EC%88%98%EC%99%80-%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98/</guid><description>유클리드 호제법으로 최대공약수를 구하고 두 수의 곱 관계로 최소공배수를 계산한다. 나머지가 0인 경계를 추적한다.</description><pubDate>Tue, 31 Mar 2020 06:31:28 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>GCD</category><category>LCM</category></item><item><title>[BaekJoon-11656] 접미사 배열</title><link>https://pscheol.github.io/posts/baekjoon-11656-%EC%A0%91%EB%AF%B8%EC%82%AC-%EB%B0%B0%EC%97%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-11656-%EC%A0%91%EB%AF%B8%EC%82%AC-%EB%B0%B0%EC%97%B4/</guid><description>문자열의 모든 시작 위치에서 접미사를 만들고 사전순으로 정렬한다. 접미사 개수와 문자열 복사·비교 비용을 따진다.</description><pubDate>Mon, 30 Mar 2020 13:11:53 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Suffix Array</category></item><item><title>[BaekJoon-10824] 네 수</title><link>https://pscheol.github.io/posts/baekjoon-10824-%EB%84%A4-%EC%88%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-10824-%EB%84%A4-%EC%88%98/</guid><description>네 수를 더하기 전에 문자열로 이어 붙이고 long으로 변환한다. 숫자 덧셈과 이어 붙이기의 차이를 예제로 확인한다.</description><pubDate>Mon, 30 Mar 2020 12:39:34 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Number Concatenation</category></item><item><title>[BaekJoon-11655] ROT13</title><link>https://pscheol.github.io/posts/BaekJoon-11655-rot13/</link><guid isPermaLink="true">https://pscheol.github.io/posts/BaekJoon-11655-rot13/</guid><description>대문자와 소문자를 각각 26글자 원으로 보고 13칸 회전하는 식을 구현한다. 숫자와 공백을 보존하는 조건도 확인한다.</description><pubDate>Mon, 30 Mar 2020 12:12:21 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>ROT13</category><category>String</category></item><item><title>[BaekJoon-10809] 알파벳 찾기</title><link>https://pscheol.github.io/posts/baekjoon-10809-%EC%95%8C%ED%8C%8C%EB%B2%B3-%EC%B0%BE%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-10809-%EC%95%8C%ED%8C%8C%EB%B2%B3-%EC%B0%BE%EA%B8%B0/</guid><description>각 소문자의 첫 등장 위치만 배열에 기록하고, 없는 문자는 -1로 남긴다. 반복 문자가 최초 위치를 덮지 않게 처리한다.</description><pubDate>Mon, 30 Mar 2020 09:58:59 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Alphabet Search</category></item><item><title>[BaekJoon-10808] 알파벳 개수</title><link>https://pscheol.github.io/posts/baekjoon-10808-%EC%95%8C%ED%8C%8C%EB%B2%B3-%EA%B0%9C%EC%88%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-10808-%EC%95%8C%ED%8C%8C%EB%B2%B3-%EA%B0%9C%EC%88%98/</guid><description>소문자를 0부터 25까지의 배열 인덱스로 바꾸어 등장 횟수를 센다. 중복 문자와 등장하지 않은 문자의 출력도 살펴본다.</description><pubDate>Mon, 30 Mar 2020 03:38:07 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Alphabet Count</category></item><item><title>2. OAuth 2.0</title><link>https://pscheol.github.io/posts/2-oauth-2-0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-oauth-2-0/</guid><description>Authorization Code와 PKCE의 발급 단계를 따라가며 OAuth 2.0의 네 역할, 토큰 갱신, 기기 승인, 사용을 피해야 할 이전 grant를 구분한다.</description><pubDate>Fri, 27 Mar 2020 15:19:03 GMT</pubDate><category>OAuth</category><category>OAuth</category><category>OAuth2.0</category><category>인증</category><category>보안</category></item><item><title>템플릿 리터럴(Template Literals)</title><link>https://pscheol.github.io/posts/%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A6%AC%ED%84%B0%EB%9F%B4-template-literals/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A6%AC%ED%84%B0%EB%9F%B4-template-literals/</guid><description>템플릿 리터럴의 값 보간과 줄바꿈 보존을 예제로 살펴보고 보간 결과를 HTML에 넣을 때 필요한 이스케이프 경계를 설명한다.</description><pubDate>Fri, 27 Mar 2020 15:16:22 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>ES6</category><category>자바스크립트</category><category>템플릿 리터럴</category><category>Template Literals</category></item><item><title>[BaekJoon-1918] 후위 표기식</title><link>https://pscheol.github.io/posts/baekjoon-1918-%ED%9B%84%EC%9C%84-%ED%91%9C%EA%B8%B0%EC%8B%9D/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1918-%ED%9B%84%EC%9C%84-%ED%91%9C%EA%B8%B0%EC%8B%9D/</guid><description>연산자 스택으로 괄호와 우선순위를 처리해 중위식을 후위식으로 바꾼다. 같은 우선순위의 연산을 꺼내는 시점을 살핀다.</description><pubDate>Fri, 27 Mar 2020 11:04:29 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Stack</category><category>Postfix Notation</category></item><item><title>[BaekJoon-1935] 후위표기식2</title><link>https://pscheol.github.io/posts/baekjoon-1935-%ED%9B%84%EC%9C%84%ED%91%9C%EA%B8%B0%EC%8B%9D2/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1935-%ED%9B%84%EC%9C%84%ED%91%9C%EA%B8%B0%EC%8B%9D2/</guid><description>후위 표기식을 스택으로 계산하며 피연산자 값을 문자에 대응시킨다. 뺄셈·나눗셈에서 꺼내는 순서를 확인한다.</description><pubDate>Fri, 27 Mar 2020 08:02:42 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Stack</category><category>Postfix Notation</category></item><item><title>1. OAuth 란?</title><link>https://pscheol.github.io/posts/1-oauth-%EB%9E%80/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-oauth-%EB%9E%80/</guid><description>사진 인쇄 앱의 권한 위임을 예로 OAuth 1.0의 요청 토큰·사용자 승인·접근 토큰 흐름과 요청 서명, nonce·타임스탬프 검증을 설명한다.</description><pubDate>Fri, 27 Mar 2020 05:58:12 GMT</pubDate><category>OAuth</category><category>OAuth</category><category>인증</category><category>보안</category></item><item><title>[BaekJoon-17298] 오큰수</title><link>https://pscheol.github.io/posts/BaekJoon-17298-%EC%98%A4%ED%81%B0%EC%88%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/BaekJoon-17298-%EC%98%A4%ED%81%B0%EC%88%98/</guid><description>아직 오큰수를 찾지 못한 인덱스를 단조 스택에 쌓고, 새 수가 등장할 때 답을 채워 수열을 선형 시간에 처리한다.</description><pubDate>Thu, 26 Mar 2020 12:51:13 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Next Greater Element</category><category>Stack</category></item><item><title>[BaekJoon-10799] 쇠막대기</title><link>https://pscheol.github.io/posts/baekjoon-10799-%EC%87%A0%EB%A7%89%EB%8C%80%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-10799-%EC%87%A0%EB%A7%89%EB%8C%80%EA%B8%B0/</guid><description>닫는 괄호의 직전 문자를 보고 레이저와 막대기 끝을 구분한다. 열린 막대기 수로 잘린 조각을 한 번에 센다.</description><pubDate>Thu, 26 Mar 2020 10:28:30 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Iron Rod</category><category>Stack</category></item><item><title>[BaekJoon-17413] 단어뒤집기2(Word Flipping2)</title><link>https://pscheol.github.io/posts/baekjoon-17413-%EB%8B%A8%EC%96%B4%EB%92%A4%EC%A7%91%EA%B8%B02-word-flipping2/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-17413-%EB%8B%A8%EC%96%B4%EB%92%A4%EC%A7%91%EA%B8%B02-word-flipping2/</guid><description>태그 내부는 그대로 출력하고 태그 밖 단어만 스택으로 뒤집는다. 공백과 태그 경계에서 단어를 비우는 순서를 추적한다.</description><pubDate>Thu, 26 Mar 2020 05:16:34 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Stack</category><category>Word Reversal</category></item><item><title>[ES6] 클래스(class)</title><link>https://pscheol.github.io/posts/es6-%ED%81%B4%EB%9E%98%EC%8A%A4-class/</link><guid isPermaLink="true">https://pscheol.github.io/posts/es6-%ED%81%B4%EB%9E%98%EC%8A%A4-class/</guid><description>JavaScript class의 프로토타입 메서드, 인스턴스 필드, 비공개 필드와 getter·setter 및 extends·super의 동작을 예제로 살펴본다.</description><pubDate>Mon, 23 Mar 2020 22:24:23 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>ES6</category><category>클래스</category></item><item><title>[ES6]-Arrows</title><link>https://pscheol.github.io/posts/es6-Arrows/</link><guid isPermaLink="true">https://pscheol.github.io/posts/es6-Arrows/</guid><description>JavaScript 화살표 함수의 반환 문법과 바깥 this 사용 방식을 일반 함수와 비교하고 메서드·생성자·이벤트 리스너에서의 주의점을 다룬다.</description><pubDate>Mon, 23 Mar 2020 21:45:21 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>ES6</category><category>자바스크립트</category><category>화살표 함수</category><category>Arrow Functions</category></item><item><title>[BaekJoon-1158] 요세푸스 문제(Josephus problem)</title><link>https://pscheol.github.io/posts/baekjoon-1158-%EC%9A%94%EC%84%B8%ED%91%B8%EC%8A%A4-%EB%AC%B8%EC%A0%9C-josephus-problem/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1158-%EC%9A%94%EC%84%B8%ED%91%B8%EC%8A%A4-%EB%AC%B8%EC%A0%9C-josephus-problem/</guid><description>원을 큐로 표현해 앞사람을 뒤로 보내고 K번째 사람을 제거한다. 큐 상태를 따라가며 제거 순서와 반복 비용을 설명한다.</description><pubDate>Mon, 23 Mar 2020 12:09:00 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>큐</category><category>Baekjoon</category><category>Josephus Problem</category><category>Queue</category></item><item><title>[BaekJoon-1406] 에디터(Editor)</title><link>https://pscheol.github.io/posts/baekjoon-1406-%EC%97%90%EB%94%94%ED%84%B0-editor/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1406-%EC%97%90%EB%94%94%ED%84%B0-editor/</guid><description>커서 왼쪽과 오른쪽을 두 스택으로 나누어 편집 명령을 처리한다. 인덱스 기반 연결 리스트가 느린 이유도 비교한다.</description><pubDate>Mon, 23 Mar 2020 10:56:33 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Stack</category><category>Text Editor</category></item><item><title>[BaekJoon-1874] 스택수열(Stack Sequence)</title><link>https://pscheol.github.io/posts/baekjoon-1874-%EC%8A%A4%ED%83%9D%EC%88%98%EC%97%B4-stack-sequence/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1874-%EC%8A%A4%ED%83%9D%EC%88%98%EC%97%B4-stack-sequence/</guid><description>1부터 차례로 넣는 스택으로 목표 수열을 만드는 과정을 추적한다. 목표 수까지 넣고도 꼭대기가 다르면 불가능한 이유를 설명한다.</description><pubDate>Sun, 22 Mar 2020 16:28:44 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Stack</category><category>Stack Sequence</category></item><item><title>4. 큐(Queue)</title><link>https://pscheol.github.io/posts/4-%ED%81%90-queue/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-%ED%81%90-queue/</guid><description>선형 큐의 빈 공간 문제를 원형 큐로 해결하고, 배열·연결 리스트 구현에서 front와 rear의 상태 및 삽입·삭제 비용을 비교한다.</description><pubDate>Sat, 21 Mar 2020 03:13:08 GMT</pubDate><category>자료구조</category><category>알고리즘</category><category>큐</category><category>Queue</category><category>Data Structure</category></item><item><title>3. 연결리스트(Linked List)</title><link>https://pscheol.github.io/posts/3-%EC%97%B0%EA%B2%B0%EB%A6%AC%EC%8A%A4%ED%8A%B8-linked-list/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-%EC%97%B0%EA%B2%B0%EB%A6%AC%EC%8A%A4%ED%8A%B8-linked-list/</guid><description>배열과 연결 리스트의 접근·삽입 비용을 비교하고, 노드 참조를 바꾸는 순서와 단순·원형·이중 연결 리스트의 구조를 살펴본다.</description><pubDate>Thu, 19 Mar 2020 15:16:27 GMT</pubDate><category>자료구조</category><category>알고리즘</category><category>연결 리스트</category><category>Linked List</category><category>Data Structure</category></item><item><title>2. 스택(Stack)</title><link>https://pscheol.github.io/posts/2-%EC%8A%A4%ED%83%9D-stack/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-%EC%8A%A4%ED%83%9D-stack/</guid><description>배열과 연결리스트로 후입선출 스택을 구현하며 push·pop의 경계 검사, top 인덱스 불변식과 활용 사례를 코드로 확인한다.</description><pubDate>Wed, 18 Mar 2020 15:21:23 GMT</pubDate><category>자료구조</category><category>알고리즘</category><category>스택</category><category>Stack</category><category>Data Structure</category></item><item><title>[BaekJoon-9012]-괄호(Parentheses)</title><link>https://pscheol.github.io/posts/baekjoon-9012-%EA%B4%84%ED%98%B8-parentheses/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-9012-%EA%B4%84%ED%98%B8-parentheses/</guid><description>여는 괄호 수를 세며 닫는 괄호가 먼저 나오는 접두 구간을 즉시 거절한다. 마지막 균형 조건도 확인한다.</description><pubDate>Wed, 18 Mar 2020 12:40:23 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Stack</category><category>Parentheses</category></item><item><title>[BaekJoon-9093] 단어 뒤집기</title><link>https://pscheol.github.io/posts/baekjoon-9093-%EB%8B%A8%EC%96%B4-%EB%92%A4%EC%A7%91%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-9093-%EB%8B%A8%EC%96%B4-%EB%92%A4%EC%A7%91%EA%B8%B0/</guid><description>단어별 문자를 스택에 쌓았다가 공백에서 꺼내어 뒤집는다. 단어 순서를 유지하고 마지막 단어를 빠뜨리지 않는다.</description><pubDate>Wed, 18 Mar 2020 11:55:46 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Stack</category><category>Word Reversal</category></item><item><title>[BaekJoon-10828] 스택</title><link>https://pscheol.github.io/posts/baekjoon-10828-%EC%8A%A4%ED%83%9D/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-10828-%EC%8A%A4%ED%83%9D/</guid><description>배열의 끝을 스택 꼭대기로 삼아 다섯 명령을 구현한다. 빈 스택에서 pop·top을 호출했을 때의 반환값을 분기한다.</description><pubDate>Wed, 18 Mar 2020 11:43:35 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>스택</category><category>Baekjoon</category><category>Stack</category></item><item><title>1. Algorithm 개요(Algorithm Overview)</title><link>https://pscheol.github.io/posts/1-algorithm-%EA%B0%9C%EC%9A%94-algorithm-overview/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-algorithm-%EA%B0%9C%EC%9A%94-algorithm-overview/</guid><description>알고리즘의 종료와 정확성, 입력 크기별 시간·공간 복잡도를 예제로 비교하고 빅오 표기의 뜻을 구분한다.</description><pubDate>Tue, 17 Mar 2020 12:30:42 GMT</pubDate><category>이론</category><category>알고리즘</category><category>시간 복잡도</category><category>Algorithm</category><category>Time Complexity</category></item><item><title>Kafka에 Spark 스트리밍 연결</title><link>https://pscheol.github.io/posts/kafka%EC%97%90-spark-%EC%8A%A4%ED%8A%B8%EB%A6%AC%EB%B0%8D-%EC%97%B0%EA%B2%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka%EC%97%90-spark-%EC%8A%A4%ED%8A%B8%EB%A6%AC%EB%B0%8D-%EC%97%B0%EA%B2%B0/</guid><description>Kafka 데이터를 Spark Structured Streaming으로 읽는 흐름을 살펴보고, 오프셋·체크포인트·출력 저장소의 복구 역할을 구분한다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>Spark</category><category>카프카</category><category>스파크 스트리밍</category><category>Spark Streaming</category></item><item><title>kafka에 Storm 연결하기</title><link>https://pscheol.github.io/posts/kafka%EC%97%90-storm-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka%EC%97%90-storm-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0/</guid><description>KafkaSpout에서 Bolt로 메시지가 전달되는 과정을 따라가며, 커넥터 설정과 오프셋·재처리·중복 처리 문제를 살펴본다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>Storm</category><category>카프카</category><category>아파치 스톰</category><category>스트림 처리</category></item><item><title>객체지향 연관 관계</title><link>https://pscheol.github.io/posts/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%EC%97%B0%EA%B4%80-%EA%B4%80%EA%B3%84/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%EC%97%B0%EA%B4%80-%EA%B4%80%EA%B3%84/</guid><description>주문·고객·주문 항목 관계를 통해 탐색 방향과 다중성을 읽고, 양방향 참조의 일관성 비용과 삭제 전파를 설계할 때 확인할 규칙을 살펴본다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>객체지향</category><category>객체지향</category><category>Object-Oriented Programming</category><category>연관 관계</category><category>Association</category></item><item><title>5. 연관관계 매핑</title><link>https://pscheol.github.io/posts/5-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84-%EB%A7%A4%ED%95%91/</link><guid isPermaLink="true">https://pscheol.github.io/posts/5-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84-%EB%A7%A4%ED%95%91/</guid><description>주문과 고객의 다대일 관계로 외래 키 소유자와 지연 로딩을 설명하고, 목록 조회의 N+1 문제를 점검한다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>JPA</category><category>JPA</category><category>연관관계 매핑</category></item><item><title>2. JPA 시작</title><link>https://pscheol.github.io/posts/2-jpa-%EC%8B%9C%EC%9E%91/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-jpa-%EC%8B%9C%EC%9E%91/</guid><description>Jakarta Persistence 설정부터 엔티티 저장·재조회까지 따라가며 트랜잭션과 영속성 컨텍스트의 실행 경계를 확인한다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>JPA</category><category>JPA</category><category>자바 영속성 API</category><category>Java Persistence API</category><category>ORM</category></item><item><title>4. Spring WebFlux</title><link>https://pscheol.github.io/posts/4-spring-webflux/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-spring-webflux/</guid><description>Spring WebFlux의 요청·응답 흐름을 컨트롤러와 함수형 라우터로 구현하고, 블로킹 경계와 도입 기준을 살펴본다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>Spring WebFlux</category><category>Spring WebFlux</category><category>스프링 웹플럭스</category><category>리액티브 프로그래밍</category><category>Reactive Programming</category></item><item><title>스프링  DI</title><link>https://pscheol.github.io/posts/%EC%8A%A4%ED%94%84%EB%A7%81-di/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%8A%A4%ED%94%84%EB%A7%81-di/</guid><description>메일 전송 예제로 직접 생성과 의존성 주입을 비교하고, 인터페이스 분리와 테스트 대역을 연결하는 방법을 살펴본다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>Spring</category><category>Spring</category><category>의존성 주입</category></item><item><title>7. Docker network</title><link>https://pscheol.github.io/posts/7-docker-network/</link><guid isPermaLink="true">https://pscheol.github.io/posts/7-docker-network/</guid><description>Docker 네트워크의 생성·연결·조회·삭제를 실습하고, 사용자 정의 bridge에서 이름으로 통신하는 방법과 연결 오류를 살펴본다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>Docker</category><category>Docker</category><category>네트워크</category></item><item><title>4. RxJava Buffer 연산자</title><link>https://pscheol.github.io/posts/4-rxjava-buffer-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-rxjava-buffer-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>buffer의 개수·시간 기준 묶음, 완료 시 잔여 항목, 메모리와 배압 문제를 예제로 설명한다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>3. RxJava concatMap과 DelayError 연산자</title><link>https://pscheol.github.io/posts/3-rxjava-concatmap%EA%B3%BC-delayerror-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-rxjava-concatmap%EA%B3%BC-delayerror-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>concatMap의 순차 구독과 concatMapDelayError의 오류 지연을 실행 흐름과 출력 순서로 비교한다.</description><pubDate>Thu, 16 Jan 2020 09:16:20 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>4. Entity Mapping(엔티티 매핑)</title><link>https://pscheol.github.io/posts/4-entity-mapping-%EC%97%94%ED%8B%B0%ED%8B%B0-%EB%A7%A4%ED%95%91/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-entity-mapping-%EC%97%94%ED%8B%B0%ED%8B%B0-%EB%A7%A4%ED%95%91/</guid><description>엔티티·컬럼·기본 키를 테이블에 매핑하고, 날짜·열거형·스키마 설정이 저장 결과에 미치는 영향을 살펴본다.</description><pubDate>Fri, 11 Oct 2019 08:50:56 GMT</pubDate><category>JPA</category><category>JPA</category><category>엔티티 매핑</category></item><item><title>1. JPA</title><link>https://pscheol.github.io/posts/1-jpa/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-jpa/</guid><description>JPA의 엔티티와 영속성 컨텍스트가 객체를 저장·조회하는 흐름을 JDBC·MyBatis와 비교하고, ORM 선택 기준을 살펴본다.</description><pubDate>Sat, 05 Oct 2019 04:58:16 GMT</pubDate><category>JPA</category><category>JPA</category><category>자바 영속성 API</category><category>Java Persistence API</category><category>ORM</category></item><item><title>2. RxJava flatMap 연산자</title><link>https://pscheol.github.io/posts/2-rxjava-flatmap-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-rxjava-flatmap-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>flatMap이 입력마다 내부 스트림을 만들어 병합하는 과정과 결과 순서, 오류, 취소 동작을 예제로 설명한다.</description><pubDate>Tue, 03 Sep 2019 01:36:33 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>1. RxJava map 연산자</title><link>https://pscheol.github.io/posts/1-rxjava-map-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-rxjava-map-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava map이 입력 한 건을 결과 한 건으로 바꾸는 방식과 오류·null·filter·스케줄러 차이를 예제로 설명한다.</description><pubDate>Fri, 30 Aug 2019 07:23:03 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>7. RxJava defer 연산자</title><link>https://pscheol.github.io/posts/7-rxjava-defer-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/7-rxjava-defer-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava defer가 구독마다 새 소스를 만드는 시점과 just·fromCallable의 차이, retry에서의 재생성을 살펴본다.</description><pubDate>Fri, 23 Aug 2019 08:34:51 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>10. RxJava never 연산자</title><link>https://pscheol.github.io/posts/10-rxjava-never-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/10-rxjava-never-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava never가 어떤 신호도 보내지 않는 계약을 구독·concat·timeout·취소 흐름으로 확인한다.</description><pubDate>Thu, 08 Aug 2019 03:00:11 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>9. RxJava error 연산자</title><link>https://pscheol.github.io/posts/9-rxjava-error-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/9-rxjava-error-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava error가 구독 시 onError로 종료되는 흐름과 concat 중단, 오류 복구·생성 시점의 차이를 살펴본다.</description><pubDate>Thu, 08 Aug 2019 03:00:11 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>8. RxJava empty 연산자</title><link>https://pscheol.github.io/posts/8-rxjava-empty-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/8-rxjava-empty-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava empty의 즉시 완료 신호를 null·never와 구분하고 concat·switchIfEmpty 조합의 실행 흐름을 살펴본다.</description><pubDate>Thu, 08 Aug 2019 03:00:11 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>6. RxJava timer 연산자</title><link>https://pscheol.github.io/posts/6-rxjava-timer-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/6-rxjava-timer-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava timer가 구독 뒤 한 번 지연해 0L을 보내고 완료하는 흐름, 스케줄러·concat·취소를 설명한다.</description><pubDate>Thu, 08 Aug 2019 03:00:11 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>5. RxJava interval 연산자</title><link>https://pscheol.github.io/posts/5-rxjava-interval-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/5-rxjava-interval-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava interval의 초기 지연·주기적 통지와 스케줄러, take·취소·배압을 연결해 읽는다.</description><pubDate>Thu, 08 Aug 2019 03:00:11 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>4. RxJava range와 rangeLong 연산자</title><link>https://pscheol.github.io/posts/4-rxjava-range%EC%99%80-rangelong-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-rxjava-range%EC%99%80-rangelong-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava range·rangeLong의 시작값과 개수, 구독·배압·조기 종료·자료형 범위를 예제로 살펴본다.</description><pubDate>Thu, 08 Aug 2019 03:00:11 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>3. RxJava fromCallable 연산자</title><link>https://pscheol.github.io/posts/3-rxjava-fromcallable-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-rxjava-fromcallable-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava fromCallable이 구독마다 Callable을 실행하는 시점과 오류·스케줄러·취소의 경계를 예제로 살펴본다.</description><pubDate>Thu, 08 Aug 2019 03:00:11 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>2. RxJava fromArray와 fromIterable 연산자</title><link>https://pscheol.github.io/posts/2-rxjava-fromarray%EC%99%80-fromiterable-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-rxjava-fromarray%EC%99%80-fromiterable-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava fromArray·fromIterable이 배열과 Iterable을 구독 시 순회하는 방식, 조기 종료와 원본 변경의 영향을 살펴본다.</description><pubDate>Thu, 08 Aug 2019 03:00:11 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>1. RxJava just 연산자</title><link>https://pscheol.github.io/posts/1-rxjava-just-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-rxjava-just-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>RxJava just가 이미 계산된 값을 구독 시 순서대로 보내고 완료하는 흐름과 값 생성 시점·구독 취소를 살펴본다.</description><pubDate>Thu, 08 Aug 2019 03:00:11 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>[RxJava] 배압(Backpressure)과 리소스 관리</title><link>https://pscheol.github.io/posts/rxjava-%EB%B0%B0%EC%95%95-backpressure-%EA%B3%BC-%EB%A6%AC%EC%86%8C%EC%8A%A4-%EA%B4%80%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/rxjava-%EB%B0%B0%EC%95%95-backpressure-%EA%B3%BC-%EB%A6%AC%EC%86%8C%EC%8A%A4-%EA%B4%80%EB%A6%AC/</guid><description>RxJava Flowable의 request 수요 조절과 빠른 생산자의 BUFFER·DROP·LATEST·ERROR 정책, 종료와 모니터링 기준을 설명한다.</description><pubDate>Mon, 05 Aug 2019 01:20:36 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>JavaScript Symbol</title><link>https://pscheol.github.io/posts/javascript-symbol/</link><guid isPermaLink="true">https://pscheol.github.io/posts/javascript-symbol/</guid><description>Symbol로 충돌 없는 객체 키를 만들고 Symbol.for와의 차이, 키 열거·JSON 직렬화에서 빠지는 범위를 예제로 확인한다.</description><pubDate>Mon, 05 Aug 2019 01:19:24 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>Symbol</category><category>자바스크립트</category><category>심벌</category></item><item><title>리액티브 프로그래밍 예외 처리</title><link>https://pscheol.github.io/posts/%EB%A6%AC%EC%95%A1%ED%8B%B0%EB%B8%8C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%A6%AC%EC%95%A1%ED%8B%B0%EB%B8%8C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC/</guid><description>RxJava의 onError 종료 뒤 재시도와 대체 값·대체 스트림을 비교하고 재구독으로 인한 중복 부작용을 피하는 기준을 설명한다.</description><pubDate>Fri, 02 Aug 2019 01:04:02 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>Reactive Programming</category><category>예외 처리</category><category>Error Handling</category></item><item><title>4. RxJava 비동기 처리</title><link>https://pscheol.github.io/posts/4-rxjava-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%B2%98%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-rxjava-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%B2%98%EB%A6%AC/</guid><description>RxJava 스케줄러와 subscribeOn·observeOn의 경계, 병합 연산자의 순서 및 공유 상태 문제를 예제로 살펴본다.</description><pubDate>Wed, 31 Jul 2019 02:09:00 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>[Java] Lambda Expressions(람다식)</title><link>https://pscheol.github.io/posts/java-lambda-expressions-%EB%9E%8C%EB%8B%A4%EC%8B%9D/</link><guid isPermaLink="true">https://pscheol.github.io/posts/java-lambda-expressions-%EB%9E%8C%EB%8B%A4%EC%8B%9D/</guid><description>함수형 인터페이스를 람다식으로 구현하는 방법과 표현식·블록 본문의 반환 규칙, 익명 클래스와 this 동작의 차이를 살펴본다.</description><pubDate>Tue, 30 Jul 2019 01:24:51 GMT</pubDate><category>기초</category><category>Java</category><category>람다식</category></item><item><title>3. RxJava Marble Diagram(마블 다이어그램)</title><link>https://pscheol.github.io/posts/3-rxjava-marble-diagram-%EB%A7%88%EB%B8%94-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-rxjava-marble-diagram-%EB%A7%88%EB%B8%94-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8/</guid><description>마블 다이어그램의 값·완료·오류 신호를 읽고 filter, 오류 대체, zip 사례에서 시간축과 출력 순서를 해석하는 방법을 설명한다.</description><pubDate>Mon, 29 Jul 2019 01:25:48 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>Scope 연산자 let, const</title><link>https://pscheol.github.io/posts/scope-%EC%97%B0%EC%82%B0%EC%9E%90-let-const/</link><guid isPermaLink="true">https://pscheol.github.io/posts/scope-%EC%97%B0%EC%82%B0%EC%9E%90-let-const/</guid><description>JavaScript var·let·const의 스코프와 TDZ, const의 재할당 제한 및 반복문 클로저에서 값이 달라지는 이유를 예제로 설명한다.</description><pubDate>Fri, 26 Jul 2019 03:05:59 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>스코프</category></item><item><title>2. Reactive Streams</title><link>https://pscheol.github.io/posts/2-reactive-streams/</link><guid isPermaLink="true">https://pscheol.github.io/posts/2-reactive-streams/</guid><description>Reactive Streams의 네 인터페이스와 request 기반 수요 조절, 종료·취소 규칙을 RxJava Flowable 예제로 설명한다.</description><pubDate>Thu, 25 Jul 2019 01:14:55 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>Reactive Streams</category></item><item><title>8. Docker compose를 이용하여 Kafka Confluent 설치</title><link>https://pscheol.github.io/posts/8-docker-compose%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-kafka-confluent-%EC%84%A4%EC%B9%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/8-docker-compose%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-kafka-confluent-%EC%84%A4%EC%B9%98/</guid><description>Docker Compose로 Confluent Kafka를 실행하고, 과거 ZooKeeper 구성과 KRaft 단일 브로커의 로컬 실습 설정을 비교한다.</description><pubDate>Wed, 24 Jul 2019 05:43:11 GMT</pubDate><category>Docker</category><category>Docker</category><category>Kafka</category><category>Docker Compose</category><category>도커</category><category>카프카</category><category>도커 컴포즈</category></item><item><title>Iterator Pattern(반복자 패턴)</title><link>https://pscheol.github.io/posts/iterator-pattern-%EB%B0%98%EB%B3%B5%EC%9E%90-%ED%8C%A8%ED%84%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/iterator-pattern-%EB%B0%98%EB%B3%B5%EC%9E%90-%ED%8C%A8%ED%84%B4/</guid><description>배열 기반 Shelf 반복자를 직접 구현하며 커서 이동과 용량 증가, 끝에서의 예외, 순회 중 컬렉션 변경 정책을 단계별로 확인한다.</description><pubDate>Tue, 23 Jul 2019 02:57:22 GMT</pubDate><category>디자인 패턴</category><category>디자인 패턴</category><category>이터레이터 패턴</category><category>Design Pattern</category><category>Iterator Pattern</category></item><item><title>Observer Pattern(관찰자 패턴)</title><link>https://pscheol.github.io/posts/observer-pattern-%EA%B4%80%EC%B0%B0%EC%9E%90-%ED%8C%A8%ED%84%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/observer-pattern-%EA%B4%80%EC%B0%B0%EC%9E%90-%ED%8C%A8%ED%84%B4/</guid><description>한 객체의 이벤트를 여러 관찰자에게 알리는 구조와 동기 호출·오류 전파·구독 해제 시 주의할 점을 살펴본다.</description><pubDate>Fri, 19 Jul 2019 01:22:30 GMT</pubDate><category>디자인 패턴</category><category>디자인 패턴</category><category>옵저버 패턴</category><category>Design Pattern</category><category>Observer Pattern</category></item><item><title>Docker container</title><link>https://pscheol.github.io/posts/docker-container/</link><guid isPermaLink="true">https://pscheol.github.io/posts/docker-container/</guid><description>Docker 컨테이너의 생성·시작·정지·삭제 흐름을 익히고, 실행 중 명령 수행과 프로세스·포트·파일 변경을 확인한다.</description><pubDate>Thu, 18 Jul 2019 01:26:18 GMT</pubDate><category>Docker</category><category>Docker</category><category>컨테이너</category></item><item><title>Kafka REST Proxy</title><link>https://pscheol.github.io/posts/kafka-rest-proxy/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-rest-proxy/</guid><description>Confluent REST Proxy의 HTTP API로 Kafka 메시지를 보내고 구독·조회하며, 컨슈머 정리와 v2·v3의 차이를 살펴본다.</description><pubDate>Wed, 17 Jul 2019 03:33:06 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>REST Proxy</category><category>카프카</category><category>REST 프록시</category></item><item><title>1. RxJava 개념</title><link>https://pscheol.github.io/posts/1-rxjava-%EA%B0%9C%EB%85%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-rxjava-%EA%B0%9C%EB%85%90/</guid><description>RxJava 2의 Flowable·Observable, 연산자, 스케줄러와 Cold·Hot 소스의 실행 차이를 예제로 살펴본다.</description><pubDate>Mon, 15 Jul 2019 01:44:02 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>RxJava</category></item><item><title>0. Reactive System(리액티브 시스템)</title><link>https://pscheol.github.io/posts/0-reactive-system-%EB%A6%AC%EC%95%A1%ED%8B%B0%EB%B8%8C-%EC%8B%9C%EC%8A%A4%ED%85%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/0-reactive-system-%EB%A6%AC%EC%95%A1%ED%8B%B0%EB%B8%8C-%EC%8B%9C%EC%8A%A4%ED%85%9C/</guid><description>리액티브 시스템의 응답성·회복성·탄력성·메시지 기반 설계를 주문 처리 사례와 운영 지표로 풀어 본다.</description><pubDate>Thu, 11 Jul 2019 09:26:27 GMT</pubDate><category>리액티브 프로그래밍</category><category>리액티브 프로그래밍</category><category>Reactive System</category></item><item><title>0. Spark 소개</title><link>https://pscheol.github.io/posts/0-spark-%EC%86%8C%EA%B0%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/0-spark-%EC%86%8C%EA%B0%9C/</guid><description>Spark의 Driver·Executor·RDD 구조와 변환·액션의 실행 흐름을 살펴보고, SQL·스트리밍·머신러닝 구성 요소를 정리한다.</description><pubDate>Wed, 10 Jul 2019 01:25:03 GMT</pubDate><category>Spark</category><category>Spark</category><category>아파치 스파크</category><category>Apache Spark</category><category>분산 처리</category><category>Distributed Computing</category></item><item><title>0. Storm 소개</title><link>https://pscheol.github.io/posts/0-storm-%EC%86%8C%EA%B0%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/0-storm-%EC%86%8C%EA%B0%9C/</guid><description>Storm의 Spout·Bolt·Topology로 이벤트를 처리하는 방식을 살펴보고, 스트림 그룹 분배와 ACK·재처리의 관계를 설명한다.</description><pubDate>Wed, 10 Jul 2019 01:25:03 GMT</pubDate><category>Storm</category><category>Storm</category><category>아파치 스톰</category><category>Apache Storm</category><category>스트림 처리</category><category>Stream Processing</category></item><item><title>[Kafka] 8. Spring Boot를 이용한 Kafka API 구축</title><link>https://pscheol.github.io/posts/kafka-8-spring-boot%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-kafka-api-%EA%B5%AC%EC%B6%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-8-spring-boot%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-kafka-api-%EA%B5%AC%EC%B6%95/</guid><description>Spring Boot에서 Kafka 메시지를 발행·소비하는 API를 구성하고, HTTP 응답과 비동기 메시지 처리 시점의 차이를 살펴본다.</description><pubDate>Tue, 09 Jul 2019 02:37:57 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>Spring</category><category>카프카</category><category>스프링 부트</category><category>Kafka API</category></item><item><title>[Kafka] 7. Apache Flume</title><link>https://pscheol.github.io/posts/kafka-7-apache-flume/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-7-apache-flume/</guid><description>Flume의 Source·Channel·Sink를 따라 로그가 이동하는 흐름을 이해하고, Kafka 연동 설정과 결과 확인 방법을 살펴본다.</description><pubDate>Mon, 08 Jul 2019 01:17:46 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>Apache Flume</category><category>카프카</category><category>아파치 플룸</category><category>데이터 수집</category></item><item><title>[Kafka] Intro. Message System</title><link>https://pscheol.github.io/posts/kafka-intro-message-system/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-intro-message-system/</guid><description>Messaging System은 하나의 프로그램에서 다른 프로그램으로 데이터를 전달할 수 있도록 돕는 시스템이다.</description><pubDate>Fri, 05 Jul 2019 02:23:07 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>아파치 카프카</category><category>메시징 시스템</category><category>Messaging System</category></item><item><title>[Kafka] 4. Kafka Cluster</title><link>https://pscheol.github.io/posts/kafka-4-kafka-cluster/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-4-kafka-cluster/</guid><description>브로커·컨트롤러·파티션 복제의 역할을 구분하고, 3노드 KRaft 실습으로 리더 장애와 ISR 변화를 확인한다.</description><pubDate>Thu, 04 Jul 2019 01:23:29 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>Kafka 클러스터</category></item><item><title>[Kafka]0. Zookeeper 개념</title><link>https://pscheol.github.io/posts/kafka-0-zookeeper-%EA%B0%9C%EB%85%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-0-zookeeper-%EA%B0%9C%EB%85%90/</guid><description>ZooKeeper의 znode·세션·앙상블이 분산 상태를 조정하는 방식을 설명하고, Kafka의 ZooKeeper 모드와 KRaft를 구분한다.</description><pubDate>Wed, 03 Jul 2019 01:58:39 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>ZooKeeper</category><category>카프카</category><category>주키퍼</category><category>분산 코디네이션</category></item><item><title>[Kafka] 6. kafka Stream</title><link>https://pscheol.github.io/posts/kafka-6-kafka-stream/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-6-kafka-stream/</guid><description>Kafka Streams의 스트림 처리 개념을 익히고, Pipe와 WordCount 예제로 토픽 간 전달과 단어 집계의 차이를 확인한다.</description><pubDate>Tue, 02 Jul 2019 07:04:16 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>Kafka Streams</category><category>카프카</category><category>스트림 처리</category><category>Stream Processing</category></item><item><title>[Kafka] 5. kafka topic message 처리하기</title><link>https://pscheol.github.io/posts/kafka-5-kafka-topic-message-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-5-kafka-topic-message-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0/</guid><description>Kafka 메시지를 숫자 범위에 따라 유효·무효 토픽으로 나누고, 전송 성공 확인과 오프셋 커밋 사이의 실패를 살펴본다.</description><pubDate>Mon, 01 Jul 2019 05:27:40 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>Kafka 토픽</category></item><item><title>[Kafka] 3. kafka Producer And Consumer API</title><link>https://pscheol.github.io/posts/kafka-3-kafka-producer-and-consumer-api/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-3-kafka-producer-and-consumer-api/</guid><description>Java Kafka 클라이언트의 프로듀서·컨슈머 설정을 살펴보고, 토픽에 레코드를 보내고 읽는 API 사용 예제를 따라간다.</description><pubDate>Thu, 27 Jun 2019 07:37:17 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>Kafka Producer</category><category>Kafka Consumer</category><category>카프카</category><category>프로듀서</category><category>컨슈머</category></item><item><title>[Kafka] 2. kafka QuickStart</title><link>https://pscheol.github.io/posts/kafka-2-kafka-quickstart/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-2-kafka-quickstart/</guid><description>Kafka 서버 실행부터 토픽 생성과 메시지 송수신까지 실습하고, 과거 ZooKeeper 방식과 KRaft 시작 절차를 구분한다.</description><pubDate>Wed, 26 Jun 2019 09:20:47 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>아파치 카프카</category><category>빠른 시작</category><category>Quickstart</category></item><item><title>[Kafka] 1. Apache Kafka 개념 및 소개</title><link>https://pscheol.github.io/posts/kafka-1-apache-kafka-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%86%8C%EA%B0%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/kafka-1-apache-kafka-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%86%8C%EA%B0%9C/</guid><description>Kafka의 프로듀서·브로커·컨슈머 구조와 토픽·파티션·복제를 살펴보고, 컨슈머 그룹이 메시지를 나누어 읽는 방식을 정리한다.</description><pubDate>Tue, 25 Jun 2019 10:00:24 GMT</pubDate><category>Kafka</category><category>Kafka</category><category>아파치 카프카</category><category>메시징</category><category>Messaging</category></item><item><title>5. docker image 조작</title><link>https://pscheol.github.io/posts/5-docker-image-%EC%A1%B0%EC%9E%91/</link><guid isPermaLink="true">https://pscheol.github.io/posts/5-docker-image-%EC%A1%B0%EC%9E%91/</guid><description>Docker 이미지의 다운로드·태그·게시·삭제 명령을 익히고, 이미지 이름·태그·다이제스트와 컨테이너 참조 관계를 구분한다.</description><pubDate>Mon, 24 Jun 2019 05:50:52 GMT</pubDate><category>Docker</category><category>Docker</category><category>Docker 이미지</category></item><item><title>Docker에서 Nginx 웹 서버 실행하기</title><link>https://pscheol.github.io/posts/4-docker-nginx-setup/</link><guid isPermaLink="true">https://pscheol.github.io/posts/4-docker-nginx-setup/</guid><description>공식 Nginx 이미지를 실행하고, 호스트 포트와 바인드 마운트로 정적 페이지를 제공하는 흐름을 확인한다.</description><pubDate>Mon, 24 Jun 2019 05:50:29 GMT</pubDate><category>Docker</category><category>Docker</category><category>Nginx</category><category>도커</category><category>엔진엑스</category><category>웹 서버</category></item><item><title>3. Docker기본 명령어</title><link>https://pscheol.github.io/posts/3-docker%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/3-docker%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4/</guid><description>Docker 버전·시스템 정보를 확인하고, 컨테이너 실행부터 상태·로그 확인과 정리까지 기본 명령을 작업 순서로 익힌다.</description><pubDate>Fri, 21 Jun 2019 03:33:16 GMT</pubDate><category>Docker</category><category>Docker</category><category>도커</category><category>명령줄</category><category>Command Line</category></item><item><title>Docker 설치</title><link>https://pscheol.github.io/posts/docker-%EC%84%A4%EC%B9%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/docker-%EC%84%A4%EC%B9%98/</guid><description>Windows의 Docker Desktop 설치 경로와 Ubuntu 24.04의 Docker Engine·Compose 플러그인 설치 및 검증 절차를 정리한다.</description><pubDate>Fri, 21 Jun 2019 03:15:03 GMT</pubDate><category>Docker</category><category>Docker</category><category>도커</category><category>설치</category><category>Installation</category></item><item><title>1. docker concepts</title><link>https://pscheol.github.io/posts/1-docker-concepts/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-docker-concepts/</guid><description>Docker 이미지와 컨테이너의 역할을 구분하고, 애플리케이션 실행 흐름과 가상 머신과의 격리 방식 차이를 살펴본다.</description><pubDate>Thu, 20 Jun 2019 08:02:22 GMT</pubDate><category>Docker</category><category>Docker</category><category>도커</category><category>컨테이너</category><category>Container</category></item><item><title>[BAEKJOON:1475] 방 번호</title><link>https://pscheol.github.io/posts/baekjoon-1475-%EB%B0%A9-%EB%B2%88%ED%98%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1475-%EB%B0%A9-%EB%B2%88%ED%98%B8/</guid><description>방 번호의 각 숫자 빈도를 세고 6과 9를 하나의 묶음으로 합쳐 필요한 숫자 세트 수를 계산한다.</description><pubDate>Wed, 19 Jun 2019 03:43:10 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Digit Counting</category></item><item><title>[BAEKJOON:2775]부녀회장이 될테야</title><link>https://pscheol.github.io/posts/baekjoon-2775-%EB%B6%80%EB%85%80%ED%9A%8C%EC%9E%A5%EC%9D%B4-%EB%90%A0%ED%85%8C%EC%95%BC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-2775-%EB%B6%80%EB%85%80%ED%9A%8C%EC%9E%A5%EC%9D%B4-%EB%90%A0%ED%85%8C%EC%95%BC/</guid><description>아래층 1호부터 같은 호까지의 누적합을 옆집 점화식으로 바꾸어 각 층의 거주 인원을 계산한다.</description><pubDate>Wed, 19 Jun 2019 03:43:10 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>누적 합</category><category>Cumulative Sum</category></item><item><title>[BAEKJOON:1924] 2007년</title><link>https://pscheol.github.io/posts/baekjoon-1924-2007%EB%85%84/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1924-2007%EB%85%84/</guid><description>월별 일수를 누적해 입력 날짜를 연중 일련번호로 바꾼 뒤 요일을 계산한다. 월 경계와 1월 1일 기준을 확인한다.</description><pubDate>Tue, 18 Jun 2019 03:35:31 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>날짜 계산</category><category>Date Calculation</category></item><item><title>[BAEKJOON:10250] ACM 호텔</title><link>https://pscheol.github.io/posts/baekjoon-10250-acm-%ED%98%B8%ED%85%94/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-10250-acm-%ED%98%B8%ED%85%94/</guid><description>손님의 순번을 층과 방 열 번호로 변환해 호텔 방 번호를 바로 계산한다. 층수가 나누어떨어지는 경계와 두 자리 방 번호를 다룬다.</description><pubDate>Fri, 14 Jun 2019 03:36:19 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>호텔 방 배정</category><category>Room Assignment</category></item><item><title>[BAEKJOON_1011] Fly me to the Alpha Centauri</title><link>https://pscheol.github.io/posts/baekjoon-1011-fly-me-to-the-alpha-centauri/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1011-fly-me-to-the-alpha-centauri/</guid><description>이동 횟수별 최대 거리를 제곱수 경계로 나누고, 정수 제곱근과 남은 거리를 비교해 최소 작동 횟수를 구한다.</description><pubDate>Thu, 13 Jun 2019 06:04:37 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>이동 거리</category><category>Movement Pattern</category></item><item><title>[BAEKJOON_1193] 분수찾기</title><link>https://pscheol.github.io/posts/baekjoon-1193-%EB%B6%84%EC%88%98%EC%B0%BE%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-1193-%EB%B6%84%EC%88%98%EC%B0%BE%EA%B8%B0/</guid><description>대각선마다 늘어나는 분수 개수로 X가 속한 대각선을 찾고, 홀짝에 따른 분자·분모의 진행 방향을 구분한다.</description><pubDate>Wed, 12 Jun 2019 06:10:56 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Fraction Sequence</category></item><item><title>기술 학습 문서 목차</title><link>https://pscheol.github.io/posts/%EA%B8%B0%EC%88%A0-%ED%95%99%EC%8A%B5-%EB%AC%B8%EC%84%9C-%EB%AA%A9%EC%B0%A8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EA%B8%B0%EC%88%A0-%ED%95%99%EC%8A%B5-%EB%AC%B8%EC%84%9C-%EB%AA%A9%EC%B0%A8/</guid><description>DDD·디자인 패턴·Java·알고리즘·Docker·Kafka 등 기술 학습 글과 원본 부속 자료로 이동할 수 있는 문서·자산 목차다.</description><pubDate>Wed, 12 Jun 2019 03:13:03 GMT</pubDate><category>목차</category><category>학습 자료</category><category>Study Notes</category><category>기술 문서</category><category>Technical Documentation</category></item><item><title>BAEKJOON:2292 벌집</title><link>https://pscheol.github.io/posts/baekjoon-2292-%EB%B2%8C%EC%A7%91/</link><guid isPermaLink="true">https://pscheol.github.io/posts/baekjoon-2292-%EB%B2%8C%EC%A7%91/</guid><description>벌집의 고리마다 방이 6의 배수씩 늘어나는 규칙으로 마지막 번호를 갱신한다. 경계 번호에서 지나가는 방 수를 구한다.</description><pubDate>Wed, 12 Jun 2019 03:10:40 GMT</pubDate><category>코딩 테스트</category><category>알고리즘</category><category>백준</category><category>Baekjoon</category><category>Honeycomb</category><category>Number Pattern</category></item><item><title>[스프링] 자동으로 빈 와이어링하기(Bean Auto Wiring)</title><link>https://pscheol.github.io/posts/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EB%B9%88-%EC%99%80%EC%9D%B4%EC%96%B4%EB%A7%81%ED%95%98%EA%B8%B0-bean-auto-wiring/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EB%B9%88-%EC%99%80%EC%9D%B4%EC%96%B4%EB%A7%81%ED%95%98%EA%B8%B0-bean-auto-wiring/</guid><description>컴포넌트 스캔으로 빈을 등록하고 생성자 주입으로 연결하는 단계를 구분해, 후보 충돌과 스캔 범위 문제를 점검한다.</description><pubDate>Mon, 19 Nov 2018 01:53:08 GMT</pubDate><category>Spring</category><category>Spring</category><category>의존성 주입</category></item><item><title>스프링 목적과 DI 정의</title><link>https://pscheol.github.io/posts/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%AA%A9%EC%A0%81%EA%B3%BC-di-%EC%A0%95%EC%9D%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%AA%A9%EC%A0%81%EA%B3%BC-di-%EC%A0%95%EC%9D%98/</guid><description>Spring의 POJO·DI가 객체 결합도를 낮추는 과정을 코드로 비교하고, 설정이 복잡해지는 경우의 선택 기준을 다룬다.</description><pubDate>Fri, 16 Nov 2018 07:45:01 GMT</pubDate><category>Spring</category><category>Spring</category><category>의존성 주입</category></item><item><title>개발정리사이트</title><link>https://pscheol.github.io/posts/%EA%B0%9C%EB%B0%9C%EC%A0%95%EB%A6%AC%EC%82%AC%EC%9D%B4%ED%8A%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EA%B0%9C%EB%B0%9C%EC%A0%95%EB%A6%AC%EC%82%AC%EC%9D%B4%ED%8A%B8/</guid><description>정규표현식 테스트·시각화, 웹 개발 문서와 도구, 네트워크 점검 등 개발 작업별로 참고해 둔 사이트를 모았다.</description><pubDate>Wed, 26 Jul 2017 04:55:43 GMT</pubDate><category>참고 자료</category><category>개발 도구</category><category>Development Tools</category><category>개발 자료</category><category>Developer Resources</category></item><item><title>Markdown 문법</title><link>https://pscheol.github.io/posts/markdown-%EB%AC%B8%EB%B2%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/markdown-%EB%AC%B8%EB%B2%95/</guid><description>제목·문단·목록·코드·링크·이미지 문법을 작성 예와 함께 익히고, 렌더러 차이로 생기는 문제를 확인한다.</description><pubDate>Sat, 24 Jun 2017 14:30:39 GMT</pubDate><category>Markdown</category><category>Markdown</category><category>마크다운</category><category>문법</category><category>Syntax</category></item><item><title>[Linux] 리눅스파일관리, 소유권 변경</title><link>https://pscheol.github.io/posts/linux-%EB%A6%AC%EB%88%85%EC%8A%A4%ED%8C%8C%EC%9D%BC%EA%B4%80%EB%A6%AC-%EC%86%8C%EC%9C%A0%EA%B6%8C-%EB%B3%80%EA%B2%BD/</link><guid isPermaLink="true">https://pscheol.github.io/posts/linux-%EB%A6%AC%EB%88%85%EC%8A%A4%ED%8C%8C%EC%9D%BC%EA%B4%80%EB%A6%AC-%EC%86%8C%EC%9C%A0%EA%B6%8C-%EB%B3%80%EA%B2%BD/</guid><description>Linux 파일 정보와 권한·소유자를 확인하는 명령을 익히고, 접근 오류의 원인을 찾아 필요한 범위의 권한을 변경한다.</description><pubDate>Wed, 26 Apr 2017 05:14:55 GMT</pubDate><category>Linux</category><category>Linux</category><category>리눅스</category><category>파일 권한</category><category>File Permissions</category><category>소유권</category></item><item><title>[Linux]사용자계정관리</title><link>https://pscheol.github.io/posts/linux-%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B3%84%EC%A0%95%EA%B4%80%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/linux-%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B3%84%EC%A0%95%EA%B4%80%EB%A6%AC/</guid><description>Linux 사용자 생성·그룹 지정·권한 확인·계정 삭제를 살펴보고, 서비스 계정과 로그인 계정의 관리 범위를 구분한다.</description><pubDate>Wed, 26 Apr 2017 02:07:10 GMT</pubDate><category>Linux</category><category>Linux</category><category>리눅스</category><category>사용자 관리</category><category>User Management</category></item><item><title>[병렬프로그래밍] 6. 작업실행</title><link>https://pscheol.github.io/posts/%EB%B3%91%EB%A0%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-6-%EC%9E%91%EC%97%85%EC%8B%A4%ED%96%89/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%B3%91%EB%A0%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-6-%EC%9E%91%EC%97%85%EC%8B%A4%ED%96%89/</guid><description>웹 서버 요청 처리 방식을 단일 스레드, 요청별 스레드, Executor 풀로 비교하고 작업 취소·완료와 자원 한계를 살펴본다.</description><pubDate>Tue, 25 Apr 2017 08:40:05 GMT</pubDate><category>동시성</category><category>동시성</category><category>Java</category></item><item><title>[Ubuntu] 무선 네트워크 설정</title><link>https://pscheol.github.io/posts/ubuntu-%EB%AC%B4%EC%84%A0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%84%A4%EC%A0%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/ubuntu-%EB%AC%B4%EC%84%A0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%84%A4%EC%A0%95/</guid><description>Ubuntu의 무선 인터페이스와 관리 도구를 확인하고, NetworkManager·Netplan 연결 설정과 장애 점검 순서를 살펴본다.</description><pubDate>Fri, 14 Apr 2017 08:44:41 GMT</pubDate><category>Linux</category><category>Linux</category><category>Ubuntu</category><category>우분투</category><category>무선 네트워크</category><category>Wireless Networking</category></item><item><title>[Ubuntu]유선 네트워크 설정</title><link>https://pscheol.github.io/posts/ubuntu-%EC%9C%A0%EC%84%A0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%84%A4%EC%A0%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/ubuntu-%EC%9C%A0%EC%84%A0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%84%A4%EC%A0%95/</guid><description>Ubuntu 유선 네트워크의 DHCP·고정 IP 설정을 살펴보고, 기존 interfaces 방식과 Netplan의 적용·검증 절차를 구분한다.</description><pubDate>Fri, 14 Apr 2017 08:34:48 GMT</pubDate><category>Linux</category><category>Linux</category><category>Ubuntu</category><category>우분투</category><category>유선 네트워크</category><category>Wired Networking</category></item><item><title>우분투 영문 로케일 설정</title><link>https://pscheol.github.io/posts/%EC%9A%B0%EB%B6%84%ED%88%AC-%EC%98%81%EB%AC%B8-%EB%A1%9C%EC%BC%80%EC%9D%BC-%EC%84%A4%EC%A0%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%9A%B0%EB%B6%84%ED%88%AC-%EC%98%81%EB%AC%B8-%EB%A1%9C%EC%BC%80%EC%9D%BC-%EC%84%A4%EC%A0%95/</guid><description>Ubuntu에서 영문 UTF-8 로케일을 설정하고, LANG·LC_ALL의 우선순위와 세션·시스템 기본값에 적용되는 범위를 확인한다.</description><pubDate>Fri, 14 Apr 2017 08:23:25 GMT</pubDate><category>Linux</category><category>Linux</category><category>Ubuntu</category><category>우분투</category><category>로케일</category><category>Locale</category></item><item><title>리눅스 시스템 디렉토리</title><link>https://pscheol.github.io/posts/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC/</guid><description>Linux의 루트 아래에 있는 주요 디렉터리를 살펴보고, 장치·설정·사용자 파일 등 각 경로에 저장되는 정보의 역할을 정리한다.</description><pubDate>Fri, 14 Apr 2017 07:32:04 GMT</pubDate><category>Linux</category><category>Linux</category><category>리눅스</category><category>파일 시스템</category><category>Filesystem</category></item><item><title>[Netty]네티서버에 필요한 요소</title><link>https://pscheol.github.io/posts/netty-%EB%84%A4%ED%8B%B0%EC%84%9C%EB%B2%84%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EC%9A%94%EC%86%8C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/netty-%EB%84%A4%ED%8B%B0%EC%84%9C%EB%B2%84%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EC%9A%94%EC%86%8C/</guid><description>EventLoopGroup·Channel·Pipeline·Handler가 요청을 처리하는 순서를 따라가며 Netty 서버의 구성 요소와 책임을 구분한다.</description><pubDate>Fri, 14 Apr 2017 06:57:19 GMT</pubDate><category>Netty</category><category>Netty</category><category>네티</category><category>네트워크 서버</category><category>Network Server</category><category>EventLoop</category></item><item><title>[Netty] @Sharable</title><link>https://pscheol.github.io/posts/netty-sharable/</link><guid isPermaLink="true">https://pscheol.github.io/posts/netty-sharable/</guid><description>Netty 핸들러를 여러 채널이 공유할 때 생기는 상태 경쟁을 살펴보고, 채널별 데이터와 @Sharable 사용 기준을 정리한다.</description><pubDate>Thu, 13 Apr 2017 09:28:46 GMT</pubDate><category>Netty</category><category>Netty</category><category>네티</category><category>채널 핸들러</category><category>ChannelHandler</category><category>Sharable</category></item><item><title>[Netty] 1. 네티 프레임워크</title><link>https://pscheol.github.io/posts/netty-1-%EB%84%A4%ED%8B%B0-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/netty-1-%EB%84%A4%ED%8B%B0-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC/</guid><description>Netty의 이벤트 루프와 채널 파이프라인을 따라 연결과 메시지가 처리되는 흐름을 살펴보고 ByteBuf 관리의 주의점을 짚는다.</description><pubDate>Thu, 13 Apr 2017 07:44:23 GMT</pubDate><category>Netty</category><category>Netty</category><category>네티</category><category>비동기 네트워크</category><category>Asynchronous Networking</category></item><item><title>volatile 키워드</title><link>https://pscheol.github.io/posts/volatile-%ED%82%A4%EC%9B%8C%EB%93%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/volatile-%ED%82%A4%EC%9B%8C%EB%93%9C/</guid><description>volatile의 가시성·순서 보장과 복합 연산의 원자성이 다른 문제인 이유를 예제로 살펴본다.</description><pubDate>Thu, 13 Apr 2017 05:46:17 GMT</pubDate><category>동시성</category><category>동시성</category><category>Java</category></item><item><title>NIO TCP blocking channel 소켓서버 &amp; 클라이언트</title><link>https://pscheol.github.io/posts/nio-tcp-blocking-channel-%EC%86%8C%EC%BC%93%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/nio-tcp-blocking-channel-%EC%86%8C%EC%BC%93%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8/</guid><description>블로킹 SocketChannel로 TCP 에코 서버·클라이언트를 만들고 길이 프레임, 부분 읽기·쓰기, 메시지 크기 검증을 구현한다.</description><pubDate>Thu, 30 Mar 2017 03:29:58 GMT</pubDate><category>입출력과 네트워크</category><category>입출력과 네트워크</category><category>Java</category></item><item><title>비동기 파일채널</title><link>https://pscheol.github.io/posts/%EB%B9%84%EB%8F%99%EA%B8%B0-%ED%8C%8C%EC%9D%BC%EC%B1%84%EB%84%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%B9%84%EB%8F%99%EA%B8%B0-%ED%8C%8C%EC%9D%BC%EC%B1%84%EB%84%90/</guid><description>AsynchronousFileChannel의 Future와 CompletionHandler로 파일 읽기·쓰기 완료를 처리하고 부분 I/O와 채널 종료 시점을 살펴본다.</description><pubDate>Wed, 29 Mar 2017 08:33:47 GMT</pubDate><category>입출력과 네트워크</category><category>입출력과 네트워크</category><category>Java</category></item><item><title>NIO</title><link>https://pscheol.github.io/posts/nio/</link><guid isPermaLink="true">https://pscheol.github.io/posts/nio/</guid><description>Java NIO의 Channel과 ByteBuffer의 position·limit·capacity를 설명하고 다이렉트 버퍼와 Selector의 선택 기준을 살펴본다.</description><pubDate>Wed, 29 Mar 2017 07:10:31 GMT</pubDate><category>입출력과 네트워크</category><category>입출력과 네트워크</category><category>Java</category></item><item><title>[JAVA NIO] WatchService(와치서비스)</title><link>https://pscheol.github.io/posts/java-nio-watchservice-%EC%99%80%EC%B9%98%EC%84%9C%EB%B9%84%EC%8A%A4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/java-nio-watchservice-%EC%99%80%EC%B9%98%EC%84%9C%EB%B9%84%EC%8A%A4/</guid><description>Java WatchService로 디렉터리 생성·수정·삭제 이벤트를 감시하고 키 재등록, 중복·누락 이벤트 및 파일 기록 완료 시점을 다룬다.</description><pubDate>Fri, 24 Mar 2017 04:55:10 GMT</pubDate><category>입출력과 네트워크</category><category>입출력과 네트워크</category><category>Java</category></item><item><title>Git 명령어</title><link>https://pscheol.github.io/posts/git-%EB%AA%85%EB%A0%B9%EC%96%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/git-%EB%AA%85%EB%A0%B9%EC%96%B4/</guid><description>작업 디렉터리·스테이징·커밋·원격 저장소의 차이를 실습하고, 브랜치 병합과 변경 복구 명령을 구분한다.</description><pubDate>Sun, 05 Mar 2017 16:32:10 GMT</pubDate><category>Git</category><category>Git</category><category>깃</category><category>버전 관리</category><category>Version Control</category></item><item><title>규칙 2. 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라</title><link>https://pscheol.github.io/posts/%EA%B7%9C%EC%B9%99-2-%EC%83%9D%EC%84%B1%EC%9E%90-%EC%9D%B8%EC%9E%90%EA%B0%80-%EB%A7%8E%EC%9D%84-%EB%95%8C%EB%8A%94-builder-%ED%8C%A8%ED%84%B4-%EC%A0%81%EC%9A%A9%EC%9D%84-%EA%B3%A0%EB%A0%A4%ED%95%98%EB%9D%BC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EA%B7%9C%EC%B9%99-2-%EC%83%9D%EC%84%B1%EC%9E%90-%EC%9D%B8%EC%9E%90%EA%B0%80-%EB%A7%8E%EC%9D%84-%EB%95%8C%EB%8A%94-builder-%ED%8C%A8%ED%84%B4-%EC%A0%81%EC%9A%A9%EC%9D%84-%EA%B3%A0%EB%A0%A4%ED%95%98%EB%9D%BC/</guid><description>선택 인자가 많은 Java 객체를 Builder로 구성하고 필수값 검증, 중간 상태 차단, 빌더 재사용 시 주의점을 예제로 살펴본다.</description><pubDate>Thu, 19 Jan 2017 07:32:27 GMT</pubDate><category>기초</category><category>Java</category><category>Builder 패턴</category></item><item><title>규칙 1. 생성자대신 정적 팩터리 메서드를 사용할 수 없는지 생각해 보라</title><link>https://pscheol.github.io/posts/%EA%B7%9C%EC%B9%99-1-%EC%83%9D%EC%84%B1%EC%9E%90%EB%8C%80%EC%8B%A0-%EC%A0%95%EC%A0%81-%ED%8C%A9%ED%84%B0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%A0-%EC%88%98-%EC%97%86%EB%8A%94%EC%A7%80-%EC%83%9D%EA%B0%81%ED%95%B4-%EB%B3%B4%EB%9D%BC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EA%B7%9C%EC%B9%99-1-%EC%83%9D%EC%84%B1%EC%9E%90%EB%8C%80%EC%8B%A0-%EC%A0%95%EC%A0%81-%ED%8C%A9%ED%84%B0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%A0-%EC%88%98-%EC%97%86%EB%8A%94%EC%A7%80-%EC%83%9D%EA%B0%81%ED%95%B4-%EB%B3%B4%EB%9D%BC/</guid><description>Java 정적 팩터리 메서드의 이름·반환 타입·객체 재사용 이점을 생성자와 비교하고 선택 시 고려할 제약을 예제로 설명한다.</description><pubDate>Thu, 19 Jan 2017 06:18:45 GMT</pubDate><category>기초</category><category>Java</category><category>정적 팩터리 메서드</category></item><item><title>리눅스에서 could not initialize class javax.imageio.ImageIO 에러가 발생할 경우</title><link>https://pscheol.github.io/posts/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-could-not-initialize-class-javax-imageio-imageio-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%A0-%EA%B2%BD%EC%9A%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-could-not-initialize-class-javax-imageio-imageio-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%A0-%EA%B2%BD%EC%9A%B0/</guid><description>Linux에서 Java ImageIO 초기화가 실패할 때 최초 예외를 확인하고, 네이티브 라이브러리와 headless 설정을 점검한다.</description><pubDate>Tue, 17 Jan 2017 05:54:34 GMT</pubDate><category>Linux</category><category>Linux</category><category>리눅스</category><category>Java ImageIO</category><category>오류 해결</category><category>Troubleshooting</category></item><item><title>리눅스에서 java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment 에러가 발생할 경우</title><link>https://pscheol.github.io/posts/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-java-lang-noclassdeffounderror-sun-awt-x11graphicsenvironment-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%A0-%EA%B2%BD%EC%9A%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-java-lang-noclassdeffounderror-sun-awt-x11graphicsenvironment-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%A0-%EA%B2%BD%EC%9A%B0/</guid><description>Linux 서버의 Java X11GraphicsEnvironment 오류를 진단하고, headless 모드의 적용 조건과 Tomcat 실행 옵션을 확인한다.</description><pubDate>Tue, 17 Jan 2017 05:51:25 GMT</pubDate><category>Linux</category><category>Linux</category><category>Java</category><category>리눅스</category><category>Java AWT</category><category>오류 해결</category></item><item><title>[DB설계]1. PK 컬럼 순서, 대충하지 말자</title><link>https://pscheol.github.io/posts/db%EC%84%A4%EA%B3%84-1-pk-%EC%BB%AC%EB%9F%BC-%EC%88%9C%EC%84%9C-%EB%8C%80%EC%B6%A9%ED%95%98%EC%A7%80-%EB%A7%90%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/db%EC%84%A4%EA%B3%84-1-pk-%EC%BB%AC%EB%9F%BC-%EC%88%9C%EC%84%9C-%EB%8C%80%EC%B6%A9%ED%95%98%EC%A7%80-%EB%A7%90%EC%9E%90/</guid><description>복합 기본 키의 컬럼 순서가 인덱스 조회 범위에 미치는 영향을 비교하고, 조회 조건과 변경 비용을 함께 검토한다.</description><pubDate>Tue, 13 Dec 2016 07:50:42 GMT</pubDate><category>설계</category><category>데이터베이스</category><category>기본 키</category><category>Database Design</category><category>Primary Key</category><category>Column Order</category></item><item><title>[병렬처리]2. 스레드의 안전성</title><link>https://pscheol.github.io/posts/%EB%B3%91%EB%A0%AC%EC%B2%98%EB%A6%AC-2-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%95%88%EC%A0%84%EC%84%B1/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%B3%91%EB%A0%AC%EC%B2%98%EB%A6%AC-2-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%95%88%EC%A0%84%EC%84%B1/</guid><description>공유 가변 상태가 스레드 안전성에 미치는 영향을 살펴보고 동기화·캡슐화·불변 객체로 클래스의 정확성을 지키는 방법을 정리한다.</description><pubDate>Mon, 12 Dec 2016 02:13:20 GMT</pubDate><category>동시성</category><category>동시성</category><category>Java</category></item><item><title>String 보다는 StringBuilder, StringBuffer를 사용해야하는 이유.</title><link>https://pscheol.github.io/posts/string-%EB%B3%B4%EB%8B%A4%EB%8A%94-stringbuilder-stringbuffer%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/string-%EB%B3%B4%EB%8B%A4%EB%8A%94-stringbuilder-stringbuffer%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/</guid><description>문자열 누적 상황에서 String과 StringBuilder의 생성 비용을 비교하고 StringBuffer의 동기화가 필요한 범위를 예제로 설명한다.</description><pubDate>Fri, 07 Oct 2016 09:01:59 GMT</pubDate><category>기초</category><category>Java</category><category>StringBuilder</category><category>자바</category><category>문자열 처리</category><category>String Processing</category></item><item><title>Mybatis란? 그리고 설정하는 방법...</title><link>https://pscheol.github.io/posts/mybatis%EB%9E%80-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95/</link><guid isPermaLink="true">https://pscheol.github.io/posts/mybatis%EB%9E%80-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95/</guid><description>MyBatis의 SqlSessionFactory와 XML 매퍼를 설정해 한 건을 조회하고, 트랜잭션 경계와 안전한 SQL 매개변수를 확인한다.</description><pubDate>Fri, 19 Aug 2016 05:37:48 GMT</pubDate><category>MyBatis</category><category>MyBatis</category><category>마이바티스</category><category>SQL 매퍼</category><category>SQL Mapper</category></item><item><title>[링크]셧다운 후크를 사용한 어플리케이션의 안전한 종료 처리</title><link>https://pscheol.github.io/posts/%EB%A7%81%ED%81%AC-%EC%85%A7%EB%8B%A4%EC%9A%B4-%ED%9B%84%ED%81%AC%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%98-%EC%95%88%EC%A0%84%ED%95%9C-%EC%A2%85%EB%A3%8C-%EC%B2%98%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%A7%81%ED%81%AC-%EC%85%A7%EB%8B%A4%EC%9A%B4-%ED%9B%84%ED%81%AC%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%98-%EC%95%88%EC%A0%84%ED%95%9C-%EC%A2%85%EB%A3%8C-%EC%B2%98%EB%A6%AC/</guid><description>JVM 셧다운 훅으로 Executor 작업을 제한된 시간에 정리하는 방법과 훅이 실행되지 않는 종료 상황, 훅 사이 순서 제약을 살펴본다.</description><pubDate>Thu, 11 Aug 2016 07:51:31 GMT</pubDate><category>동시성</category><category>동시성</category><category>Java</category></item><item><title>Java static 키워드</title><link>https://pscheol.github.io/posts/java-static-%ED%82%A4%EC%9B%8C%EB%93%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/java-static-%ED%82%A4%EC%9B%8C%EB%93%9C/</guid><description>Java static 필드·메서드가 인스턴스와 달리 공유되는 방식, 정적 중첩 클래스와 초기화 시점 및 공유 상태의 주의점을 설명한다.</description><pubDate>Thu, 11 Aug 2016 07:20:59 GMT</pubDate><category>기초</category><category>Java</category><category>자바</category><category>static 키워드</category><category>static Keyword</category></item><item><title>java final 키워드</title><link>https://pscheol.github.io/posts/java-final-%ED%82%A4%EC%9B%8C%EB%93%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/java-final-%ED%82%A4%EC%9B%8C%EB%93%9C/</guid><description>Java final이 클래스 상속, 메서드 재정의, 변수 재할당에 각각 미치는 영향을 예제로 구분하고 참조 불변성과의 차이를 짚는다.</description><pubDate>Thu, 11 Aug 2016 05:08:07 GMT</pubDate><category>기초</category><category>Java</category><category>자바</category><category>final 키워드</category><category>final Keyword</category></item><item><title>MariaDB 원격 계정 접속 관리</title><link>https://pscheol.github.io/posts/mariadb-%EC%9B%90%EA%B2%A9-%EA%B3%84%EC%A0%95-%EC%A0%91%EC%86%8D-%EA%B4%80%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/mariadb-%EC%9B%90%EA%B2%A9-%EA%B3%84%EC%A0%95-%EC%A0%91%EC%86%8D-%EA%B4%80%EB%A6%AC/</guid><description>MariaDB의 원격 접속에 필요한 바인딩·계정 권한·방화벽·TLS 설정을 연결하고, 접속 실패 원인을 구분한다.</description><pubDate>Wed, 10 Aug 2016 08:32:08 GMT</pubDate><category>MariaDB</category><category>MariaDB</category><category>원격 접속</category><category>Remote Access</category><category>계정 관리</category><category>User Management</category></item><item><title>우분투에서 MariaDB 설치하기</title><link>https://pscheol.github.io/posts/%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90%EC%84%9C-mariadb-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90%EC%84%9C-mariadb-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0/</guid><description>Ubuntu 24.04에서 MariaDB 패키지를 설치하고 서비스 상태와 초기 보안 설정, 설치 오류를 확인하는 절차를 정리한다.</description><pubDate>Wed, 10 Aug 2016 07:36:14 GMT</pubDate><category>MariaDB</category><category>MariaDB</category><category>Ubuntu</category><category>마리아DB</category><category>우분투</category><category>데이터베이스 설치</category></item><item><title>[Netty] Netty에서 Object객체 전송 및 ByteBuf로 변환하여 전송하기</title><link>https://pscheol.github.io/posts/netty-netty%EC%97%90%EC%84%9C-object%EA%B0%9D%EC%B2%B4-%EC%A0%84%EC%86%A1-%EB%B0%8F-bytebuf%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EC%97%AC-%EC%A0%84%EC%86%A1%ED%95%98%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/netty-netty%EC%97%90%EC%84%9C-object%EA%B0%9D%EC%B2%B4-%EC%A0%84%EC%86%A1-%EB%B0%8F-bytebuf%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EC%97%AC-%EC%A0%84%EC%86%A1%ED%95%98%EA%B8%B0/</guid><description>옛 Java 객체 직렬화 예제의 위험을 짚고, 길이 프레임과 ByteBuf로 필드를 명시적으로 인코딩·검증하는 방법을 설명한다.</description><pubDate>Wed, 01 Jun 2016 08:36:22 GMT</pubDate><category>Netty</category><category>Netty</category><category>ByteBuf</category><category>네티</category><category>객체 전송</category><category>Object Serialization</category></item><item><title>FactoryBean을 사용해야하는 경우와 사용예제(link)</title><link>https://pscheol.github.io/posts/factorybean%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC%ED%95%98%EB%8A%94-%EA%B2%BD%EC%9A%B0%EC%99%80-%EC%82%AC%EC%9A%A9%EC%98%88%EC%A0%9C-link/</link><guid isPermaLink="true">https://pscheol.github.io/posts/factorybean%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC%ED%95%98%EB%8A%94-%EA%B2%BD%EC%9A%B0%EC%99%80-%EC%82%AC%EC%9A%A9%EC%98%88%EC%A0%9C-link/</guid><description>Spring FactoryBean이 복잡한 객체 생성을 빈으로 연결하는 방식을 SqlSessionFactoryBean 사례로 살펴본다.</description><pubDate>Thu, 26 May 2016 08:18:19 GMT</pubDate><category>Spring</category><category>Spring</category><category>스프링 프레임워크</category><category>FactoryBean</category><category>빈 생성</category></item><item><title>스레드</title><link>https://pscheol.github.io/posts/%EC%8A%A4%EB%A0%88%EB%93%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%8A%A4%EB%A0%88%EB%93%9C/</guid><description>Java 스레드의 동시성과 병렬성, 공유 상태의 경쟁 조건, synchronized로 임계 영역을 보호하는 방법을 정리한다.</description><pubDate>Wed, 25 May 2016 04:57:35 GMT</pubDate><category>동시성</category><category>동시성</category><category>Java</category></item><item><title>MVC2패턴으로 구현한 jsp &amp; servlet 게시판</title><link>https://pscheol.github.io/posts/mvc2%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C-%EA%B5%AC%ED%98%84%ED%95%9C-jsp-servlet-%EA%B2%8C%EC%8B%9C%ED%8C%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/mvc2%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C-%EA%B5%AC%ED%98%84%ED%95%9C-jsp-servlet-%EA%B2%8C%EC%8B%9C%ED%8C%90/</guid><description>Servlet 컨트롤러와 JSP 화면으로 게시판의 목록·작성·상세 요청을 분리하고, DB 연결과 업로드 경계를 점검한다.</description><pubDate>Tue, 26 Apr 2016 05:28:25 GMT</pubDate><category>JSP</category><category>JSP</category><category>Servlet</category><category>서블릿</category><category>게시판</category><category>MVC 패턴</category></item><item><title>Template Method Pattern(템플릿 메서드 패턴)</title><link>https://pscheol.github.io/posts/template-method-pattern-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/template-method-pattern-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4/</guid><description>출력 순서를 고정한 템플릿 메서드 예제로 공통 알고리즘과 가변 단계를 분리하고, 상속이 적합한 조건과 정리 단계의 예외 처리를 검토한다.</description><pubDate>Tue, 26 Apr 2016 01:40:47 GMT</pubDate><category>디자인 패턴</category><category>디자인 패턴</category><category>템플릿 메서드 패턴</category><category>Design Pattern</category><category>Template Method Pattern</category></item><item><title>Adapter Pattern</title><link>https://pscheol.github.io/posts/adapter-pattern/</link><guid isPermaLink="true">https://pscheol.github.io/posts/adapter-pattern/</guid><description>기존 Banner와 Print 인터페이스를 연결하는 상속형·위임형 어댑터를 비교하고, 메서드 이름뿐 아니라 값과 오류 의미까지 맞춰야 하는 이유를 설명한다.</description><pubDate>Mon, 25 Apr 2016 01:28:14 GMT</pubDate><category>디자인 패턴</category><category>디자인 패턴</category><category>어댑터 패턴</category><category>Design Pattern</category><category>Adapter Pattern</category></item><item><title>Iterator Pattern</title><link>https://pscheol.github.io/posts/iterator-pattern/</link><guid isPermaLink="true">https://pscheol.github.io/posts/iterator-pattern/</guid><description>책장 예제로 Java Iterable·Iterator의 순회 계약을 따라가며 제네릭 타입, 다음 원소 부재, 순회 중 변경 정책을 검토한다.</description><pubDate>Thu, 21 Apr 2016 05:40:41 GMT</pubDate><category>디자인 패턴</category><category>디자인 패턴</category><category>이터레이터 패턴</category><category>Design Pattern</category><category>Iterator Pattern</category></item><item><title>[JavaScript]브라우저명과 모바일, PC브라우저 체크</title><link>https://pscheol.github.io/posts/javascript-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EB%AA%85%EA%B3%BC-%EB%AA%A8%EB%B0%94%EC%9D%BC-pc%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EC%B2%B4%ED%81%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/javascript-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EB%AA%85%EA%B3%BC-%EB%AA%A8%EB%B0%94%EC%9D%BC-pc%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EC%B2%B4%ED%81%AC/</guid><description>과거 브라우저 식별 코드의 UA 오분류 원인을 짚고 진단용 추정 예제와 기능 감지·반응형 배치를 선택하는 기준을 설명한다.</description><pubDate>Thu, 14 Apr 2016 06:51:00 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>자바스크립트</category><category>브라우저 감지</category><category>Browser Detection</category></item><item><title>[JavaScript] 5자리 인증번호 만들기</title><link>https://pscheol.github.io/posts/javascript-5%EC%9E%90%EB%A6%AC-%EC%9D%B8%EC%A6%9D%EB%B2%88%ED%98%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/javascript-5%EC%9E%90%EB%A6%AC-%EC%9D%B8%EC%A6%9D%EB%B2%88%ED%98%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>Math.random으로 만든 5자리 숫자 데모의 한계를 짚고 실제 인증번호를 서버에서 생성·검증할 때 필요한 만료와 시도 제한을 설명한다.</description><pubDate>Mon, 11 Apr 2016 08:46:43 GMT</pubDate><category>언어 기능</category><category>JavaScript</category><category>자바스크립트</category><category>인증번호</category><category>Verification Code</category></item><item><title>[JSP] JSTL</title><link>https://pscheol.github.io/posts/jsp-jstl/</link><guid isPermaLink="true">https://pscheol.github.io/posts/jsp-jstl/</guid><description>Jakarta Tags의 반복·조건 태그로 JSP 목록을 렌더링하고, 출력 이스케이프와 빈 목록 처리 방법을 살펴본다.</description><pubDate>Thu, 07 Apr 2016 06:04:03 GMT</pubDate><category>JSP</category><category>JSP</category><category>JSTL</category><category>자바 서버 페이지</category><category>JSTL 태그 라이브러리</category></item><item><title>[JSP] 쿠키와 세션</title><link>https://pscheol.github.io/posts/jsp-%EC%BF%A0%ED%82%A4%EC%99%80-%EC%84%B8%EC%85%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/jsp-%EC%BF%A0%ED%82%A4%EC%99%80-%EC%84%B8%EC%85%98/</guid><description>JSP·Servlet에서 쿠키와 서버 세션을 구분하고, 로그인 상태와 선호 언어 예제로 식별자 보안과 만료 처리를 설명한다.</description><pubDate>Wed, 06 Apr 2016 07:36:18 GMT</pubDate><category>JSP</category><category>JSP</category><category>쿠키</category><category>세션</category></item><item><title>[NIO] 파일 채널(FileChannel)</title><link>https://pscheol.github.io/posts/nio-%ED%8C%8C%EC%9D%BC-%EC%B1%84%EB%84%90-filechannel/</link><guid isPermaLink="true">https://pscheol.github.io/posts/nio-%ED%8C%8C%EC%9D%BC-%EC%B1%84%EB%84%90-filechannel/</guid><description>FileChannel과 ByteBuffer로 파일을 끝까지 읽고 쓰는 반복 처리, 열기 옵션, 위치 변경과 파일 복사 방법을 설명한다.</description><pubDate>Wed, 06 Apr 2016 03:03:36 GMT</pubDate><category>입출력과 네트워크</category><category>입출력과 네트워크</category><category>Java</category></item><item><title>[Netty] 네티 ServerBootstrap 만들기</title><link>https://pscheol.github.io/posts/netty-%EB%84%A4%ED%8B%B0-serverbootstrap-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/netty-%EB%84%A4%ED%8B%B0-serverbootstrap-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>ServerBootstrap으로 줄바꿈 경계를 가진 NIO 에코 서버를 만들고, bind·종료 절차와 전송 방식 선택을 확인한다.</description><pubDate>Tue, 05 Apr 2016 15:55:40 GMT</pubDate><category>Netty</category><category>Netty</category><category>ServerBootstrap</category><category>네티</category><category>서버 부트스트랩</category></item><item><title>Java 달력 만들기</title><link>https://pscheol.github.io/posts/java-%EB%8B%AC%EB%A0%A5-%EB%A7%8C%EB%93%A4%EA%B8%B0/</link><guid isPermaLink="true">https://pscheol.github.io/posts/java-%EB%8B%AC%EB%A0%A5-%EB%A7%8C%EB%93%A4%EA%B8%B0/</guid><description>java.time으로 월의 첫 요일과 일수를 구해 일요일부터 시작하는 콘솔 달력을 만든다.</description><pubDate>Fri, 25 Mar 2016 09:35:05 GMT</pubDate><category>기초</category><category>Java</category><category>자바</category><category>달력</category><category>Calendar</category></item><item><title>[JavaFX] 커스텀 다이얼로그</title><link>https://pscheol.github.io/posts/javafx-%EC%BB%A4%EC%8A%A4%ED%85%80-%EB%8B%A4%EC%9D%B4%EC%96%BC%EB%A1%9C%EA%B7%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/javafx-%EC%BB%A4%EC%8A%A4%ED%85%80-%EB%8B%A4%EC%9D%B4%EC%96%BC%EB%A1%9C%EA%B7%B8/</guid><description>JavaFX Stage에 소유 창과 모달 범위를 지정하고 FXML을 올려 커스텀 다이얼로그를 여는 절차와 StageStyle 선택 기준을 설명한다.</description><pubDate>Fri, 25 Mar 2016 07:31:47 GMT</pubDate><category>JavaFX</category><category>JavaFX</category><category>자바FX</category><category>대화상자</category><category>Dialog</category></item><item><title>git &amp; git hub 참고 사이트</title><link>https://pscheol.github.io/posts/git-git-hub-%EC%B0%B8%EA%B3%A0-%EC%82%AC%EC%9D%B4%ED%8A%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/git-git-hub-%EC%B0%B8%EA%B3%A0-%EC%82%AC%EC%9D%B4%ED%8A%B8/</guid><description>Git 기본 명령, 브랜치 실습, 작업 흐름과 시각적 참고 자료를 학습할 때 찾아볼 수 있는 안내 사이트를 모았다.</description><pubDate>Wed, 23 Mar 2016 00:35:38 GMT</pubDate><category>Git</category><category>Git</category><category>GitHub</category><category>깃</category><category>깃허브</category><category>개발 참고 자료</category></item><item><title>[SQL] Join(조인)</title><link>https://pscheol.github.io/posts/sql-join-%EC%A1%B0%EC%9D%B8/</link><guid isPermaLink="true">https://pscheol.github.io/posts/sql-join-%EC%A1%B0%EC%9D%B8/</guid><description>INNER·CROSS·OUTER·SELF JOIN의 차이를 살펴보고, 작은 표로 결과 행 수와 ON·WHERE 조건의 영향을 확인한다.</description><pubDate>Mon, 21 Mar 2016 02:00:07 GMT</pubDate><category>SQL</category><category>SQL</category><category>JOIN</category><category>조인</category><category>테이블 결합</category><category>Table Join</category></item><item><title>[Oracle] 기본 함수</title><link>https://pscheol.github.io/posts/oracle-%EA%B8%B0%EB%B3%B8-%ED%95%A8%EC%88%98/</link><guid isPermaLink="true">https://pscheol.github.io/posts/oracle-%EA%B8%B0%EB%B3%B8-%ED%95%A8%EC%88%98/</guid><description>Oracle의 문자·숫자·날짜·변환 함수를 살펴보고, DUAL 예제로 입력에 따른 결과와 명시적 날짜 변환을 확인한다.</description><pubDate>Thu, 17 Mar 2016 03:14:37 GMT</pubDate><category>Oracle</category><category>Oracle</category><category>오라클 데이터베이스</category><category>SQL 함수</category><category>SQL Functions</category></item><item><title>CDATA 키워드</title><link>https://pscheol.github.io/posts/cdata-%ED%82%A4%EC%9B%8C%EB%93%9C/</link><guid isPermaLink="true">https://pscheol.github.io/posts/cdata-%ED%82%A4%EC%9B%8C%EB%93%9C/</guid><description>XML 매퍼에서 CDATA로 비교 기호를 표현하는 방법과 적용 범위를 살펴보고, 엔티티 이스케이프·값 바인딩과 구분한다.</description><pubDate>Thu, 17 Mar 2016 00:58:36 GMT</pubDate><category>SQL</category><category>SQL</category><category>CDATA</category><category>XML</category><category>특수 문자</category><category>Special Characters</category></item><item><title>테이블 복사(Table Copy)</title><link>https://pscheol.github.io/posts/%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%B3%B5%EC%82%AC-table-copy/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%B3%B5%EC%82%AC-table-copy/</guid><description>MySQL에서 테이블 구조·데이터·조건에 맞는 행을 복사하는 명령을 구분하고, 복사 후 제약 조건과 결과를 확인한다.</description><pubDate>Tue, 15 Mar 2016 05:53:57 GMT</pubDate><category>SQL</category><category>SQL</category><category>테이블 복사</category><category>Table Copy</category><category>데이터베이스</category></item><item><title>IN, BETWEEN 연산자</title><link>https://pscheol.github.io/posts/in-between-%EC%97%B0%EC%82%B0%EC%9E%90/</link><guid isPermaLink="true">https://pscheol.github.io/posts/in-between-%EC%97%B0%EC%82%B0%EC%9E%90/</guid><description>SQL의 IN과 BETWEEN으로 목록·범위 조건을 표현하고, NULL·날짜 경계·인덱스에 따른 동작을 예제로 비교한다.</description><pubDate>Mon, 14 Mar 2016 01:39:32 GMT</pubDate><category>SQL</category><category>SQL</category><category>IN 연산자</category><category>BETWEEN 연산자</category><category>조건 검색</category><category>SQL Filtering</category></item><item><title>Java 줄바꿈 처리</title><link>https://pscheol.github.io/posts/java-%EC%A4%84%EB%B0%94%EA%BF%88-%EC%B2%98%EB%A6%AC/</link><guid isPermaLink="true">https://pscheol.github.io/posts/java-%EC%A4%84%EB%B0%94%EA%BF%88-%EC%B2%98%EB%A6%AC/</guid><description>Java에서 LF와 CRLF를 파일에 기록할 때 운영체제 기본 줄 구분자와 파일 형식의 약속을 구분하고 중복 변환을 피하는 방법을 다룬다.</description><pubDate>Mon, 07 Mar 2016 02:17:05 GMT</pubDate><category>기초</category><category>Java</category><category>자바</category><category>줄바꿈</category><category>Newline</category></item><item><title>이클립스 주요 플러그인 2가지</title><link>https://pscheol.github.io/posts/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EC%A3%BC%EC%9A%94-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8-2%EA%B0%80%EC%A7%80/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EC%A3%BC%EC%9A%94-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8-2%EA%B0%80%EC%A7%80/</guid><description>Eclipse의 Java 디컴파일러와 UML 플러그인을 소개하고, 소스 JAR 확인과 오래된 플러그인의 설치 문제를 살펴본다.</description><pubDate>Mon, 01 Feb 2016 02:59:49 GMT</pubDate><category>Eclipse</category><category>Eclipse</category><category>이클립스</category><category>IDE</category><category>플러그인</category><category>Plugins</category></item><item><title>Singleton Pattern</title><link>https://pscheol.github.io/posts/singleton-pattern/</link><guid isPermaLink="true">https://pscheol.github.io/posts/singleton-pattern/</guid><description>Java의 Holder 방식으로 지연 초기화 싱글턴을 구현하고 클래스 로더 범위의 유일성, 가변 전역 상태의 동시성·테스트 비용을 살펴본다.</description><pubDate>Sat, 30 Jan 2016 17:48:38 GMT</pubDate><category>디자인 패턴</category><category>디자인 패턴</category><category>싱글턴 패턴</category><category>Design Pattern</category><category>Singleton Pattern</category></item><item><title>객체지향 프로그래밍</title><link>https://pscheol.github.io/posts/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/</guid><description>주문 수량 규칙과 배송비 정책 예제로 캡슐화·다형성이 상태 변경을 어떻게 통제하는지 살펴보고, 상속과 합성을 선택하는 기준을 설명한다.</description><pubDate>Mon, 04 Jan 2016 07:47:23 GMT</pubDate><category>객체지향</category><category>객체지향</category><category>Object-Oriented Programming</category><category>OOP</category></item><item><title>SocketAddress 클래스와 NetworkInterface 클래스</title><link>https://pscheol.github.io/posts/socketaddress-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%99%80-networkinterface-%ED%81%B4%EB%9E%98%EC%8A%A4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/socketaddress-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%99%80-networkinterface-%ED%81%B4%EB%9E%98%EC%8A%A4/</guid><description>InetSocketAddress의 호스트·포트와 미해결 주소를 구분하고 NetworkInterface로 로컬 장치와 IP 주소를 조회하는 방법을 다룬다.</description><pubDate>Wed, 16 Dec 2015 15:30:25 GMT</pubDate><category>입출력과 네트워크</category><category>입출력과 네트워크</category><category>Java</category></item><item><title>InetAddress 클래스</title><link>https://pscheol.github.io/posts/inetaddress-%ED%81%B4%EB%9E%98%EC%8A%A4/</link><guid isPermaLink="true">https://pscheol.github.io/posts/inetaddress-%ED%81%B4%EB%9E%98%EC%8A%A4/</guid><description>InetAddress로 호스트 이름과 IP 주소를 조회하고 IPv4·IPv6 결과를 다루는 방법과 DNS 조회 성공을 연결 성공과 구분하는 이유를 설명한다.</description><pubDate>Wed, 16 Dec 2015 14:41:31 GMT</pubDate><category>입출력과 네트워크</category><category>입출력과 네트워크</category><category>Java</category></item><item><title>1. Spring프로젝트 생성 후 초기작업 mybatis+mysql 세팅</title><link>https://pscheol.github.io/posts/1-spring%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-%ED%9B%84-%EC%B4%88%EA%B8%B0%EC%9E%91%EC%97%85-mybatis-mysql-%EC%84%B8%ED%8C%85/</link><guid isPermaLink="true">https://pscheol.github.io/posts/1-spring%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-%ED%9B%84-%EC%B4%88%EA%B8%B0%EC%9E%91%EC%97%85-mybatis-mysql-%EC%84%B8%ED%8C%85/</guid><description>옛 Spring MVC 프로젝트의 MyBatis·MySQL 설정을 현재 환경에서 다시 구성하고, 연결 정보 주입과 첫 조회를 검증한다.</description><pubDate>Sat, 05 Dec 2015 09:19:46 GMT</pubDate><category>Spring</category><category>Spring</category><category>MyBatis</category><category>스프링</category><category>마이바티스</category><category>MySQL 설정</category></item><item><title>단순 연결리스트(Simple Linked List)</title><link>https://pscheol.github.io/posts/%EB%8B%A8%EC%88%9C-%EC%97%B0%EA%B2%B0%EB%A6%AC%EC%8A%A4%ED%8A%B8-simple-linked-list/</link><guid isPermaLink="true">https://pscheol.github.io/posts/%EB%8B%A8%EC%88%9C-%EC%97%B0%EA%B2%B0%EB%A6%AC%EC%8A%A4%ED%8A%B8-simple-linked-list/</guid><description>더미 노드와 tail을 둔 Java 단순 연결 리스트를 직접 구현하며 삽입·삭제 때 참조와 크기 불변식이 어떻게 바뀌는지 추적한다.</description><pubDate>Mon, 09 Nov 2015 15:35:25 GMT</pubDate><category>자료구조</category><category>알고리즘</category><category>연결 리스트</category><category>Singly Linked List</category><category>Data Structure</category></item></channel></rss>