분류 전체보기 74

[로지텍 Ergo MX] 트랙볼 마우스 2년 사용 후기

2022년 취업 후, 어깨와 손목을 지키기 위해 인체공학 키보드와 마우스를 구매했다. 두 제품 모두 정말 잘 쓰고 있어서, 이번에는 로지텍의 Ergo MX 트랙볼 마우스 사용 후기를 남기려고 한다. (참고: Ergodox EZ 키보드 2년 사용 후기) 장점 1. 인체공학적 Ergo MX는 트랙볼 마우스이기 때문에 팔을 움직이지 않고도 마우스를 사용할 수 있다. 따라서 어깨에 부담이 훨씬 덜하다. 실제로 사용해보면 차이가 꽤 커서 놀랐다. 그리고 버티컬 형태로 엄지손가락만 움직이기 때문에 손목의 부담이 덜하다. 2. 편리함 로지텍의 Logi Options 프로그램을 설치해서 사용하면 여러가지 기능을 커스텀하여 사용할 수 있다. 커스텀 기능이 다양해서 생각보다 많은 기능을 마우스에 넣을 수 있다. 심지어 사..

전자제품 리뷰 2024.03.22

[Ergodox EZ] 인체공학 스플릿 키보드 2년 사용 후기

2022년 초부터 2년 넘게 Ergodox EZ 라는 인체공학 키보드를 사용하고 있다. (참고: 구매 및 언박싱 포스팅) 스플릿 키보드이고 키 자체가 일반적인 키보드와 다르기 때문에 입문 장벽이 꽤 높고, 가격도 비싸다. 그래서 고민하는 사람이 있다면 참조할 수 있도록 2년 사용 후기를 남긴다. 장점 1. 인체공학적 Ergodox EZ에 익숙해져 있다가 노트북 키보드나 일반 키보드를 사용하면 어깨와 손목이 아픈게 확실하게 느껴진다. 특히 내 어깨는 무슨 파피루스도 아니고 금방 돌돌 말리기 때문에 Ergodox를 사용하기 전에 엄청 고생했었는데, 지금은 그런일이 현저하게 적다. 물론 예전보다 운동을 더 많이 하기도 한다. (참고: 인체공학 키보드의 특징에 대해서 더 알고 싶다면) 2. 편리함 물론 처음에 ..

전자제품 리뷰 2024.03.22

선행처리기(Preprocessor)

선행처리기를 사용하는 이유 요약하면, 컴파일 전에 먼저 처리하고 싶은 것이 있기 때문이다. C 코드를 실행 파일로 만들기 위해서는 선행처리 → 컴파일 → 링킹의 3단계를 거쳐야 한다. 여기서 가장 핵심적인 단계는 '컴파일'인데, 일종의 번역으로 생각하면 된다. C언어를 컴퓨터가 알아들을 수 있게 번역하는 것이다. 그리고 선행처리는 코드를 컴파일하기 전, 사용자가 정의한 내용을 일부 먼저 처리하는 과정이다. 종류 선행처리기 기능 #include 파일 포함 #define 매크로 정의 #if, #else, #elif, #endif 조건부 컴파일 #include JS/TS의 module import, Go의 pkg import와 유사한 개념이다. 다른 파일에 있는 코드를 사용하기 위해, 헤더 파일(*.h)을..

개발/C & C++ 2024.03.13

[부울대수] 보수, 드모르간의 법칙, 쌍대 형태

부울대수 강의를 들으면서 개념이 헷갈리는 것들을 정리해본다. 개념 설명 식 보수 NOT 변수 X에 대하여, X̅ 드모르간의 법칙 변수의 전체 합의 보수 = 각각의 변수의 보수의 곱 변수의 전체 곱의 보수 = 각각의 변수의 보수의 합 쌍대 형태 (dual form) 부울대수식에서 + 와 ・, 1과 0을 맞바꾼 형태 양 옆의 식은 서로의 쌍대 형태. + 드모르간, 교환, 결합, 분배법칙과 흡수정리 역시 쌍대 형태 쌍대성 원리 (principal of duality) 부울대수에서 어떤 부울 공식이 항상 성립하고 자신의 쌍대형태를 구할 수 있다면 그 쌍대형태의 부울식도 성립한다. 기타 기본공식 교환법칙 결합법칙 분배법칙 흡수정리 참고: 디지털 논리회로(김형근, 손진곤 저)

문과 출신 독학 개발자, 결국 컴퓨터 전공하다

나는 문과 출신의 개발자이고, 코딩학원을 잠시 다니긴 했지만 결과적으로는 독학한 기술스택과 포트폴리오로 취업을 했다(참고: 개발자 성장기 (2) 나의 두서없는 커리어 이야기). 그리고 현재는 문과 출신 독학 개발자 출신 풀타임 컴퓨터과학 전공 대학생이 되었다. 근황 업데이트 2021년, 취업 전후로는 꽤 열심히 블로그를 하다가 점차 바빠지면서 블로그를 거의 하지 않게 되었다. 그동안 개인적으로도, 회사에서도 많은 일이 있었다. 나는 개발자로 일하며 많은 것을 배웠다. 특히 회사 상황이 여러 번 바뀌며 그때마다 업계의 다양한 사람들을 만날 기회가 생겼다. 적응하는 어려움은 있었지만, 나의 경력 수준으로 경험하고 배우기 어려운 것들을 많이 접하게 되어 감사했다. 그렇게 시간이 갈 수록 컴퓨터공학 지식의 빈자..

[MySQL] 숫자, 영어, 한글 랜덤값 생성 쿼리

DB 데이터를 협력업체에 테스트 목적으로 제공해야하는 일이 생겼다. 고객들의 개인정보를 노출시키면 안되므로 이름, 이메일 등을 마스킹해야 했는데, 랜덤값을 생성하기 위해 아래 쿼리를 사용했다. 사용할 함수 CHAR(num): 숫자를 문자열로 변경해준다. RAND(): 0과 1 사이의 랜덤한 숫자를 반환한다. HEX(num|str): 숫자 혹은 문자열을 hex 문자열로 변경해준다. UNHEX(str): hex 문자열을 기존의 문자열로 변경해준다. FLOOR(float): 소수점 이하의 값을 내림하여 정수를 반환한다. UUID(): 랜덤한 uuid 문자열을 반환한다 CONCAT(str, ...): 여러 문자열을 하나로 합쳐 반환한다. 숫자 랜덤값 만들기 x 이상 y 미만의 자연수를 반환하는 쿼리 SELECT..

개발/DB 2023.07.15

BWB(Blockchain Week in Busan) 2022 후기

블록체인 관련 업계에 종사하고 있어서 어쩌다보니 BWB 2022에 가게 되었다. 2022년 10월 27~29일, 3일 동안 벡스코에서 진행된 행사이다. (행사 홈페이지) 그리고 놀랍게도, 어쩌다보니 살면서 부산을 간게 이번에 처음이다. 3일 동안 나름대로 컨퍼런스 발표도 듣고 부스도 돌아다니면서 많은 것을 배웠다. 수업을 듣듯 지식을 배웠다기 보다는 업계 전반에 대해서 물 온도를 체크하는 느낌이었다. 이 분야에 대해 잘 아는 사람들에게는 시시했을지도 모르겠다. 하지만 Web3 생태계에 대해서 일반인보다야 많이 알긴 하지만 어디가서 아는척하기엔 민망한 수준이라 재밌는 것도 많았다. 흥미로운 프로젝트 개인적으로 블록체인의 특성을 살리거나 재밌어보이는 프로젝트들을 정리해봤다. (실제로 관련자도 아니고 자세히 ..

블록체인/행사 2022.10.28

[네트워크] 1. HTTP는 무엇인가

개발자가 아니더라도 HTTP는 대부분의 사람들이 들어봤을 것이고, URL 맨 앞에 붙는 것을 항상 봐왔을 것이다. 그러나 기술적으로 HTTP가 정확히 무엇인지, 어떤 방식으로 작동하는 것인지를 알고 사용하지는 않는다. 그래서 HTTP가 애초에 왜 필요한지부터 살펴보려고 한다. HTTP는 무엇인가 HTTP는 Hypertext Transfer Protocol의 약자이다. 인터넷으로 컴퓨터들을 연결해 소통하도록하는 '프로토콜'이다. 즉, 컴퓨터들끼리 메세지를 잘 주고받을 수 있도록 양식과 절차를 정해놓은 규칙이라고 생각하면 된다. HTTP가 택배 시스템과 상당히 유사한 부분이 많기 때문에 이 둘을 비교하면서 생각하면 이해하기가 쉽다. 다른 사람에게 우편물 보내기 친구에게 택배를 보내는 과정을 생각해보자. 물건..

[node-gyp-build 에러] Module not found: Error: Can't resolve 'fs' in <path>

개발 환경 Vue.js, Vuex, Nuxt.jx 사용한 프론트엔드 환경 컴파일 중 에러 발생 에러 문구 Failed to compile with 1 errors This dependency was not found: * fs in ./node_modules/node-gyp-build/index.js To install it, you can run: npm install --save fs in ./node_modules/node-gyp-buil/index.js Module not found: Error: Can't resolve 'fs' in 'D:\Project\myproject\frountend\node_modules\node-gyp-build' 발생 원인 분석 새로 npm 패키지를 설치한 후 발생한..

개발/디버깅 2022.06.12

코틀린 기본 문법 Cheatsheet

변수 선언 및 할당 val 변수명: 타입 = 불변값 var 변수명: 타입 = 가변값 함수 선언 fun 함수명(인자 | vararg 가변인자): 반환값 { // code } '가변인자'는 쉽게 말하면 개수가 정해지지 않은 인자. vararg 부분에 여러 개의 인자를 넣을 수 있게 된다. 타입 숫자(정수) - Byte: -128 ~ 127 - Short: -32,768 ~ 32,767 - Int: -2^{31} ~ 2^{31} - 1 - Long: -2^{63} ~ 2^{63}- 1 val oneByte: Byte = 1 val oneShort: Short = 1 val one = 1 // Int가 기본값으로 들어가는 타입 val oneLong = 1L // L이 있어야 Long으로 변수를 할당할 수 있음 ..

개발/Kotlin 2022.06.12
728x90
반응형