본문 바로가기

전체 글

(126)
SOLID 객체 지향 설계의 5가지 원칙 SOLID 더보기 SRP : 단일 책임 원칙 (single responsibility principle) OCP : 개방 폐쇄 원칙 (Open/Closed principle) LSP : 리스코프 치환 원칙 (Liskov substitution principle) ISP : 인터페이스 분리 원칙 (Interface segregation principle) DIP : 의존 관계 역전 원칙 (Dependency inversion principle) 1. SRP 단일 책임 원칙 - 한 클래스는 하나의 책임만 가져야 한다. - 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 2. OCP 개방 폐쇄 원칙 - 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야..
REST 란 무엇인가? rest란 무엇인가 대한 좋은 설명 영상 Day1, 2-2. 그런 REST API로 괜찮은가 NAVER Engineering tv.naver.com Representational State Transfer (REST) REST의 시발점은 Roy T. Fielding 이"how do i improve HTTP without breaking the Web?" 이라는 질문에서 시작되었다. 독립적인 진화 - 서버와 클라이언트가 각각 독립적으로 진화한다. - 서버의 기능이 변경되어도 클라이언트를 업데이트할 필요가 없다. - 상호운용성 (interoperability) REST API를 위한 최고의 버저닝(versioning) 전략은 버저닝을 안하는 것 REST API : REST 아키텍처 스타일을 따르는 API ..
[컴퓨터 네트워킹] 5장 네트워크 계층 : 제어 평면 5장 네트워크 계층 : 제어 평면 5.1 개요 포워딩 테이블 or 플로우 테이블 생성하는 방법 1. 라우터별 제어 모든 라우터 각각에서 라우팅 알고리즘이 동작하여 테이블을 제작 2. 논리적으로 중앙 집중된 제어 논리적으로 집중된 컨트롤러가 테이블을 작성 5.2 라우팅 알고리즘 라우팅 알고리즘 분류 기준 1 중앙 집중형 라우팅 알고리즘 - 링크 상태 (link-state, LS) 알고리즘 논리적으로 중앙 집중된 제어를 하는 경우에 사용하는 알고리즘으로 연결과 링크 비용에 대한 완전한 정보를 가지는 알고리즘 분산 라우팅 알고리즘 - 거리 벡터 (distance-vector, DV) 최소 비용 경로의 계산이 라우터들에 의해 반복적이고 분산된 방식으로 수행된다. 거리 벡터 (distance-vector, DV)..
[네트워크 - 용어] 유니캐스트, 멀티캐스트, 브로드캐스트, 애니캐스트 유니캐스트 (Unicast) : MAC Address 기반으로 상대측 IP주소를 목적지로하는 1:1 통신방식으로, 현재 네트워크 상에서 가장 많이 사용되는 방식, 하나의 송신자가 다른 하나의 수신자로 데이터를 전송하는 방식으로 일반적인 인터넷 응용 프로그램이 모두 유니캐스트 방식을 사용 멀티캐스트 (Multicast) : 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식이다. 멀티캐스트의 경우 자신이 데이터를 받기 원하는 특정 호스트 들에게만 보내는 것이 가능하지만, 스위치나 라우턱가 멀티캐스트 포워딩을 지원해 주어야 한다. 브로드캐스트 (Broadcast) : 자신의 호스트가 속해 있는 네트워크 전체를 대상으로 패킷을 전송하는 일대다 통신방식이다. local LAN 상에 붙..
[Git] 깃 명령어 정리 사용자 등록 cd [git저장소 폴더] //로컬 사용자의 경우 git config [--global] user.name ["사용자 이름"] //global 옵션 사용시 전체 저장소에 사용자 정보 등록 git config [--global] user.email ["사용자 이메일 주소"] //global 옵션 사용시 전체 저장소에 사용자 정보 등록 INIT 초기화 git init [경로명]//경로가 없다면 해당 디렉토리[폴더]를 깃 저장소로 초기화 실행 STATUS 깃 상태 확인 파일을 생성하고 수정함으로써 변화한 파일들의 상태를 효율적으로 모니터링하기 위한 기능 git status ADD 스테이지에 등록 워킹 디렉토리의 파일을 추적상태로 만드는 명령어 git add [파일 이름] RM 파일 등록 취소(AD..
[Git] 지원하는 기능은 어떤 것이 있을까? - 기초 개념 git은 프로젝트에서 작업물을 관리하기 용이하게 하는 버전 관리 툴이다. 대중적으로 사용되고 있는 git의 기능과 사용법을 알아보자 기능 1. 백업 깃은 깃 저장소를 통해서 파일을 추적 관리한다. 깃 저장소를 활용하면 이전 버전으로 손쉽게 되돌아 갈 수 있다. 2. 협업 개발 - 코드 공유 : 깃허브를 활용하여 코드를 공유 가능 - 원격 공유 : 깃허브는 로컬 저장소가 아닌 외부 저장소이다. 원격으로 네트워크만 연결된다면 공유된 코드를 사용 가능 - 병합 : 협업 과정에서 구현할 기능이 다르고 이를 통합하는 과정이 필요하다. 따로 구현된 기능을 하나의 프로젝트로 합칠 때 깃이 유용하다. - 공개 : 깃 허브를 통해서 코드를 공개할 수 있다. 기초적인 깃의 동작 명령어 - 간략 소개 init : 폴더를 깃..
[컴퓨터 네트워킹]4장 네트워크 계층 : 데이터 평면 4장 네트워크 계층 : 데이터 평면 4.1 네트워크 계층 개요 데이터 평면 역할 : 입력 링크에서 출력 링크로 데이터그램을 전달하는 것 네트워크 제어 평면 역할 : 데이터그램이 송신 호스트에서 목적지 호스트까지 달 전달되게끔 로컬(local), 퍼 라우터(per-router)포워딩을 조정하는 것 4.1.1 포워딩과 라우팅: 데이터 평면과 제어 평면 네트워크 계층의 근본적인 역할 : 송신 호스트에서 수신 호스트로 패킷을 전달하는 것 포워딩(전달) : 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 이동시켜야 한다. 포워딩은 데이터 평면에 구현된 하나의 기능 라우팅 : 송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정해야 한다. 이러한 경로를 계산하는 알..
[컴퓨터 네트워킹]3장 트랜스포트 계층 - 3 3장 트랜스포트 계층 3.7 TCP 혼잡제어 TCP의 혼잡 제어 방법 -> TCP가 취한 접근방법은 네트워크 혼잡에 따라 연결에 트래픽을 보내는 전송률을 각 송신자가 제한하도록 하는 것 송신자 전송 트래픽을 어떻게 제한하는가? 혼잡 윈도우(congestion window : cwnd) : TCP 송신자가 네트워크로 트래픽을 전송할 수 있는 비율을 제한하도록 한다. 송신 쪽 확인 응답이 안 된 데이터의 양(LastByteSent - LastByteAcked) 네트워크가 혼잡함을 의미 -> 송신자의 전송률을 제한 CASE 2 정상적인 ACK 수신 -> 네트워크가 원할함을 의미 -> 송신자의 전송률 증가 전송률 증가 폭은 ACK의 도착 속도로 조절한다. - 확인응답이 빠른 속도로 도착 -> 혼잡 윈도우 빨리 ..