development

    [AWS lightsail] Docker(Nginx + Nodejs) 환경에 SSL 적용

    [ 배경 ] 학교 팀 프로젝트로 웹 애플리케이션을 만들기 위해 Godaddy를 활용해 AWS와 도메인을 연결했다. AWS에서 nodejs로 만든 애플리케이션을 도커를 활용해 배포하는 환경까지 만들었다. google map api 사용을 위해서 https를 지원해줘야 하는데 도메인을 발급 받을 때 ssl 적용이 안되는 상품을 구매했나보다.. 우리의 지갑은 언제나 넉넉한 것은 아니므로 무료로 해결할 수 있는 방법을 찾게 되었다. 찾아보니 let's encrypt라는 곳에서 발급 받을 수 있다고 한다. [ SSL 인증서 발급 ] Certbot을 활용해 인증서를 생성할 수 있다. AWS의 인스턴스에 연결해준 뒤 아래와 같이 certbot을 설치해준다. sudo snap install certbot --class..

    분할 컴파일 & 조건부 컴파일

    분할 컴파일 & 조건부 컴파일

    이전 글에서 실행 파일이 만들어지는 과정에 대해 알아보았다. https://ssongkit.tistory.com/273 C 언어의 실행 파일 생성 과정 C 언어에서 실행 파일을 생성하는 과정은 아래 그림과 같다. 1. 소스 파일(source file)의 작성 우리가 일반적으로 하는 코딩이다. 2. 선행처리기(preprocessor)에 의한 선행처리 선행처리 문자(#)로 시작 ssongkit.tistory.com 여러 개의 소스 파일을 작성하여 최종적으로 링크를 통해 하나의 실행 파일로 만드는 것을 분할 컴파일이라 했다. 분할 컴파일에 대해 알아보자. 분할 컴파일 코딩할 때 하나의 파일에 모든 것들을 코딩하지 않으며 기능별로 파일을 나눠서 코딩하게 되는데 이를 모듈화 프로그래밍이라고 한다. 모듈(modul..

    C 언어의 실행 파일 생성 과정

    C 언어의 실행 파일 생성 과정

    C 언어에서 실행 파일을 생성하는 과정은 아래 그림과 같다. 1. 소스 파일(source file)의 작성 우리가 일반적으로 하는 코딩이다. 2. 선행처리기(preprocessor)에 의한 선행처리 선행처리 문자(#)로 시작하는 선행처리 지시문의 처리 작업을 의미한다. 선행처리 작업은 선행처리기(preprocessor)가 수행하며 코드를 생성하는 것이 아닌 컴파일하기 전 컴파일러가 작업하기 좋도록 소스를 재구성해주는 역할을 한다. 3. 컴파일러(compiler)에 의한 컴파일 컴파일(compile): 소스 코드 -> 기계어 컴파일은 컴파일러에 의해 수행된다. 오브젝트 파일(object file): 컴파일이 끝나 기계어로 변환된 파일 4. 링커(linker)에 의한 링크 오브젝트 파일은 운영체제와의 인터페..

    [Python] MRO(Method Resolution Order)

    [Python] MRO(Method Resolution Order)

    이 글은 파이썬의 MRO 기능에 대해 공부하기 위해 레퍼런스를 참고해 정리한 글입니다. MRO(Method Resolution Order) 메서드 해결(결정) 순서라고 직역할 수 있겠다. MRO를 이해하기 전 먼저 파이썬은 다중 상속을 지원한다. 두 개의 부모 클래스(A,B)를 상속받은 자식 클래스(C)가 있다고 가정하자 A,B에 같은 이름의 메서드가 정의되어 있고 C에서 이 메서드를 호출하면 지옥의 다이아몬드라는 상속 문제가 발생한다. A와 B 중 어떤 클래스의 메서드를 실행해야 할 지 결정하지 못하는 것이다. 파이썬은 이 문제를 MRO로 해결한다. MRO는 자식과 부모 클래스를 전부 포함하여 메서드의 실행 순서를 정해두는 것이다. (메서드 탐색 순서로 이해해도 좋을 것 같다) MRO는 __mro__ ..

    [우분투 리눅스] 리눅스 보안의 기초

    정보 보안의 정의 정보 보안은 정보 자산을 여러 위협으로부터 보호하여 기밀성, 무결성, 가용성을 유지하는 것이다. 정보 보안의 3요소: 기밀성, 무결성, 가용성 보안 기본 조치 불필요한 서비스 통제 소프트웨어 패치 설치 주기적인 점검과 백업 기술 동향 파악 시스템 로그 로그는 커널과 리눅스의 여러 서비스와 응용 프로그램이 발생시키는 메시지이다. 로그 파일의 위치: /var/log 디렉터리 로그 관리 데몬 리눅스 로그 관리 데몬: /sbin/rsyslogd 설정 파일: /etc/rsyslog.conf - 필터(기능명.우선순위)와 동작으로 정의한다. 필터의 기능명: 로그를 생성하는 프로그램의 종류(auth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, u..