Programming 19

Go언어 Windows 10 계정 관리자 권한 얻기[빌드]

서론 Go언어 기반 애플리케이션을 개발 시, exec 모듈을 통한 커맨드 명령 호출이 필요할 때가 있다. 커맨드 명령을 호출할 경우 권한 문제가 없이 진행이 잘 되는 경우도 있지만, 그렇지 않은 경우도 있다. 리눅스 환경에서의 경우 관리자 권한을 얻기 위한 명령어는 "sudo"가 있지만 윈도우 환경에서는 애플리케이션 아이콘에서 우클릭을 통해 관리자 권한을 받아오는 경우가 대다수다. 만일 windows10 환경에서 권한 문제를 우클릭으로 진행해야 하는 경우 개발 시 커맨드 명령어 호출을 통한 개발은 불가능하다. 따라서 이 글에서는 Go기반 서비스 애플리케이션이 마주하는 윈도우 권한 문제를 해결하는 방법에 대해 다루도록 한다. 본론 go언어에서 관리자 권한 얻기 위한 방법으로는 빌드를 통한 실행파일 만들기가..

Programming/Go 2021.07.19

파이썬 덱(append, pop) [간단]

덱(Deque) 그림과 코드를 통해 덱의 구조와 사용법을 알아보고자 한다. 설명 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조다. 두 개의 포인터를 사용하여, 양쪽에서 삭제와 삽입을 발생 시킬 수 있다. (큐와 스택을 합쳐놓은것이라 볼 수 있다.) 양쪽 삽입과 삭제는 append 와 pop명령어를 사용하며 아래의 그림과 같다. 코드 사용법 from collections import deque deq = deque() # 덱 선언 # 0 ~ 5까지 덱 추가 for i in range(5): deq.append(i) # [0,1,2,3,4] # 왼쪽 방향 값 추가 deq.appendleft(2) # [2, 0,1,2,3,4] # 오른쪽 방향값 추출 pop = deq.pop() # [2, 0,1,2,3] ..

Programming/Python 2021.07.15

파이썬 딕셔너리 사용법

딕셔너리란? 딕셔너리는 immutable key와 mutable value로 매핑되어있는 순서의 집합이다. 여기서 immutable, mutable은 변화하는것과 변하지않는것을 말하며, 이는 다음과 같다. Immutable ----> int, float, str, tuple Mutable ----> set, list, dictionary 사용법 딕셔너리 사용법은 크게 4가지로 나타낼 수 있으며 다음과 같다. 딕셔너리 선언 1. 변수 = {} 2. 변수 = dict() 딕셔너리 추가 딕셔너리[key] = value 딕셔너리 반복문 기본 key 출력 values()를 이용한 value값 출력 3. items()를 이용한 key, value값 출력 딕셔너리 삭제 pop과 del의 사용 이상으로 간단한 딕셔너리..

Programming/Python 2021.07.13

GO언어 의존성 패키지 관리 Go Module편

시작하기에 앞서.. 보통 의존성 관리는 내장함수패키지(GoRoot) 써드파티패키지(GoPath) 로컬 패키지(사용자 지정)를 통해 관리된다. 그러나 이러한 패키지 관리는 다른사람과 협업하거나 다른 PC에서 프로젝트를 진행해야 할 때 의존성패키지를 직접 다시 설치해야하는 번거로움이 발생한다. 이를 해결하기 위한 의존성 관리 도구인 dep과 Go module이 있고, 이글에서는 Go Module에 대해 다룰 것이다. 주요 핵심 내용은 빌드를 하기 위한 사용법에 관해 설명 할것이며, 원리나 자세한 내용은 추후 추가로 글작성을 할 예정이다. 빌드(build) 빌드에 실행 조건인 main으로는 아래의 그림과 같고, 실행하고자하는 main에서 필요한 의존성 라이브러리는 zap 이다. 실행하고자 하는 코드를 빌드를 ..

Programming/Go 2021.05.21

Go언어 맵(map) key value값있는지 확인하기

Go언어에서 특정값을 평균속도 O(1)의 성능을 나오는 자료구조 중 하나는 map이다. map은 또한 파이썬의 딕셔너리와 비슷하게 작동한다는 점도 있다. 이러한 map은 딕셔너리와는 약간 다른점이 있는데, 그건 특정 key값과 value값을 확인할수 있는 내장함수지원 여부이다. 파이썬은 지원되지만 Go언어에서는 내장함수가 지원되지 않는다. map의 key값과 value값의 존재유무를 알기에는 내장함수가 아닌 직접 확인해야하는 단점이 존재하지만 Go언어만의 문법을 살려 간단하게 key,value값의 존재유무를 알 수 있게 설명하겠다. 우선 map에 대한것은 알고있다는 가정하에 작성한다. map에 대한 사용법(생성, 추가, 삭제)을 간단하게라도 보려면 아래에 링크를 참조하면 된다. min94programmi..

Programming/Go 2021.03.02

파이썬 함수 사용법[간단]

프로젝트를 진행하다보면 많은 부분에서 중복으로 발생하는 코드를 발견할 수 있을 것이다. 이러한 중복코드는 가독성을 떨어뜨릴 뿐만아니라 디버깅 작업또한 어렵게 만들어낸다. 더보기 함수 = def(매개변수1, 매개변수...): 이하생략 ... ... 중복코드를 깔끔하게 해결하는 방법 중 하나는 함수의 사용이다. 함수에 대해 예제로 설명하겠다. [예 시] # 합 def add(a,b): return a + b # 곱 def multiple(a,b): return a * b if __name__ == "__main__": sum_value = add(1,2) print(sum_value) multiple_value = multiple(1,2) print(multiple_value) 오늘은 함수에 대해서 알아봤다..

Programming/Python 2021.03.01

파이썬 pass 와 continue 차이점

코딩을 하다보면 특정 라인만 실행하거나 그렇지 않게 하고싶은 경우가 있다. 이럴경우에 주로 사용하는것이 pass와 continue인데, 상황에 따라 다르게 쓰인다. 고로 예제를 통해 pass와 continue 둘의 차이를 알아보자. [예제] # pass 적용 for i in range(10): if i % 2==1: pass print("pass", i) # continue 적용 print("==========================") for i in range(10): if i % 2==1: continue print("continue", i) 결론 - Continue는 해당 조건일 상황에서는 다음명령어를 실행하지않고 그냥 지나친다.

Programming/Python 2021.02.26

Go언어 구조체(struct) 편

이번주제는 구조체다. 처음배울때 대학시절 C언어에서 본것으로 기억나는데, 요즘은 어떤지 모르겠다. C언어를 기준으로 설명하자면, 사용법은 비슷하다. 구조체에 변수와 타입을 정해주기만하면 선언이 완료된다. 아래 그림은 구조체를 활용하여 두수의 합을 나타낸다. [ 예 제 ] package main import "fmt" type Number struct { A int B int } func Add(a, b int) int { return a + b } func main() { number := Number{A: 1, B: 2} result := Add(number.A, number.B) fmt.Println(result) }

Programming/Go 2021.02.26

Go언어 리시버(receiver) 편

해당 주제는 리시버다. 설명하기에 앞서, 이번 코드에서는 구조체를 사용하고 있고, 이를 알고 있다는 전제하에 설명한다. 리시버는 특정 객체로부터 해당되는 함수를 정의하는 것이다. 즉 쉽게 말하면 특정 객체만 접근이 가능하다는 것이다. 따라서 아래에 그림에서 명시된 Add함수는 (n Number)리시버를 사용하여 Number 객체만 접근이 가능하도록 하였다. [ 예시 ] package main import "fmt" type Number struct { A int B int } func (n Number) Add(a, b int) int { return a + b } func main() { number := Number{A: 1, B: 2} result := number.Add(number.A, numb..

Programming/Go 2021.02.26