본문 바로가기

반응형

Programming

(161)
[Data Structure] 재귀함수를 활용한 피보나치 수열 구현 2024년 4월 7일(일) 오늘은 재귀함수를 활용한 피보나치 수열 구현에 대한 학습을 진행했다. 재귀함수 개념이 참 머릿속에 그려지는 듯 하면서도 이내 뭉그러진다. 재귀함수를 공부하면서 Visualization 도구의 도움을 많이 받았다. 나의 코드가 메모리에 어떻게 올라가고 동작하는지 시각화하여 보여주기 때문에 이해가 한결 수월했다. https://pythontutor.com/ Online Python Tutor - visualize, debug, get AI help for Python, Java, C, C++, and JavaScript Online Compiler, Visual Debugger, and AI Tutor for Python, Java, C, C++, and JavaScript Pyt..
홍정모 교수님 C++ 강의 후기 https://www.youtube.com/watch?v=UqCZda8DLGc 강의 시간은 3시간 남짓이다. 나의 경우 강의 시간의 2배에 가까운 시간이 흐른 후에 강의를 끝낼 수 있었다. 강의는 실습 위주이며 절대 강사가 먼저 답을 알려주지 않고 문제에 대한 답을 생각할 시간을 준다. 그래서 모르는 개념을 검색하고, 문제 풀이에 대한 디버깅에 시간이 많이 소요되었다. 만족스러운 강의였다. 이제껏 프로그래밍 관련 강의를 적지 않게 수강했는데, 강사와 강의의 질도 중요하지만 공부의 질이 절대적으로 중요하다는 사실을 이번 강의를 통해 알 수 있었다. 작은 문제라도 허투루 넘기지 않고 스스로 답을 찾기 위해 노력했다. 답답한 마음에 앞으로 감기를 눌러 강사가 제시한 답을 보고 다시 풀어보기도 했지만, 나름대..
[Network] Proxy Server(프록시 서버) 프록시 서버 기본 개념 프록시 서버란 통신의 주체(사용자의 PC 또는 웹서버) 사이에서 중개인 역할을 하는 하드웨어 또는 소프트웨어 형태의 서버를 말한다. 프록시 서버를 사용하는 이유 사용자가 익명으로 통신할 수 있다. 프록시 서버는 자신의 IP 주소를 따로 가지고 있다. 사용자의 요청을 외부에 최종 전달하는 것은 프록시 서버이기 때문에 외부에서는 사용자의 PC 또는 서버의 실제 IP가 아닌 프록시 서버의 IP가 노출된다. 캐싱을 통한 효율적인 리소스 관리 가능. 프록시 서버는 사용자의 요청을 캐시 형태로 저장한다. 동일한 요청이 다시 들어오면 최초에 했던 것처럼 요청을 처리하지 않고(목적지 서버에 사용자 요청을 전달하고, 응답을 받는 것) 프록시 서버에 있는 캐시를 사용자에게 반환하는 방식으로 요청을 ..
[Network] 서브넷 마스크 32비트의 IP 주소는 두 부분으로 구분된다. 호스트(컴퓨터 또는 프린터나 라우터와 같은 기타 장치)를 식별하는 부분 호스트가 속한 네트워크를 식별하는 부분 그리고 서브넷 마스크의 역할은 IP 주소 어디까지가 네트워크 부분인지 명시하는 것이다. 서브넷 마스크의 특징 서브넷 마스크는 IP 주소처럼 32비트이고, 0과 1이 32개 나열된 형태를 가진다. 1은 네트워크 주소를 나타내며, 0은 호스트의 주소를 나타낸다. 서브넷 마스크는 반드시 연속한 1과 연속한 0의 형태를 가진다. 1과 0이 혼합된 형태는 존재하지 않는다. ex. 11110000(O), 101010(X) IP 주소와 마찬가지로 비트를 나열하면 구분하기 어려우므로 8비트씩 10진수로 변환하여 '.' 으로 구분하여 표시한다. 서브넷 마스크 표시 ..
iptables 설정 방법 리눅스 환경에서 방화벽 설정을 한다는 것은 '어떤 패킷의 출입을 허가/거부 하거나 패킷에 대한 처리를 구체적으로 명시하는 것' 이라고 할 수 있다. 구체적인 패킷 처리는 처리 내용의 집합인 '정책(policy)'의 정의에 따라 결정된다. RHEL, CentOS, Fedora 등의 다양한 리눅스 배포 버전에서는 Firewalld를 기본(default) 방화벽 툴로 제공한다. Firewald는 zone-based(동일한 zone에 포함된 인터페이스 사이에서만 통신할 수 있도록 하는 것) 개념을 기반으로 동작하기 때문에 해당 기능을 제공하지 않는 iptables보다 좀 더 세부적인 통신 설정을 할 수 있다. 따라서 개인의 상황에 맞추어 Firewalld 또는 iptables를 사용하면 된다고 한다. iptab..
아파치 웹서버(httpd)의 시작 페이지 설정 리눅스 환경에서 Apache 웹서버(httpd)의 root 디렉토리를 지정하려면(서버 구동 시 참조하는 디렉토리) /etc/httpd/conf/ 경로의 httpd.conf 파일에서 DocumentRoot 부분을 수정하면 된다. root 경로에서 '어떤' 파일을 참조해야 하는지 지정하려면 어떻게 할까? 마찬가지로 httpd.conf 파일에서 DirectoryIndex 부분을 수정하면 된다. DirectoryIndex는 클라이언트가 디렉토리를 요청할 때 어떤 리소스를 불러올지 참조하는 하나 또는 그 이상의 파일 이름 리스트이다. 일반적으로 파일 이름으로 명시한다. 기본 설정은 아래와 같이 index.html 파일을 참조하도록 설정되어 있다. DirectoryIndex index.html 만약 사용하고 싶지 ..
문서 로드 이전, 이후에 따른 함수 정의 - onload, DOMContentLoaded 문서의 로드 시점, 즉 해당 페이지를 구성하는 모든 리소스가 로드된 이후/이전 상태를 인식하여 특정 함수를 호출하고 싶은 사람들을 위해 onload와 DOMContentLoaded를 제공한다. onload onload는 css, image와 같은 페이지를 구성하는 각종 리소스가 모든 로드된 이후 실행된다. onload 사용법 window.addEventListener('load', (event) => { - 내용 - }); window.onload = (event) => { - 내용 - }; DOMContentLoaded HTML 문서가 로드되자마자 바로 실행된다. css, image와 같은 서브 리소스들의 로드가 완료될 때까지 기다리지 않는다. DOMContentLoaded 사용법 document.ad..
const 키워드로 변수 선언 일반적으로 자바스크립트에서 const는 상수(constant)를 선언하기 위해 사용한다. const의 주요 특징은 다음과 같다. 선언과 동시에 반드시 초기화 작업을 해야 한다. 그렇지 않으면 아래와 같은 문법 에러가 발생한다. 블록 레벨 스코프를 가진다. 한 번 선언한 변수는 재할당이 불가능하다. 출처 http://www.yes24.com/Product/Goods/92742567

반응형