본문 바로가기

분류 전체보기288

Golang - 파일명 일괄 변경하기 회사 동료 PC에서 파일명을 일괄 변경시켜줘야 하는 일이 발생했습니다. 예를들면 앞부분에 특정 구문을 붙인다던지, 뒷부분에 날짜를 일괄 붙인다는지 하는 식으로 말이죠. 검색해보면 여러가지 툴/방법이 있긴 합니다만 오랫만에 직접 프로그램을 짜서 도움을 줘볼까 합니다. 그래서 이번엔 쉽게 실행파일 생성이 가능한 Go언어를 이용해서 만들어보기로 했습니다. Java나 C#은 가상머신 세팅에서 약간의 까다로움이 발생하거나 괜히 덩치만 커질 수도 있었고, Python은 친구 PC에 Python을 굳이(개발자도 아닌데) 깔아야 하는 번거로움이 있고, Javascript는...음....?? Go언어 설치나 세팅 부분은 다른 글들에도 많으니까 패스하도록 하겠습니다. src 폴더 하위에 신규 폴더하나를 생성하고, 파일명은.. 2022. 11. 11.
전세계 로켓 발사 사이트 Visual Capitalist에서 전 세계의 로켓 발사 사이트를 지도에 표시했습니다. 원본은 링크에서 확인하시기 바랍니다. 위의 목록은 고정 된 위치를 다루며 SpaceX의 자율운전 바지선(드론선박)은 포함하지 않습니다. 현재 3척의 드론 선박이 활동 중이며, 하나는 로스앤젤레스 근처에 기반을 두고 있고 다른 2척은 플로리다주 포트 커내버럴에 기지를 두고 있습니다. 목록에서 가장 유명한 발사 장소 중 두 곳은바이코누르 우주비행장 (Baikonur Cosmodrome, 카자흐스탄)과 케이프 커내버럴 (Cape Canaveral, 미국)입니다. 전자는 소련 우주 프로그램의 작전 기지로 건설되었으며 지구 최초의 인공위성인 스푸트니크 1호의 발사 지점이었습니다. 후자는 NASA의 주요 작전 기지였으며 1969.. 2022. 11. 8.
2022년 브랜드파워 세계 100대 기업 - Visual Capitalist 우연히 웹서핑 중 Visual Capitalist라는 곳을 알게되었습니다. 이곳에는 경제/과학/헬스 등 여러 흥미로운 분야의 데이터를 이용한 시각화 자료를 제공하고 있습니다. 흥미로운 인사이트를 얻을 수 있으니 한번 방문해보시는 것도 좋을 것 같습니다. https://www.visualcapitalist.com/ Home Data-driven visuals that help explain a complex world www.visualcapitalist.com Brand Finance에서 2022년 세계에서 가장 높은 가치의 브랜드 100개를 선정한 보고서를 만들었습니다. 그리고 Visual Capitalist에서는 이 데이터를 기준으로 브랜드파워를 도식화하였습니다. Apple은 총 브랜드 가치가 3,3.. 2022. 11. 5.
파이썬으로 폴더 내 파일명 일괄 수정하기 특정 폴더의 파일 전체에 대해서 일괄 수정하는 기능을 구현해 보았습니다. add_string 함수는 파일명에 접두사와 접미사를 붙여서 출력하는 기능이고, change_string 함수는 파일명에 특정 문자열을 다른 문자열로 바꾸는 기능입니다. 우선은 파일명을 확인하는 부분까지만 구현하고, 실제 변경하는 부분은 주석 처리하였습니다. 사용하실 분은 해당 부분 주석 해제후 사용하세요. import os def add_string(path, prefix, suffix): for filename in os.listdir(path): name_only, ext = filename.split('.') # 파일명과 확장자로 분리 print(name_only, ext) new_name = prefix + name_onl.. 2022. 11. 5.
프론트엔드 프레임워크 비교 (Angular / React / Vue / Svelte) 프론트엔드 프레임워크 하면 Angular / React / Vue 그리고 최근 부각되고 있는 Svelte가 있는데요. 전문 개발자는 아니지만 조금은 손대본 경험을 토대로(Angular제외..) 특성을 알아보도록 하겠습니다. Stackoverflow Ranking에서 여러 프로그래밍 언어 및 프레임워크에 대한 점유율, 선호도 등 자세한 정보는 확인하실 수 있습니다. 해당 정보에 따르면 웹 프레임워크의 점유율은 아래 그래프와 같습니다. 이 중에 프론트엔드 프레임워크만 보면 React가 제일 상단에 있고, jQuery, Angular, Vue 그리고 한참 아래쪽에 Svelte가 있네요 역시 Stackoverflow Ranking에 따르면 이번엔 Svelte가 제일 위에 있고, 그다음 React,.. 2022. 11. 1.
Django - Gitlab - Heroku CD/CI 배포 와 Freenorm DNS연결 Django앱을 Gitlab에 올리고, Heroku로 자동 배포하는 방법, 그리고 Freenorm의 무료 DNS를 적용하는 방법을 알아보겠습니다. 순서는 아래와 같습니다. django 앱 생성 (본문은 Django의 사용법을 다루는 글이 아니므로, 기본적인 앱은 만들어져 있어야 합니다.) Heroku repo 생성 Gitlab repo 생성 CD/CI설정 (Gitlab 추가설정 및 파일 추가 생성) 추가 설정 (오류 점검) 외부DNS(Freenom) 적용 1. Django 앱 생성 기본적인 앱이 구현되어있겠지만, 앱을 배포하기 위해서는 추가적인 라이브러리 설치가 필요합니다. pip install gunicorn whitenoise django-herok # gunicorn: 위에서 설명한 파이썬 HTTP.. 2022. 10. 9.
.NET6(dotnet6)에서 entity framework 설치하기 (ef명령어 오류) dotnet core3.1 쓰다가 업그레이드 된 닷넷이 있다고 하여 dotnet6를 설치하고 스캐폴딩을 수행해보겠습니다. 1. 필요한 라이브러리를 설치하고(Oracle DB) 2. 스캐폴딩......근데, 스캐폴딩하다가 에러가 발생했습니다. dotnet ef dbcontext scaffold "User Id=abc;Password=1234;Data Source=abcd.efghijk.com:1521/dbname;" Oracle.EntityFrameworkCore -t TBL_ITMAN_AUTH -t TBL_ITMAN_CONSUMABLE -t TBL_ITMAN_ERP -t TBL_ITMAN_OH_UPLOAD -t TBL_ITMAN_PRT_MDL -t TBL_ITMAN_PRT_MST -t TBL_ITMAN_.. 2022. 9. 14.
Python Dataframe 출력 시 생략(...)없이 출력하는 방법 Pycharm이던 Jupyter Notebook이던 Dataframe형태의 결과를 볼 때, 칼럼의 수가 많아지면 기본적으로는 중간이 ....으로 표시됩니다. 간단하게 확인만 할건데 매번 추가코드를 작성하기도 귀찮고.... 이럴 때 옵션 하나면 간단히 처리할 수 있습니다. # row 생략 없이 출력 pd.set_option('display.max_rows', None) # col 생략 없이 출력 pd.set_option('display.max_columns', None) 누군가에겐 도움이 되었길 2022. 8. 21.
Python matplotlib 마커(marker) 종류 matplotlib의 plot기능에서 색상/라인/마커의 종류에 대해 알아보겠습니다. import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4], [2, 4, 6, 8], 'bo-') # 파란색 + 마커 + 실선 plt.xlabel('X-Axis') plt.ylabel('Y-Axis') plt.show() 2022. 8. 3.
남성형 탈모 원인 DHT(남성 호르몬) 줄이는 방법 저는 오래전부터 탈모 때문에 고민을 많이 해왔습니다. 모발이식도 하고, 약도 먹고 있지만, 여전히 탈모는 진행중입니다. 그래서 항상 빈약한 머리로 인해 다시 또 스트레스를 받고 있죠. 오늘은 좀 쌩뚱맞지만 남성형 탈모에 대해 얘기해볼까 합니다. 남성형 탈모의 원인은 과다한 DHT(Dihydrotestosterone) - 다이하이드로테스토스테론 분비로 알려져있습니다. DHT는 대표적인 남성호르몬인 테스토테론이 모낭에서 5알파-환원효소(5AR)에 의해 변형/생성된 호르몬으로, 남성의 탈모의 원인이 되며 전립선 암과도 관계가 있다고 합니다. 1. 약물 치료 그럼 DHT 과다분비를 억제하기 위한 방법으로는 무엇이 있을까요? DHT를 직접적으로 억제하는 약물로는 피나스테리드(프로페시아, 프로스카)와 두타스테리드(.. 2022. 7. 24.
새로 발행한 글 구글에 알리기 테스트용 구글에 알리기 테스트입니다. 2022. 7. 23.
자바GUI(Swing) - Simple text editor 인텔리제이(Intellij) IDE 를 사용하여 간단한 텍스트 에디터를 만들어보도록 하겠습니다. 1. 새 프로젝트 생성 인텔리제이 메뉴에서 File - New - Project 를 클릭하여 새 프로젝트를 생성해줍니다. Name은 editor로 하고, 적당한 위치에 아래와 같은 세팅으로 진행할 예정입니다. JDK는 설치되어있지 않다면 JDK의 드롭다운 메뉴 중 Download JDK를 눌러, 적당한 버전을 고른 후 다운로드 받아줍니다. 혹은 직접 원하는 JDK를 다운로드 받아서 선택할 수도 있습니다. 2. Main Class 생성 프로젝트 하위 폴더 중 src에서 우클릭하여 New - Java Class 를 클릭한 후, 클래스 이름을 editor로 하여 새로운 클래스를 생성해줍니다. 만들어진 클래스 내부에.. 2022. 7. 11.
Linux용 음악 프로그램 QMMP - 설치부터 스킨 변경까지 linux를 처음 알고 시작했을 당시만해도 xmms라는 콘솔에서 실행하는 프로그램을 설치하고 음악을 듣곤 했었는데, 거기서부터 파생된 gui형태의 프로그램들이 많이 나온것 같습니다. xmms2도 있었고, audacious라는 프로그램을 최근까지도 메인으로 사용하고 있었는데, 얼마전 qmmp라는 또다른 프로그램을 알게 되었습니다. 이름에서 알 수 있듯이 QT기반의 프로그램 이라고 합니다. 어떤 녀석인지 한 번 설치해 보도록 하겠습니다. 현재 제 데스크탑에는 ubuntu 20.04 lts가 설치되어 있습니다. 그래서 ubuntu package manager로 가서 qmmp를 찾아봅니다. 2개가 나오는데 어떤걸까요? 아래쪽이 1.5 버전이라고 되어있어서 아래쪽 프로그램을 설치하겠습니다. 설치하고 나니 보이긴 .. 2022. 7. 3.
7가지 유용한 JetBrains (Intellij, Pycharm, Android Studio 등) 플러그인 JetBrains사의 IDE(IntelliJ, Pycharm, Android Studio)에 적용 가능한 유용한 플로그인 관련 글이 있어 가져와 봤습니다. 원문은 아래를 참고하시기 바라며, 부족한 번역이지만 양해 부탁드립니다. 원문: 7 Useful JetBrains IDE Plugins to Make Your Life Easier IDE는 개발자의 무기로서, 좋은 IDE를 확보하는 것은 필수적입니다. 거기에 좋은 플러그인이 포함된 IDE는 생산성을 높여줍니다. JetBrains는 IntelliJ IDEA, PyCharm, Android Studio 등을 포함한 IDE제작을 전문으로하는 최첨단 소프트웨어 공급 업체입니다. JetBrains IDE에서 삶을 더 편안하고 재밌게 만들어줄 7가지 유용한 플러그.. 2022. 6. 29.
피그잼(FigJam) 시작하기 웹 프로그래밍을 공부하다보니 디자인 툴로 피그마를 알게 되었고, 동시에 협업툴로 피그잼을 알게 되었습니다. 그런데 이 피그잼이 다양한 방법으로 사용 가능한 것 같아서 정말 맘에 들더라구요. 예전부터 브레인 스토밍을 위한 큰 도화지 같은 툴이 있으면 좋겠다고 생각했었는데, 딱 그 생각에 맞는 멋진 툴입니다. 그래서 오늘은 Figjam에 대해 잠시 이야기해볼까 합니다. 피그마가 UI디자인, 프로토타이핑을 위한 디자인 툴이라면, 피그잼은 브레인스토밍, 협업을 위한 화이트보드입니다. 큰 도화지에 생각나는대로 이것저것 적고, 순서도를 그리고, 여러사람이 자신의 생각을 포스트잇으로 붙여서 생각을 공유합니다. 기능도 단순해서 보기만해도 사용방법을 알 수 있습니다. 1. 가입 및 로그인 피그잼은 Figma.com에서 .. 2022. 6. 29.
자바GUI(JavaFX) - CSS파일 적용 JavaFX에서 css파일을 적용하는 방법에 대해 알아보겠습니다. 1. CSS 파일 추가 "resources - 프로젝트이름폴더" 하위에 css파일을 추가합니다. 샘플로 darktheme.css라고 이름지었습니다. 2. CSS파일 적용 HelloApplication클래스의 Scene 선언부 바로 뒤에 darktheme을 불러오는 코드를 추가합니다. package com.example.test07; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.stage.Stage; import java.io.IOException; public class HelloAppl.. 2022. 6. 26.
자바GUI(JavaFX) - Gradle 환경에서 외부 라이브러리 추가하기 IntelliJ에서 JavaFX 프로젝트 생성을 할 때 Maven 또는 Gradle 빌드환경을 선택하도록 되어있습니다. Gradle환경에서 외부 라이브러리 추가하는 방법에 대해 알아보겠습니다. 1. build.gradle 파일 수정 Gradle 환경으로 프로젝트를 생성하고 외부 Library를 추가할 때에는 build.gradle파일의 dependencies 부분에 인식시켜줘야 합니다. dependencies { implementation files("libs/gson-2.9.0.jar") // 라이브러리 추가부분 implementation files("libs/aquafx-0.1.jar") // 라이브러리 추가부분 testImplementation("org.junit.jupiter:junit-jupit.. 2022. 6. 25.
Electron-vue 보일러플레이트 만들기 1. Vue 프로젝트 시작 vue create . //폴더를 먼저 만들고 해당 폴더를 프로젝트 폴더로 하여 생성 2. Electron-Builder 설치 이거 설치하고 테스트를 해본다. vue add electron-builder 3. 배포 테스트 npm run electron:build 4. Router 설치 vue add router - App.vue파일이 자동으로 업데이트 됨 Home About - ./views/HomeView.vue와 /views/AboutView.vue 파일이 자동 생성됨- - ./router/index.js 파일이 자동 생성됨 5. Bootstrap-vue 설치 npm install bootstrap-vue bootstrap Bootstrap-vue 설정 (main.js) i.. 2022. 6. 22.
Vue3 + bootstrap5 적용하기 1. 설치 npm i --save bootstrap npm i --save @popperjs/core // 부트스트랩 실행에 필요 2. main.js에 두줄만 Import하면 됨 import { createApp } from 'vue' import App from './App.vue' import router from './router/index.js' // 아래 두줄만 넣으면 된다. import 'bootstrap/dist/css/bootstrap.min.css' import 'bootstrap' createApp(App) .use(router) .mount('#app') *** bootstrap-vue 적용하기 npm install vue bootstrap-vue bootstrap 이제 main.js.. 2022. 5. 28.
Vuex 사용 state : data getters : computed mutations : methods actions : methods(비동기) Vuex action에서의 활용 context.state context.getters context.commit (mutation의 함수 사용시) context.dispatch (action의 함수 사용시) Vue 컴포넌트에서 Vuex Helper 사용 ...mapState('모듈',[ '상태1','상태2' ]) ===> computed에서 사용 ...mapGetters('모듈',[ '상태1','상태2' ]) ===> computed에서 사용 ...mapMutations('모듈',[ '상태1','상태2' ]) ===> methods에서 사용 ...mapActions('모듈.. 2022. 5. 24.
Vue 프로젝트 - Movie페이지 단일영화 상세정보 및 skeleton UI작성 1. routes 수정 /movie/#123456과 같이 ID를 입력받을 수 있도록 수정 import { createRouter, createWebHashHistory} from 'vue-router' import Home from './MyHome.vue' import Movie from './MyMovie.vue' import About from './MyAbout.vue' export default createRouter({ // Hash, History --> Hash mode 사용 예정 history: createWebHashHistory(), // pages routes:[ { path:'/', component: Home }, { path:'/movie/:id', component: Movi.. 2022. 5. 22.
VSCode Vue snippets설정 아래와 같이 자동 완성되도록 스니펫 설정하기 vue.json { "Generate Basic Vue Code": { "prefix": "vue-start", "body": [ "\n\t\n\n\n\n" ], "description": "Generate Basic Vue Code" } } 2022. 5. 22.
Vue 영화검색사이트 기본 설치 파일 1.라이브러리 설치 npm i vue-router vuex bootstrap@5 npm i -D node-sass sass-loader 2. bootstrap 커스터마이징 - scss/main.scss 작성 - 오류 방지를 위해 maps는 주석 처리 // Required @import "../../node_modules/bootstrap/scss/functions"; // Default variable overrides $primary:#FDC000; //variables가 실행되기 전에 재정의되어야 함 // Required @import "../../node_modules/bootstrap/scss/variables"; @import "../../node_modules/bootstrap/scss/mix.. 2022. 5. 14.
Vue Tailwind CSS 적용하기 1. 설치 npm install -D tailwindcss@latest postcss@latest autoprefixer@latest 2. 활성화 npx tailwindcss init -p 3. ./tailwind.config.js환경설정 module.exports = { // content: [ // "./index.html", // "./src/**/*.{vue,js,ts,jsx,tsx}", // ], purge:[ "./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}" ], theme: { extend: {}, }, plugins: [], } 4. src/index.css 파일 생성 @import "tailwindcss/base"; @import "tailwindcs.. 2022. 5. 13.
Vue apache 배포 오류 Vue로 작성한 프로그램을 Build를 하고... npm run build /dist/ 폴더의 파일들을 아파치 폴더에 옮겼는데, 빈 화면이 나옵니다. index.html 파일은 보이는데 개발자 화면 확인해보니...js파일과 css파일의 경로를 인식을 못했습니다. "/js/chunk-vendors....."처럼 되어있는데, 혹시나 해서 "."을 붙여보니 작동이 됩니다. 동일한 오류 겪고계신 분께서는 한번 시도해보시길 바랍니다. 2022. 5. 12.
C#(WPF) - 실행 프로그램 아이콘 설정하기 Dotnet 프로그램의 Icon을 변경하는 것은 굉장히 쉽습니다. 원하는 아이콘(111.ico)이미지를 프로젝트 폴더에 넣어준 뒤, project.csproj파일에 등록시켜주면 끝납니다. WinExe netcoreapp3.1 111.ico true 2022. 4. 22.
Godot사용팁 - path2D Path2D노드 사용법에 대해 알아보겠습니다. Path2D노드를 사용하면 단순히 움직이는 캐릭터들(Enemy 나 NPC 등)의 단순 이동동작을 최소한의 코딩으로 구현할 수 있는 유용한 노드입니다. 1. 적당한 Enemy 노드가 있을 경우, 전체 동작하는 Scene에서 아래와 같이 구성을 하였습니다. Path2D노드는 하위에 항상 PathFollow2D를 자식으로 담고 있어야 합니다. Path2D노드가 포인트를 이용하여 라인을 생성하는 노드라면, PathFollow2D노드는 그 선을 어떤 방식으로 따라가는지를 설정하는 노드입니다. 2. Path2D노드를 다시 선택하면 아래 그림과 같이 에디터 상단에 포인터 추가/삭제/편집할 수 있는 버튼이 활성화됩니다. 적당히 이동 경로를 그려줍니다. 이 중 5번째 아이콘.. 2022. 3. 14.
무료 페인팅 프로그램 크리타(Krita) 소개 요즘 게임을 만들고 있다보니 이미지를 다룰 일이 많아졌습니다. 이미지 편집 하면 가장먼저 Adobe의 Photoshop을 떠올리실텐데요, 유료인 요금정책으로 인해 대부분은 사용을 못하던지, 아니면 암암리에...적당히 사용하고 있을텐데요. 그래서 오늘은 무료 페인팅 프로그램을 알아보려고 합니다. 바로 크리타(Krita)입니다. Krita는 오픈소스 프로그램으로 누구나 무료로 사용가능하며, 기업에서 사용하더라도 무료입니다. 또한 결과물에 대해 상업적으로 이용하더라도 아무런 제한이 없습니다. Krita는 리눅스 진영의 대표적인 양대 데스크탑환경인 GNOME과 KDE중 KDE환경의 표준 이미지 에디터입니다. 리눅스의 이미지 에디터 하면 GIMP를 떠올리실 분도 계실텐데요, GIMP가 포토샵에 대항마라고 하면, .. 2022. 3. 13.
Godot사용팁-AnimationTree노드의 Blendmode2D로 애니메이션 컨트롤 오늘은 AnimationTree노드에 대해 알아보겠습니다. 처음 캐릭터의 애니메이션을 만들면 AnimationPlayer노드를 많이 사용하는데요, 이 노드만 이용해서 각종 상태를 코드로 컨트롤하려면 좀 힘듭니다. 많이 힘듭니다. 머리는 쥐가나고, 코드는 스파게티가 되고, 뭐 하나라도 추가하려면 완전... 그래서 여기서도 똑똑하신분이 상태 관리하라고 노드를 하나 주셨는데, 그게 바로 AnimationTree노드입니다. AnimationTree노드를 사용하려면 각각의 동작 Animation은 사전에 구현이 되어있어야합니다. 이미 존재하는 Animation을 컨트롤하는 상태관리자라고 보시면 됩니다. 참고로 저는 코로나 격리기간 중에 아래와 같은 게임을 7살 딸과 함께 만드는 중이었습니다. 탑다운 방식이다보니 .. 2022. 3. 12.
Godot GUI프로그래밍 예제 - 시계만들기 1. Display Size를 (400,500)으로 세팅합니다. 2. Borderless를 설정합니다. 3. Per Pixel Transparency를 Allowed, Enabled 로 바꿉니다. 4. 노드 구성 - clock (control) ㄴ ColorRect (ColorRect) ㄴ Body (sprite) : 시계 몸체 이미지 ㄴ pivot_h (Node2D) ㄴ Hour (sprite) : 시침 이미지 ㄴ pivot_m (Node2D) ㄴ Minute (sprite) : 분침 이미지 ㄴ pivot_s (Node2D) ㄴ Second (sprite) : 초침 이미지 5. Body는 앱 중앙에 위치시키고, pivot들은 Body의 중앙에, pivot 내부의 sprite이미지들은 위와같이 정렬해줍니.. 2022. 2. 24.