본문 바로가기

전체 글

(10)
[Codillity] PermMissingElem 문제 An array A consisting of N different integers is given. The array contains integers in the range [1..(N + 1)], which means that exactly one element is missing. Your goal is to find that missing element. Write a function: class Solution { public int solution(int[] A); } that, given an array A, returns the value of the missing element. For example, given array A such that: A[0] = 2 A[1] = 3 A[2..
DNS(Domain Name Service) 어느 사이트에 접속을 하기 위해서는 해당 사이트에 대한 정보를 갖고 있는 서버의 주소(IP) 를 알아야 한다. 예를 들어, naver.com 에 접속하게 되는 순서는 다음과 같다. www.naver.com 도메인 입력 www.naver.com 과 연결된 네임서버로 접속 DNS Server에서는 www.naver.com에 해당하는 서버 IP 주소 확인 확인된 주소를 전달 www.naver.com 서버 접속 DNS의 실질적인 역할은 입력한 호스트명을 해당 호스트명에 해당하는 IP주소로 변환하는 것이다. 여기서 www는 서브 도메인 naver는 3단게 도메인 com은 최상위 도메인 이라고 한다. 도메인은 이런 체계를 가지고 있고 이름 형성에 관한 규칙은 RFC 1035, RFC 1123, RFC 2181에 정..
OSI 7 계층(layers) 1. OSI 7 계층(layers) OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7 계층 모형이라고 한다. 즉, 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것이다. 2. OSI 7 계층 단계 2.1 물리 계층(Physical Layer) 물리 계층은 Data를 전기신호로 바꿔주는 역할을 한다. 케이블 종류, 무선 주파수, 핀 배치, 전압, 물리 요건 등이 포함된다. 이 계층에서는 단지 데이터를 전달만 할뿐 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. (On, Off 라고 이해하면 쉽다.)..
[Codillity]CyclicRotation 문제 An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is moved to the first place. For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7] (elements are shifted right by one index and 6 is moved to the first place). The goal is to rotate array A K times; that is, each eleme..
[Codillity] Binary Gap 문제 A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has binar..
오버로딩(Overloading) vs 오버라이딩(Overriding) 1. 오버로딩(Overloading) 오버로딩이란 매서드(함수)가 같은 이름을 여러개 정의하고, 매개변수의 유형이나 인자의 수나 다른 경우를 말한다. 이를 이용해 다양한 유형의 호출에 응답할 수 있다. //오버로딩 예시 class Overloading { public int sum(int a, int b) { return a + b; } public int sum(int a, int b, int c) { return a + b +c; } public String sum(String a, String b) { return a + b; } } 2. 오버라이딩(Overriding) 오버라이딩이란 상위 클래스의 매서드와 이름이 같은 함수를 하위 클래스(상속 관계에 있는 클래스)에 재정의하는 것을 말한다. //오..
객체 지향 프로그래밍(OOP : Object Oriented Programming) 1. 객체 지향 프로그래밍(Object Oriented Programming) 프로그램 설계방법론이자 개념의 일종. 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체'라는 기본 단위로 나누고 이 객체들의 상호작용으로 서술하는 방식이다. 이 개념을 쉽게 이해하기 위해서 객체와 클래스에 대해서 알아야 하는데 내가 좋아하는 축구를 예로 들어 설명을 해보겠다. 축구를 하다 보면 어떤 축구화를 신을지 고민을 하게 된다. 내가 가지고 있는 축구화는 아디다스 19.1 X tf 라는 축구화이다. 이 축구화는 아디다스 축구화 중 X 시리즈이다. 축구화를 뭐 쓰냐고 물어본다면 아디다스, 나이키, 푸마 등 여러 브랜드를 가지고 대답하는 경우를 생각해보면 어떤 모델을 신고 있든지 상관 없..
프로세스(Process) vs 스레드(Thread) 실질적인 개발 업무를 하게 되면서 스레드와 프로세스라는 단어를 많이 듣게 되었는데, 정확한 의미와 차이를 알지 못했기 때문에 그것에 대한 차이를 정리하기 위해 글을 쓴다. 1. 프로세스(Process) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 운영체제로부터 시스템 자원을 할당받는 작업의 단위 동적인 개념으로는 실행된 프로그램을 의미 이런 의미들을 담고 있는데 한번에 와 닿지 않아 프로그램과 비교해 보면 이해가 쉽다. 컴퓨터 내에는 여러 프로그램들이 설치 되어 있다. 프로세스는 이 프로그램을 메모리상에 실행준인 작업을 의미 한다. 1.1 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 기..