본문 바로가기

분류 전체보기

(135)
cyberduck cli로 리눅스에서 FTP로 구글 드라이브에 파일 업로드하기 제일 중요한 터미널에서 칠 커맨드 duck --username [자신의 gmail] --parallel [커넥션 갯수] --upload "googledrive:/[드라이브 상의 경로]" [로컬 파일 경로] Colab에서 사용하려고 구글 드라이브에 파일을 올리려고 했는데 파일 갯수가 많다보니 처음 올리니까 100시간 걸린다고 나오더라. 이건 도저히 못쓰겠다 싶어서 FTP로 커넥션 여러개 꼽아서 동시에 전송 가능한 방법을 알아봤다. 유료 프로그램인 파일질라 프로나 smartFTP 같은 걸 써도 되고 cyberduck이라는 무료 프로그램도 가능했다. 그런데 cyberduck이란 놈이 리눅스에선 GUI 앱이 없고 cli로만 사용 가능하다. 여기까진 괜찮은데 document가 좀 구려서 시행착오를 조금 했다. C..
맥북에어 M1 코딩용 사용기 지난 5월 24일에 애플 매장에 가서 맥북 에어 M1을 제일 낮은 사양으로 구매했다. (7코어, 256기가 ssd, 램 8기가) 사용기를 쓰고 싶었는데 그래도 환불기간은 지날 때까지 써보고 써야되지 않을까 싶어서 지금 쓴다. [목차] 1. 어떤 목적으로 구매했는가? 왜 기본 사양으로 샀는가? 2. 좋았던 점 3. 아쉬웠던 점 4. 결론 1-1. 어떤 목적으로 구매했는가? 코딩용이다. 내가 주로 하는 코딩은 C++로 백준 문제를 풀거나 jupyter notebook으로 가끔 파이썬 코딩하거나 하는 정도이다. 리모트 머신에 접속해서 대부분의 것을 진행한다. 내가 코딩할 때 사용하는 환경을 좀 더 자세히 설명해보자. 우분투가 깔려있는 메인 노트북을 충전기 꼽아두고 집을 나온다. 그리고 삼성 노트북(window..
DBMS는 저장소를 어떻게 관리하는가? - 2 Data Representation 데이터베이스 파일은 페이지들로 구성되고 그 페이지가 어떻게 저장되는지 또 어떻게 찾아가는지를 알았습니다. 이제 튜플의 데이터들이 어떻게 표현되는지 볼 차례입니다. 디스크에 저장되어 있는 것은 크게 봤을 때 그저 바이너리일 뿐입니다. 이를 해석하는 것은 DBMS의 일입니다. DBMS는 튜플 내부에 대한 정보를 어떻게 해석할지를 알아야 하는데 이 정보는 우리가 스키마라고 얘기하는 것과 상통하는 부분입니다. 그리고 이런 정보를 catalog에 저장해둡니다. 튜플 내부에 저장되는 값들의 종류를 몇가지 살펴봅시다. Integer는 우리가 흔히 다루는 자료형 중 하나로 INTEGER, BIGINT, SMALLINT, TINYINT 같은 자료형이 있으며 C/C++의 native t..
백준 21916번 Neo-Robin Hood 문제 요약 돈을 $m_i$달러만큼 들고 있는 정치가 $N$명이 주어진다. 각 정치가는 $p_i$만큼 돈을 원하고 있다. 이 때, 정치가들한테서 돈을 훔치려고 하는데 그냥 쌩으로 훔치면 위험하기 때문에 훔친사람의 수와 같은 수의 정치가들한테 그들이 원하는 만큼의 돈을 줘야 한다. 이 때, 돈을 훔칠 수 있는 정치가의 수의 최댓값을 구하시오. $ N \le 100,000$ $1 \le m_i, p_i \le 10^9$ 풀이 관찰 1 : 일단 돈을 줄 사람 $k$ 명을 정했다고 하자. 그렇게 되면 돈을 훔쳐야 될 사람 $k$ 명은 남은 사람 중에서 돈이 제일 많은 $k$ 명이 되는 것은 자명하다. 관찰 2. $k$ 명에게서 훔치는 것이 가능하다면 당연히 $k$ 명보다 적은 수의 정치가에게서 훔치는 것도 가능하..
DBMS는 저장소를 어떻게 관리하는가? 개인적으로 아래과 같은 강의를 들으면서 DBMS에 관련해서 공부 중인 내용을 정리하려고 쓰는 포스팅입니다. 강의도 듣고 책도 읽고 정리하고는 있어도 제가 모자라서 틀린 부분이 있을 수도 있습니다. 혹시라도 발견하시면 댓글로 알려주시면 감사하겠습니다. https://15445.courses.cs.cmu.edu/fall2019/ Which Storage Type? 저장소를 분류하는 방법에는 다양한 기준이 있겠지만 휘발성을 기준으로 나눠보자. 여기서 휘발성이란 전원을 껐을 때 담겨있던 정보가 사라지는 것을 의미한다. 휘발성이 있는 저장소의 대표격은 역시 RAM이다. 보통 메모리라고 퉁쳐서 부르기도 합니다. 그리고 비휘발성의 저장소 중 제일 대표적인 것은 HDD일 것입니다. 일반적으로 데이터베이스를 사용하는 상..
자주 쓰는 단축어 정리 크롬 Control + Tab - 다음 탭으로 넘어가기 Control + Shift + Tab - 이전탭으로 넘어가기 F6(윈도우, 리눅스) - URL 입력창 활성화 command + L(맥) - URL 입력창 활성화 command + T(맥) - 새로운 빈 탭 열기 Control(command) + Shift + T - 새로운 빈 탭 혹은 이전에 닫힌 탭 열기 Control(command) + W - 현재 탭 닫기 VS Code Control(command) + W - 현재 열려있는 편집 창 닫기 Control(command) + J - 터미널 열고 닫기 Control(command) + P - 현재 워크스페이스에서 파일 경로 입력해서 열기(사이드바 안써도 됨!) Control(command) + B ..
Just-In-Time 컴파일 방식 JIT 컴파일에 대해서 찾아보다가 재밌어서 작성한 글입니다. JIT 컴파일이 어쩌다 나오게 됐는지, 그리고 어떤 방식을 JIT 컴파일이라고 하는지에 대한 내용입니다. 글의 내용 대부분은 글 아래의 참고 자료에서 나온 것이며 아래 동영상을 보는 것도 추천드립니다. 링크 틀린 내용이 있다면 알려주시면 감사하겠습니다. Ahead-of-Time Compile(AOT 컴파일) 최근이야 프로그래밍을 처음 배운다고 하면 파이썬이 1타로 나오지만 당장 5년전만 해도 C언어가 주로 첫 언어로 추천받았던 거 같다. 언어를 처음 배우면 하는 건 정해져있다. Hello World!를 화면에 띄워야 한다. #include int main() { printf("Hello World!\n"); return 0; }이런 소스코드를 ..
C++ override 키워드 Class Method의 override keyword는 해당 메소드가 오버라이딩될 메소드라는 걸 컴파일러에게 알려주는 것이다. C++ 11부터 추가된 키워드인데 이것이 어떻게 도움이 될까? 부모 클래스에 void show(unsigned int x) { return x; }라는 메소드가 있고 자식 클래스에서 이를 오버라이딩하려고 한다. 그러면 void show(unsigned int x) { ... } 로 써야할텐데 프로그래머의 실수로 void show(long long int x) { ... }로 썼다면 컴파일러는 자식 클래스의 별개 메소드로 간주하게 될 것이다. 이 상황에서 void show(long long int x) override { ... }로 코드를 작성한다면 컴파일러는 오버라이딩 되야할..