본문 바로가기

개발/백엔드23

Dependency Injection이 무엇인지 알아보자 오늘의 5분 개발지식 라디오! 안녕하세요~ 오늘은 dependency injection, 의존성 주입에 대해서 이야기해보려고 합니다. 단어 자체가 직관적이지 않아서 저도 처음에 이해할때 많이 헷갈렸는데요, 의존성 주입이라는 용어에서부터 시작해보겠습니다. 일단 의존성이라는 단어부터 보면 좋을 것 같은데요, 의존성이란 말 그대로 하나의 코드가 다른 코드에 의존하는 상태를 뜻하는데요, 쉽게 말하자면 A라는 코드가 B라는 코드를 사용한다면, A는 B에 의존하고 있다, 혹은 의존성이 있다라고 말할 수 있습니다. 주입이라는 말은 말그대로 “넣어주다”라는 말인데요, 합쳐서 보면 의존성 주입이라는 용어는 의존성이 있는 코드, 객체를 넣어준다~라는 말입니다. 조금 더 실사용 예시로 풀어서 생각을 해보면, A라는 클래스가.. 2023. 4. 26.
Apache vs NginX vs Tomcat Apache와 Nginx와 Tomcat 모두 유명한 Webserver framework들이다. 이 세가지 framework들을 간단하게 비교해보겠다. 비교는 Apache를 기준으로 하겠다. Apache는 가장 오래된 Webserver framework들 중 하나로서, 모듈을 기반으로하는 구조를 가지고 있기때문에 커스터마이징이 자유롭다. 관리자들은 모듈들을 사용하여 새로운 기능들을 쉽게 도입할 수 있다. 또 .htaccess 파일을 편집하여 쉽게 설정을 바꿀 수 있다. Apache Tomcat은 이름에서 알 수 있다시피, Apache를 개발한 개발사에서 만든 webserver이다. Tomcat의 가장 큰 차별점은 JAVA 어플리케이션을 위해서 만들어졌다는 점이다. Tomcat은 JVM이나 다른 JAVA 관.. 2020. 3. 30.
Docker와 Nginx 포트 포워딩 사이트에 ssl을 적용하지 않으면 안되는 상황이 많아지면서 nginx에서 요청을 받아 ssl을 풀고 실제로 요청을 처리하는 docker container로 전달하는 경우가 많아졌습니다. 작업을 하다가 이와 같은 경우에 어떻게 해야되는지를 정리해보았습니다 아래는 docker container들을 관리해주는 docker-compose.yml입니다.ㄷ //docker-compose.yml version: '2' services: janus-gateway: image: janus-gateway environment: - DOCKER_IP=${DOCKER_IP} nginx: image: nginx:1.14.2 container_name: nginx ports: - "8088:8088" volumes: - ./ng.. 2020. 3. 20.
[Django 공식문서 번역] Class-based Views - 1. Introduction 이 글은 본인이 공부를 목적으로 공식문서를 읽으며 정리/번역한 글로서 오역이 있을 수 있을 수 있습니다. 또한 본인이 이미 알고 있거나 불필요하다 느끼는 내용들은 누락될 수 있습니다. Class-based view는 view를 함수가 아닌 파이썬 객체로 구현할 수 있는 하나의 방법이다. Class-based view는 function-based view를 대체하지는 않지만 그와 비교하여 차이점과 장점이 있다. - HTTP method(GET, POST, etc)에 따른 코드를 conditional branching(IF)를 하지않고 별도의 메소드로 분리 할 수 있다. - 객체 지향 테크닉들이 사용될 수 있다. Using class-based views from django.http import HttpR.. 2020. 3. 18.
[Web Server 이해하기] Apache vs Nginx Apache Apache는 MPM(Multi Processing Module)이라는 방식으로 처리를 하는데 대표적인 방식으로 Prefork와 Worker방식이 있다. - Prefork MPM: 실행중인 프로세스를 복제하여 처리한다. 각 프로세스는 한번에 한 연결만 처리하고 요청량이 많아질수록 프로세스는 증가한다. 하지만 프로세스를 복제하는 것이므로 메모리영역까지 복제되어 동작하기 때문에 메모리 공유가 없어 안정적이다. - Worker MPM: Prefork방식이 1개의 프로세스가 1개의 스레드로 처리가 되었다면 Worker 동작방식은 1개의 프로세스가 각각 여러 쓰레드를 사용하게 된다. 쓰레드간의 메모리를 공유하며 PreFork방식보다 메모리를 덜 사용하는 장점이 있다. Apache vs Nginx Ng.. 2020. 3. 18.
[Web Server 이해하기] CGI / WAS / WSGI 웹서버의 기본적인 역할은 정적(static)인 파일을 그대로 보내주는 것입니다. 그 말인즉슨, 뭔가 별도의 처리를 거치지 않고 존재하는 파일을 그대로 보내주는 역할을 합니다. CGI(Common Gateway Interface) 웹서버에서 어플리케이션을 작동시키기 위한 인터페이스로서, 정적인 웹서버를 동적으로 기능하게 하기 위해서 등장하였습니다. 기존에는 외부프로그램이 필요한 리퀘스트가 들어오면 CGI를 통해 따로 프로세스를 fork하고 외부프로그램을 실행시켜 처리하였지만, 요즘에는 웹서버에 인터프리터를 내장시켜 내부적으로 처리한다. CGI Programming이란, Perl, C/C++를 사용하여 웹서버가 실행할 수 있는 프로그램을 작성하는 것이다. WAS(Web Application Server) 웹.. 2020. 3. 18.