<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>코딩잘하자</title><link>https://pheeing.github.io/</link><description>Recent content on 코딩잘하자</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Mon, 18 Nov 2024 00:00:00 +0900</lastBuildDate><atom:link href="https://pheeing.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>[Spring Boot] Spring Boot3 에서 QueryDSL 세팅(with.vscode)</title><link>https://pheeing.github.io/springboot/vscode-querydsl-springboot3/</link><pubDate>Mon, 18 Nov 2024 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/vscode-querydsl-springboot3/</guid><description>&lt;h2 id="1-개요"&gt;1. 개요&lt;/h2&gt;&#10;&lt;p&gt;오늘은 최신 Spring Boot 3.3.x 환경에서 vscode 에디터를 사용하여&#10;querydsl 세팅하는 방법에 대해서 포스팅 하겠습니다.&lt;/p&gt;&#10;&lt;p&gt;이 방법은 mac, windows 동일하게 세팅이 가능합니다.&lt;/p&gt;&#10;&lt;h3 id="11-메이븐사용"&gt;1.1 메이븐사용&lt;/h3&gt;&#10;&lt;p&gt;저는 원래 빌드툴은 Gradle 을 더 선호하는 편이긴 한데 vscode 로 스프링부트를 개발 하다 보면 알 수 없는 에러들 때문에 (익스텐션 오류같음) 프로젝트를 재 세팅해야 하는 경우가 몇번 있었습니다.&lt;/p&gt;&#10;&lt;p&gt;그때마다 gradle 캐시를 전부 삭제하고 다시 세팅하면 되긴 됐지만 원인을 찾지 못해 고생 했던 기억이 있습니다.&lt;/p&gt;</description></item><item><title>[DevOps] Nginx 로 가상 호스트 구현하기</title><link>https://pheeing.github.io/devops/setup-virtual-host-in-nginx/</link><pubDate>Mon, 27 Nov 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/devops/setup-virtual-host-in-nginx/</guid><description>&lt;h2 id="1-개요"&gt;1. 개요&lt;/h2&gt;&#10;&lt;p&gt;오늘은 Linux 환경 (ubuntu, centos) 에서 nginx 를 이용한&lt;/p&gt;&#10;&lt;p&gt;가상 호스트 환경 구성에 대하여 포스팅 하겠습니다.&lt;/p&gt;&#10;&lt;h3 id="11-가상호스팅"&gt;1.1 가상호스팅&lt;/h3&gt;&#10;&lt;p&gt;가상호스팅(Virtual Hosting)은 하나의 서버(IP) 에서 여러개의 도메인을&lt;/p&gt;&#10;&lt;p&gt;가질 수 있는 호스팅 방식을 의미 합니다.&lt;/p&gt;&#10;&lt;p&gt;이를 활용할 때 하나의 서버에서 여러개의 멀티 도메인을 이용한 서비스를&lt;/p&gt;&#10;&lt;p&gt;구축할 수 있다는 점이 큰 장점입니다.&lt;/p&gt;&#10;&lt;h3 id="12-nginx"&gt;1.2 Nginx&lt;/h3&gt;&#10;&lt;p&gt;현재 전세계의 웹서버 점유율은 Apache 와 Nginx 가 거의 45 퍼센트를 차지합니다.&lt;/p&gt;&#10;&lt;p&gt;(Apache 가 대략 24퍼, Nginx가 20퍼 정도 되는걸로 알고 있습니다.)&lt;/p&gt;</description></item><item><title>[DevOps] Kubernetes(k8s) 서비스 세팅하기 (with.네이버클라우드플랫폼)</title><link>https://pheeing.github.io/devops/setup-kubernetes-in-ncp/</link><pubDate>Mon, 20 Nov 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/devops/setup-kubernetes-in-ncp/</guid><description>&lt;h2 id="1-배경"&gt;1. 배경&lt;/h2&gt;&#10;&lt;p&gt;오늘은 네이버 클라우드 플랫폼 에서 서비스 하고 있는&lt;/p&gt;&#10;&lt;p&gt;쿠버네티스(kubernetes) 서비스 세팅 방법에 대하여 포스팅 하겠습니다.&lt;/p&gt;&#10;&lt;h3 id="11-용어"&gt;1.1 용어&lt;/h3&gt;&#10;&lt;p&gt;쿠버네티스(kubernetes)는 줄여서 k8s 라고 부르기도 합니다.&lt;/p&gt;&#10;&lt;p&gt;네이버클라우드플랫폼 역시 줄여서 ncp 라고 부르기도 합니다.&lt;/p&gt;&#10;&lt;p&gt;참고로 구글은 gcp 라고 부르기도 하고,&lt;/p&gt;&#10;&lt;p&gt;구글에서 서비스하는 쿠버네티스 서비스는 gke,&lt;/p&gt;&#10;&lt;p&gt;네이버는 nks 라고도 부르기도 합니다.&lt;/p&gt;&#10;&lt;h3 id="12-쿠버네티스"&gt;1.2 쿠버네티스&lt;/h3&gt;&#10;&lt;p&gt;요즈음 많은 기업들이 마이크로서비스 아키텍처로 서비스를 구현함에 따라 쿠버네티스의&lt;/p&gt;&#10;&lt;p&gt;사용은 아주 많이 증가 되어있으며, 그에따라 쿠버네티스를 직접 구축하거나,&lt;/p&gt;&#10;&lt;p&gt;클라우드 회사의 쿠버네티스 서비스를 이용 하는 경우가 많아 졌습니다.&lt;/p&gt;</description></item><item><title>[WebRTC] 화상회의 웹서비스 개발하기 (with.janus-gateway) - (4)</title><link>https://pheeing.github.io/webrtc/start-webrtc-with-janus4/</link><pubDate>Wed, 11 Oct 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/webrtc/start-webrtc-with-janus4/</guid><description>&lt;h2 id="개요"&gt;개요&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://pheeing.github.io/webrtc/start-webrtc-with-janus3/" &gt;지난번 포스팅&lt;/a&gt;&#10;은 설정방법 이었습니다.&lt;/p&gt;&#10;&lt;p&gt;오늘은 janus 자체 녹화 플러그인에 대한 설명을 해보겠습니다.&lt;/p&gt;&#10;&lt;p&gt;이 포스팅에서 설정하는 모든 것은 janus-gateway 문서에도 잘 나와있습니다.&lt;/p&gt;&#10;&lt;h2 id="recordplay"&gt;RecordPlay&lt;/h2&gt;&#10;&lt;p&gt;janus-gateway 를 정상적으로 설치를 했다면&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;/opt/janus/etc/janus&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;위의 경로에 설정 아래와 같은 파일들이 있을겁니다.&lt;/p&gt;&#10;&lt;p&gt;&lt;figure class="my-7"&gt;&lt;img src="https://pheeing.github.io/webrtc/start-webrtc-with-janus4/janus-setting-files.png" alt="janus-setting-files" loading="lazy" decoding="async" class="rounded-xl border border-slate-200 dark:border-slate-700" &gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;이 파일들 중에서 우리가 주목해야 할 파일은&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;&lt;em&gt;janus.plugin.recordplay.jcfg&lt;/em&gt;&lt;/strong&gt; 입니다.&lt;/p&gt;&#10;&lt;h3 id="파일저장경로-설정"&gt;파일저장경로 설정&lt;/h3&gt;&#10;&lt;p&gt;녹화 플러그인을 사용하려면 일단 설정파일을 확인해주세요.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;janus.plugin.recordplay.jcfg&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;figure class="my-7"&gt;&lt;img src="https://pheeing.github.io/webrtc/start-webrtc-with-janus4/janus-recordplay-config.png" alt="janus-recordplay-config" loading="lazy" decoding="async" class="rounded-xl border border-slate-200 dark:border-slate-700" &gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;이 설정파일에서 &lt;code&gt;path&lt;/code&gt; 는 기본 녹화된 파일들의 저장경로입니다.&lt;/p&gt;</description></item><item><title>[WebRTC] 화상회의 웹서비스 개발하기 (with.janus-gateway) - (3)</title><link>https://pheeing.github.io/webrtc/start-webrtc-with-janus3/</link><pubDate>Mon, 31 Jul 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/webrtc/start-webrtc-with-janus3/</guid><description>&lt;h2 id="개요"&gt;개요&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://pheeing.github.io/webrtc/start-webrtc-with-janus2/" &gt;지난번 포스팅&lt;/a&gt;&#10; 에서는 coturn 서버 까지 설치했습니다.&lt;/p&gt;&#10;&lt;p&gt;지난번 포스팅에서 예고한 대로 오늘은 어드민 설정 방법과,&lt;/p&gt;&#10;&lt;p&gt;janus-gateway 비디오룸 설정과 활용 방법에 대하여 서술하겠습니다.&lt;/p&gt;&#10;&lt;p&gt;이 포스팅에서 설정하는 모든 것은 janus-gateway 문서에도 잘 나와있습니다.&lt;/p&gt;&#10;&lt;p&gt;저는 janus-gateway 를 이용한 서비스를 만들때 꼭 필요한 설정 들에 대해서만 서술하겠습니다.&lt;/p&gt;&#10;&lt;h2 id="janus-설정"&gt;janus 설정&lt;/h2&gt;&#10;&lt;p&gt;janus-gateway 를 정상적으로 설치를 했다면&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;/opt/janus/etc/janus&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;위의 경로에 설정 아래와 같은 파일들이 있을겁니다.&lt;/p&gt;&#10;&lt;p&gt;&lt;figure class="my-7"&gt;&lt;img src="https://pheeing.github.io/webrtc/start-webrtc-with-janus3/janus-setting-files.png" alt="janus-setting-files" loading="lazy" decoding="async" class="rounded-xl border border-slate-200 dark:border-slate-700" &gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;우린 이 설정 파일들을 입맛에 맞게 수정해서 사용하면 됩니다.&lt;/p&gt;</description></item><item><title>[Spring Boot] 전자정부프레임워크 에서 스프링부트 변환 - (3)</title><link>https://pheeing.github.io/springboot/convert-egovframe-to-springboot3/</link><pubDate>Sun, 04 Jun 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/convert-egovframe-to-springboot3/</guid><description>&lt;h2 id="리팩토링"&gt;리팩토링&lt;/h2&gt;&#10;&lt;p&gt;저번 포스팅에 이어서 리빌딩을 해보려고 합니다.&lt;/p&gt;&#10;&lt;p&gt;지난번 포스팅은 &lt;a href="https://pheeing.github.io/springboot/convert-egovframe-to-springboot2/" &gt;전자정부프레임워크 에서 스프링부트 변환 - (2)&lt;/a&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;에서 확인할 수 있습니다.&lt;/p&gt;&#10;&lt;p&gt;오늘 포스팅으로 전자정부프레임워크 에서 스프링부트 변환 포스팅은 마무리 됩니다.&lt;/p&gt;&#10;&lt;h3 id="jquery"&gt;jQuery&lt;/h3&gt;&#10;&lt;p&gt;아마 레거시 프로젝트에서는 jQuery의 비중이 아주 높을 겁니다.&lt;/p&gt;&#10;&lt;p&gt;아주 간단한 기능 조차도 jQuery를 이용한 경우가 많을 것인데&lt;/p&gt;&#10;&lt;p&gt;이러한 것들을 전부 바닐라 자바스크립트로 구현하면 됩니다.&lt;/p&gt;&#10;&lt;p&gt;자주 쓰이는 패턴 변환 방법에 대해서 논의합니다.&lt;/p&gt;&#10;&lt;h4 id="selector"&gt;Selector&lt;/h4&gt;&#10;&lt;p&gt;간단한 예제로 특정 아이디나 클래스로 선택한 엘리먼트에 특정 클래스를 추가하거나 제거 한다고 합시다.&lt;/p&gt;</description></item><item><title>[Spring Boot] vscode 개발 환경 구축하기 (Windows)</title><link>https://pheeing.github.io/springboot/springboot-setup-onwindows/</link><pubDate>Sun, 21 May 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/springboot-setup-onwindows/</guid><description>&lt;h2 id="1-배경"&gt;1. 배경&lt;/h2&gt;&#10;&lt;p&gt;오늘은 스프링부트 개발환경 구축하기에 대해서 포스팅하겠습니다.&lt;/p&gt;&#10;&lt;p&gt;이미 mac 용으로 포스팅 했었는데요.&lt;/p&gt;&#10;&lt;p&gt;오늘은 windows 유저를 위한&lt;/p&gt;&#10;&lt;p&gt;vscode 에서 스프링 부트 개발환경 세팅하는 방법에 대하여 이야기 하겠습니다.&lt;/p&gt;&#10;&lt;p&gt;아무것도 설치가 안되어있다고 가정하겠습니다.&lt;/p&gt;&#10;&lt;h2 id="2-프로그램설치"&gt;2. 프로그램설치&lt;/h2&gt;&#10;&lt;h3 id="21-vscode-설치"&gt;2.1 vscode 설치&lt;/h3&gt;&#10;&lt;p&gt;vscode 를 설치 합니다.&lt;/p&gt;&#10;&lt;p&gt;우선 구글에서 vscode를 검색해줍니다.&lt;/p&gt;&#10;&lt;p&gt;&lt;figure class="my-7"&gt;&lt;img src="https://pheeing.github.io/springboot/springboot-setup-onwindows/vscode1.png" alt="vscode1" loading="lazy" decoding="async" class="rounded-xl border border-slate-200 dark:border-slate-700" &gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;여기서 다운로드로 들어갑니다.&lt;/p&gt;&#10;&lt;p&gt;&lt;figure class="my-7"&gt;&lt;img src="https://pheeing.github.io/springboot/springboot-setup-onwindows/vscode2.png" alt="vscode2" loading="lazy" decoding="async" class="rounded-xl border border-slate-200 dark:border-slate-700" &gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;윈도우 인스톨러를 클릭해줍니다.&lt;/p&gt;&#10;&lt;p&gt;&lt;figure class="my-7"&gt;&lt;img src="https://pheeing.github.io/springboot/springboot-setup-onwindows/vscode3.png" alt="vscode3" loading="lazy" decoding="async" class="rounded-xl border border-slate-200 dark:border-slate-700" &gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;여기서는 왠만하면 그냥 디폴트 값으로 전부 다음만 눌러주시면됩니다.&lt;/p&gt;</description></item><item><title>[WebRTC] 화상회의 웹서비스 개발하기 (with.janus-gateway) - (2)</title><link>https://pheeing.github.io/webrtc/start-webrtc-with-janus2/</link><pubDate>Sun, 23 Apr 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/webrtc/start-webrtc-with-janus2/</guid><description>&lt;h2 id="프론트엔드-개발"&gt;프론트엔드 개발&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://pheeing.github.io/webrtc/start-webrtc-with-janus/" &gt;지난번 포스팅&lt;/a&gt;&#10; 에서는 janus-gateway 서버 까지 설치했습니다.&lt;/p&gt;&#10;&lt;p&gt;이제 서버를 세팅했으니 프론트엔드를 개발해야죠.&lt;/p&gt;&#10;&lt;p&gt;일단 공식 홈페이지에도 잘 나와 있지만 간략하게 더 설명해 드리겠습니다.&lt;/p&gt;&#10;&lt;h3 id="의존성추가"&gt;의존성추가&lt;/h3&gt;&#10;&lt;p&gt;공식 깃허브 리파지토리 html 폴더에 보면 videoroomtest.html 을 보시면 필요한 의존성이 보일 겁니다.&lt;/p&gt;&#10;&lt;p&gt;이거를 복사해서 본인들이 개발할 프론트엔드에 부착하면 일단 의존성은 끝납니다.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;html/videoroomtest.html&lt;/strong&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;settings.js&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;janus.js&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;videoroomtest.js&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="로직분석"&gt;로직분석&lt;/h3&gt;&#10;&lt;p&gt;비디오룸 데모 js 소스를 보시면 위에서 추가한 의존성을 활용에서 초기화를 하고 객체를 생성합니다.&lt;/p&gt;&#10;&lt;p&gt;그리고 각 단계에서 콜백으로 많은 작업들을 하는 걸 알 수 있습니다.&lt;/p&gt;</description></item><item><title>[Spring Boot] Thymeleaf 에서 axios 사용하기 (gulp)</title><link>https://pheeing.github.io/springboot/thymeleaf-axios-with-gulp/</link><pubDate>Sat, 15 Apr 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/thymeleaf-axios-with-gulp/</guid><description>&lt;h2 id="개요"&gt;개요&lt;/h2&gt;&#10;&lt;p&gt;지난번 포스팅 &lt;a href="https://pheeing.github.io/springboot/thymeleaf-with-gulp-devserver/" &gt;자동화 세팅 포스팅&lt;/a&gt;&#10; 에 이은&lt;/p&gt;&#10;&lt;p&gt;Thymeleaf 템플릿엔진 환경에서 axios 활용하기에 대한 포스팅입니다.&lt;/p&gt;&#10;&lt;p&gt;제가 웹개발을 한참 공부 할때 AJAX 라는 용어가 등장했습니다.&#10;AJAX 는 (Asynchronous JavaScript And XML) 의 약자로,&#10;용어 그대로 서버와 비동기적으로 통신할 수 있게 만드는 웹개발 기법입니다.&lt;/p&gt;&#10;&lt;p&gt;ajax 등장이후 많은부분이 폼서브밋방식(동기) 이 아닌 비동기 호출로직으로 작성하게 되었습니다.&#10;ajax 기술을 구현하기 위해 기본 브라우저 내장 XMLHttpRequest 객체를 활용하기도 했지만,&#10;대부분은 더 쉽고 기능이 많은 라이브러리를 많이 사용하였습니다. 그중 하나가 바로 jQuery 이구요.&lt;/p&gt;</description></item><item><title>[Spring Boot] 전자정부프레임워크 에서 스프링부트 변환 - (2)</title><link>https://pheeing.github.io/springboot/convert-egovframe-to-springboot2/</link><pubDate>Thu, 30 Mar 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/convert-egovframe-to-springboot2/</guid><description>&lt;h2 id="리팩토링"&gt;리팩토링&lt;/h2&gt;&#10;&lt;p&gt;저번 포스팅에 이어서 리빌딩을 해보려고 한다.&lt;/p&gt;&#10;&lt;p&gt;지난번 포스팅은 &lt;a href="https://pheeing.github.io/springboot/convert-egovframe-to-springboot/" &gt;전자정부프레임워크 에서 스프링부트 변환 - (1)&lt;/a&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;에서 확인할 수 있다.&lt;/p&gt;&#10;&lt;h3 id="mybatis"&gt;mybatis&lt;/h3&gt;&#10;&lt;p&gt;기존은 mybatis를 썻을경우 아마도 1:1로 매퍼가 존재하고&lt;/p&gt;&#10;&lt;p&gt;각각의 쿼리는 매퍼와 연결된 xml 쿼리로 작성되었을 것이다.&lt;/p&gt;&#10;&lt;p&gt;기존은 아마 이러한 구조의 서버 흐름으로 코딩 되어있을 것이다.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;controller -&amp;gt; service -&amp;gt; (serviceImpl) -&amp;gt; mapper -&amp;gt; xml(쿼리)&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;여기서 보통 serviceImpl은 있을수도 있고 없을수도 있다.&lt;/p&gt;&#10;&lt;p&gt;우리는 아래와 같은 서버 흐름으로 바꾸면 된다.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;controller -&amp;gt; (service) -&amp;gt; repository(쿼리)&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>[Spring Boot] 전자정부프레임워크 에서 스프링부트 변환 - (1)</title><link>https://pheeing.github.io/springboot/convert-egovframe-to-springboot/</link><pubDate>Sun, 26 Mar 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/convert-egovframe-to-springboot/</guid><description>&lt;h2 id="개요"&gt;개요&lt;/h2&gt;&#10;&lt;p&gt;우리나라 SI/SM 환경은 오래전부터 전자정부 프레임워크 라는 정부 주도로 만들어진 프레임워크 개발된 웹프로그램이 상당히 많다.&lt;/p&gt;&#10;&lt;p&gt;전자정부 프레임워크는 등장 당시 중구난방했던 개발환경을 통합한 것에 대해서는 매우 획기적이였고&lt;/p&gt;&#10;&lt;p&gt;정부주도로 공공기관 프로젝트부터 필수 사항이 되다 보니 한국에서는 이게 필수 웹개발환경이 되어 버린 케이스라고 하겠다.&lt;/p&gt;&#10;&lt;p&gt;물론 처음에는 공공기관 개발환경을 통합을해서 생산성향상에 크게 기여했다는 바는 부정할수 없는 사실이다.&lt;/p&gt;&#10;&lt;p&gt;그렇지만 개발업계가 어떤가? 하루에도 수십개의 새로운 기술이 쏟아지고 더나은 패러다임. 더나은 디자인패턴 들이 새로 나온다.&lt;/p&gt;&#10;&lt;p&gt;그러나 전자정부프레임워크는 상당히 과거에 머물러 있고, 업데이트도 매우 더딘편이다.&lt;/p&gt;</description></item><item><title>[WebRTC] 화상회의 웹서비스 개발하기 (with.janus-gateway) - (1)</title><link>https://pheeing.github.io/webrtc/start-webrtc-with-janus/</link><pubDate>Tue, 24 Jan 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/webrtc/start-webrtc-with-janus/</guid><description>&lt;h2 id="개요"&gt;개요&lt;/h2&gt;&#10;&lt;p&gt;오늘날 화상회의는 업무에 필수적인 요소로 자리 잡게 되었습니다.&lt;/p&gt;&#10;&lt;p&gt;코로나 시대에 접어 들면서, 기업들의 재택근무는 가속화 되었고, 재택근무를 하기 위한 필수요소인&lt;/p&gt;&#10;&lt;p&gt;화상회의 서비스의 대한 수요는 꾸준히 증가했고, 그에따른 서비스들도 우후죽순 생겨나게 되었습니다.&lt;/p&gt;&#10;&lt;p&gt;줌(zoom), 마이크로소프트 팀즈(microsoft teams), 구글 미트(google meet) 등등&lt;/p&gt;&#10;&lt;p&gt;유명한 빅테크 기업들의 화상회의 서비스는 나무랄데 없이 매우 훌륭합니다.&lt;/p&gt;&#10;&lt;p&gt;하지만 비용 문제라던지, 보안 문제라던지 등등 자신만의 화상회의 서비스를 구축 하고자 하는 수요 또한 많이 생겨나게 되었습니다.&lt;/p&gt;&#10;&lt;p&gt;지금도 자신만의 webrtc 서버를 구축해서 화상회의를 구축하고자 하는 수요도 분명 많을 것으로 생각됩니다.&lt;/p&gt;</description></item><item><title>[Spring Boot] Thymeleaf 에서 프론트엔드(css,js) 개발환경 자동화하기 (gulp)</title><link>https://pheeing.github.io/springboot/thymeleaf-with-gulp-devserver/</link><pubDate>Sat, 07 Jan 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/thymeleaf-with-gulp-devserver/</guid><description>&lt;h2 id="1-배경"&gt;1. 배경&lt;/h2&gt;&#10;&lt;p&gt;오늘은 스프링부트, Thymeleaf 템플릿 엔진 환경에서 프론트엔드 개발환경 세팅 방법에 대해서 포스팅 하겠습니다.&lt;/p&gt;&#10;&lt;p&gt;많은 외부라이브러리(js)와 css 파일을 따로 관리하면 처음에는 아무문제 없지만 프로젝트가 커지고 그러다 보면 버전관리도 제대로 안되고,&lt;/p&gt;&#10;&lt;p&gt;유지보수에도 많은 애로사항이 생길 수 있습니다.&lt;/p&gt;&#10;&lt;p&gt;지금 제가 소개하는 방법은 gulp (task-runner) 를 활용하여 프론트엔드 전반의 정적 파일들을 관리하고 자동화하여&lt;/p&gt;&#10;&lt;p&gt;개발시에도 편리하게 개발 할 수 있고, 배포시에도 build.gradle 파일을 수정하여 배포 역시 간단히 할 수 있는 방법에 대해서 소개해 드리겠습니다.&lt;/p&gt;</description></item><item><title>[Spring Boot] JAR 배포시 내장톰캣 IP 인식 문제 (ubuntu 18.04)</title><link>https://pheeing.github.io/springboot/spring-boot-jar-with-nginx/</link><pubDate>Wed, 04 Jan 2023 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/spring-boot-jar-with-nginx/</guid><description>&lt;h2 id="1-배경"&gt;1. 배경&lt;/h2&gt;&#10;&lt;p&gt;오늘은 스프링부트 배포시 발생 할 수 있는 IP 문제와 해결방법에 대해서 포스팅합니다.&lt;/p&gt;&#10;&lt;p&gt;기존에 스프링으로 배포할경우는 운영서버의 톰캣서버와 웹서버로 배포하던지&lt;/p&gt;&#10;&lt;p&gt;톰캣서버만을 사용하던지 둘중에 하나로 배포하게됩니다.&lt;/p&gt;&#10;&lt;p&gt;어찌됐든 기존스프링 방식에서는 내장톰캣을 쓰지 않습니다.&lt;/p&gt;&#10;&lt;p&gt;스프링부트는 개발시부터 빌드 배포까지 내장 톰캣을 자동으로 쓰게 되고&lt;/p&gt;&#10;&lt;p&gt;배포시 몇가지 문제점이 생길수가 있는데 그중 하나가 IP 인식 문제입니다.&lt;/p&gt;&#10;&lt;p&gt;그래서 이번 포스팅에서는 내장톰캣에서의 외부 아이피 인식 문제 해결을 위한 방법중 하나로&lt;/p&gt;&#10;&lt;p&gt;nginx를 이용한 리버스 프록시로 구성해보았습니다.&lt;/p&gt;&#10;&lt;p&gt;운영서버의 환경은 우분투 18.04 버전이라고 가정합니다.&lt;/p&gt;</description></item><item><title>[Spring Boot] Thymeleaf 에서 sass 사용하기 (gulp)</title><link>https://pheeing.github.io/springboot/thymeleaf-sass-with-gulp/</link><pubDate>Thu, 17 Nov 2022 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/thymeleaf-sass-with-gulp/</guid><description>&lt;h2 id="1-배경"&gt;1. 배경&lt;/h2&gt;&#10;&lt;p&gt;오늘은 스프링부트, Thymeleaf 템플릿 엔진 환경에서 sass 개발 세팅 방법에 대해서 포스팅 하겠습니다.&lt;/p&gt;&#10;&lt;p&gt;스프링부트와 잘어울리는 thymeleaf 템플릿엔진 환경으로 개발하다 보면, sass 환경이라던지 js 모듈관리가 안되어서 답답할 때가 있습니다.&lt;/p&gt;&#10;&lt;p&gt;이때 좋은 대안중 하나는 gulp를 이용하며 task를 작성하고 자동화하면 vue나 react, node 로 개발할때와 같은 자동화 환경을 구축 할 수 있습니다.&lt;/p&gt;&#10;&lt;p&gt;그래서 이번 포스팅에서는 gulp를 이용한 개발환경을 세팅하고 sass 개발환경을 구축을 해보겠습니다.&lt;/p&gt;&#10;&lt;h2 id="2-준비"&gt;2. 준비&lt;/h2&gt;&#10;&lt;h3 id="21-샘플-프로젝트-생성"&gt;2.1 샘플 프로젝트 생성&lt;/h3&gt;&#10;&lt;p&gt;우선 스프링 부트 스타터에서 프로젝트를 생성해줍니다.&lt;/p&gt;</description></item><item><title>[Spring Boot] vscode 에서 querydsl 세팅</title><link>https://pheeing.github.io/springboot/vscode-querydsl-setting/</link><pubDate>Mon, 17 Oct 2022 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/vscode-querydsl-setting/</guid><description>&lt;h2 id="1-배경"&gt;1. 배경&lt;/h2&gt;&#10;&lt;p&gt;오늘은 vscode 환경에서 querydsl 세팅하는 방법에 대해서 포스팅 하겠습니다.&lt;/p&gt;&#10;&lt;p&gt;요즘 스프링부트로 웹개발을 하게 되면 mybatis 보다는 스프링 데이터 JPA 와 querydsl 조합으로 많이 개발하게 됩니다.&lt;/p&gt;&#10;&lt;p&gt;근데 보통 스프링부트와 JPA 로 개발하면 거의다 이클립스나 STS 또는 인텔리제이로 많이 개발하게 됩니다. 그래서 많은 레퍼런스도 거기에 초점이 맞춰져 있습니다.&lt;/p&gt;&#10;&lt;p&gt;저는 vscode 의 장점이 너무 많기 때문에 이 장점을 버리고 싶지 않아서 여러 시행 착오 끝에 해결책을 찾아내었고 잘 사용하고 있습니다.&lt;/p&gt;&#10;&lt;h2 id="2-준비"&gt;2. 준비&lt;/h2&gt;&#10;&lt;h3 id="21-스프링데이터-jpa-세팅"&gt;2.1 스프링데이터 JPA 세팅&lt;/h3&gt;&#10;&lt;p&gt;스프링 데이터 JPA는 특별한 준비사항이 없습니다.&#10;처음 스타터에서 선택하면 &lt;code&gt;build.gradle&lt;/code&gt; 에 자동으로 의존성이 추가 됩니다.&lt;/p&gt;</description></item><item><title>[Spring Boot] vscode 개발 환경 구축하기 (MAC)</title><link>https://pheeing.github.io/springboot/springboot-setup-onmac/</link><pubDate>Sun, 24 Jul 2022 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/springboot/springboot-setup-onmac/</guid><description>&lt;h2 id="1-배경"&gt;1. 배경&lt;/h2&gt;&#10;&lt;p&gt;오늘은 스프링부트 개발환경 구축하기에 대해서 포스팅하겠습니다.&lt;/p&gt;&#10;&lt;p&gt;저는 과거에 이클립스를 사용하여 스프링 개발을 했었는데요.&lt;/p&gt;&#10;&lt;p&gt;최근에는 vue, react, node 등으로 개발을 진행하면서 에디터로 vscode 를 많이 사용하였습니다.&lt;/p&gt;&#10;&lt;p&gt;수년간 vscode를 사용하면서 장점들이 너무 많고, 쓰다보니 매우 가볍고 파워풀한 에디터라서 이제 거의 이거만 사용하게 되었습니다.&lt;/p&gt;&#10;&lt;p&gt;그래서 이번에 스프링부트로 개발할 기회가 생겼지만 이클립스를 버리고, 개발환경은 vscode 에서 개발환경을 구축하였고, 현재 활용중입니다.&lt;/p&gt;&#10;&lt;p&gt;세팅이 아예 하나도 안되어있다고 가정하겠습니다.&lt;/p&gt;&#10;&lt;h2 id="2-준비"&gt;2. 준비&lt;/h2&gt;&#10;&lt;h3 id="21-openjdk-11-설치"&gt;2.1 openjdk 11 설치&lt;/h3&gt;&#10;&lt;p&gt;우선 처음에 jdk 를 설치해 줘야합니다. vscode 익스텐션 요구사항이 최소 11이기 때문에 익숙한 오라클 1.8(8) 버전을 버리고 완전무료인 openjdk11 을 설치해줍시다.&lt;/p&gt;</description></item><item><title>블로그 시작합니다</title><link>https://pheeing.github.io/my-note/start-github-pages/</link><pubDate>Sun, 24 Oct 2021 00:00:00 +0900</pubDate><guid>https://pheeing.github.io/my-note/start-github-pages/</guid><description>&lt;p&gt;이번엔 깃허브 페이지로 한번 해보게 되네요.&lt;/p&gt;&#10;&lt;p&gt;열심히 한번 해볼려구요.&lt;/p&gt;</description></item><item><title>Search</title><link>https://pheeing.github.io/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pheeing.github.io/search/</guid><description/></item></channel></rss>