전체 글

전체 글

    [Database] ORM과 DB의 차이

    ORM(Object Relational Mapping)이란 객체 - 관계 매핑입니다. OOP에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB에서 쓰이는 데이터인 테이블을 자동으로 매핑하는 것을 말합니다. 그러나 클래스와 테이블은 서로가 기존부터 호환가능성을 두고 만들어진 것이 아니기 때문에 불일치가 발생하는데, 이를 ORM을 통해 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 불일치를 해결합니다. 따라서 ORM을 이용하면 따로 SQL문을 짤 필요없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게 됩니다. 장점: 1. 완벽한 객체지향적인 코드 ORM을 이용하면 SQL문이 아닌 클래스의 메서드를 통해 데이터베이스를 조작할 수 있어, 개발자가 객체 모델만 이용해서 프로그래밍을 하는 데 집중할..

    [네트워크] 도메인주소와 EC2서버가 연결되는 과정

    DNS란? 도메인이나 호스트네임을 IP주소로 해석해주는 서비스로서 사용자는 원하는 도메인을 입력하면 DNS 서버를 통해 해당 도메인의 실제 IP정보를 받아 원하는 사이트에 쉽게 접속할 수 있게 됩니다. local 네임 서버에 'www.naver.com'에 대한 정보를 요청합니다. local 네임 서버는 'www.naver.com'에 대한 정보가 없기 때문에 루트네임 서버에 다시 요청합니다. (루트네임서버 : 전 세계 13개만 존재하는 최상위 네임서버) - a.root-servers.com ~ m.root-servers.com 루트네임서버는 'www.naver.com'에 대한 정보는 없지만 .com 도메인을 관리하고 있는 서버 정보를 알려줍니다. local 네임 서버는 .com 네임서버에 'www.nave..

    [네트워크] gRPC 프로토콜

    RPC란? Remote Procedure Call의 약자로, 원격에 있는 함수를 호출해주는 기능을 말합니다. 별도의 원격제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스간 통신입니다. RPC는 일반적으로 , request parameter와 response parameter를 알아야하기 때문에, 양쪽의 인터페이스 규약을 IDL 등의 언어로 정의한 후, 해당 프로그래밍 언어가 부를 수 있는 형태의 코드로 생성을 해줘야하는데, 이를 Skeleton과 Stub코드라고 합니다. 분산 컴퓨팅 환경에서 많이 사용되어 왔으며 현재에는 MSA(Micro Service Architecture)에서 마이크로 서비스간에도 많이 사용되는 방식입니다. 서로 다른 환경에서도..

    [NodeJS] 템플릿엔진

    템플릿 엔진의 필요성 html을 컨트롤하기 위해 여러 템플릿엔진들이 있습니다. 템플릿엔진을 사용하면 서버에서 온 데이터들을 조금 더 쉽게 다룰 수 잇다는 장점이 있습니다. 대부분의 템플릿엔진은 html에 비해 문법이 간단하여 코드량을 줄일 수 있습니다. 데이터만 바뀌는 경우가 굉장히 많으므로 재사용성을 높일 수 있습니다. 유지 보수에 용이합니다. 템플릿엔진에는 Server Side Template Engine과 Client Side Template Engine 이 있습니다. Server Side Template Engine 서버에서 미리 정의된 Template에 넣어 html을 그려서 클라이언트에 전달하는 방식입니다. 동적으로 생성되는 부분만 템플릿에 소스 코드를 끼워넣는 방식으로 동작합니다. 자스크립트..

    [Docker] docker 실행하기(2)

    이 명령어로 docker hub에서 python 3.8 이미지를 다운받습니다. (내 로컬에서 python 3.8 이미지가 없기 떄문에) docker run -it python:3.8 Dockerfile에 다음과 같이 이미지를 저장할 수 있습니다. FROM python:3.8 ADD requirements.txt . RUN pip install -r requirements.txt ADD templates templates ADD app.py . CMD ["python", "app.py"] FROM 은 이 환경에서 실행을 하겠다는 뜻입니다. ADD는 호스트머신에 있는 파일을 Docker 이미지에 넣겠다는 의미입니다. 즉, requirements.txt를 . 위치에 넣겠다는 뜻입니다. RUN 은 쉘에서 해당 ..