공부 10

[정리본] 데이터통신공학

학교 강의 수강하면서 만들었던 전공 서적 정리본. 공부하다 설렐수도 있구나 싶었던 기억.. 학교 다니면서 들은 수업중에 가장 재밌었다 생각보다 공부량이 많았다. 정리본 글씨체 크기 8로 하고, 페이지 반반 나눴는데도 정리본이 20장이 나왔다 교재도 4판, 5판 연습문제가 달라서 둘 다 풀고 정리하느라 시간 엄청 쏟았다... 그래도 과목이 재밌어서 다 좋았던 기억 정리본 서적 Behrous Forouzan, "Data Communications And Networking 5th Edition", McGraw-Hill College

공부/학교 2022.08.28

로그 관리 (Logging)

Logging 프로그램 개발 중이나 완료 후 발생할 수 있는 오류에 대해 디버깅하거나, 운영중인 프로그램 상태를 모니터링하기 위해 필요한 정보(로그)를 기록하는 것. Logging vs System.out.println() 출력 형식을 지정할 수 있다. 로그 레벨에 따라 남기고 싶은 로그를 별도로 지정할 수 있다. 콘솔 뿐만 아니라 파일이나, 네트워크 등 로그를 별도의 위치에 남길 수 있다. Logging vs Debugging 프로그램의 절반은 디버깅. 디버깅을 할 수 없는 상황에서 로깅이 최선의 선택. (ex : 실서버 구동중) 디버깅을 쓸 수 있다면 디버깅을 최대한 활용 Java의 주요 Logging Framework native java.util.logging Log4J : 몇 년 전까지 사실상 ..

공부 2022.08.27

웹 브라우저에서의 통신 방법 (Polling, Long Polling, Streaming, Socket)

웹 브라우저에서의 통신 Polling Client가 평범한 HTTP Request를 Server로 계속 보내서 이벤트 내용을 전달받는 방식. 장점 일정하게 갱신되는 서버 데이터의 경우 유용하게 사용될 수 있는 방식. 단점 Client가 많아지면 Server의 부담이 급증. Client 측에서 실시간 정도의 빠른 응답을 기대하기 어려움. HTTP 오버헤드 (전송하는 데이터 양에 비해 header의 양이 큰 문제) 발생. Long Polling Server 측에서 접속을 열어두는 시간을 길게 하는 방식. Client가 서버로 HTTP Request를 보내면, 서버는 응답에 대한 사용 가능한 데이터가 없다면 계속 대기. 그러다 서버에서 해당 클라이언트로 전달할 이벤트가 있다면 그 순간 response 메시지를..

공부 2022.08.27

자연키(Natural Key) vs 인조키(Artificial Key)

자연키 비즈니스 모델에서 자연스럽게 나오는 속성 ex : 회원 테이블에서, 회원 정보 중 '아이디' 속성을 자연키로 설정. 인조키 비즈니스 모델과 달리 오로지 키 역할을 하기 위해 인조적으로 만든 속성 ex : UUID, Auto Increment UUID 테이블의 PK로 사용되는 고유 식별자. 16 Bytes의 문자로 구성. 유일을 보장하지 않음. '실질적으로 유일함'이 목적 ( 10^38 개의 경우의 수) 장점 개발 환경에 독립적. 분산 시스템에서 활용 가능. 단점 성능 저하. PK가 16바이트의 문자열이라면 데이터를 검색하거나 정렬할 때 소모되는 비용이 큼. 사람이 보기 불편함 메모리 공간 많이 차지 Auto increment (Primary Key) 테이블의 PK로 사용되는 고유 식별자. 프로그램..

공부 2022.08.10

HTTP란?

Protocol 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계. 즉, 통신규약. OSI 7 Layer의 각 layer마다, 그리고 각 기능마다 사용하는 protocol이 다르다. Protocol의 예시 Physical Layer : 별도의 프로토콜이 존재하지 x. 디바이스만 존재. Network Layer : IP, ICMP, ARP, RARP Transport Layer : TCP, UDP Session Layer : SAP, SDP, NetBIOS Presentation Layer : ASCII, MPEG, JPEG, MIDI Application Layer : HTTP, SMTP, FTP HTTP (HyperText Transfer Protocol) 인터넷을 통해 웹 브..

공부 2022.08.09

WAS vs Web Server

Static Page (정적 웹페이지) 요청하는 사용자, 시간 등과 같은 변수와 상관 없이 항상 동일한 페이지를 반환한다. (ex : image, html, css, javascript와 같이 컴퓨터에 저장된 파일들) web server는 파일 경로 이름을 받고, 경로와 일치하는 file content를 반환. Dynamic Page (동적 웹페이지) 웹 서버에 의해 실행되는 프로그램을 통해 만들어진 결과물. 인자의 내용에 맞게 동적인 content를 반환. Web Server 역할1 : 정적인 컨텐츠 제공 WAS를 거치지 않고 바로 지정된 경로에 존재하는 정적인 컨텐츠를 client에게 반환. 역할2 : 동적인 컨텐츠 제공을 위한 요청을 전달 client의 요청을 WAS에게 보내고, WAS가 처리한 결..

공부 2022.08.09

API란?

API (Application Programming Interface) 컴퓨터나 컴퓨터 프로그램(소프트웨어)이 서로 통신할 수 있게 도와주는 매개체. 즉, 간단히 말하면 두 장치가 데이터를 원활히 주고받을 수 있도록 중간 매개체 역할을 함. 정의 및 프로토콜 집합을 사용해서 통신 규약을 정함. 직접 사람(사용자)에 의해 사용되도록 고안된 것이 아니다. 즉, 사용자 인터페이스와 API는 다르다. API의 역할 시스템이 동작하는 방식에 관한 내부의 세세한 부분들을 숨겨줌, 두 장치가 원할하게 통신할 수 있도록 함. API의 종류 (작동 방식으로 구분) SOAP API RPC API 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송. 원격 프로시저 호출 Websocket A..

공부 2022.08.09

컴파일 vs 인터프리터

컴파일 언어 vs 인터프리터 언어 컴파일러 : 작성된 코드를 기계어로 ‘번역’하는 역할. 인터프리터 : 작성된 코드를 한 줄씩 읽어가며 ‘번역’하고 ‘실행’하는 언어 컴파일 언어 작성된 모든 소스코드를 기계어로 ‘번역’한 뒤에, 번역된 코드를 ‘실행’. (번역 → 실행) 컴파일과 프로그램 실행이 완전히 분리. (ex : JavaScript, HTML, ActionScript, SQL, Python, ruby 등) 장점 빌드가 완료된 실행 가능한 파일은 실행 속도가 빠르다. 매번 번역할 필요 없이 실행 파일만 실행하면 되기 때문에 시간 단축. 단점 프로그램을 수정할 경우 처음부터 빌드 과정을 다시 거쳐야 한다. 대규모 프로그램에서 생산성 감소. 플랫폼에 매우 의존적. 인터프리터 언어 컴파일을 진행하지 않고..

공부 2022.07.17

URI(Uniform Resource Identifier) vs URL(Uniform Resource Locator)

URI vs URL URI (Uniform Resource Identifier): 인터넷에서의 자원의 식별자(identifier) URL (Uniform Resource Locator): 인터넷에서의 자원의 주소(Location) URI는 URL의 상위 개념. URI는 자원을 식별하고, URL은 자원의 위치를 가르친다. Example http://www.google.co.kr:80/hakawati/ -> 자원이 위치하는 장소를 의미. (URL) uri.php?url=urn#Rnfwoa -> 앞선 자원의 위치에서 각 자원을 유일하게 식별해준다. (URI – URL) http://www.google.co.kr:80/hakawati/uri.php?url=urn#Rnfwoa -> (URI) URI 설계원칙 (R..

공부 2022.01.23