분류 전체보기
토비의 스프링 5장 요약 정리 - 서비스 추상화
서비스 추상화 자바에는 표준 스펙, 상용 제품, 오픈 소스를 통틀어서 사용 방법과 형식은 다르지만 기능과 목적이 유사한 기술이 존재한다. 환경과 상황에 따라 기술이 바뀌고, 그에 따른 API를 사용하고 다른 스타일의 접근 방법을 따라야 한다는 것은 매우 피곤한 일이다. 지금까지 만든 DAO에 트랜잭션을 적용해보며 스프링이 어떻게 성격이 비슷한 여러 종류의 기술을 추상화하고 이를 일관된 방법으로 사용할 수 있도록 지원하는지 알아보자. 사용자 레벨 관리 기능 추가 현재 UserDao에서는 소위 CRUD라고 말하는 기능만 제공한다. 그 외에 어떠한 비즈니스 로직도 제공하지 않는다. 새로운 요구사항이 들어와서 단지 정보를 넣고 검색하는 것 외에도 정기적으로 사용자의 활동내역을 참고해서 레벨을 조정해주는 기능이 ..
AWS 라우트 테이블 (Route Tables) 이란? 그리고 실제 활용 (라우팅 테이블)
개요 AWS VPC 메뉴에서 제공하는 라우트 테이블(Route tables) 은 VPC 에 존재하는 서브넷들이 특정한 범위의 IP 목적지를 향할 때, Target 을 정해주는 역할을 한다. 인터넷에 연결하는 라우트 테이블의 예시 위는 AWS Route tables IAM 의 실제 화면이다. 192.168.92.0/24 범위의 목적지를 향할 때, local 이 타겟으로 지정되어 있어서 로컬을 거쳐가게 된다. 0.0.0.0/0 (로컬 외의 모든 통신) 범위의 목적지를 향할 때, IGW(Internet Gateway) 가 타겟으로 지정되어 있어서, 인터넷 게이트웨이를 거쳐가게 된다. 이 경우 가상 스위치를 통해 직접 인터넷에 통신하게 된다. NAT 에 연결하는 라우트 테이블의 예시 192.168.92.0/24..
OSI 3 계층 네트워크 계층 (Network Layer) 알아보기
1계층과 2계층 복습하기 3계층인 네트워크 계층을 알아보기 전에 1계층과 2계층에서 무슨 일을 했었는지 확실히 복습해보자. 1계층 (물리 계층) 1계층은 물리 계층이었고, 핵심적인 역할은 디지털 신호를 아날로그 신호(전기 신호)로 변환하거나 아날로그 신호(전기 신호)를 디지털 신호로 변환해주었다. 기본적으로는 1:1 통신을 지원하지만, 더미 허브를 통해 정확히 신호를 어디로 전달할지 몰라도, 브로드 캐스팅 방식으로 연결된 모든 컴퓨터에 신호를 전달할 수 있었다. 2계층 (데이터 링크 계층) 2계층은 데이터 링크 계층이었고, 핵심적인 역할은 MAC 주소 테이블을 가지고 있으며, MAC 주소를 통해 특정 노드를 목적지로 갖는 통신이 가능했다. MAC 주소를 통해 통신을 하면, 주소를 모르고 무작정 보내는 것..
L2 스위치란?
L2 Switch (L2 스위치)란? L2 란 Layer 2 로 2계층을 말한다. 정확히는 OSI 레이어 2계층인 데이터 링크 계층을 말한다. 2계층은 1계층처럼 단순 1:1 통신이 아닌 MAC 을 이용해 망에 연결된 컴퓨터 중 내가 통신해야 하는 컴퓨터를 특정해 통신할 수 있게 되는 계층이다. 1계층에서는 내가 원하는 컴퓨터와 통신할 수 없었기에, 어쩔 수 없이 브로드 캐스팅 방식으로 다른 컴퓨터와 통신해야 했다. 이는 나의 통신 사실을 망에 연결된 다른 모든 컴퓨터에게 알리는 것과 같은 행위로 보안상 취약하다. Multiple Access 를 위한 장비이다. 서버에는 Network Interface Card 가 있다. Network Interface Card 는 MAC 주소가 있어서 네트워크에 연결된..
OSI 2계층 데이터 링크 (Data Link Layer) 계층 알아보기
데이터 링크 계층에서는? 물리 계층 챕터와 같이 컴퓨터끼리 1:1로 통신하는 것을 예시로 고려하지 않고 N대의 컴퓨터가 서로 통신하는 것을 고려하게 된다. 네트워크 기기 간 데이터를 전송하고 물리 주소를 결정하는 계층이다. 물리 계층 챕터에서 허브라는 장치에 대해 배웠다. 허브는 더미허브라고도 불리며, 여러 대의 컴퓨터 모두에 내가 보냈던 신호를 그대로 보낸다고 했다. 이는 어찌보면 억지로 1:N 통신을 구현하려 하는 것이다. 이러한 방식으로 N대의 컴퓨터와 연결했을 때는 N-1 대 분량의 쓸모없는 전송이 함께 이루어진다. 연결된 컴퓨터가 많을수록 이러한 비효율은 극대화되며, 더 심각한 보안 문제가 된다. 그래서 우리는 이러한 문제를 해결할 필요가 있다. 여러 컴퓨터를 연결하는 방법 모든 컴퓨터에 전선 ..
OSI 1계층 물리 계층 (Physical Layer) 알아보기
OSI 7계층이란? OSI 모형(Open System Interconnection Reference Model)은 국제 표준화기구 ISO에서 개발한 모델로 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7계층이라고 표현한다. 위 그림은 OSI 7계층의 각 계층을 아래서 위로 순서대로 정리한 것이다. 1계층 물리 계층 (Physical Layer) 물리 계층은 OSI 7계층 중 가장 아래에 있다. 시스템 간의 물리적 연결을 하고, 전기 신호의 변환 및 제어 역할을 담당한다. 데이터를 '전기신호'로 바꾸어 전송하는 일을 한다. 두대의 컴퓨터가 통신할 수 있는 조건은? 먼저, 물리 계층을 잘 이해하고 네트워크 통신에 대해 이해하는 기반을 다지기 위해서 한가지 전제를..
퍼블릭 클라우드란? 퍼블릭 클라우드를 사용하는 이유
퍼블릭 클라우드 (public cloud) 란? 서버, 데이터베이스, 네트워킹 등 컴퓨터 리소스를 물리적인 장치 없이 인터넷을 통해 관리하는 것이다. 대표적으로 GCP (Google Cloud Platform), AWS (Amazon Web Service), Azure 등이 있다. 퍼블릭 클라우드를 사용하는 이유 물리적 장치를 사용했을 때의 관리 포인트를 없애고, 온전히 나의 서비스에 집중하기 위해서이다. 물리적 장치를 사용한다면? 데이터 관리에 대한 이슈가 생긴다. -> 데이터 백업, 보안 이슈, 데이터 공유는 어떻게 하지?, 데이터가 유실되면 어떡하지? 서버 관리에 대한 이슈가 생긴다. -> 이사할 때는 장비를 끌까?, 장비가 노후화돼서 망가지진 않을까?, 온도 관리는 어떻게 해야 할까? 네트워크 관..
인프라에서 노드와 링크란?
노드란? 보통 IP 로 식별할 수 있는 대상을 말한다. AWS 에서 EC2 인스턴스 하나는 하나의 노드로 볼 수 있다. 링크란? 물리적 회선을 말한다. 노드간에 연결을 링크라고 할 수 있다.
VPC 구성 후 SSH 연결하기
개요 VPC 구성 후 SSH 를 연결하기 위해 핵심적으로 해야하는 일들을 생각해보자. 키페어 만들기 보안 그룹 설정하기 네트워크 ACL 설정하기 인터넷 연결하기 키페어 만들기 키페어는 AWS 메뉴 중 키 페어 메뉴에서 간단히 만들 수 있다. 보안그룹 설정하기 보안 그룹은 보통 인스턴스 단위로 설정한다. SSH 에 사용되는 포트는 22번이기 때문에 내 공인 IP 혹은 모든 IP(0.0.0.0) 에 대해서 22 번 포트를 열어주면 된다. 네트워크 ACL 설정하기 네트워크 ACL 은 서브넷 단위로 설정하니 해당 서브넷에서 잘 살펴보면 된다. 인터넷 연결하기 VPC 를 구성하고 인터넷에 연결하려면, VPC 내부에 있는 EC2 가 인터넷에 연결되어야 한다. 인터넷에 연결하려면 IGW(Internet GateWay..
AWS EC2 인스턴스 삭제 하는 방법
개요 AWS 에서 인스턴스를 삭제하기 위해서는 인스턴스 종료(terminate) 를 하면 된다. 용어가 '삭제'가 아니어서 조금 헷갈릴 수도 있는 부분이다. 종료를 하고도 10~20 분은 기다려야 완전히 삭제되니 충분히 기다렸다가 새로고침해보면 된다.
AWS VPC 를 이용한 보안그룹 구축
개요 보안그룹이란, 내 VPC 내부에 있는 네트워크에 접속할 때 인바운드, 아웃바운드 규칙을 설정하는 것이다. 보통 OSI 계층 중 4 번째에 속하는 전송 계층에서 다루는 정보인 IP 와 포트를 이용하여 설정한다. AWS 에서 구성할 때는 특정한 CIDR 블록 에 대해서 어떤 포트 를 열지 설정한다. 예제 이를테면, 외부망에 3306 번 포트를 열라는 주문을 받았다면, VPC 서브넷 중 외부망에 해당하는 서브넷을 먼저 찾는다. 외부망 서브넷의 CIDR 블록을 확인해보면, 192.168.92.0/26 과 192.168.92.64/26 가 외부망 서브넷으로 할당된 것을 확인할 수 있다. 프로토콜을 TCP 로 설정하고 192.168.92.0/26 과 192.168.92.64/26 에 22 번 포트를 열어주면 ..
인바운드와 아웃바운드 규칙이란?
개요 인바운드와 아웃바운드 규칙이 무엇인지 알아보자. 인바운드 규칙 외부 네트워크에서 해당 노드로 들어오는(in) 트래픽을 의미한다. 아웃바운드 규칙 해당 노드에서 외부 노드로 나가는(out) 트래픽을 의미한다.