전체 글 34

32bit vs 64bit비트 컴퓨터 차이

요즘 대부분의 컴퓨터는 64bit 기반으로 되어있지만, 32bit도 가끔 볼 수 있다. 인터넷 또는 문서작업 등 간단한 업무용 사용자는 bit의 차이를 체감하기 힘들지만 특정 프로그램을 사용하거나 여러 프로세스를 사용해야 하는 경우 애로사항이 나타난다. 나아가 64 bit와 32bit의 특징 및 차이점을 검색해보면 크게 2가지로 다음과 같다. RAM인식 용량에 한계(32bit는 메모리 인식 가능한 용량이 4GB) 한 번에 처리하는 단위가 다름 ( 64bit > 32bit ) 기존 검색의 결과로 보면, 앞서 언급한 내용은 나오지만, 프로그래머 관점에서의 정보는 많지 않았다. 따라서 이 글에서 작동원리와 왜 이렇게 될 수밖에 없었는지에 대해 다룬다. 32bit 컴퓨터 메모리 용량 인식의 한계 32bit 컴퓨..

카테고리 없음 2021.08.12

윈도우즈 시스템 프로그래밍 유니코드

왜 한글이 프로그램 코딩할 때 오류가 많이 발생할까? 코딩 중 한글인식오류로 인해 골머리를 앓았던 적이 있을 것이다. 오류의 원인과 해결법을 찾아보면 utf-8 포맷 또는 영어를 반영하라는 글이 대다수 일 것이다. 물론 앞서 언급한 두 가지 방식이 해결점이 될 수 있지만, 무엇보다 중요한 건 영어와 한글 입력 방식이 어떻게 다르고 작동하는가에 대해 알아야 하는 것이 급선무라고 생각이 된다. 따라서 프로그램 코딩 시 한글과 영어와 어떻게 작동하는지 코드와 간략한 설명을 통해 나타내고자 한다. 작동 원리 및 설명 아스키코드와 유니코드의 혼용 #include int main(){ char str[] = "abc한글"; int size = sizeof(str); int len = strlen(str); prin..

카테고리 없음 2021.08.11

파이프라인과 하드웨어의 관계

파이프라인을 HW와 연관하여 설명하려고 하면 막상 생각해내기가 힘들다. 대학에서 중간 기말을 준비할 때 HW 요소와 역할을 중점으로 공부하였지만, 시험이 끝난 뒤 잊어버리기 일수였다. 실무에서 이러한 지식이 직접적으로 연관되어 피부로 와닿는 경우는 드물지만, 프로젝트 디버깅 또는 튜닝할때 많은 참고자료가 되어, 알고있는것이 중요하다. 따라서 간략한 그림과 설명문을 통해 파이프라인과 HW 연관관계에 대해 설명하고자 한다.(파이프라인에 대한 내용인 해저드 및 수행시간, 병렬 등은 다루지않는다.) 파이프라인 우선 설명하기에 앞서 위키백과에 나온 파이프라인의 설명을 보면 다음과같다. 컴퓨터 과학에서 파이프라인(영어: pipeline)은 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 ..

카테고리 없음 2021.08.10

UAC PROMPT없는 관리자 실행파일 윈도우 백그라운드 자동실행(GUI, CMD)

관리자 실행파일을 시작프로그램에 등록하여 백그라운드 방식(실행창 없음)으로 구동하는 법을 설명하고자 한다. 윈도우에서의 관리자 실행파일은 백그라운드 형식으로 진행 시 여러모로 제약이 많다. 특히, 권한 문제로 인한 관리자 실행파일을 실행 시 매번 UAC 프롬프트를 마주하거나, 시작프로그램에 애플리케이션을 등록하여도 동작하지 않는 경우가 다반사다. 이와 같은 문제(UAC, 백그라운드)들을 해결하기 위해서 작업스케줄러를 활용하여 실행파일을 생성하는 방법이 있고, GUI모드와 CMD모드로 나누어 설명하고자 한다. 간략히.. 관리자 실행파일을 시스템 시작 시 백그라운드로 실행하기 위해서는 크게 2가지 작업이 필요하고 각 프로세스는 모드(GUI, CMD)별로 설명한다. GUI모드 A. 작업스케줄러에서 관리자용 작..

OS/WINDOWS 2021.07.27

Go언어 Windows 10 cmd창 숨기기

애플리케이션을 빌드하고 exe파일을 실행할때 검은색 화면과 함께 새 windows창이 뜨는것을 볼 수 있다. 이러한 CMD 창을 숨기기 위한 코드는 아래와 같다. package main import ( "fmt" "github.com/gonutz/w32" ) func main() { hideConsole() command() // command 명령함수 호출 (생략) } func hideConsole() { console := w32.GetConsoleWindow() if console == 0 { return // no console attached } _, consoleProcID := w32.GetWindowThreadProcessId(console) if w32.GetCurrentProcessId..

카테고리 없음 2021.07.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