분류 전체보기
-
[Golang] if문에 세미콜론(;) 의미언어/Golang 2017. 2. 2. 20:22
아래의 두 예제는 같은 의미입니다.1.if v, err := Read(); err == nil { // do something with v, because Read() did not // had an error (err) }2.v, err := Read() if err == nil { // do something with v } 두 문법의 결과는 같지만 차이점은 첫 번째 예제에서는 v와 err의 범위는 if {}블록으로 제한됩니다. 두 번째 예제에서는 v와err은 선언된 블록에 속해 있습니다. 즉, if {}에 속해있지 않다는 뜻입니다. {}블록에서 ;을 사용하는 것과 거의 같습니다.if문에 ;을 사용할 땐, 선언되는 변수가 조건문 안에서만 사용된다고 확실시 될 때 사용하면 좋습니다.
-
[SQL] WHERE절에서 IF문처럼 AND 사용DB 2017. 2. 2. 16:55
SELECT ... FROM ... WHERE ( (A = 1 AND (B BETWEEN 0 AND 10) OR B=9999) OR (A = 2 AND (B BETWEEN 11 AND 20) OR B=9999) ) 위의 쿼리를 조건문으로 변경하면 아래와 같습니다.if (A==1) { B = 0 ~ 10 OR 9999 } else if (B==2) { B = 11 ~ 20 OR 9999 } WHERE절의 조건이기 때문에 결과는 boolean타입으로 TRUE 또는 FALSE만 나오게 됩니다.
-
[Linux] sudo command not found 해결법 (Go 권한문제 해결법)서버 2017. 2. 2. 11:46
우분투에서 패키지를 설치하지 않고 압축을 풀어서 사용하면 로그인된 사용자에 맞게 설정할 시, 로그인된 사용자는 세팅한 명령어를 사용할 수 있지만 사용자 권한을 변경하면 해당 패키지를 찾지 못하여 에러가 발생합니다.아래에서는 go라는 압축파일을 풀어 로그인된 사용자가 세팅한 다음, 루트계정으로 변환하여 해당 명령어를 실행하는 예제입니다.예제test$ tar -xcvf go1.7.1.linux-amd64.tar.gz # 패키지 압축해제 test$ sudo mv go /usr/local/ # /usr/local/ 폴더 하위로 압축파일 이동 test$ cd /home/test test$ echo "export PATH=$PATH:/usr/local/go/bin" >> .bashrc # .bashrc파일에 go ..
-
[Django] QuerySet 에서 dict 타입 변환하기언어/파이썬 & 장고 2017. 2. 1. 20:30
queryset to dict!QuerySet은 대개 Django ORM의 filter()함수를 사용할 때 (1개 이상의 데이터가 반환될 때) 갖게 되는 타입입니다.이러한 타입을 그대로 사용하려고 하면 아래와 같이 출력이됩니다.a = ModelObj.objects.filter(col=1) # 결과 {col:[1], .... ,}위와 같이 value값에 리스트가 씌워져 있는 것들을 확인할 수 있습니다. QuerySet의 변환은 아래처럼 간단하게 dict로 변환이 됩니다.a = ModelObj.objects.filter(col=1) print(a.values()) # 결과 {col:1, .... ,}
-
[Django] model object 에서 dict 타입으로 변환하기언어/파이썬 & 장고 2017. 2. 1. 20:23
django model object to dict!모델객체에서 dict타입으로의 변환은 여러 방법이 있습니다. 참고로 Django ORM에서 model 객체로 결과가 나오는 것은 get()과 같은 형식이여야 합니다. filter()처럼 QuerySet으로 나오는 형태는 에러가 날 수 있습니다.test case모델from django.db import models class OtherModel(models.Model): pass class SomeModel(models.Model): value = models.IntegerField() value2 = models.IntegerField(editable=False) created = models.DateTimeField(auto_now_add=True) r..
-
[Python] dict 생성방법언어/파이썬 & 장고 2017. 2. 1. 17:37
dict()함수를 사용하여 초기부터 dictionary타입의 데이터를 생성하던지 다른 타입의 데이터를 dictionary로 변환하는 방법에 대해 설명합니다.dict()a = dict() a['id'] = 'test' a['password'] = 'test' print(type(a), a) # 또는 temp = {'id':'test', 'password':'qwer'} a = {} for k, v in temp.items(): print(k,v) a[k] = v print(a)dict(key,value)a = dict({'id':'test', 'password':'qwer'}) print(type(a), a)dict(**kwargs)a = dict(id='test',password='qwer') print..
-
[Django] orm으로 가장 최근 pk값 구하기언어/파이썬 & 장고 2017. 2. 1. 14:19
db를 사용할 때 사용자가 insert를 한 다음, 바로 insert가 된 key의 값을 궁금해할 때가 있습니다. 이럴 때 Django에서는 두 가지 방법으로 구할 수 있습니다.예시# 방법 1 key = ModelObj.objects.order_by('-pk')[0].구하고자하는컬럼명 # 방법 2 추천 key = ModelObj.objects.latest('구하고자하는컬럼명')방법 1의 경우 제약이 있는데 pk라고 지정해놓은 부분이 자동으로 증가하는 함수여야만 사용이 가능합니다.따라서 Django에서 제시하는 방법 2를 사용할 것을 추천합니다. orm으로 다른 기능을 사용하고 싶으면 아래 문서를 확인하여 사용하면 됩니다.https://docs.djangoproject.com/en/dev/ref/model..
-
[Pycharm]Pycharm에서 모듈 설치시 에러날 때 해결방법IDE & 에디터 2017. 2. 1. 09:14
파이참에서 env로 장고를 설치하여 실행할 경우, 모듈 설치가 안되는 경우가 종종 생김.아래와 같은 방법으로 직접 가상환경 폴더에 이동, 접속을 한 후, 직접 설치를 해주면 됨 django라는 virtualenv를 미리 구축했다고 가정하고 psycopg2를 설치하려고 하는 상황# env 파일로 이동 $ cd django #가상환경으로 접속 $ source bin/activate # pip명령어로 psycopg2 직접 설치 $ pip install psycopg2 #가상환경 종료 $ deactivate
-
[PostgreSQL] transaction isolationDB/PostgreSQL 2017. 1. 31. 10:00
SQL 표준은 transaction isolation에 대해 네 가지 레벨로 정의하고 있습니다. 이 네 가지중 가장 엄격한 것은 Serializable이며, 이것은 마치 여러 세션의 같은 트랜잭션 작업을 한 줄로 세워 차례 대로 진행하는 것과 같은 결과를 보장합니다. 나머지 세 가지 레벨은 동시에 진행되는 트랜잭션들 사이 간 허용되는 작업의 범위에 따라서 구분됩니다. 표준안에서는 Serializable이 가능한 transaction isolation 수준은 동시에 진행되는 트랜잭션 사이의 상호 관계가 전혀 없어야 한다고 정의합니다. (실 세계에서는 당연히 동시에 여러 트랜잭션들이 발생할 것이고, 이것들이 어떻게 서로 상호 관계를 안 할 수 있을까? 라는 의문점을 남깁니다.)각 수준별 이름과 상호 작용 범..
-
[Linux] 디렉토리 구조서버 2017. 1. 28. 13:28
리눅스의 디렉토리 혹은 파일 시스템 구조는 윈도우와는 조금 다른 구조를 가지고 있습니다. 기본적으로 디렉토리를 구분하는 '/'(슬래시)는 리눅스에서 사용하고 윈도우는 반대인 '\'(역슬래시)를 사용하죠. 디렉토리 또한 그 명칭을 리눅스에서는 디렉토리(directory), 윈도우에서는 폴더(folder)라고 불리웁니다. 리눅스 파일 시스템 구조리눅스 시스템의 디렉토리 구조는 전체적으로 역 트리(tree) 구조를 하고 있습니다. 그리고 명령어의 종류와 성격, 사용권한등에 따라 각각의 디렉토리들로 구분됩니다. 리눅스 배포판들은 '리눅스 파일시스템 표준' 인 FSSTND(LINUX FILE System Standard) 라는 표준을 준수하므로 대부분의 리눅스 배포판들은 그 기본 골격이 같습니다./(루트)최상의 ..