본문 바로가기

반응형

GF

(102)
재귀 호출 없는 하노이타워 일반적으로 하노이 타워 코드는 재귀호출을 설명하기 위한 예시로 많이 사용된다. 하지만 재귀와 반복은 상호 대체 가능하므로, 하노이 타워를 재귀 호출 없이 반복문을 이용해 작성해보자. 비교를 위해 재귀 호출을 이용한 코드도 함께 작성했다. #include #include #include using namespace std; struct CallStackElement { int n; char from; char to; char aux; bool print; }; void print_move(int n, char from, char to) { cout
기술 면접 질문 최근 후배들을 대상으로 하는 면접 스터디에서 기술면접(CS면접) 보조를 하면서 질문을 몇 가지 준비해보았다. 프로세스/스레드 구분 34 + 5 = 41 설명해보기 /2, >>1 비교하기 call by value, call by reference 설명 이중배열 탐색시 아래 두 코드는 성능 차이가 있을까? for (int row = 0; row < n_rows; row++) { for (int col = 0; col < n_cols; col++) { // access arr[row][col] ... } } for (int col = 0; col < n_cols; col++) { for (int row = 0; row < n_rows; row++) { // access arr[row][col] ... } } ..
닷홈 무료 웹호스팅 닷홈에서는 무료 웹호스팅 서비스를 제공한다. 트래픽이나 저장공간의 제약이 크지만, 기간은 사실상 무제한(3개월마다 연장)이다. 지난 10년 동안 여러 용도로 요긴하게 써왔고, 내가 웹개발자가 되는데 정말 많은 도움이 되었다. 솔직히 개발을 처음 시작하면서 웹개발에 입문하는 분들에게 무료 웹호스팅은 아주 괜찮은 선택지라고 생각한다. 나도 아무것도 모르던 학생 때부터 쉽게 썼으니 말이다. :) 하지만 아쉽게도 이제는 더 이상 쓸 일이 없이 연장만 하고 있는 것 같아 결국 삭제하기로 했다. ㅠㅠ 그동안 잘 썼어요, 닷홈~ 다음에는 유료 서비스로 만나요 :)
[Node.js] AWS SES 또는 Gmail API로 메일 보내기 Node.js기반 서버에서 메일을 보낼 때, 기존에는 Nodemailer를 사용하고 있었고 계정은 Gmail의 것이었다. 원래 Gmail로 메일을 보내려면 Gmail API를 사용해야 하지만, Nodemailer는 사용자를 대신해 직접 로그인하여 메일을 전송한다. 그렇기 때문에 구글 아이디, 비밀번호를 제공하고, 구글 계정 설정에서 보안 수준이 낮은 앱의 액세스를 허용해야 한다. 보안 수준을 낮추는 것이 마음에 들지 않았지만 메일을 보낼 수 있게 되었다. 그런데 한 가지 문제가 더 있는데, 하루에 500개의 메일만 보낼 수 있다는 것이다. UOSTime을 서비스하면서 이 한도에 걸릴 수가 있었고, 이를 해결하기 위해 Google Workspace를 사용한다면 월 6달러의 지출이 예상되었다. Gmail A..
JS 값 복사하기 (Deep Copy) 자바스크립트에서 객체를 복사하는 방법은 여러가지가 있다. 얕은 복사 얕은 복사는 동일 객체를 참조하도록 한다. 객체는 메모리에 하나만 존재하고, 이를 가리키는 포인터가 추가되는 것이다. const obj1 = { a: 1, b: { c: 2, d: 3, }, }; const obj2 = obj1; obj2.a = 4; obj2.b.c = 5; console.log(obj1.a); // 4 console.log(obj1.b.c); // 5 따라서 원본, 복사본 구분 없이 어느 것을 수정하더라도 당연히 모든 것이 수정되는 셈이다. 깊은 복사 메모리 상에 객체를 하나 더 생성하는 것이다. 따라서 원본과 복사본이 구별되며, 하나를 수정해도 다른 하나는 당연히 그대로 보존된다. 깊은 복사는 흔히 JSON.pars..
AMD Radeon 그래픽 카드 디스코드 블러 이슈 해결 나는 RX570 그래픽 카드를 사용하고 있다. 디스코드에서 화면 공유를 하면 일정 시간 뒤 화면이 블러되는 문제가 있었고, 해상도나 프레임률을 수정함으로써(이때 영상 전송이 처음부터 다시 시작되므로) 일시적으로 문제를 해결하곤 했다. 꽤 많은 사람들이 같은 증상을 겪고 있던데, 누군가 다음과 같은 방법으로 일단 해결을 봤다고 한다. [디스코드 설정] - [음성 및 비디오]에서 비디오 코덱 OpenH264 비활성화 H.264 하드웨어 가속 비활성화 QOS 활성화 https://support.discord.com/hc/tr/community/posts/360050908514-Screenshare-gets-blurry-afer-a-while-
[Node.js] Gmail API 이용해서 메일 보내기 Gmail API 사용 활성화 및 사용자 인증 정보 생성 GCP 프로젝트를 생선한 후, 왼쪽 사이드바에서 [API 및 서비스] - [라이브러리]에 진입한다. gmail을 검색해서 들어간 후에 [사용] 버튼을 클릭한다. (이미 사용중인 경우 [관리] 버튼으로 대체되어 있다.) 조금 기다린 후 [사용]이 [관리] 버튼으로 변경되면(안 되면 페이지를 새로고침 해보자), 버튼을 눌러 관리 페이지로 진입한다. 위의 [+ 사용자 인증 정보 만들기] 버튼을 누르고 [OAuth 클라이언트 ID 만들기]를 선택한다. 맨 처음 사용자 인증 정보를 만드는 경우, OAuth 동의 화면을 먼저 작성해야 할 수 있다. (이미 작성한 경우 생략) OAuth 동의 화면은 안내에 따라 간단히 생성할 수 있다. 앱을 게시할 필요는 없다..
Windows Terminal 테마 설정하기 Windows Terminal 설치 Microsoft Store에서 Windows Terminal을 설치할 수 있다. 설치한 Windows Terminal을 실행한다. (커맨드에서 wt로 실행할 수도 있다) 이후 상단바에 아래화살표 버튼을 누르고 설정을 눌러에 설정 페이지에 진입한다. 프로필마다 설정을 지정할 수 있다. 어느 프로필에도 해당되지 않는 경우에는 기본값 프로필이 적용된다. 테마 설정 색 구성표에 있는 값 중에 마음에 드는 테마가 없다면, [색 구성표] 메뉴에서 직접 만들거나, https://windowsterminalthemes.dev/ 에서 원하는 것을 찾아 추가하면 된다. 예를 들어 Snazzy 테마를 추가하고 싶다면, Windows Terminal 설정의 좌측 하단에 [Json 파일 열..