공부

1. URI 란? URI는 Uniform Resource Identifier, 통합 자원 식별자의 줄임말입니다. 즉, URI는 인터넷의 자원을 식별할 수 있는 문자열을 의미합니다. URI의 하위 개념으로는 URL과 URN이 존재합니다. URI 중 URL, URN이라는 하위 개념을 만들어서 특별히 어떤 표준을 지켜서 자원을 식별하는 것입니다. 정리하자면 URI라는 개념은 어떤 형식이 존재한다기 보다, 특정 자원을 식별하는 문자열을 의미합니다. 따라서 URL이나 URN이 아니라면 그냥 URI가 되는 것입니다. 2. URL 이란? URL은 Uniform Resource Locator의 줄임말입니다. URL은 네트워크 상에서 리소스(웹 페이지, 이미지, 동영상 등의 파일) 위치한 정보를 나타냅니다. URL은 리..
1. 도메인이란? IP에 사람이 쉽게 기억하고 입력할 수 있도록 문자(영문, 한글 등)으로 만든 인터넷 주소이다. 1.1. 도메인 네임 도메인 이름은 외우기 힘든 12자리의 IP주소를 문자로 표현한 주소입니다. 자주 볼 수 있는 naver, google, daum 과 같이 사람이 임의로 지정할 수 있는 자율적인 이름입니다. 즉, 인터넷에 연결된 컴퓨터의 IP를 사람이 외우기 쉽도록 편의성을 위해 만든 주소입니다. 하지만, 컴퓨터는 이 도메인 네임을 이해할 수 없어서 도메인 네임을 IP주소로 변환하는 작업이 필요합니다. 1.2. IP주소 IP주소란 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호입니다. 1.3. DNS Domain Name System 의 약자입니다. ..
TCP와 UDP는 무엇인가? TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜이다. 전송계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고, IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층이다. 이때, TCP와 UDP는 포트 번호로 서비스를 식별하며 TCP는 정확성, UDP는 신속성을 추구한다. 1. TCP(Transmission Control Protocol) 💡 TCP란? 신뢰성 있는 데이터 전송을 지원하는 연결 지향적 프로토콜 이때 연결 지향적 프로토콜이란 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜을 의미한다. 일반적으로 TCP와 IP가 함께 사용된다. 1) IP가 데이터의 전송을 처리한다면 2) TCP는 ..
5.1 옵저버 패턴이란? 옵저버 패턴이란? 주체가 어떤 객체의 상태 변화를 관찰하다가 변화가 생길 때 옵저버들에게 변화를 알려주는 패턴 옵저버(Observer), 말 그대로 관찰자이다. 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하는 패턴이다. 어떤 객체의 변경 사항이 발생하였을 때 이와 연관된 객체들에게 통지하는 것이다. 여기서 주체란 객체의 상태 변화를 보고 있는 관찰자이며, 옵저버들이란 이 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들을 의미한다. 5.2 옵저버 패턴 활용 예시 1. 트위터 옵저버 패턴을 활용헌 서비스로는 트위터가 있다. 예를 들어, 내가 어떤 사람인 주체를 '팔로우'..
4.1 전략 패턴이란? 전략 패턴이란? 같은 기능이지만 서로 다른 전략을 가진 클래스들을 각각 캡슐화하여 상호교환할 수 있도록 하는 패턴 전략 패턴은 정책 패턴이라고도 한다. 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고, 전략이라 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만든 패턴이다. // 커피를 뽑는 전략 인터페이스 interface CoffeeStartegy { public void brew(); } // 아메리카노 전략 클래스 class AmericonoStrategy implements CoffeeStartegy { private String americano = "아메리카노"; @Override public void brew() { // 아메리카..
3.1 팩토리 패턴이란? 팩토리 패턴이란? 객체를 생성하기 위해 필요한 인터페이스를 만든 후, 인터페이스를 구현하는 클래스에서 어떤 객체를 만들지 결정하는 패턴 팩토리 패턴의 로직은 다음과 같다. 객체를 사용하는 코드에서 객체 생성 부분을 떼어내서 추상화를 한다. 또, 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하며, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정한다. 상위 클래스와 하위 클래스가 분리되기 때문에 느슨한 결합을 가지며, 상위 클래스에서는 인스턴스 생성 방식에 대해 전혀 알 필요가 없기 때문에 더 많은 유연성을 갖게 된다. 또한, 객체 생성 로직이 따로 분리되어 있기 때문에 코드의 유지 보수성이 증가된다. // 커피 인터페이스 abstract class Cof..
2.1 싱글톤 패턴이란? 싱글톤 패턴이란? 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 싱글톤 패턴은 일반적으로 데이터베이스 연결 모듈에 많이 사용된다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있다. 또한 싱글톤 인스턴스가 전역으로 사용되는 인스턴스이기 때문에 다른 클래스 간에 데이터 공유가 쉽다. 하지만 클라이언트가 구체 클래스에 의존하게 되며 의존성이 높아진다는 단점이 있다. public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { // 생성자는 외부에서 호출못하게 private..
1. 디자인 패턴이란? 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것을 의미한다. 개발자들은 개발을 하면서 다양한 문제점들을 맞닥뜨리며, 이러한 문제점들을 풀기 위해서 많은 시간들이 소요된다. 만약 이 문제들에 해결책이 있다면 어떨까? 문제를 풀기 위한 시간을 줄일 수 있을 것이다. 이러한 생각에서 만들어진 것이 바로 소프트웨어 디자인 패턴이다. 디자인 패턴은 개발을 하면서 생길 수 있는 다양한 문제들을 유형별로 나눠서 해결책을 제시한다. 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간의 공통되는 설계 문제가 존재했다. 이러한 문제점들을 처리하는 해결책..
목차 [면접을 위한 CS 전공지식 노트] 는 C++ 기반의 자료구조를 다루고 있다. 자료구조는 크게 선형과 비선형의 구조로 나뉜다. 💡 비선형 자료 구조란? : 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말한다. 대표적인 자료구조 선형구조 : 배열, 연결리스트, 스택, 큐, 데크 비선형구조 : 그래프, 트리, 힙, 우선순위 큐, 맵, 셋, 해시 테이블 1. 그래프(Graph) 💡 그래프 : 그래프는 정점과 간선으로 이루어진 자료 구조를 말한다. 정점(vertex) : 위치 (=node) 간선(edge) : 위치 간의 관계, 즉, 노드를 연결하는 선 outdgree : 해당 정점으로 나가는 간선 indgree : 해당 정점으로 들어오는 간선 정리하자면, 그래프는 정점과 간선으로 이루어진 집합이..
목차 [면접을 위한 CS 전공지식 노트] 는 C++ 기반의 자료구조를 다루고 있다. 자료구조는 크게 선형과 비선형의 구조로 나뉜다. 💡 선형 자료 구조란? : 자료를 구성하는 데이터를 일렬로 나열되어 있는 자료 구조를 말한다. 대표적인 자료구조 선형구조 : 배열, 연결리스트, 스택, 큐, 데크 비선형구조 : 트리, 그래프 1. 연결 리스트(Linked List) 💡 연결리스트 : 데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화시킨 자료구조이다. 삽입/삭제 : O(1) 탐색 : O(n) 연결리스트는 크게 세 가지로 구분 된다. 싱글 연결 리스트 이중 연결 리스트 원형 이중 연결 리스트 연결리스트의 가장 큰 장점은 리스트의 길이가 가변적이란 것이다. 메모리 할당이 따로 필요가 없기 때문에 삽..
규투리
'공부' 카테고리의 글 목록 (2 Page)