분류 전체보기 680

[2주차-04] TCP/IP 4계층 모델

인터넷 프로토콜 스위트(internet protocol suite): 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합-> 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명 계층 구조TCP/IP 계층과 비교한 OSI 계층애플리케이션 계층 : 세 개로 쪼갬링크 계층 : 데이터 링크 계층, 물리 계층으로 나눠서 표현인터넷 계층 : 네트워크 계층이라고 부름이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계ex. 전송 계층에서 TCP를 UCP로 변경 => 인터넷 웹 브라우저를 다시 설치해야하는 것은 아님 각 계층을 대표하는 스택   애플리케이션 계층: FTP, HTTPS, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층웹 서비..

[클린코드 스터디] 2주차 스터디(3장. 함수)

3장. 함수🎯 함수는 작고 명확하게함수는 작아야 한다. 그리고 더 작아야 한다.함수가 짧을수록, 들여쓰기 레벨이 얕을수록, 읽기 쉬운 구조가 된다.한눈에 코드를 읽고 이해할 수 있어야 하며, 한 가지 작업만 수행해야 한다.// 길고 복잡한 함수 예시public void processUser(User user) { if (user.isActive()) { sendEmail(user); } updateLastLogin(user); saveToDatabase(user);}// 작고 명확하게 분리한 예시public void processUser(User user) { if (isActiveUser(user)) { notifyUser(user); } ..

[2주차-03] Network Basics - Network Classification & Commands

네트워크 분류사무실과 개인적으로 소유 가능한 규모 : LAN (Local Area Network)서울시 등 시 정도의 규모 : MAN (Metropolitan Area Network)세계 규모의 : WAN (Wide Area Network) LAN: 근거리 통신망 (같은 건물이나 캠퍼스 같은 좁은 공간)전송 속도가 빠르며 혼잡하지 않다MAN: 대도시 지역 네트워크 (도시 같으 넓은 지역)전송 속도는 평균이며 LAN보다는 더 많이 혼잡함WAN: 광역 네트워크 (국가 또는 대륙 같은 넓은 지역)전송 속도 낮으며 MAN보다 더 혼잡  네트워크 성능 분석 명령어네트워크 병목 현상의 주된 원인네트워크 대역폭네트워크 토폴로지서버 CPU, 메모리 사용량비효율적인 네트워크 구성이때는 네트워크 관련 테스트와 네트워크와 ..

[2주차-02] Network Basics - Network Topology

네트워크 : 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합노드 : 서버, 라우터, 스위치 등의 네트워크 장치링크 : 유선 또는 무선 처리량과 지연 시간좋은 네트워크 = 많은 처리량을 처리할 수 있으며, 지연 시간이 짧고 장애 빈도가 적고 좋으 보안을 갖춘 네트워크처리량: 링크 내에서 성공적으로 전달된 데이터의 양을 말함 = 보통 얼만큼의 트래픽을 처리했는지단위로는 bps(bits per second)를 씀 : 초당 전송 또는 수신되는 비트 수라는 의미트래픽: 특정 시점에 링크 내에 '흐르는' 데이터의 양ex. 서버에 저장된 파일을 클라이언트가 다운로드할 때 발생되는 데이터의 누적량트래픽이 많아졌다 = 흐르는 데이터가 많아졌다처리량이 많아졌다 = 처리되는 트래픽이 많아졌다..

[2주차-01] Programming Paradigm

프로그래밍 패러다임 : 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할의 개발 방법론객체지향 프로그래밍: 프로그래머들이 프로그램을 상호 작용하는 객체들의 집합으로 보게 함함수형 프로그래밍: 상태 값을 지니지 않는 함수 값들의 연속으로 생각크게 선언형, 명령형으로 나눔 선언형과 함수형 프로그래밍: '무엇을' 풀어내는가에 집중하는 패러다임, "프로그램은 함수로 이루어진 것이다."라는 명제가 담긴 패러다임함수형 프로그래밍이 선언형 패러다임의 일종const list = [1,2,3,4,5,11,12]const ret = list.reduce((max, num) => num > max ? num : max, 0)console.log(ret) // 12자연수로 이루어진 배열에서 최댓값을 찾는 로직reduece(..

[1주차-07] Design Pattern - MVC & MVP & MVVM

MVC(Model View Controller) : 애플리케이션의 구성 요소를 세가지 역할로 구분하여 개발하여 재사용성과 확장성이 용의함 Model : 애플리케이션의 데이터인 DB, 상수, 변수 등View : inputbox, checkbox 등 사용자 interface 요소Controller : 하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할, event 등 메인 로직을 담당하며 모델과 뷰의 생명 주기를 관리함=> 대표적인 MVC 패턴은 Spring이 있음 MVP(Model View Presenter) : View와 Presenter는 1:1 관계이므로 MVC 패턴보다 더 강한 결합을 가짐  MVVM(Model View ViewModel) : Controller대신 View Model을 사용Vie..

[1주차-06] Design Pattern - Iterator Pattern & Revealing module Pattern

이터레이터 패턴(Iterator Pattern) : iterator를 사용하여 컬랙션의 요소들에 접근하는 디자인 패턴> 이터레이터 프로토콜 : 이터러블한 객체들을 순회할 때 쓰이는 규칙> 이터러블한 객체 : 반복 가능한 객체로 뱁열을 일반화한 객체여러가지 자료형의 구조와는 상관 없이 iterator라는 하나의 인터페이스로 순회 가능 EX) JavsScript에서의 Iteratorconst mp = new Map()mp.set('a', 1)mp.set('b', 2)mp.set('c', 3)const st = new Set()st.add(1)st.add(2)st.add(3)for(let a of mp) console.log(a)for(let a of st) console.log(a)=> mp은 Map, st..

[1주차-05] Design Pattern - Proxy Pattern

프록시 패턴(Proxy Pattern) : 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 해당 접근을 필터링하거나 수정하는 등의 역할을 하는 계층이 있는 패턴객체의 속성, 변환 등을 보완함보안, 데이터 검증, 캐싱, 로깅에 사용프록시 객체나 프록시 서버로 활용> 프록시 서버에서의 캐싱 : 캐시 안에 정보를 담아두고 , 캐시 안에 있는 정보를 요구하는 요청에 대해 다시 저 멀리 있는 원격 서버에 요청하지 않고 캐시 안에 있는 데이터를 활용 프록시 서버(Proxy Server) : 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램  EX) nginx Proxy ServerNginx란?Nginx(Engine-X..

[1주차-04] Design Pattern - Observer Pattern

옵저버 패턴(Observer Pattern) : 주체가 객체의 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 패턴> 주체 : 객체의 상태 변화를 보고 있는 관찰자> 옵저버 : 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들을 의미MVC(Model-View-Controller) 패턴에 사용됨model(주체)에서 변경사항이 생겨 updqte() 메서드를 view(옵저버)에 알려주고 이를 기반으로 controller 작동 EX) Java에서의 Observer1. Subject interfaceinterface Subject { void register(Observer obj); void unregister(Obs..

[1주차-03] Design Pattern - Strategy Pattern(Policy Pattern)

전략(정책) 패턴(Strategy Pattern) : 행위를 직접 수정하지 않고 캡슐화한 알고리즘(전략)을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴> 컨텍스트 : 상황, 맥락, 문맥을 의미하며 개발자가 어떠한 작업을 완료하는데 필요한 모든 관련된 정보를 말함. EX) Java에서의 Strategy : 네이버페이 결제와 카카오페이 결제 등 결제 방식의 전략을 바꿔서 구현1. PaymentStrategy : 전략 인터페이스import java.text.DecimalFormat;import java.util.ArrayList;import java.util.List;interface PaymentStrategy { public void pay(int amount);}=> 행위의 공통 구..