리눅스에서 lrzsz는 꽤 많이 쓰인다고 어디선가 들었습니다. 사실, 전 FileZilia에서 파일 업로드하고, 다운로드를 많이 했는데요. 그건 생각보다 귀찮은 일이더라고요. 타겟에 lrzsz를 설치해 보겠습니다. 타겟에는 sshd (ssh 서버)가 깔린 상태입니다. 우분투는 sudo apt install lrzsz 이렇게 명령어를 입력하시면 됩니다. 그러면 설치가 좌르륵 하고 될 겁니다. 이제 rz를 입력해 보겠습니다. 그러면 waiting to receive라는 문구가 뜹니다. send가 보내는 것이고 receive가 받는 것이니, 여기에서는 cho@ubuntu가 받는 것을 의미합니다. cho@ubuntu는 rz가 실행되는 타겟을 의미하기도 합니다. server가 받아야 한다면 client는 보내야 ..
전체 글 검색 결과
finalize 함수는 Object 클래스에 있는 메서드입니다. 공식 문서에서는 아래와 같이 설명하고 있습니다. 여기서 중요한 것은, gc가 해당 object를 참조하는 레퍼런스가 없을 때 Call 한다는 것입니다. 예제 프로그램을 몇 개 보면서 이해해 보도록 하겠습니다. 1번째 프로그램입니다. Obj는 Object를 상속받습니다. 따라서, finalize를 오버라이딩 할 수 있습니다. finalize가 gc에 의해서 호출이 되면, Common.rm이 증가하게 되는데요. 새로운 Obj 객체 1000만개를 생성하기만 했습니다. 그리고 80초동안 sleep을 시키고, Common.rm을 출력하였습니다. 1000만이 출력되지 않았다는 것이 중요합니다. 100개의 Obj를 새로 생성한 다음에 Common.rm을..
Quick sort, selection을 할 때 pivot을 선택하는 전략을 찾아보면 꽤 많이 나온다는 것을 알 수 있습니다. 이번 시간에는 median of median을 해 보도록 하겠습니다. 중간값의 중간값? sort 구현체를 찾아보면 Median of Median으로 하는 거 같지 않은데, 이건 또 왜 그럴까요? 중앙값부터 보겠습니다. [5, 3, 6, 4, 7]의 중앙값은 무엇인가요? 5입니다. 왜냐하면, 이것을 sort를 하면 [3, 4, 5, 6, 7]입니다. 5가 딱 중간에 있기 때문입니다. 크기가 n인 배열을 생각해 보겠습니다. 이것을 우리는 5등분을 하겠습니다. 예를 들어, 배열이 [2, 5, 3, 2, 7, 2, 7, 3, 6, 4, 7, 5, 7, 2, 3, 6, 6, 4, 35, ..
String 클래스의 replaceAll 메서드는 상당히 많이 쓰는 메서드 중 하나입니다. 이것의 성능 문제에 대해서는, 이미 다른 곳에서도 많이 언급이 되기도 했습니다. 만.. 한 번 더 짚고 넘어가셔도 좋을 듯 싶습니다. 사실 제대로 분석하시려면 컴파일러나 프로그래밍 언어론을 보시는 게 도움이 많이 될 겁니다. replaceAll 메소드는 크게 어려운 게 없습니다. 단지, regex 패턴을 찾으면, 그것을 replacement로 대체합니다. 예를 들자면, 숫자를 없애기 위해서는 regex에 "[0-9]"를, replacement에 ""을 넣으면 됩니다. 내부를 보겠습니다. 보면, Parrern.compile(regex).matcher(this).replaceAll(replacement); 이 문장이 ..
오늘은 CRUD를 할 때 많이 써먹는 sql의 insert 문에 대해서 간단하게 알아보겠습니다. 보통, 저는 테이블에 레코드를 추가하는 것을 아래와 같이 작성합니다. 이제 예제를 보도록 하겠습니다. 저는 DBeaver에 mysql을 연동해서 실습을 해 보도록 하겠습니다. 먼저, 테이블 t의 정보를 보겠습니다. a라는 컬럼과 b라는 컬럼이 있습니다. 그리고, 저는 이 둘에 아무런 제약 조건을 걸어놓지 않았습니다. 이제 테이블 t(a,b)에 ('A','A')와 ('A',('B')를 추가하도록 하겠습니다. 그러면 위와 같이 작성하시면 됩니다. insert into t(a,b) values ('A','A'), ('A','B'); 이것은 a가 'A'이고 b가 'A'인 레코드와, a가 'A'이고, b가 'B'인 레..
최근댓글