라즈베리파이와 하드로 NAS를 구축한지도 4년 즈음 됐다. 처음에는 아무것도 몰라서 기본 환경에다가 이것저것 설치했었는데, 이것들이 시간이 지나니 포트도 뒤죽박죽에 충돌도 났다. 이런 취미를 공유하는 친구가 한 명 있는데, 그 친구가 Docker 를 왜 안쓰냐고 그래서 시작했다. 모든 자체 호스팅(Selfhosted) 웹서비스를 도커로 마이그레이션하기로 마음을 먹었다. 1. 왜 너만 안돼 Nextcloud. 정말 편리하게 쓰는 클라우드 앱이다. 원래는 OwnCloud였는데 얘네가 수익화를 시작해서 떨어져나왔다고 한다. 오픈소스고, 데스크탑/모바일 앱도 있다. 서버 리소스를 혼자만 쓰니 빠르고, 에러도 잘 안난다. 개인적으론 구글 드라이브보다 더 좋다. 다만 단점이라면, 세팅하기가 어렵다는거. 도커 컴포즈..
프로젝트/설명
라즈베리파이를 써온지도 1년이 다 되어가고, 앵간한 에러를 다 삽질해본 입장에서 내린 결론은 "리눅스는 원리 파악이 중요하다" 였다. 각 디렉토리의 구조와 bash등이 명령어를 해석하는 구조, system.d 등을 알아야 무의미한 삽질을 멈출 수 있다. 따라서 1년간 삽질하며 얻은 라즈베리파이 관련 지식을 풀어서 정리해볼까 한다. 첫 번째는 시스템이 어떻게 이루어져 있는지에 관한 것이다. 유저 모드와 커널 모드, 그리고 하드웨어 리눅스는 어떻게 cpu, gpu, ram 등을 작동시키는가? C의 컴파일 구조를 보면 컴파일러와 링커가 존재하고, 이를 통해 코드를 기계어로 번역한다. 그러나 C는 하이레벨 언어인 것이, 운영체제 내의 컴파일러가 CPU의 연산과 RAM 할당을 컴파일 과정에서 수행한다. 더 저수준..
FTP로 저장소를 복사하여 다운로드가 다 되긴 했지만, 열어본 index.html은 에러 투성이다. 빨간줄 투성이에, css 태그들은 하이라이트 쳐져있다. 주의 표시다. 자세히 살펴보니 {$...}으로 시작하는 태그들 때문에 문제가 생기는 것 같다. 이건 카페24 자체 스마트 디자인의 모듈이란거다. 카페24 쇼핑몰 센터에서는 다양한 모듈을 제공한다. https://sdsupport.cafe24.com/ 스마트디자인 서포트 sdsupport.cafe24.com 위 사이트에서 다양한 매뉴얼 및 목록을 볼 수 있다. 마찬가지로 "변수" 와 "모듈"의 개념에 대해서도 아래 링크에 잘 설명해놓았다. https://sdsupport.cafe24.com/board/tip/read_intro.html?no=191&bo..
카페24 쇼핑몰 개발을 하려는 분들이면 쇼핑몰 관리자 계정을 생성한 후, "일단 쇼핑몰이 만들어지긴 했는데..." 하는 상태일 것이다. 아니라면 cafe24.com에서 로그인 -> 쇼핑몰 관리자 -> 회원가입을 통해 회원가입을 먼저 하도록 한다. 필자는 회사에서 쓸 쇼핑몰의 스킨을 만들기 위해 개인 계정을 만들어 테스트할 수 있도록 따로 만들어두었다. 프로모드로 전환 후 디자인 관리에 들어가면, 기본으로 설정된 디자인이 보이고, 디자인관리 -> 디자인 보관함에 가면 지금 있는 스킨의 목록을 열람할 수 있다. 디자인 관리 -> 디자인 추가로 가면 입맛에 맞는 스킨을 다운로드 할 수 있다. 우리는 직접 디자인을 만드는게 목적이므로 디자인 보관함(위 사진)의 우측 하단 메뉴인 "기본 디자인 추가"를 눌러 기본..
카페24로 쇼핑몰을 개발하려고 했는데, 스킨을 다운받는 방법 같은 것만 있고 직접 스킨을 만드는 법은 없어서, 찾아보면서 개발한 내용을 공유하려고 한다. 사용 툴: WebStorm 추천 독자: html 및 css, js 기초를 알고 있으며 자기 쇼핑몰의 디자인 시안을 갖고계신 분 tag/%EC%B9%B4%ED%8E%9824%20%EC%87%BC%ED%95%91%EB%AA%B0%20%EA%B0%9C%EB%B0%9C 연구노트 ghlabnote.tistory.com
샘플봇 어서오고... 가 아니라! discord.py 문서를 살펴봅시다. discord.Client의 속성과 메소드 화면입니다. 여기서 우리가 모르는 것을 추려보면, 1. discord.Client 앞에 붙는 class는 무엇인가?! 2. Methods가 대체 뭘 의미하는 것인가? 3. 그래서 이거 어떻게 써야 에러가 안나는건데?! 정도겠지요... 1. 클래스? 메소드? 객체지향? 그래서 저는 객체지향을 배워야겠다 생각하고 찾아봤습니다. 생활코딩 강의 5개(1개에 평균 10분)를 듣고 이해가 됐네요. 생활코딩은 사랑입니다. 정말루. https://opentutorials.org/course/1750/9624 객체 지향 프로그래밍 - 생활코딩 이번 영상은 길고 다소 어렵습니다. 충분한 시간을 확보한 후에 ..
import discord client = discord.Client() @client.event async def on_ready(): print('We have logged in as {0.user}'.format(client)) @client.event async def on_message(message): if message.author == client.user: return if message.content.startswith('$hello'): await message.channel.send('hello!') client.run('your token here') 샘플봇 어서오고... async def(비동기함수 선언문)위에 쓰여진 @client.event 보이시나요? 저걸 데코레이터라 합니다..
생활코딩 WEB2 강의를 토대로 정리하여 개발 경험을 덧입힌 글입니다. 1. 개요 - 웹이 작동하는 방식 처음에는 HTML과 CSS가 다른 줄 알았었는데, 왜냐하면 티스토리 스킨 에디터에서는 HTML과 CSS를 구분하기 때문입니다. 자바스크립트도 마찬가지. 하지만 로 구분합니다. 한가지 효과를 줄 때는 html과 별반 다를게 없어보이지만, 페이지를 꾸미려면 한 속성당 여러가지 효과를 줘야 하고, 그럴때 CSS의 효과는 엄청나지겠죠? 그럼 코딩으로 넘어가봅시다. 하이퍼링크를 통해 1번 html을 엽니다. a 태그에 옵션으로 color:red를 추가했습니다. 헤드의 스타일 태그, 즉 css를 통해 a 태그의 스타일을 일괄지정합니다. 3, 4번은 따로 태그를 추가하지 않아도 빨간 색으로 표시됩니다. 제일 큰 ..
아무리 파이썬이라고는 하지만 디스코드봇의 코드는 여러가지로 생소한 부분이 많습니다. 물론 여러 사이트에서 코드를 복붙해가면서 익히는 것도 방법이지만, API 문서를 보려면 꼭 이해해야 하는 것이 코드 자체의 처리방식인 비동기 처리와 함수들의 구조인 객체지향입니다. 시작해봅시다. 1. 전체적인 작동원리 파악하기 import discord client = discord.Client() @client.event async def on_ready(): print('We have logged in as {0.user}'.format(client)) @client.event async def on_message(message): if message.author == client.user: return if mess..
1. 굳이 가상환경을 쓰는 이유 가상환경을 만드는 이유는... 처음 시도에 마법처럼 잘 설치되고 오류없이 짠! 하고 구동되기에는 힘들기 때문입니다. 뭐, 파이썬이 %AppData%Local에 설치되어 있어서 pip 경로가 엄청나게 길다던지... 하는 경우엔 라이브러리 설치하려면 밑도 끝도 없습니다. (윈도우는 경로가 좀 거지같아요. 특정 사용자용 패키지를 왜 Appdata까지 내려가서 설치하는겁니까? 이해가 안돼 증말) 또 하나 더. 굳이 내 컴퓨터의 어딘가에 설치될 파일들이 좀 찝찝하지 않나요? 일일이 찾아서 지워야 하는데. 그리고 다른 프로젝트를 진행할 때도 전에 설치되었던 (잘못 설치되어있을지도 모를) 라이브러리, 특히 구버전인 경우에는 더하죠. 그냥 디스코드봇만을 위한 가상환경을 만들어서 이것저것..