목록Programming (92)
공학박사 권경안

Mac 메모리 사용량 이해하기: 활동 모니터 분석macOS의 활동 모니터(Activity Monitor) 는 시스템 메모리 상태를 시각적으로 보여주는 유용한 도구입니다. 오늘은 예시 이미지를 통해 macOS의 메모리 사용량 정보를 쉽게 설명해 드리겠습니다.✅ Memory Pressure (메모리 압력)녹색: 시스템 메모리가 충분하며 성능 문제 없음노란색 또는 빨간색: 메모리 부족으로 인해 성능 저하 가능성 있음예시 이미지에서는 메모리 압력이 녹색으로 표시되어 있어 안정적인 상태입니다.📦 물리적 메모리 및 사용 현황항목값설명Physical Memory24.00 GB장착된 실제 RAM 용량Memory Used16.84 GB현재 사용 중인 전체 메모리Cached Files6.93 GB최근 사용 데이터를 빠르..

M4 맥 미니 16GB → 24GB로 업그레이드한 이유와 리턴 후기최근 출시된 M4 Mac mini를 구입하면서 처음에는 16GB RAM 모델을 선택했지만, 며칠 사용 후 결국 24GB 모델로 업그레이드하게 되었습니다. 개발자이자 데이터 작업을 많이 하는 제 입장에서 어떤 이유로 결정이 바뀌었는지, 그리고 체감 성능 차이는 어떤지 공유해보려고 합니다.💡 16GB로도 충분하지 않을까 생각했던 이유M4 칩의 효율성과 통합 메모리의 최적화기존 인텔 iMac (40GB RAM)에서도 대부분의 작업은 16GB 이내에서 처리됨여러 커뮤니티와 리뷰에서 16GB 모델도 충분하다는 의견 다수그래서 처음에는 기본형 Mac mini M4 16GB / 256GB 모델을 구매했습니다. 하지만 실제 사용에서는 예상과 다른 경험..
Node.js + Express로 나만의 Todo API 서버 만들기 — 깃허브 템플릿 공유안녕하세요! 이번 글에서는 Node.js와 Express를 사용해서 심플한 Todo API 서버를 만들고,GitHub에 템플릿으로 정리한 과정을 소개합니다.이 프로젝트는 백엔드 API 학습과 포트폴리오용으로 아주 적합합니다.💡 프로젝트 소개Node.js와 Express를 활용해 JSON 파일을 기반으로 할 일 목록을 CRUD 방식으로 관리하는 서버를 만들었습니다.주요 기능:할 일 추가 (Create)할 일 조회 (Read)할 일 수정 (Update)할 일 삭제 (Delete)추가적으로:Jest + Supertest를 활용한 테스트 자동화Dockerfile을 활용한 컨테이너화GitHub Actions를 이용한 CI..

— NVMe SSD, USB-C, 그리고 외장 SSD 속도의 진실최근 M4 Mac mini를 들이면서 데이터 이동과 백업을 위해 외장 SSD를 새로 구매했습니다. 기존에 가지고 있던 Samsung 840 Pro와 새로 산 Samsung T7 2TB, 그리고 Mac mini 내부 SSD까지 직접 속도 테스트를 해봤습니다. 결론부터 말하자면:💡 USB-C 포트는 NVMe SSD의 이론적 속도를 절대 내지 못합니다.Thunderbolt 전용 케이스를 써야만 NVMe의 속도를 활용할 수 있고, 그렇지 않으면 T7처럼 800~900MB/s 선이 한계입니다.🧠 Mac + 외장 SSD 현실 정리 Mac mini M4의 내장 SSD 속도는 정말 훌륭합니다. NVMe PCIe 4.0 기반으로 쓰기 1900~2000,..

💡 Mac 유저들을 위한 현실적인 SSD 선택 가이드Mac mini M4 같은 애플 실리콘 기반 맥에서는외장 SSD를 고를 때 이론 속도보다 연결 환경이 훨씬 중요합니다.저처럼 처음에 Samsung 990 PRO 같은 고성능 NVMe SSD를 골랐다가,USB-C 포트에서 제 속도를 낼 수 없다는 사실을 나중에 깨닫고 다시 교체하는 경우가 꽤 많습니다.결국, Mac에서 외장 SSD를 선택할 때는:NVMe SSD라고 해서 무조건 빠른 건 아님USB4 포트 연결이라도 속도는 USB 3.2 수준에 제한됨T7 시리즈처럼 USB 3.2에 최적화된 제품이 오히려 안정적실사용 환경을 고려해서 가격 / 발열 / 호환성 / 휴대성을 모두 따지는 게 중요합니다.⚡ NVMe SSD 사용 시 주의사항 (Mac 환경)NVMe ..

이번에 Mac mini M4 (2024) 를 구매하고,외장 SSD 저장소로 Samsung T7 2TB를 연결해서 셋업을 마쳤습니다.사실 처음에는 더 고성능을 노리고 Samsung 990 PRO NVMe SSD + 외장 케이스를 구매했다가,실사용 환경에서 한 가지 중요한 사실을 알게 되어 제품을 바꾸는 과정을 거쳤습니다.⚡ 처음 시도: Samsung 990 PRO NVMe SSD처음에는 성능만 보고:Samsung 990 PRO NVMe (2TB)USB4, Thunderbolt 호환 외장 케이스이 조합으로 세팅했습니다.하지만 연결 후 테스트 결과, Mac mini M4의 USB-C 포트에서는 제대로 된 NVMe 속도를 뽑지 못하는 현실을 확인했습니다.특히 APFS 포맷으로 외장 드라이브를 세팅한 후:대용량 ..

며칠 전, 외장 SSD (512GB) 드라이브를 Mac에 연결했더니,디스크 유틸리티에서는 보이지만 Finder에서는 전혀 표시되지 않는 문제가 발생했습니다.터미널에서 diskutil 명령으로 확인해보니:/dev/disk4 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *512.1 GB disk4 1: EFI EFI 209.7 MB disk4s1 2: Apple..

몇일전 올린 글을 통해 만든 앱을 배포까지 했었는데, 오늘은 그 이후에 대해서 다뤄 보겠습니다. (소스: https://github.com/data-insider-nyc/trendboard)웹사이트를 만든 후, 가장 중요한 것 중 하나는 **검색 엔진 최적화(SEO)**를 통해 사람들이 검색했을 때 쉽게 웹사이트를 찾을 수 있도록 하는 것입니다. 오늘은 Trendboard 웹사이트를 Google 검색에 노출시키기 위한 과정을 공유하려고 합니다.https://data-insider-nyc.github.io/trendboard/1. Google Search Console에 웹사이트 추가가장 첫 번째 단계는 Google Search Console에 웹사이트를 추가하는 것입니다. 이를 통해 Google이 웹사이..

안녕하세요! 이번 글에서는 React와 Vite를 사용해 웹 애플리케이션을 개발하고, 이를 GitHub Pages에 배포하는 방법에 대해 설명하겠습니다. 특히, 초보자도 쉽게 따라할 수 있도록 차근차근 설명할 예정이니, 끝까지 함께 해주세요!1. 프로젝트 설정하기우리는 간단한 웹 애플리케이션을 만들어 GitHub Pages에 배포할 것입니다. 먼저 Vite와 React를 사용하여 프로젝트를 시작해봅시다.1.1 Vite + React 프로젝트 생성먼저 Vite를 사용해 프로젝트를 시작합니다. 터미널을 열고 다음 명령어를 입력합니다:npm create vite@latest trendboard --template reactcd trendboardnpm install위 명령어는 trendboard라는 이름의 R..
Node.js와 Deno는 모두 JavaScript와 TypeScript로 서버 사이드 애플리케이션을 개발할 수 있는 런타임이지만, 설계 철학과 기능에서 몇 가지 주요 차이점이 있습니다. 아래는 두 런타임을 비교한 요약입니다.✅ 1. 개발 배경Node.js출시: 2009년, Ryan Dahl이 개발Chrome V8 JavaScript 엔진 기반자바스크립트 생태계에서 가장 널리 사용되는 서버 사이드 런타임Deno출시: 2020년, Ryan Dahl이 Node.js의 한계를 보완하고자 개발V8 엔진 + Rust 기반으로 보안성과 모듈 관리를 개선✅ 2. 주요 차이점 Node.jsDeno언어 지원JavaScript (TypeScript 지원은 트랜스파일 필요)JavaScript와 TypeScript를 기본적으..

아래 링크에서 코드를 실행해 보면 좋을것 같습니다. https://github.com/Kyeongan/data-type-in-c GitHub - Kyeongan/data-type-in-c: A simple program prints out the size of the data type and its rangeA simple program prints out the size of the data type and its range - Kyeongan/data-type-in-cgithub.com#include #include #include int main(void){ printf("Size of Data Types in C\n"); printf("=======================\n..

서론:Wolfram Alpha는 예전부터 많은 사람들이 수학적 계산을 위해 사용하고 있는 웹사이트로, 그 뛰어난 계산 능력으로 유명합니다. 그런데, 최근에는 수학뿐만 아니라 과학, 경제, 통계, 엔지니어링, 그리고 심지어 일상적인 질문들까지 처리할 수 있는 놀라운 플랫폼으로 발전했습니다. 예전에는 단순히 방정식 풀이와 미분 계산 정도만 가능했던 사이트가, 이제는 우리가 매일 접하는 다양한 문제들을 해결할 수 있는 **‘지식 엔진’**으로 자리잡았습니다.1. Wolfram Alpha가 제공하는 계산 능력이제 Wolfram Alpha는 단순히 수학 문제를 푸는 것 이상의 역할을 합니다. 예를 들어, 아래와 같은 수식을 입력하면, Wolfram Alpha는 미분이나 적분을 계산하는 것뿐만 아니라, 해당 계산의..

grep은 리눅스에서 가장 강력한 텍스트 검색 도구 중 하나입니다.특히 -v 옵션은 일치하는 패턴을 제외하고 출력할 때 매우 유용합니다.이번 글에서는 -v 옵션을 사용하여 원하는 결과를 효율적으로 필터링하는 방법을 알아보겠습니다.📌 grep -v 옵션이란?먼저, man grep에서 -v 옵션의 공식 설명을 확인해 보겠습니다.즉, 특정 패턴이 포함된 라인을 제외하고 출력할 때 사용됩니다.예제를 통해 활용 방법을 살펴보겠습니다.📝 예제 파일 (log.txt)다음과 같은 로그 파일이 있다고 가정해 보겠습니다.[INFO] Server started successfully.[DEBUG] Connection established with DB.[ERROR] Failed to load configuration.[..

개발을 하면서 여러 개의 명령어를 한 번에 실행해야 할 일이 자주 있습니다. 특히, 배포나 환경 설정을 할 때는 여러 단계를 순차적으로 실행해야 하는 경우가 많죠.최근 저는 아래와 같은 명령어를 자주 사용하고 있습니다.git pull ; docker-compose down -v ; docker-compose up -d이 한 줄의 명령어는 크게 세 가지 작업을 순차적으로 수행합니다.1️⃣ git pull• 현재 브랜치의 최신 변경 사항을 가져옵니다.• 협업 중이라면, 다른 개발자의 변경 사항을 반영하는 과정입니다.2️⃣ docker-compose down -v• 실행 중인 Docker 컨테이너를 모두 종료하고(down),• -v 옵션을 사용하여 볼륨(volume) 데이터까지 삭제합니다.• 주로 캐시를 완전..

최근에 LG 32인치 4k 모니터를 구입했습니다. 맥북과 아이맥에 연결을 해보았는데 하나는 USB-C 포트에, 다른하나는 HDMI 포트에 연결을 해보았습니다. 기본적으로 제공하는 해상도가 다름을 보였는데, USB-C 가 보여주는 3008x1692 해상도가 2560x1440 보다는 32인치에 적합하다고 저는 생각하고 사용중에 있습니다. 좀더 구제척인 리뷰는 한달정도 사용후 업데이트 해보도록 하겠습니다.
조금 길지만 내용이 유익합니다. DataCamp 에 있는 infographic 공유합니다. R 과 Python 둘다 많이 사용되지만, 차이점을 알아두면 좋은것들도 많겠죠. 저도 둘다 사용해 보았지만, 이렇게 보니 정리되고 좋네요. 스크롤이 매우 길지만, 그래도 유익한 정보들이 많으니 한번 훌터 보세요. Source: https://www.datacamp.com/community/tutorials/r-or-python-for-data-analysis
맥북사용하면서 Screenshot 을 엄청 많이들 사용하실텐데요. 자동으로 저장되는 공간이 Desktop 이라 가끔씩 정리하는 수고가 필요합니다.그래서 Default 로 경로를 바꾸어주는 방법을 알아보겠습니다. 매우 간단한데요 딱 3단계만 거치시면 됩니다. 1. 저장하고 싶은 곳에 폴더를 만듭니다.2. 디폴드(defaults) 명렁어를 통해 폴더를 지정합니다.3. 실행중인 UI process 를 죽여 다시 활성화 시킵니다. 너무 간단하죠. 자 해보겠습니다. 저는 Documents 안에 Screenshots 이라는 폴더를 하나 만들었습니다. 그리고 앞으로 모든 스크린캡쳐를 통해 저장되는 파일을 이쪽으로 저장하게 하려고 합니다. 자 그리고 이제 Terminal 프로그램을 오픈합니다. 그리고 아래 명령어를 복..
제가 요즘 자주 사용하는 Packages 등등 그리고 단축키들을을 공유해볼게요. 프로그램을 할때 사실 EditPlus 를 엄청나게 거의 10년 사용했었는데. OS X 에서 지원이 안되다 보니, 자연스럽게 대체 텍스트 에디터를 찾게 되었고 많은 것들을 써보고 써본결과 Sublime Text 3 로 결정을 하고 주구장창 이것만 사용한지 별써 또 몇년이 지나게 되었네요. 그런데 아주 맘에 드는 에디터예요. (그래도 가끔 윈도우에서 EditPlus 3 사용할때 사용합니다. 한달에 2-3번정도 사용하고있습니다.) 요즘에는 Git Package / Diff Package 등등을 자주 사용하는데요, 관련된 Package , 아 까먹기 전에 뭐 하나 적어 놔야 겠다 싶었습니다. 우선 서브라음 텍스트3 가 아직 없으신분..
리서치 결과물을 포스팅 하는데 있어서 좀더 생동감 있게 gif 파일을 삽입해보자 하는 마음에 시작했다.video 파일을 share 하는것보다 빠르게 더 많이 노출시킬수 있다는 생각에서... 1. 우선 mov 파일은 QuickTime Player 에서 New Screen Recoding 메뉴를 통해 간단하게 제작했다. 2. ffmpeg 설치. brew 를 통해 간단하게 설치 했다. homebrew 에 대해선는 링크 참조 (http://brew.sh/) brew install ffmpeg ImageMagick사실 여러가지 명령어를 바꿔가며 이렇게도 해보고 저렇게도 해봤지만 아래 명령어가 가장 간편해서 이것만 공유하겠다. 3. 실행ffmpeg -i in.mov -vf scale=640:-1 -r 10 -f i..
어제는 구글 인터뷰를 봤고오늘은 아마존 인터뷰를 봤다. 둘다 내년 졸업과 동시에 취업을 하기 위한 준비였으니 7-10개월 전에는 시작을 하는것 같다. 작년 Intern 인터뷰를 봤기에 구글은 어떻게 하는지 알고 있었고얼마전 Amazon 은 Online Assessment 를 봤기에 대충 느낌은 알았다. 어제 구글 인터뷰는 (60분 전화, Google Docs) doubly linked list 질문에 insertion 함수를 작성하는것이였고 그때 in order 가 되야 되는것이였다.오늘 아마존 인터뷰는 (75분 전화, HackerRank.com) tree (BST 면 안됨) 를 만들고 insertion 하는 함수였는데 이것도 약간 tricky 한 질문이 였다. 다시 한번 느끼지만 SDE (Softwar..
2011년 제품이 나온후 2016년 제품이 나오니 참으로 오랜시간 맥 Office 를 기다린 샘이 되네요.https://products.office.com/en-us/mac/microsoft-office-for-mac?pid=m 다운로드를 받은 후 설치 하니 기존에 있던 2011년 제품위에 자연스럽게 덮어 써서 기존 제품이 사라졌습니다.그리고 학교 계정으로 연결해서 license 까지 취득하였구요. 상당히 많은 UI 가 변화되었는데, 오래도록 Mac 에서 촌스런(?) 디자인으로 버텨온 2011년 Office 에게 굿바이 인사를 하고 2016으로 갈아타야겠습니다. 지금까지 2011년 Office 제품이 여태까지 벼텨 왔다는건 많은 것들을 의미하는데, 그 동안 컴퓨팅 생태계에 엄청난 변화가 있었기 때문에 이..
한글로 된 글 (신문기사, 기고글) 이렇게 쉬울줄이야. 정말 단축키 하나로 온라인 기사를 그냥 쏴주는 최고. 그리고 구글 scholar 에서 찾은 논문들도 바로바로 쏴줌 (PDF 제외). 이거 대박임. 사용법은 곧 공유!!
사실 놀랍고도 재미난 뉴스를 접했다. CHI 컨퍼런스는 HCI 컴퓨팅 분야에서 단연 최고중의 최고의 컨퍼런스다.2015년 서울에서 열리는것도 놀랍고 좋은일인데, 키노트로 가수 PSY 가 오른다고 발표되었다! 하하! 재있고도 놀랍다!흥미롭다! CHI 2015 홈페이지http://chi2015.acm.org/ 그리고 페이스북에 올라온 글.PSY(싸이) 가 CHI(카이) 에서 무엇을 할지. 왠지 단체로 강남스타일을 추자고 하지 않을까? :) Post by CHI.
Info VIS 2014 논문 발표 - 30초 비디오 데모 페이퍼 accepted 이후 camera version 에서 30초 비디오 데모를 만들어서 제출했고, 공개되었다. Information Visualization in Affective User Studies from VGTCommunity on Vimeo.
20만개가 넘는 xml 파일에서 필요한 부분만 얻어내기 위해 어떻게 해야되나 검색하던중 너무나도 훌륭한 툴을 찾았다. xmlstarlet (http://xmlstar.sourceforge.net/) 너무나도 잘 사용했기에 설치부터 사용법까지 간단하게 남겨보려 한다. 다운로드를 받고 zip 파일을 풀면 설치준비가 완료다.$ ./configure 실행$ sudo make$ make check$ sudo make install 설치 끝 실행해보기$ xml 간단한 예제를 보자. xml sel -t -v //Firstname -nl *.xml firstname element 의 value 를 출력해줬다. 사실 grep 과 sed, awk 까지 총동원해서 하려고 했는데 너무 복잡했기에 고민하던중 찾은 xmlstar..
오랜만에 Unix 명령어를 몇일째 엄청 사용하면서 느낀점인데 정말 안쓰니깐 다 까먹게 된다는걸 다시 한번 느꼈다.그래서 기억하기 위해 몇개 쓴다. find 명령어로 얼마나 많은 파일이 있는지 확인하기 find ./folder -type f | wc -l 10년치 되는 데이터를 unzip 한후 몇개의 data 가 존재하는지 확인해보니 11만개정도 되었다. unzip *.zip -d ./folder
얼마전 구글글래스를 착용할 기회가 생겨서 잠깐 사용했었는데 바로 구매할 기회가 생겼고 주문해서 딱 손에 넣었다.구글 계정으로 연동해서 보니 정맣 할게 많은데 익숙해지는데는 시간이 좀 필요할듯 하다.아직 정식버전이 아닌수준에 보았을때 퀄리티는 상당히 좋다. 하드웨어는 물론 Google 대부분 소프트웨어를 최대한 활용한 구글글래서그 앞으로 어떻게 발전하는 지켜봐야겠다.2014년 봄에 일반사용자한테 풀릴것이라는 이야기를 듣긴했는데 지켜보자. "Ok Glass" goo
구글 글래스를 착용할 기회가 생겼다. 기념으로 사진한장 남긴다 :) "ok glass"
구구단 출력하기갑자기 요즘에는 몇학년때 구구단을 다 외우는지 궁금하다. import java.util.Scanner; public class MultiplicationTable { private static Scanner scanner; public static void main(String[] args) {// TODO Auto-generated method stub System.out.print("Input: ");scanner = new Scanner(System.in); int number = scanner.nextInt(); mTable(number); } public static void mTable(int n) {for (int x = 1; x < n + 1; x++) {// System.o..
이유는 없고 갑자기 그냥 만들어 보았다.오랜만에 Eclipse 설치도 했고 Hello World 출력해볼까 하려다 문자열 뒤집어서 출력하기로 해서 해보았다. import java.util.Scanner; public class ReverseString { private static Scanner scanner; public static void main(String[] args) { scanner = new Scanner(System.in); String input = new String(); while (true) {System.out.print("Type some words: ");input = scanner.nextLine(); if ("quit".equals(input)) {System.out.p..