전체 글 50

nextcloud 설치

넘쳐나는 파일들을 관리하기 위해서 개인적인 것들은 google drive에서 관리하고, 회사와 관련된 것들은 Onedrive에서 관리한다. 그런데, 무료로 쓰다 보니 용량 제한 문제도 있고, 접속이 느려지는 현상도 빈번히 발생하고, 로그인 자체가 안되는 경우도 가끔이지만 발생했다. 이러한 문제들을 해결하기 위해서 사설 서버에 nextcloud를 설치하기로 했다. 욕할 대상이 서비스 업체에서 나로 변경된다. 마조인가? 설치 간단한 설치와 관리를 위해 docker를 이용한다. docker 설치는 docker 설치를 보면 된다. 먼저, yaml 파일을 생성한다. nextcloud_docker.yml version: '3.9' services: db: image: postgres restart: always v..

편(編)/설치 2021.09.06

sublime text - 자동 저장

sublime text는 텍스트 에디터이며, 다양한 기능들을 제공한다. sublime으로 파일을 열어 텍스트 편집하다가 저장을 누르지 않고, sublime을 종료하면, 파일에는 편집한 내용이 저장되지 않고, sublime을 통해서 열 때만 편집한 내용이 나온다. 텍스트 편집기를 sublime만 쓰는 것이 아닌 경우, 이러한 것이 무척 거슬린다. 이 포스트에서는 이러한 것을 해결하는 설정 방법을 포스팅한다. 자동 저장 설정 메뉴의 Preferences > Settings 을 선택하면, 2컬럼으로 왼쪽 칼럼에 sublime의 기본 설정을 보여주고, 오른쪽 칼럼에 사용자 설정을 할 수 있는 화면이 나온다. { "save_on_focus_lost": true, } 위와 같이 오른쪽 칼럼에 설정하면, 1) sub..

잡학(雜學) 2021.09.02

Openstack - 이미지 등록

Openstack을 설치한 이후에 처음으로 기본 이미지로 서버(혹은 인스턴스)를 생성할 때, 이상하게 이미지에 문제가 있어서 서버가 생성되지 않는 경우가 있다. Packstack으로 설치하는 경우, cirros가 기본으로 등록되어 있다. (설치 옵션에서 따라 cirros가 등록되지 않을 수 있다.) 이 포스트에서는 새로운 cirros 이미지를 내려받고, 이를 Openstack에 등록하는 방법에 관해 서술한다. 이미지 획득 cirros 이미지는 http://download.cirros-cloud.net/ 에서 내려받을 수 있다. 하지만 굳이 들어가는 건 귀찮으므로, 커맨드를 사용한다. CIRROS_VERSION=$(curl -s http://download.cirros-cloud.net/version/re..

잡학(雜學) 2021.09.01

스크럼 수행 순서

Product Backlog 작성 User Story 들을 작성한다. User Story는 중요도가 높을수록 상단에 위치하게 한다. 상단의 User Story가 Sprint 동안 수행할 수 있지 않으면, User Story를 쪼갠다. Sprint Planning 회의 Sprint 동안 어떤 User Story를 할지 결정한다. 선택된 User Story의 인수 기준을 결정한다. Sprint Backlog 작성 User Story를 완수하는 데 필요한 task 들을 작성한다. task를 개발자에게 할당한다. Sprint 시작 보통 한 번의 Sprint는 2주 동안 진행한다. 일일 스크럼 회의 매일 15분 정도 간단하게 진행한다. Sprint 진행에 방해가 되는 모든 요소에 관해 이야기한다. (자신의 건강상..

잡학(雜學) 2021.08.31

boilerplate code(보일러플레이트 코드)

보일러플레이트 코드(이하 BP)는 최소한의 변경으로, 혹은 변경 없이 재사용할 수 있는 코드를 말한다. BP는 단순히 생각하면 반복되는 코드이다. 이는 가독성을 저하하고, 변경을 어렵게 만든다. 궁극적인 문제는 개발자를 귀찮게 만든다는 것이다. 이를 해결하기 위해서 리팩토링을 통해 중복 제거를 할 수도 있으나, 불가능한 예도 있다. 예시) public class Person { private String name; public String getName() { return name; } public void setName(String newName) { this.name = newName; } } 위의 코드는 별로 문제가 없어보이지만, Q) 만약 Person 클래스의 필드가 30개라면? - 그에 해당하는..

잡학(雜學) 2021.08.29

docker 설치

# DEPRECATED: 부분 유료화, podman 설치 추천 docker는 서버를 관리할 때, 굉장히 유용하다. docker의 컨테이너끼리는 서로 isolation이 보장된다. 그 덕분에 여러 개의 서버를 같은 서버에 설치할 때, 설정 문제가 꼬이는 것을 방지할 수 있다. 이 포스트는 운영체제마다 `docker 설치`와 `기본적인 설정`을 기술한다. 운영체제를 떠나 순수하게 바이너리로 설치하는 방법이나 스크립트로 설치하는 방법이 존재하나, 삭제하거나 업데이트할 때 귀찮으므로, 각 운영체제의 패키지 매니저를 사용하는 것을 지향한다. 설치 Centos 7 yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/li..

편(編)/설치 2021.08.25

status vs state

"status"와 "state"는 직역하면 "상태"이다. 그렇지만, 이 둘은 엄연히 구분되어 사용된다. Status status는 어떤 연산 결과이다. 연산 결괏값을 말하는 게 아니다. 어디까지나 status도 상태이다. 대표적인 예로 HTTP Status Code가 있다. 200 OK 404 Not Found 위와 같이 어떠한 연산의 결과 상태가 status이다. State state는 어떤 연산의 수행 과정이다. "어떤 일을 하는 중"이라고 하면 모두 state이다. "~하는 중"이라고 표현되지 않더라도, 수행 과정이라면 state이다. 예시 - 수학 문제 어떤 수학 문제가 있다. 수학 문제를 푸는 중이면? state! 수학 문제를 다 풀었다면? state! 위는 언뜻 보기에 수학 문제를 다 풀었다는..

술(述)/비교 2021.08.05

Rust 2장 - 3. 문자열

원래는 문자열을 이렇게 빠르게 포스팅할 생각이 없었는데, rust로 알고리즘 문제 풀다가 문자열이 너무 이상해서, 공부 겸 먼저 올립니다. 문자열 타입 Rust에는 두 가지 타입의 문자열이 있다. String과 &str이다. String 특징 Vec를 가지는 구조체 UTF-8 보장 힙 영역의 데이터 내용 변경 가능 null terminated가 아님! &str 특징 &[char] 슬라이스 UTF-8 보장 스택 영역의 데이터 문자열 타입 지정 fn main() { let s = "ABCD"; println!("{}", s); } 위와 같이 "ABCD"를 지정하는 경우, &str 타입으로 취급된다. String 타입을 지정하고 싶은 경우 아래와 같이 만들면 된다. fn main() { let s = "ABC..

잡학(雜學) 2021.06.24