Computer Science 42

[MySQL] SELECT SELECT문은 가장 많이 사용하는 구문입니다. 한마디로 데이터베이스 테이블에서 원하는 정보를 추출하는 명령입니다. //예시 테이블// CREATE TABLE person ( name VARCHAR(5) NOT NULL, -- ex) 홍길동 height INT NOT NULL, -- ex) 178 address VARCHAR(2) NOT NULL -- ex) 서울, 경기, 강원, 경남, 경북, 전남, 전북, 충청 ); 테이블 전체 출력 SELECT * FROM [테이블 이름] -> SELECT * FROM person 특정 열만 보이도록 출력 SELECT [열 이름1, 열 이름2] FROM [테이블 이름] -> SELECT name, height FROM person 조건에 부합하게 출력 SELECT [.. Computer Science/DataBase 2021. 8. 10.
[Network] HTTP ( Hyper Text Transfer Protocol ) WWW( World Wide Web )에서 정보를 주고받을 수 있는 프로토콜입니다. 주로 HTML 문서를 주고받는 데에 쓰입니다. 하지만 최근에는 HTTP 메세지로 모든 것을 전송합니다. HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, XML 등 거의 모든 형태의 데이터를 전송할 수 있습니다. 심지어 서버간의 데이터를 주고 받을 때도 대부분 HTTP 사용합니다. HTTP/1.1, HTTP/2은 TCP 프로토콜을 기반으로 사용하고 HTTP/3은 UDP 프로토콜을 기반으로 사용합니다.현재 HTTP/1.1가 주로 사용되고 HTTP/2, HTTP/3도 점점 증가하고 있습니다. HTTP 특징 1. Client-Server 구조 Request와 Response 구조로 이루어져 있습니다. Reque.. Computer Science/Network 2021. 8. 9.
[Network] URI ( Uniform Resource Identifier ) Uniform - 리소스 식별하는 통일된 방식 Resource - 자원, URI로 식별할 수 있는 모든 것( 제한 없음 ) Identifier - 다른 항목과 구분하는데 필요한 정보 URI? URL? URN? URI는 Locator(URL), Name(URN) 또는 둘 다로 추가로 분류될 수 있습니다. URL은 리소스가 있는 위치를 지정, URN은 리소스에 이름을 부여한 것 입니다. 위치는 변할 수 있지만, 이름은 변하지 않습니다. 하지만 실제로 URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않았습니다. 따라서 URI와 URL을 같은 의미로 생각하면 됩니다. URL 문법 scheme://[userinfo]@[host][:port][/path][?query][#fragment] sche.. Computer Science/Network 2021. 8. 9.
[Network] DNS IP는 기억하기 어렵고, 변경될 수 있습니다. 그렇게 때문에 직접 IP로 접근이 어렵습니다. 이것을 해결하기 위한 것이 DNS입니다. DNS는 도메인명을 IP주소로 변환하여 줍니다. DNS 서버에 도메인을 등록하고 해당 도메인에 대한 요청이 있을 경우 DNS 서버가 해당하는 IP를 응답해주고 클라이언트는 해당 IP로 서버에 접속하게 됩니다. 출처 생활코딩 Computer Science/Network 2021. 8. 9.
[Network] Port 같은 IP 내부에서 프로세스를 구분하는 것입니다. IP가 아파트라면 포트는 몇동 몇호에 해당한다고 할 수 있습니다. Port는 0~65535 사이에서 할당가능합니다. 0~1023 잘 알려진 포트로 할당하지 않는게 좋습니다. 대표적인 포트는 FTP 20와 21, TELNET 23, HTTP 80, HTTPS 443가 있습니다. 출처 모든 개발자를 위한 HTTP 웹 기본 지식 Computer Science/Network 2021. 8. 9.
[Network] TCP와 UDP TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜입니다. 전송계층은 송신자(Client)와 수신자(Server)를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층입니다. 쉽게 말해 데이터의 전달을 담당한다고 생각하시면 됩니다. TCP와 UDP는 포트 번호를 이용하여 주소를 지정하는것과 데이터 오류검사를 위한 체크섬 존재하는 두가지 공통점을 가지고 있지만 정확성(TCP)을 추구할지 신속성(UDP)을 추구할지를 구분하여 나뉩니다. 데이터를 중요하게 생각하여 확실히 주고받고 싶을 때는 ‘TCP(Transmission Control Protocol)’를 사용합니다. TCP는 통신할 컴퓨터끼리 3-way-hands.. Computer Science/Network 2021. 8. 9.
[Network] IP ( Internet Protocol ) 송신 호스트와 수신 호스타가 패킷 교환 네트워크에서 정보를 주고받는데 사용하는 규약입니다. 패킷이라는 통신 단위로 데이터를 전달합니다. 패킷은 출발지의 IP와 목적지의 IP 그리고 데이터 등등을 가집니다. IP 프로토콜의 한계 1. 비연결성 대상 서버가 어떤 상태인지 모르고 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송합니다. 2. 비신뢰성 중간에 패킷이 사라져도 결과를 알 수 없습니다. 또, 패킷을 여러개 보냈을 때 순서대로 받지 못할 가능성이 있습니다. 3. 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 구분할 수 없습니다. Computer Science/Network 2021. 8. 9.
[Design Pattern] Template Method Pattern 상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법입니다. 변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에서 만들도록 합니다. 알고리즘의 구조를 정의하고, 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의 하는 패턴입니다. 쉽게 말해 전체 구조는 바꾸지 않으면서 특정 단계를 수행하는 내역을 바꾸는 패턴입니다. 상속 관계(Is-a)를 이용합니다. 장점은 중복 코드를 줄일 수 있지만, 단점으로 추상 메소드가 많아지면서 클래스 관리가 복잡해지고 또 확장구조가 이미 클래스를 설계하는 시점에서 고정되어 관계에 대한 유연성이 떨어집니다. Abstract public abstract class Abstract { public void superMetho.. Computer Science/Design Pattern 2021. 8. 3.
[Design Pattern] Strategy Pattern 전략패턴은 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴입니다. 기존의 코드 변경 없이 행위를 자유롭게 바꿀 수 있게 해주는 OCP를 준수한 디자인 패턴 방법을 말합니다. 전략패턴은 컴포지션 관계(has-a)를 가집니다. 컴포지션은 해당 인스턴스의 내부 구현이 바뀌더라도 영향을 받지 않습니다. 또 인터페이스를 활용하여 다른 인스턴스를 쉽게 변경할 수 있습니다. Context 스트래티지 패턴을 이용하는 역할을 수행합니다. 필요에 따라 동적으로 구체적인 전략을 바꿀 수 있도록 생성자 또는 Setter를 제공합니다. public class Context { private Strategy strategy; public void setTranslateStrategy(Strategy .. Computer Science/Design Pattern 2021. 8. 3.
정적 타입 지정 vs 동적 타입 지정 정적 타입 지정 언어 정적 타입 지정 언어는 C, C#, C++, Java, Kotlin 등의 언어가 있습니다. 정적 타입 지정 언어는 변수에 들어갈 값에 따라 미리 자료형을 지정해주어야 합니다. 정적 타입 지정 언어는 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증해줍니다. 런타임에서 어떤 메소드를 호출할 지 알아내는 과정이 생략되어 메소드 호출이 더 빠릅니다. 컴파일러가 프로그램의 정확성을 검증하기 때문에 실행 시 프로그램이 오류로 중단될 가능성이 낮아집니다. 코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있기 때문에 파악하기가 쉽습니다. 동적 타입 지정 언어 동적 타입 지정 언어는 JavaScript, Groov.. Computer Science/Programming 2021. 3. 29.