본문 바로가기

전체 글

(17)
Inno Setup에서 Wizard로 만든 후 여러가지 추가 설정들 바탕화면 바로가기 만들기를 기본으로 체크되어 있도록 하기 먼저 바로가기 아이콘을 설정하고 [Icons] Name: "{commondesktop}\My Application"; Filename: "{app}\MyApp.exe"; Tasks: desktopicon Tasks에서 Flags를 unchecked에서 checkedonce로 바꿔주면 된다. [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkedonce 한글 지원 가능하도록 하기 https://fred16157.github.io/etc/make-installer-with-inno-se..
root 계정 초기 암호 세팅 Ubuntu Server에서 root는 자동 생성되었고 첫 번째 사용자 계정만 주어졌을 때 sudo passwd root 를 입력하여 root계정의 암호를 세팅할 수 있다. 총 3번 물어보는데, 일단 첫번째로 첫 번째 사용자 계정의 암호를 물어보고, 그 이후로는 새로운 root의 암호를 입력 후 다시 한번 재확인 과정을 거친다.
[백준] fread 사용법 입력을 받기 위한 cin의 호출 횟수가 100만개를 넘어가기 시작하면 입력을 받는 행위 자체만으로도 상당한 시간이 걸리게 된다. 이럴 땐 fread를 통하여 입력버퍼 접근 횟수를 줄여서 속도를 개선시킬 수 있다. 다음과 같은 FastInput 클래스를 만들어 두었다. 사용하고 싶은 곳에 선언한 후 기존의 cin을 사용하듯 fin을 사용하면 된다. 필요 헤더 #include #include 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 class FastInput { int size; char* b..
템플릿에 자바스크립트를 삽입하는 방법 장고 템플릿에 일반적인 방법으로 자바스크립트 변수를 반영하는 것은 불가능하다. 구글링을 해보니 아래와 같이 특수한 방법으로 트릭을 줘서 해결할 수 있다는데, 정확한 원리는 잘 모르겠지만 대략 템플릿 구문이 해석되기 이전에 바꿔치기를 하여 해결하는 방식인 것 같다. ex) let what_kind = selectBox.options[selectBox.selectedIndex].value; location.href = "{% url 'users:sports' what_kind='temp' %}".replace(/temp/, what_kind.toString());
AWS Ubuntu 서버로 파일이나 폴더 보내기 scp -r -i [pem key] [보낼 파일 or 폴더] ubuntu@[ip]:[파일을 받고자 하는 경로] ex) scp -r -i ../../AWS_Key/test_key.pen media ubuntu@13.209.84.123:/srv 만약 Permission denied (public) 에러가 발생할 경우 sudo vi /etc/ssh/sshd_config 에 들어가서 #Port 22 의 주석을 풀어서 Port 22 로 만들어 준 다음 sudo service ssh restart 를 해주면 된다는데 이거 안해줘도 보안그룹에서 인바운드 규칙에 22번 포트만 열어줘도 잘 되는 것 같다.
그룹과 사용자... 그리고 권한 aws ec2 server에 프로젝트를 배포 중 위 스크린샷과 같은 문제가 생겼다. db에 접근할 일이 생길 때 저런 에러가 뜨면서 접근이 안된다. chmod 664를 통해 db.sqlite3의 권한만 바꿔주면 될 것 같았지만 아니었다. 우선 developers라는 그룹을 만들어서 ubuntu계정과 deploy계정, 그리고 www-data계정을 포함시켜 준다. (+2020-12-15 추가: 그냥 만들어져 있는 ubuntu라는 그룹에다가 ubuntu계정과 deploy계정, 그리고 www-data계정을 포함시켜 주는 것이 더 좋은 것 같다. 왜냐하면 파일이나 폴더를 새로 만들거나 추가하면 디폴트가 ubuntu:ubuntu이기 때문에 매번 chown을 통해 group을 바꿔줘야하는 수고를 덜 수 있다.) 그 ..
int 자릿수 log10을 이용해 구하기 int형의 자릿수를 세는 방법은, 1. 문자열로 바꿔서 길이를 측정 2. 10으로 나눠가며 자릿수를 직접 세는 방법 정도가 일반적일 것이다. 여기서 설명하려는 방법은 log10을 이용해 자릿수를 구하는 방법이다. 필요헤더 #include 1 2 int num = 77778899; int len = (int)log10(num) + 1; cs len의 값은 8이 나온다. 단, 0이나 음수의 자릿수는 구하지 못한다. 1 2 double num = 789.1234; int len = (int)log10(num) + 1; cs len의 값은 3이 나온다. 이와 같이 소수의 자릿수도 셀 수 있다. 단, 0.xxx나 음수의 자릿수는 구하지 못한다.
Split c++에는 split이 없으므로 편의상 미리 만들어두었다. stringstream이 있긴 하지만 원하는 구분자를 설정하기 위해선 결국 getline이란 함수도 추가로 써야하고 string자료형의 token도 같이 운영해줘야 하는 불편함이 있다. 또 stringstream은 어쩐 일인지 일반적인 복사처리에 비해 느리기도 하다. 그래서 다른 언어들 처럼 c++에서도 split을 사용할 수 있도록 미리 만들어 놓았다. 필요 헤더 #include #include #include 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 vector Split(string& str, char delimiter = ' ') { vector vec..