소프트웨어개발
데이터베이스
인기글
최신글
- java, python, js, html, css에서 들여쓰기 space 크기에 대한 개인적 의견 개요 js 작업 중인데, 역시 탭 크기에 대한 고민이 발생되었다. 탭 vs space 이 부분은 사실상 종결된 부분으로, space(공백)으로 구성하는 것이 낫다. '탭 문자'의 특징이 소스 코드 작성이라는 것과 애매하게 안 맞는 부분이 있기 때문인 것인데, 에디터에서 탭 키를 눌렀을 때 공백이 들어가게 지원되면서, 이 문제가 해결이 된 셈이다. 원래는 탭 키를 누르면 탭 문자(\t, U+0009, 등) 들어가게 되는데, 소스 코드에 이것을 포함하고, 컴파일이든 런타임이든에서 이것을 인식시켜야 하고, 이런 저런 이슈가 있는데. html 문서 내에 탭 문자가 들어갔을 때, 브라우저에서 어떤 식으로 표현해야할 지 등 여러 가지 문제가 혼합되어버릴 수 있다. 개발하는 관점에서는 편리하겠지만, 작.. 2024.02.24
- [intellij] spring boot intellij gradle to idea setting Spring Boot가 아닌 Gradle로 실행되는 경우가 있다고 함. 이 경우 설정 - Build, Execution, Deployment - Build Tools - Gralde Gradle projects 항목에서 Build and run using : Gradle에서 IntelliJ IDEA로 변경 Run tests using : Gradle에서 IntelliJ IDEA로 변경 미묘한 차이기는 한데.. Gradle을 통하는 경우 조금 느리다고 함. 2024.02.12
- 2023.12 잡담 잡담 블로그 글을 많이 썼었다고 생각했는데, 지금 와서 보니 엄청 적다. 오래된 글 삭제하다보니 줄어든 것인가, 원래 적었던 것인가. 글쓰는 능력이 향상되서 옛날 쓴 글이 어설퍼보이는 것인가. 어찌되었든, 블로그를 새로 만드는 작업이 2024년 안에는 완료할 계획인데, 완료되면 글을 많이 작성하도록 해야겠다. (새해다짐..) 기존에는 기초적인/대중적인 내용을 위주로 작성했었는데, ChatGPT 등장 이후로 생각이 바뀌었다. (참고로. ChatGPT가 2022년 11월에 베타버전이 나왔다는 거 아시나요? 등장한지 1년된 것인데. 세상이 빠르게 바뀌는 걸 느낍니다) 블로그는 좀 더 깊이있고 복잡한 문제에 대해서 다루는 게 좋다고 생각이 바뀐 것이다. 세상이 바뀌었으면 적응을 해야하니까.. 간단한 내용은 Ch.. 2023.12.30
- [티스토리][Book Club 스킨] 본문에서 카테고리 이름에서 카테고리 링크 달기. 개요 티스토리 블로그에서 글 본문을 보는 화면에서, 글 제목보다 바로 위에 '카테고리 이름'이 나타납니다. 여기를 눌러보면 링크가 안 되어있어서, 카테고리 글 목록으로 넘어가지 못하는데. 링크를 연결하는 방법에 대해서 정리해봅니다. 간단합니다. 과정 s_permalink_article_rep 태그 아래에 다음을 찾습니다. 단순히 ctrl + f하시고 _article_rep_category_을 검색하면 바로 나옵니다. 을 다음과 같이 변경. 2023.12.22
- 블로그 및 개인 근황 2023-12 블로그 근황 사실은 django로 블로그를 개발하고 있고, 이미 어느 정도 완성은 되어있는 상태입니다. 완성 직전에 현실적 이슈가 있어서 잠시 작업을 멈춘 상태이구요. 원래는 2023년도 플랜으로 블로그를 만드는 것이 있었습니다. 티스토리를 안 쓰고, 새로 개발하고 있는 이유로는. 티스토리에서 로그인 불편함이 있고 (티스토리 쓰시는 분들은 로그인 방식을 가능한한 티스토리 로그인 방식으로 두시는 것이 좋습니다. 카카오톡 계정 로그인 방식은 역시 좀 불편해요... 솔직히 말하면, 네이버 로그인 연동, 구글 로그인 연동, Github 연동 등 방법이 많지 않았을까 싶은데.. 카카오톡 연동이라니 좀 불편합니다... 잘 안 쓰게 되는 이유가 되었어요. 전용 앱도 없고... 이게 무슨..) 2023년이 끝나기 때문.. 2023.12.22
- [python, django] 'save_m2m' save_m2m에 대해서 알아보자. https://github.com/django/django/blob/main/django/forms/models.py django/forms/models.py에서 500라인 즈음에 BaseModelForm클래스의 def save메소드를 살펴보자. if commit: # If committing, save the instance and the m2m data immediately. self.instance.save() self._save_m2m() else: # If not committing, add a method to the form to allow deferred # saving of m2m data. self.save_m2m = self._save_m2m ret.. 2023.12.22
- [FAILED] failed to mount VMware vmblock fuse mount. 개요 VMware로 우분투(Ubuntu)를 종종 사용중인데, 구동되는 과정에서 다음의 오류가 이따금 출력되었다. piix4_smbus 0000:00:07.3: SMBus Host Controller not enabled! /dev/sdb5: clean, ~~ files, ~~ blocks [FAILED] failed to mount VMware vmblock fuse mount. You are in emergency mode. After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to boot into default mode. Give root.. 2023.09.19
- multipass - [error][~] Could not unregister VM: Process failed to start 개요 C:\Users\~~> multipass launch -n test1 [error] [test1] Could not unregister VM: Process failed to start: 지정된 파일을 찾을 수 없습니다. launch failed: Could not generate a new UUID: Process failed to start: 지정된 파일을 찾을 수 없습니다. 발생 상황 및 조건 multipass를 처음 설치한 후 launch 명령어(multipass launch -n test1)를 수행했더니 발생. hyper-v를 사용하고 있지 않고, virtualBox만 설치되어 있음. Windows 호스트. (버전은 Windows 10) 원인은 두 가지로 추정했다 hyper-v를 필요로 하.. 2023.09.11
- 용어에 대해서) code, source code 개요 얼마 전에 무심코 고민을 한 적이 있다. python 코드들을 정리해서 github에 비공개 저장소로 올리는 중이었는데, 저장소 이름을 뭘로 할까 고민을 하게 되었다. 'python_sources', 'python_codes', ... 문득 드는 생각에, source와 code의 의미에 대해 다시 한 번 생각해보게 되었다. 그래서 영어로 검색해보고 나서 느낀 점은, 외국애들이 받아들이기에 code라는 단어는 우리가 생각하던 것과 의미가 달랐다. 예를 들어, ascii code라거나, 전쟁 중에 주고 받는 통신 암호 코드 같은 것을 code로 생각하는 듯했다. 별로 개의치 않고 사용하는 사람들은 code라고 쓰긴 하는데, 문법에 예민한 외국애들은 프로그래밍과 관련되어서 c.. 2022.09.29
- [리눅스] 특정 폴더 내에서 특정 파일 제외하고 삭제하기 특정 폴더 내에서 특정 파일 제외하고 삭제하기 find . -type f -path '*i18n*/*.json' -not \( -name 'en.json' -or -name 'ko.json' \) -delete 유추하던 과정... # 특정 폴더명 재귀 탐색 find . -name "i18n*" # i18n 이하의 json 파일 탐색 find . -type f -path '*i18n*/*' -name '*.json' find . -type f -path '*i18n*/*.json' # i18n 이하의 json 파일 중에서 en.json, ko.json, qqq.json 이 아닌 것만 골라내기 find . -type f -.. 2022.07.22
- 윈도우 10 환경 변수 복구 개요 윈도우10에서 환경 변수를 건드리다가 잘못되는 경우가 생길 수 있다. ... 재부팅을 하기 전이라면, 그 전의 값을 알아낼 수 있는 방법이 몇 가지 있다. 레지스트리 환경변수는 레지스트리에 저장이 되므로, 레지스트리를 살펴보는 방법이 있다. 그러나 대체적으로 만족스럽지는 못할 듯 하다. 환경변수를 변경하는 순간, 레지스트리 값도 같이 바뀌기 때문에... 전에 열어두었던 '명령 프롬프트', '파워셀' 등의 창. 환경변수를 변경하기 전에 열어두었던 '명령 프롬프트'가 있다면, 구세주가 될 수 있다. 명령 프롬프트에서 echo %path%를 쳐본다. 파워셀을 열어둔 게 있었다면, $env:path를 타이핑. ProcessExplorer 이용 마이크로소프트에서 제.. 2022.01.31
- 아이폰에 음악 넣기 (아이튠즈 사용 안 하고) 여러 음악 플레이어 앱들이 있는데, 의심스러운 것은 싫거나, 안전한 제품을 사용하시고 싶으시다면, VLC Media Player를 사용하시면 됩니다. 이 소프트웨어 대한 설명은 아래를 참고하시면 됩니다. 나무위키 - VLC 아이폰의 앱스토어에서는 'VLC for Mobile'이라는 이름으로 등록이 되어 있습니다. 개발자/회사명칭이 'VideoLAN'이므로 이것을 잘 확인하시고 다운로드 받으시면 됩니다. 파일 전송은 '네트워크'탭에서 'WiFi를 통해 공유'를 체크하시고, 해당 주소로 컴퓨터에서 접속해서 파일을 업로드하시면 됩니다. 전송이 다 되었다면 보안을 위해 'WiFi를 통해 공유'는 다시 체크해제 하시고, 사용하시면 됩니다. 기능이 좋거나 많은 것은 아닌 것 같은데, 무난하게 사용하기에 좋습니다. .. 2021.12.14
- [mariaDB] Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '=' 개요 MariaDB 를 'utf8mb4_unicode_ci'로 생성을 했고 (정확히는 도커 컨테이너로 생성), 클라이언트 툴로 접속을 했는데. Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='라는 오류를 자꾸 만났다. 분석 조인 조건에 있는 문자셋이 달라서 발생한다고 하는 말이 있다. (stackoverflow.com 에서 찾음. 링크는 저장해두지않아서 없음..) 그러면, 문자셋을 확인해보자... show variables like 'char%'; show variables like 'collat%'; sh.. 2021.11.25
- pug 에 대해서 pug에 대해 pug 를 오늘 처음 알았다. 간단히 보자면, html 을 yml 형식 같은 느낌으로 간단히 작성하는 방법을 지원하는 도구이다. 공식 주소 : (https://pugjs.org/api/getting-started.html)[https://pugjs.org/api/getting-started.html] pug 사용법 살펴보자. 블라블라.pug라는 파일을 만든다. 내용은 doctype html html head title 가나다라 body 가나다라 p 가나다라이런 느낌으로 작성한다. 장점 이런저런 내용은 검색해보면 나오는데, 내가 하고 싶은 말이 있다. 그것은 가장 큰 장점이다. 가장 큰 장점이 무엇이냐면. 주석을 마음껏 써도 된다는 점이다. 주석은 컴파일 되지 않으니까! 백엔드만 해오다보니 .. 2021.10.11
- SnoreToast SnoreToast 라라벨 믹스(laravel-mix)를 할 때 npm에 딸려서 설치가 된 것으로 생각된다. 주 목적은 윈도우에 알림을 띄우는 것으로 생각된다. (고작 그것 때문에...?) 위치를 추적해보니 설치 위치를 살펴보면,C:\Users\~~\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\SnoreToast\0.7.0\SnoreToast 위치로 바로가기가 있고. 이 바로가기는 ~~~~\laravel\node_modules\node-notifier\vendor\snoreToast\snoretoast-x64.exe같은 경로를 가리키고 있다. 저 경로는 작업했던 라라벨의 node_modules폴더이다. 경로로 찾아가보면 snoretoast-x64.exe.. 2021.10.04
- 장고 프레임워크 Django 에 대한 개인적 생각 Django 장고 프레임워크 공식 : https://www.djangoproject.com/ Git : https://github.com/django/django 라이선스 : 3-clause BSD (영문 위키 참조)(공식은 https://github.com/django/django/blob/main/LICENSE) 언어 : 파이썬 위키 https://en.wikipedia.org/wiki/Django_(web_framework) https://ko.wikipedia.org/wiki/장고\_(웹\_프레임워크) Doc : https://docs.djangoproject.com/en/2.1/ 파이썬 기반의 장고 웹 프레임워크이다. 길게는 사용을 안 해봤지만, 앞으로 쭉 사용할 듯 하다. 파이썬 언어의 장점이.. 2021.09.27
- 라라벨 Laravel 에 대해서 알아보기 Laravel 라라벨 공식 사이트 : https://laravel.com/ 라이선스 : MIT (https://github.com/laravel/laravel 하단을 참조) Docs : https://laravel.com/docs/master Composer : https://packagist.org/packages/laravel/laravel Git https://github.com/laravel/laravel https://github.com/laravel/framework 라라벨과 내가 기억하는 PHP 진영의 역사 '라라벨 프레임워크'는 PHP 진영에서 마지막 보루라고 볼 수 있는 프레임워크이다. 기존에 여러 프레임워크가 등장하고 소멸했지만, PHP쪽에서는 그럴싸한 물건이 없었다. 먼.. 2021.09.20
- laravel breeze 와 jetstream 간단히 보자면, 라라벨에서 인증 기능 구현을 위해 지원하는 스타터 키트는 현재 둘로 나뉘어졌다. (예전에는 어떻게 구현했드라..) 하나는 breeze 이고, 다른 하나는 jetstream 이다. 단순히 단어의 의미로 접근하자면. breeze (순풍, 미풍)이고 jetstream (제트기류; 기상예보에서 가끔 나오는 제트기류)이다. 여기서 breeze는 기능을 최소화하려고 하고, jetstream은 기능을 많이 넣으려고 한다라고 눈치 챌 수가 있을 것이다. 공식 문서를 간단히 대충 살펴보면 이런 내용을 볼 수 있다. breeze * 예전 방식처럼 로그인, 로그아웃, 이메일 인증, 비밀번호 초기화 등을 지원한다. * composer 로 붙일 때는 'composer require laravel/breeze -.. 2021.09.14
- 윈도우 환경에 docker 설치 개요 윈도우 환경에서 Docker 를 설치해보았다. 우분투에서는 설치를 해봤는데. 윈도우에 설치해본 것은 처음... 사전 조사 2020년 이전 2020년 이전의 검색 결과들을 살펴보면, 다음과 같은 내용을 알 수 있었다. 도커 사이트에서 'Docker for Windows' 를 받을 수 있다. 문제는 'Hyper-V'기능을 필요로 한다. (윈도우에서 '프로그램 및 기능' > 'Windows 기능 켜기/끄기' 에서 'Hyper-V' 기능을 켜야 함) 이 기능을 켜면 VMware 와 VirtualBox 에서 충돌이 발생한다. 그래서 VMware와 VirtualBox 를 사용하는 사람은 'Docker for Windows'를.. 2021.06.20
- Numpy 의 Axis 옵션에 대한 정리. 개요 쉬운 듯 하면서... 보면볼수록 헛갈린다. 기왕 정리하는 김에 포스팅하도록 한다... (쓰면서도 헛갈림...) 배열 수준별로 테스트해보자 2차원 배열에서 # 2차원 배열에서 axis 사용 import numpy as np a = np.array([[10, 20, 30], [15,7,55], [5,33,12]]) print(np.max(a, axis=0)) # [15 33 55] # 열 기준 (위아래로 큰 것들) print(np.max(a, axis=1)) # [30 55 33] # 행 기준 (옆으로 큰 것만 추림) 3차원 배열에서 import numpy as np arr = [[[30, 15, 11], [27, 35, 23], [ 6, 1, 8], [17, 24, 32]], [[ 3, 4, 36],.. 2021.05.07