들어가기 앞서 해당 글은 널널한 개발자님의 인프런 강의 '외워서 끝내는 네트워크 핵심이론 - 기초'의 section2를 보고 공부한 내용을 정리한 글입니다. NIC NIC는 Network Interface Card의 약자로 흔히 말하는 LAN 카드를 전문적으로 칭하는 의미로 통한다. 네트워크를 하기 위한 컴퓨터인 Host는 NIC을 하나 이상 가질 수 있고, NIC은 유/무선의 차이가 있지만 통상 이 둘을 구분하지 않고 NIC이라 칭할 때가 많다. NIC은 하드웨어 장치이고 MAC 주소를 갖는다. NIC = LAN 카드 NIC은 유/무선 구분 가능. 그러나 굳이 구별하지 않고 NIC이라고 칭할 때가 많음 NIC은 하드웨어 장치이고 MAC 주소를 가질 수 있음 Host는 NIC을 하나 이상 가질 수 있고,..
문제 설명 어떤 수열의 연속 부분 수열에 같은 길이의 펄스 수열을 각 원소끼리 곱하여 연속 펄스 부분 수열을 만들려 합니다. 펄스 수열이란 [1, -1, 1, -1 …] 또는 [-1, 1, -1, 1 …] 과 같이 1 또는 -1로 시작하면서 1과 -1이 번갈아 나오는 수열입니다. 예를 들어 수열 [2, 3, -6, 1, 3, -1, 2, 4]의 연속 부분 수열 [3, -6, 1]에 펄스 수열 [1, -1, 1]을 곱하면 연속 펄스 부분수열은 [3, 6, 1]이 됩니다. 또 다른 예시로 연속 부분 수열 [3, -1, 2, 4]에 펄스 수열 [-1, 1, -1, 1]을 곱하면 연속 펄스 부분수열은 [-3, -1, -2, 4]이 됩니다. 정수 수열 sequence가 매개변수로 주어질 때, 연속 펄스 부분 수열..
들어가기 앞서 해당 글은 널널한 개발자님의 인프런 강의 '외워서 끝내는 네트워크 핵심이론 - 기초'의 section 0과 section 1을 보고 공부한 내용을 정리한 글입니다. 컴퓨터 공학에서의 Layered 구조 컴퓨터 공학에서 Layered 구조는 근본적으로 종속 관계를 갖는다. 하위 계층은 상위 계층의 전제조건이 되며 상위 계층은 하위 계층이 성립된 상황 하에서만 존재 가능한 것. 현 세상에서는 어떤 계층 구조가, 하위 계층이 상위 계층의 존립을 좌우할 정도로 극단적으로 수직화된 경우는 많지 않으나 컴퓨터 공학에서는 일반적으로 Layered 구조로 칭해질 경우 이러한 성격을 띈다. OSI 7 계층(Layer) 또한 그러한데, 최하위 계층인 L1 물리 계층이 존재하지 않으면 L2, L3는 존재할 수..
목적 박재성님의 자바 웹 프로그래밍 Next Step의 3장 HTTP 웹 서버 구현을 통해 HTTP 이해하기 파트 실습을 진행하고 있다. 책에 나와 있는 단계들을 하나 하나 스스로 실습하며 적용한 내용들, 만난 이슈 등을 readme에 적고 있는데, 적으면서 내가 모르는 부분들, 더 공부하고 싶은 부분들, 잘 안다고 생각했는데 사실 잘 몰랐던 지식 등을 너무 적나라하게 만나서 그 부분을 나중에 다시 한번 보고 공부할 수 있는 기회로 삼기 위해 이 글을 쓰게 되었다. 해당 글에 대한 코드는 아래의 깃허브에서 확인할 수 있다. https://github.com/Nuouung/web-application-server GitHub - Nuouung/web-application-server: 웹 애플리케이션 서버..
일러두기 해당 글은 다케우치 사토루의 책 '실습과 그림으로 배우는 리눅스 구조'의 chapter 2 '사용자 모드로 구현되는 기능'을 읽고 배운 부분을 정리하기 위한 글입니다. 사용자와 하드웨어, 그리고 운영체제 컴퓨터 시스템에서 하드웨어와 사용자의 관계는 사뭇 오묘하다. 컴퓨터 시스템에서의 사용자는 인간을, 하드웨어는 컴퓨터 내부의 CPU, 메모리, 입출력장치, 저장장치 등을 의미하는데 일반적인 경우 컴퓨터의 하드웨어는 사용자인 인간의 편의를 위해 다양한 계산을 하는 방식으로 활용된다. 즉, 컴퓨터가 단순한 계산기에 불과했던 과거에서부터, 고사양의 게임을 돌린다거나 동영상, 사진 편집과 같은 작업을 수행하는 현재까지 컴퓨터의 하드웨어는 사용자의 요구를 입력받고 필요한 작업을 수행하여 결과물을 제출하는 ..
HTTP의 특징: 비연결성 HTTP는 네트워크의 응용계층(애플리케이션 계층)에서 클라이언트 프로세스와 서버 프로세스가 통신하기 위한 프로토콜로 오늘 날 웹 환경에서 광범위하게 사용되는 중요한 프로토콜이다. HTTP는 특징 중 하나로 상대측과 통신에 성공한 연결을 지속하지 않는다는 비연결성(connectionless)을 가지는데, 오늘은 비연결성이 무엇이고 어떠한 이점 그리고 한계를 갖는지 한번 살표보자. 비연결성이란? 비연결성은 연결을 지향하지 않음을 의미한다. HTTP는 서버와 클라이언트가 엄격히 분리되어 있는 프로토콜로 통신을 하는 양측 중 한쪽은 반드시 클라이언트, 다른 한쪽은 반드시 서버가 된다. HTTP 통신은 클라이언트가 서버로 리소스를 요청하거나 서버 상의 리소스를 조작하는 것을 요청하는 방..
TCP/IP란? TCP/IP는 프로토콜의 일종으로 인터넷을 포함한 일반적인 네트워크 환경에서 광범위하게 사용되는 프로토콜이다. 1983년 표준 방식으로 정해졌으며 당시 NCP를 TCP/IP가 대체하게 되면서 지금 우리가 사용하게 되는 인터넷이 탄생했다. TCP/IP은 두 개의 기기 간의 데이터를 전송하기 위한 프로토콜이다. 오늘날 사용되고 있는 많은 네트워크 프로토콜이 이 TCP/IP에 의존하고 있으며, 오늘 날 가장 널리 사용되고 있는 프로토콜인 HTTP 또한 TCP/IP의 일종이다. 프로토콜이란? 복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약 [네이버 국어사전] 서로 원격으로 떨어진 복수의 디바이스가 서로 통신하기 위해서는 정해진 규격이 필요하..
문제 설명 0과 1로 이루어진 2n x 2n 크기의 2차원 정수 배열 arr이 있습니다. 당신은 이 arr을 쿼드 트리와 같은 방식으로 압축하고자 합니다. 구체적인 방식은 다음과 같습니다. 당신이 압축하고자 하는 특정 영역을 S라고 정의합니다. 만약 S 내부에 있는 모든 수가 같은 값이라면, S를 해당 수 하나로 압축시킵니다. 그렇지 않다면, S를 정확히 4개의 균일한 정사각형 영역(입출력 예를 참고해주시기 바랍니다.)으로 쪼갠 뒤, 각 정사각형 영역에 대해 같은 방식의 압축을 시도합니다. arr이 매개변수로 주어집니다. 위와 같은 방식으로 arr을 압축했을 때, 배열에 최종적으로 남는 0의 개수와 1의 개수를 배열에 담아서 return 하도록 solution 함수를 완성해주세요. 제한사항 arr의 행의..
해당 글은 박재성님의 자바 웹 프로그래밍 Next Step의 2장 문자열 계산기 구현을 통한 테스트와 리팩토링의 내용을 정리한 내용입니다. 1. 내가 계산기 애플리케이션을 구현했어! 철수는 개발자다. 지난 날 계산기를 구현해달라는 영희의 요청을 받은 철수는 밤새 작업을 한 결과 사칙연산이 가능한 완벽한 계산기 애플리케이션을 구현했다. 철수의 계산기 애플리케이션의 코드는 다음과 같다. public class Calculator { int add(int i, int j) { return i + j; } int subtract(int i, int j) { return i - j; } int multiply(int i, int j) { return i * j; } int divide(int i, int j) {..
문제 상황 회사 업무를 수행하다 한 가지 불편한 점이 생겼다. 사실 오래 전부터 불편하다 느꼈던 부분이기는 했었는데 이번에 이 부분과 관련하여 제대로 이슈가 터졌기 때문에 그 불편함이 인식의 수준으로 올라온 것 같다. 이슈가 발생한 위치는 바로 검색 기능과 페이지 변경 부분이었다. 보통 특정 리스트에서 검색 기능을 수행하면 우리는 다음 페이지로 가더라도 그 검색 기능이 유지되기를 기대한다. 예를 들어 현재 내가 보고 있는 회원 리스트의 1페이지가 '김'씨로 시작하는 회원의 리스트라면 우리는 2번째 페이지를 가더라도 '김'씨로 시작하는 회원의 리스트가 유지되기를 기대하는 것이다. 그런데 내가 맡은 프로젝트에서는 그러지 않았다. 1페이지에서 '김'씨로 시작하는 회원의 리스트를 보다 2페이지로 넘어가게 되면 ..